,
+ amount: u64,
+ ctx: &mut TxContext,
+) {
+ let token = amount/RATE;
+ assert!(token < swap.faucet_coin_bal.value(), ENoBalance);
+
+ let split_faucet_coin_bal = coin::balance_mut(coin).split(amount);
+ swap.faucet_coin_bal.join(split_faucet_coin_bal);
+ let token = coin::take(
+ &mut swap.faucet_coin_bal,
+ token,
+ ctx,
+ );
+ transfer::public_transfer(token, ctx.sender());
+}
diff --git a/mover/dyingforge/code/task5/coin_swap/tests/coin_swap_tests.move b/mover/dyingforge/code/task5/coin_swap/tests/coin_swap_tests.move
new file mode 100644
index 000000000..1c86a4586
--- /dev/null
+++ b/mover/dyingforge/code/task5/coin_swap/tests/coin_swap_tests.move
@@ -0,0 +1,18 @@
+/*
+#[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/dyingforge/readme.md b/mover/dyingforge/readme.md
index dd3e3de1c..86482781d 100644
--- a/mover/dyingforge/readme.md
+++ b/mover/dyingforge/readme.md
@@ -39,9 +39,9 @@
- [x] play game hash:4aQJUJujGZLcTocCYdxsSbHNXRozaA75LhK4sMQ4qtu3
## 05 Move Swap
-- [] swap package id :
-- [] call swap CoinA-> CoinB hash :
-- [] call swap CoinB-> CoinA hash :
+- [x] swap package id :0xc707a7a1b6bc3fd306f60696d9ed7b7b23a36ecc3fddb241b8512ca8c1b8f72f
+- [x] call swap token-> faucet hash :0xfcfba764032d4166d42e8dc25c6412bfcf4cf85694bd7940d905bd0d632eec5a
+- [x] call swap faucet-> token hash :4qW2Pg9XN9TqMuj4nykxcaaxEeNss9SdaH5Pf2M6gAfn
## 06 Dapp-kit SDK PTB
- [] save hash :
diff --git a/mover/gracecampo/co-learn-2411/readme.md b/mover/gracecampo/co-learn-2411/readme.md
index eee2f08a1..aa5f86dae 100644
--- a/mover/gracecampo/co-learn-2411/readme.md
+++ b/mover/gracecampo/co-learn-2411/readme.md
@@ -19,7 +19,6 @@
- [√] 第一周:![学习记录截图](images/直播答疑/共学营开营仪式.jpg):参与共学营开营仪式并积极互动
- [√] 第一周:![学习记录截图](images/直播答疑/第一周直播答疑.jpg):参与第一周直播答疑并积极互动
- [√] 第二周:![学习记录截图](images/直播答疑/第二周直播答疑.png):参与第二周直播答疑并积极互动
-- [√] 第二周:![学习记录截图](images/直播答疑/共学营分享会.png) :分享并参与共学营讨论并积极互动
- [√] 第三周:![学习记录截图](images/直播答疑/第三周直播答疑.png):参与第一周直播答疑并积极互动
- [] 第四周:![学习记录截图](./images/你的图片地址)
@@ -36,6 +35,8 @@
- [√] 第九篇笔记[move入门之基础语法(一)](https://learnblockchain.cn/article/9966)
- [√] 第十篇笔记[MOVE共学营TASK5教程](https://learnblockchain.cn/article/10035)
- [√] 第十一篇笔记[move入门之泛型](https://learnblockchain.cn/article/10036)
+- [√] 第十二篇笔记[move入门之集合(一)](https://learnblockchain.cn/article/10090)
+- [√] 第十三篇笔记[move入门之集合(二)](https://learnblockchain.cn/article/10091)
## 对外输出学习笔记
- [√] 第一篇笔记[Git入门到精通](https://blog.csdn.net/jinpeng741143592/article/details/143261589?spm=1001.2014.3001.5502)
@@ -51,7 +52,9 @@
- [√] 第十一篇笔记[MOVE共学营TASK4教程](https://learnblockchain.cn/article/9959)
- [√] 第十二篇笔记[move入门之基础语法(一)](https://learnblockchain.cn/article/9966)
- [√] 第十三篇笔记[MOVE共学营TASK5教程](https://learnblockchain.cn/article/10035)
-- [√] 第十三篇笔记[move入门之泛型](https://learnblockchain.cn/article/10036)
+- [√] 第十四篇笔记[move入门之泛型](https://learnblockchain.cn/article/10036)
+- [√] 第十五篇笔记[move入门之集合(一)](https://learnblockchain.cn/article/10090)
+- [√] 第十六篇笔记[move入门之集合(二)](https://learnblockchain.cn/article/10091)
## 在HOH社区公众号发布自己的技术文章
- [] 第一篇笔记【公众号文章链接】
@@ -61,7 +64,7 @@
## 直播分享学习技巧/工具推荐
-- [] 会议截图:![会议记录截图](./images/你的图片地址)
+- [√] 会议截图:![会议记录截图](images/直播答疑/共学营分享会.png)
## 提交项目
diff --git a/mover/gracecampo/code/task6/SdkPtbNavi.tsx b/mover/gracecampo/code/task6/SdkPtbNavi.tsx
new file mode 100644
index 000000000..b9f353e07
--- /dev/null
+++ b/mover/gracecampo/code/task6/SdkPtbNavi.tsx
@@ -0,0 +1,60 @@
+import { useState } from 'react';
+import {useCurrentAccount, useSignAndExecuteTransaction} from '@mysten/dapp-kit';
+import { Transaction } from '@mysten/sui/transactions';
+import {pool, Sui, wUSDC} from "navi-sdk/dist/address";
+import {Pool, PoolConfig} from "navi-sdk/dist/types";
+import {borrowCoin, depositCoin} from "navi-sdk/dist/libs/PTB";
+
+export function SdkPtbNavi() {
+ const {mutate: handleSignAndExecuteTransaction } = useSignAndExecuteTransaction();
+ const [isLoading, setLoading] = useState(false);
+ //获取钱包链接用户
+ const account = useCurrentAccount();
+ const executeTransaction = async () => {
+ const transaction = new Transaction();
+ // 设置交易的详细信息
+ transaction.setSender(account!.address);
+ const now = new Date();
+ const hour= now.getHours();
+ const day = now.getDate();
+ const month = now.getMonth() + 1; // 月份是从0开始的,所以需要+1
+ // 将时间格式化为 0.[月][天][小时] 的形式,如 "0.421" 代表4月21日15时
+ const borrow_amount = parseFloat(`0.${month.toString().padStart(2, '0')}${day.toString().padStart(2, '0')}${hour.toString().padStart(2, '0')}`) * (10 ** wUSDC.decimal);
+ setLoading(true);
+ try {
+ const suiPool: PoolConfig = pool[Sui.symbol as keyof Pool];
+ const [suiCoin] = transaction.splitCoins(transaction.gas, [1_000_000_000]); // 1 SUI = 10^9 MIST
+ await depositCoin(transaction, suiPool, suiCoin, 1_000_000_000);
+ console.log('deposit_amount count', suiCoin.NestedResult);
+ console.log('borrow count', borrow_amount);
+ const wusdcPool: PoolConfig = pool[wUSDC.symbol as keyof Pool];
+ const [toBorrowCoin] = await borrowCoin(transaction, wusdcPool, borrow_amount);
+ await depositCoin(transaction, wusdcPool,toBorrowCoin, borrow_amount);
+ console.log('signAndExecuteTransaction');
+ //const result = await handleSignAndExecuteTransaction(transaction, 'sdk-ptb-navi', setLoading);
+ // console.log('Transaction executed successfully',result);
+ handleSignAndExecuteTransaction(
+ {transaction: transaction,}, {
+ onError: (err) => {
+ console.log('Transaction failed', err);
+ },
+ onSuccess: (result) => {
+ console.log('signAndExecuteTransaction',result);
+ },
+ })
+ setLoading(true);
+ } catch (error) {
+ console.error('Transaction failed', error);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ return (
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/mover/gracecampo/code/task7/check_in.move b/mover/gracecampo/code/task7/check_in.move
new file mode 100644
index 000000000..a6c26cdd6
--- /dev/null
+++ b/mover/gracecampo/code/task7/check_in.move
@@ -0,0 +1,80 @@
+module check_in::check_in {
+ use std::ascii::{String, string};
+ use std::bcs;
+ use std::hash::sha3_256;
+ use sui::event;
+ use sui::object;
+ use sui::random;
+ use sui::random::Random;
+ use sui::transfer::share_object;
+ use sui::tx_context::{Self, TxContext};
+ #[test_only]
+ use std::ascii::as_bytes;
+
+ 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)
+ }
+
+}
+
diff --git "a/mover/gracecampo/notes/\345\267\245\345\205\267\344\275\277\347\224\250/\345\246\202\344\275\225\344\275\277\347\224\250dapp-kit\346\236\204\345\273\272\345\272\224\347\224\250.md" "b/mover/gracecampo/notes/\345\267\245\345\205\267\344\275\277\347\224\250/\345\246\202\344\275\225\344\275\277\347\224\250dapp-kit\346\236\204\345\273\272\345\272\224\347\224\250.md"
new file mode 100644
index 000000000..e67e6b24b
--- /dev/null
+++ "b/mover/gracecampo/notes/\345\267\245\345\205\267\344\275\277\347\224\250/\345\246\202\344\275\225\344\275\277\347\224\250dapp-kit\346\236\204\345\273\272\345\272\224\347\224\250.md"
@@ -0,0 +1,74 @@
+`dApp Kit` 是一组 React 组件、hooks 和工具,旨在帮助您在 Sui 区块链上构建去中心化应用程序(dApps)。它简化了连接钱包、签署交易和从 RPC 节点获取数据等任务。
+
+### 主要功能:
+- **查询 Hooks**:获取 dApp 所需的数据。
+- **自动钱包状态管理**:无缝管理钱包连接。
+- **支持所有 Sui 钱包**:兼容多种 Sui 钱包。
+- **预构建的 React 组件**:使用现成组件加速开发。
+- **可定制的 Hooks**:使用低级别的 hooks 创建自定义组件。
+
+### 前置环境:
+1. nodejs
+2. npm
+
+### 安装:
+要开始使用 dApp Kit,您需要安装必要的包:
+
+使用npm安装
+```bash
+npm install --save @mysten/dapp-kit @mysten/sui.js @tanstack/react-query
+```
+使用yarn安装
+```bash
+yarn add @mysten/dapp-kit @mysten/sui @tanstack/react-query
+```
+
+
+
+### 设置 Providers:
+使用所需的 providers 包装您的应用,以使用 hooks 和组件:
+
+```javascript
+import '@mysten/dapp-kit/dist/index.css';
+import { SuiClientProvider, WalletProvider } from '@mysten/dapp-kit';
+import { getFullnodeUrl } from '@mysten/sui.js/client';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+
+const queryClient = new QueryClient();
+const networks = {
+ localnet: { url: getFullnodeUrl('localnet') },
+ devnet: { url: getFullnodeUrl('devnet') },
+ testnet: { url: getFullnodeUrl('testnet') },
+ mainnet: { url: getFullnodeUrl('mainnet') },
+};
+
+ReactDOM.createRoot(document.getElementById('root')!).render(
+
+
+
+
+
+
+ ,
+);
+```
+
+### 连接钱包:
+添加 `ConnectButton` 以使用户能够连接他们的 Sui 钱包:
+
+```javascript
+import { ConnectButton } from '@mysten/dapp-kit';
+
+function App() {
+ return (
+
+
+
+
+ );
+}
+```
+
+有关更详细的信息和高级功能,您可以查看 [dApp Kit 文档](https://sdk.mystenlabs.com/dapp-kit)。
\ No newline at end of file
diff --git "a/mover/gracecampo/notes/\347\216\257\345\242\203\345\256\211\350\243\205/Git\345\205\245\351\227\250\345\210\260\347\262\276\351\200\232\347\254\224\350\256\260.md" "b/mover/gracecampo/notes/\347\216\257\345\242\203\345\256\211\350\243\205/Git\345\205\245\351\227\250\345\210\260\347\262\276\351\200\232\347\254\224\350\256\260.md"
new file mode 100644
index 000000000..90c325f83
--- /dev/null
+++ "b/mover/gracecampo/notes/\347\216\257\345\242\203\345\256\211\350\243\205/Git\345\205\245\351\227\250\345\210\260\347\262\276\351\200\232\347\254\224\350\256\260.md"
@@ -0,0 +1,187 @@
+# Git入门到精通笔记
+
+🧑💻 作者:gracecampo
+## 概述
+
+Git 的核心优势在于其分布式架构,每个开发者都拥有完整的代码仓库副本,这使得代码的同步和协作变得更加高效。
+
+Git 提供了强大的分支管理功能,支持快速迭代和并行开发。
+
+通过使用 Git,开发者能够更好地管理代码版本,提高开发效率,确保项目的稳定性和可维护性。
+
+## Git的安装步骤
+Git 是一个分布式版本控制系统,用于跟踪文件的更改,并协助多人协同工作
+
+安装 Git
+Windows 平台:
+
+从 Git 官网下载安装程序:https://git-scm.com/download/win
+
+运行下载的安装程序,按照提示完成安装过程。
+
+macOS 平台:
+
+使用 Homebrew(如果尚未安装,请访问 https://brew.sh/ 安装):
+
+```bash
+brew install git
+```
+或者从 Git 官网下载安装程序:https://git-scm.com/download/mac
+
+打开.dmg 文件,双击打开.pkg 文件,按照提示完成安装过程。
+
+Linux 平台:
+
+使用包管理器安装 Git,例如在 Debian/Ubuntu 系统上:
+
+```bash
+sudo apt-get update
+sudo apt-get install git
+```
+在 CentOS/RHEL 系统上:
+```bash
+sudo yum install git
+```
+要验证 Git 是否已正确安装并配置,请在终端或命令提示符中输入以下命令:
+```bash
+git --version
+```
+如果显示 Git 的版本信息,说明安装成功。
+
+以上就是 Git 的安装与配置过程。接下来,您可以开始使用 Git 管理项目了。
+
+配置个人信息
+```bash
+git config --global user.email "your.email@example.com"
+git config --global user.name "Your Name"
+```
+## 基本操作
+
+初始化仓库与项目创建
+
+git init 是 Git 版本控制系统的初始化命令,用于在当前目录下创建一个新的 Git 仓库
+
+git commit 是 Git 版本控制系统中用于创建新提交(commit)的命令
+
+```bash
+mkdir myproject && cd myproject
+git init && echo "# My Project" > README.md && git add .
+git commit -m "Initial commit with README"
+```
+查看项目状态
+
+git status 是 Git 版本控制系统中用于查看当前工作目录状态的命令
+
+```bash
+git status
+```
+文件的添加与提交
+git add 是 Git 版本控制系统中用于将文件或目录从工作目录添加到暂存区的命令
+```bash
+echo "Hello, Git!" > example.txt
+git add example.txt && git commit -m "Add example.txt"
+```
+版本历史的回溯
+git log 是 Git 版本控制系统中用于查看提交历史的命令
+
+执行此命令后,Git 会按照提交时间的倒序(最新的提交在最前面)显示提交历史。每个提交的信息包括提交哈希、作者、日期和提交消息。
+
+```bash
+git log
+git checkout HEAD~1
+```
+分支管理
+分支的优势与使用场景创建、切换与删除分支的实用技巧
+
+git checkout 是一个非常强大的 Git 命令,用于切换分支、恢复工作目录文件、创建新分支等。
+
+基本用法:
+切换到指定分支:
+```bash
+git checkout -b
+```
+
+创建并切换到新分支
+```bash
+git checkout -b
+```
+
+git merge 是 Git 版本控制系统中的一个重要命令,用于将两个或多个分支的更改合并到一个分支中。
+
+这个命令常用于将多个开发者的工作成果合并到主分支,或者将一个功能分支的代码合并到主分支进行测试或发布。
+
+基本语法
+```bash
+git merge
+```
+其中 是你想要合并到的当前分支的分支名。
+
+使用场景
+
+功能分支合并:开发者在功能分支上进行开发,完成后将功能分支合并到主分支。修复分支合并:在修复分支上修复了主分支的 bug 后,将修复分支合并回主分支。
+
+常见选项
+
+--no-commit:合并但不自动创建合并提交,允许你在提交前进一步修改。
+
+--no-ff:即使可以执行快进合并(fast-forward merge),也强制创建一个新的合并提交。
+
+--squash:将指定分支的所有提交压缩成一个单独的提交,然后合并到当前分支。
+
+假设你有两个分支:main 和 feature,你想将 feature 分支的更改合并到 main 分支。
+
+切换到 main 分支:
+```bash
+git checkout main
+```
+
+
+拉取最新的 main 分支代码(可选,但推荐)
+
+git pull 是 Git 版本控制系统中用于从远程仓库获取最新更改并将其合并到当前分支的命令
+```bash
+git pull origin main
+```
+合并 feature 分支:
+```bash
+git merge feature
+```
+注意事项
+
+合并前确保你的工作目录是干净的,没有未提交的更改。
+
+合并后及时推送更改到远程仓库。
+
+在合并复杂分支或大型项目时,建议先在测试环境中验证合并结果。
+
+远程仓库操作
+
+远程仓库的创建与管理推送、拉取与克隆的策略
+```bash
+git remote add origin https://github.com/username/repo.git
+git push -u origin master
+git pull origin master
+git clone https://github.com/username/repo.git
+```
+## 团队协作
+推送与拉取在团队协作中的作用分支策略在团队开发中的应用
+高级操作
+标签管理的实用技巧
+```bash
+git tag -a v1.0.0 -m "Release version 1.0.0"
+git push origin v1.0.0
+```
+## 忽略文件的策略
+在项目根目录下创建.gitignore文件
+```bash
+*.log
+node_modules/
+```
+
+💧 [HOH水分子公众号](https://mp.weixin.qq.com/s/d0brr-ao6cZ5t8Z5OO1Mog)
+
+🌊 [HOH水分子X账号](https://x.com/0xHOH)
+
+📹 [课程B站账号](https://space.bilibili.com/3493269495352098)
+
+💻 Github仓库 https://github.com/move-cn/letsmove
\ No newline at end of file
diff --git "a/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\270\200).md" "b/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\270\200).md"
new file mode 100644
index 000000000..74ca31f0f
--- /dev/null
+++ "b/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\270\200).md"
@@ -0,0 +1,228 @@
+# move入门之集合(一) : Vector数据类型深度分析
+**🧑💻作者:gracecampo**
+## 概述
+在之前的文章中,我们对基本数据类型有了基本的认识,在move中,定义了多种集合类型。
+集合类型的数据结构主要包括以下几种:
+
+1. **Vector**: 用于存储同一类型的元素集合,类似于动态数组。
+
+2. **Table**: 类似于映射的集合,用于存储键值对。键和值的类型可以是指定的或通用的,但必须是同质的。
+
+3. **Bag**: 可以存储任何类型的数据,是一种非泛型类型的集合。
+
+4. **ObjectBag**: 类似于 Bag,但只能存储对象。
+
+5. **ObjectTable**: 类似于 Table,但只能存储对象。
+
+这些集合类型在 Move 中被设计为同质集合,即集合中的所有元素必须是相同类型的。
+
+本节将对move中的**Vector**类型做一个深度的讲解和实战,增加对于集合数据类型认识和使用。
+
+## Vector是什么?
+
+Vector类似于其他编程语言中的数组,但有一些不同之处。。
+
+Vector 是一种用于存储元素集合的原生类型,它是在move基础库中的原生类型。
+
+它位于std包下,是move基础库中的重要组成模块。
+
+```move
+#[defines_primitive(vector)]
+/// A variable-sized container that can hold any type. Indexing is 0-based, and
+/// vectors are growable. This module has many native functions.
+module std::vector;
+```
+
+### 定义和语法
+
+在move中的定义: 一个可变大小的容器,可以容纳任何类型。索引是从0开始,元素数据可以不断增加。
+
+Vector 类型使用 `vector` 关键字定义,后跟元素类型,使用`<>`包裹。
+
+**元素类型可以是任何有效的 Move 类型,也可以是其他集合**
+
+通过定义我们,可以这样理解,就是说可以把vector看作一个容器,这个容器中,可以防止任意类型的数据,比如u8,string,address,也可以放vector类型。
+
+例子:
+```move
+// 一个空的 bool 类型的向量
+let empty: vector = vector[];
+// 一个 u8 类型的向量
+let v: vector = vector[10, 20, 30];
+// 一个 vector 类型的向量
+let vv: vector> = vector[
+ vector[10, 20],
+ vector[30, 40]
+];
+```
+上述例子,仅仅只是用bool,u8,vector ,**Vector的元素类型可以是任意的类型**
+
+## vector是如何实现的?
+
+**作为move语言的基本模块,vector 的底层实现是基于 Rust 的动态数组类型 Vec实现的**
+
+具体可查看[vector.rs](https://github.com/MystenLabs/sui/blob/main/external-crates/move/move-execution/v2/crates/move-stdlib-natives/src/vector.rs)
+
+接下来,我们看下vector的具体代码:
+
+### 异常码定义
+
+定义常量:EINDEX_OUT_OF_BOUNDS,用于表示索引超出范围的错误代码。
+
+之前我们在[move入门之基础语法(一)](https://learnblockchain.cn/article/9966)对常量进行过讲解。
+
+```
+const EINDEX_OUT_OF_BOUNDS: u64 = 0x20000;
+```
+0x20000 是常量的值,表示为十六进制的数值,转化为10进制数为:131072
+
+它在vector实现中,主要用于对向量的索引超出范围时,进行异常提示。
+
+```move
+public fun remove(v: &mut vector, mut i: u64): Element {
+ let mut len = v.length();
+ // i out of bounds; abort
+ if (i >= len) abort EINDEX_OUT_OF_BOUNDS;
+
+ len = len - 1;
+ while (i < len) v.swap(i, {
+ i = i + 1;
+ i
+ });
+ v.pop_back()
+}
+```
+
+比如在remove函数中,当索引下标大于向量长度是,将进行异常提示。
+### 函数定义
+
+在 Move 语言中,`vector` 模块提供了一系列函数来操作向量。以下是一些常用的 `vector` 函数:
+
+1. **创建空向量**:
+ ```move
+ public fun empty(): vector
+ ```
+
+2. **获取向量长度**:
+ ```move
+ public fun length(v: &vector): u64
+ ```
+
+3. **获取元素的不可变引用**:
+ ```move
+ public fun borrow(v: &vector, i: u64): &Element
+ ```
+
+4. **向向量末尾添加元素**:
+ ```move
+ public fun push_back(v: &mut vector, e: Element)
+ ```
+
+5. **获取元素的可变引用**:
+ ```move
+ public fun borrow_mut(v: &mut vector, i: u64): &mut Element
+ ```
+
+6. **从向量末尾移除元素**:
+ ```move
+ public fun pop_back(v: &mut vector): Element
+ ```
+
+7. **销毁空向量**:
+ ```move
+ public fun destroy_empty(v: vector)
+ ```
+
+8. **交换向量中两个元素的位置**:
+ ```move
+ public fun swap(v: &mut vector, i: u64, j: u64)
+ ```
+
+当然,还有除了这几个常用的函数,`vector` 模块还有许多函数没有列出,感兴趣的可以自定查阅。
+
+## Vector应该如何使用?
+上面我们已经列出了`vector` 模块日常开发常用到的一些函数,接下来我们将一一实践,增加对`vector` 模块函数的理解和使用。
+```move
+//初始化一个空向量
+let vec = vector::empty();
+```
+
+上述代码验证一个向量是否为空,我们声明了vector[]的空向量
+
+```move
+let vec = vector::empty();
+//判断向量长度
+assert!(vec.length() == 1);
+```
+
+上述代码验证一个向量是否为空,我们声明了vector[]的空向量,然后调用is_empty()进行判断
+
+is_empty() 函数返回一个布尔值,表示向量是否为空。如果向量为空,断言通过;否则,断言不通过。
+
+```move
+let v = vector[1, 3, 1, 4];
+let elem_ref = vector::borrow(&v, 1);
+```
+
+上述代码声明一个四个元素的数组,通过borrow函数获取了向量 v 中索引为 1 的元素的不可变引用,即元素 3。
+
+```move
+let mut v = vector[1, 3, 1, 4];
+vector::push_back(&mut v, 40);
+```
+在这里需要注意的时,当我们使用push_back的时候,向量需要可变引用(mut)。
+
+push_back第一个参数要求是可变引用,需要通过&mut修饰。
+
+引用相关可以参看:[move基本数据类型(二)](https://learnblockchain.cn/article/9933)
+上述代码声明一个四个元素的数组,通过push_back函数将元素40加入到向量末端,向量变为`[1, 3, 1, 4, 40]`。
+
+```move
+let mut v = vector[1, 3, 1, 4];
+let elem_ref = vector::borrow_mut(&mut v, 1);
+*elem_ref = 25;
+```
+
+上述代码声明一个四个元素的数组,通过borrow_mut函数获取到向量元素elem_ref,并将其修改为25,此时向量的结果为`[1, 25, 1, 4]`。
+
+```move
+let mut v = vector[1, 3, 1, 4];
+let elem_ref = vector::pop_back(&mut v);
+```
+上述代码声明一个四个元素的数组,通过pop_back函数移除末尾元素,此时向量的结果为`[1, 3, 1]`。
+
+```move
+let v = vector[];
+vector::destroy_empty(v);
+```
+上述代码声明空的向量,通过destroy_empty函数销毁此向量。
+应用场景可以在,当我们将一个向量元素清空后,进行向量对象的销毁。
+因为对于move而言,资源的管理是非常严格的,所有的资源都必须被显式地销毁或转移。
+该函数提供了一种机制来确保一个向量在销毁时确实是空的,这有助于防止资源泄漏。
+
+```move
+let mut v = vector[1, 3, 1, 4];
+vector::swap(&mut v, 1, 3);
+```
+上述代码声明一个四个元素的数组,通过swap函数交换下标为1和3的元素位置,此时向量的结果为`[1, 1, 3, 4]`。
+
+## 总结
+通过本节我们系统的学习到vector的实现,以及如何在日常开发中使用它的一些函数,希望可以帮助到你,在move开发中对vector有更深的认识和有效使用。
+
+💧 [HOH水分子公众号](https://mp.weixin.qq.com/s/d0brr-ao6cZ5t8Z5OO1Mog)
+
+🌊 [HOH水分子X账号](https://x.com/0xHOH)
+
+📹 [课程B站账号](https://space.bilibili.com/3493269495352098)
+
+💻 Github仓库 https://github.com/move-cn/letsmove
+
+
+
+
+
+
+
+
+
+
diff --git "a/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\270\211).md" "b/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\270\211).md"
new file mode 100644
index 000000000..77f4aaa24
--- /dev/null
+++ "b/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\270\211).md"
@@ -0,0 +1,18 @@
+# move入门之集合(二) : Vector数据衍生类型VecMap深度分析
+**🧑💻作者:gracecampo**
+## 概述
+## VecMap是什么?
+### 定义和语法
+## VecMap是如何实现的?
+### 异常码定义
+### 函数定义
+## VecMap应该如何使用?
+## 总结
+
+💧 [HOH水分子公众号](https://mp.weixin.qq.com/s/d0brr-ao6cZ5t8Z5OO1Mog)
+
+🌊 [HOH水分子X账号](https://x.com/0xHOH)
+
+📹 [课程B站账号](https://space.bilibili.com/3493269495352098)
+
+💻 Github仓库 https://github.com/move-cn/letsmove
diff --git "a/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\272\214).md" "b/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\272\214).md"
new file mode 100644
index 000000000..757f27962
--- /dev/null
+++ "b/mover/gracecampo/notes/\350\257\255\346\263\225\346\225\231\347\250\213/move\345\205\245\351\227\250\344\271\213\351\233\206\345\220\210(\344\272\214).md"
@@ -0,0 +1,200 @@
+# move入门之集合(二) : Vector数据衍生类型VecSet深度分析
+**🧑💻作者:gracecampo**
+## 概述
+`VecSet` 是 Move 语言中的一种vector数据类型衍生出的集合类型,可以看作是Vector数据类型变种。
+
+### 特点
+- **唯一性**:`VecSet` 不允许重复项,确保集合中的每个元素都是唯一的。
+- **操作复杂度**:所有操作的时间复杂度为 O(N)。
+- **插入顺序**:元素按照插入顺序存储,而不是排序存储。
+-
+## VecSet是什么?
+VecSet是元素不可重复的向量集合,VecSet的底层基于Vector进行实现。
+
+因为要确保唯一性,相应的VecSet的所有操作,相比Vector要低效。Vector操作时间复杂度为 O(1),而VecSet操作的时间复杂度为 O(N)
+VecSet 位于`module sui::vec_set`,属于sui官方开发的模块,用于vector无法满足的业务场景。
+```move
+// Copyright (c) Mysten Labs, Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+module sui::vec_set;
+```
+### 定义和语法
+
+VecSet在模块内的定义,继承了Vector特性,是元素可变的数据容器,索引从0开始,不同的是VecSet容器内元素唯一。
+
+例子:
+```move
+let set = vec_set::empty(); // 创建一个空集合
+let mut set = vec_set::singleton(1); // 创建一个包含单个元素的集合
+
+set.insert(2); // 添加2元素到集合
+set.insert(3); // 添加3元素到集合
+
+assert!(set.contains(&1), 0); // 检查集合中是否包含元素
+assert!(set.size() == 3, 1); // 获取集合中的元素数量
+assert!(!set.is_empty(), 2); // 检查集合是否为空
+
+set.remove(&2); // 从集合中移除元素
+```
+
+上面代码展示了如何初始化一个`VecSet`,并使用了insert,contains,size,remove函数进行操作展示。
+
+## VecSet是如何实现的?
+```move
+public struct VecSet has copy, drop, store {
+ contents: vector,
+}
+```
+上述是VecSet的代码定义:
+
+可以看到,VecSet接受泛型类型元素,但是限制了元素必须拥有copy + drop能力。
+
+`VecSet` 中的元素必须具备 `copy` 和 `drop` 能力,这是因为:
+
+1. **Copy 能力**:`copy` 能力允许元素被复制。这对于某些操作是必要的,例如在检查集合中是否存在某个元素时,可能需要复制该元素以进行比较。
+
+2. **Drop 能力**:`drop` 能力允许元素被安全地丢弃。这对于集合的内存管理和资源释放很重要。 当一个元素被从集合中移除时,`drop` 能力确保该元素可以被正确地处理和释放。
+
+这些能力确保了 `VecSet` 的元素在操作时能够被安全地复制和删除,符合 Move 语言的安全性和资源管理要求。
+
+了解move中能力介绍,可参考:[move入门之结构体的四大能力](https://learnblockchain.cn/article/9952)
+
+### 异常码定义
+```move
+/// This key already exists in the map
+const EKeyAlreadyExists: u64 = 0;
+
+/// This key does not exist in the map
+const EKeyDoesNotExist: u64 = 1;
+```
+我们可以看到,VecSet定义了两个常量,分别是:EKeyAlreadyExists用以当添加的元素已经存在时,进行异常提示;
+
+EKeyDoesNotExist用于当元素不存在时,进行异常提示(主要用于元素删除方法)
+
+```move
+fun get_idx(self: &VecSet, key: &K): u64 {
+ let idx_opt = get_idx_opt(self, key);
+ assert!(idx_opt.is_some(), EKeyDoesNotExist);
+ idx_opt.destroy_some()
+}
+```
+### 函数定义
+
+`VecSet` 提供了一些函数来操作集合中的元素。以下是一些常用的函数:
+
+1. **创建空集合**:
+ ```move
+ public fun empty(): vec_set::VecSet
+ ```
+ 创建一个空的 `VecSet`。
+
+2. **创建单元素集合**:
+ ```move
+ public fun singleton(key: K): vec_set::VecSet
+ ```
+ 创建一个只包含一个元素的 `VecSet`。
+
+3. **插入元素**:
+ ```move
+ public fun insert(self: &mut vec_set::VecSet, key: K)
+ ```
+ 将一个元素插入集合中。如果元素已存在,则操作会中止。
+
+4. **删除元素**:
+ ```move
+ public fun remove(self: &mut vec_set::VecSet, key: &K)
+ ```
+ 从集合中移除一个元素。如果元素不存在,则操作会中止。
+
+5. **检查包含**:
+ ```move
+ public fun contains(self: &vec_set::VecSet, key: &K): bool
+ ```
+ 检查集合中是否包含某个元素。
+
+6. **获取大小**:
+ ```move
+ public fun size(self: &vec_set::VecSet): u64
+ ```
+ 返回集合中元素的数量。
+
+7. **检查是否为空**:
+ ```move
+ public fun is_empty(self: &vec_set::VecSet): bool
+ ```
+ 检查集合是否为空。
+
+## VecSet应该如何使用?
+上面我们已经列出了`VecSet` 模块日常开发常用到的一些函数,接下来我们将一一实践,增加对`VecSet` 模块函数的理解和使用。
+
+注意: <>向量类型必须是`拥有copy + drop 的类型,否则代码将编译报错`,在接下来的演示中将不在说明。
+```move
+//初始化一个空向量
+let vec = vec_set::empty();
+```
+
+上述代码验证一个向量是否为空,我们声明了vec_set[]的空向量,使用empty<>()函数进行判断,向量是否为空。
+
+注意:当使用empty()函数时,必须指定数据类型,否则将编译错误。
+
+```move
+let _a =vec_set::singleton(0);//如不使用请忽略它,否则将编译报错
+```
+VecSet::singleton 函数用于创建一个只包含一个元素的 VecSet。
+
+这个函数接受一个参数 key,并返回一个包含该单个元素的 VecSet。
+
+需要注意的是,当我们使用vec_set::singleton()创建一个VecSet时,如果不使用请使用`_`,忽略这个资源,否则将编译报错。
+```move
+let mut set = vec_set::empty(); // 创建一个空的 VecSet
+set.insert(1); // 插入元素 1
+set.insert(2); // 插入元素 2
+```
+
+上述代码通过声明一个空的u8类型vec_set,通过insert()函数进行新增元素,因为我们声明了数据类型是u8,新增的元素必须也是u8类型。
+
+```move
+let mut set = vec_set::empty(); // 创建一个空的 VecSet
+set.insert(1); // 插入元素 1
+set.insert(2); // 插入元素 2
+set.remove(&2); // 移除元素 2
+```
+
+上述代码通过声明一个空的u8类型vec_set,通过insert()函数新增元素`1,2`,然后通过函数remove()进行删除。
+
+注意:因为vec_set是不重复的集合,它不向vector可以通过下标进行删除,因为它的key是唯一的,所以删除的话也是通过传入key进行删除。
+
+```move
+let mut set = vec_set::empty(); // 创建一个空的 VecSet
+set.insert(1); // 插入元素 1
+let _is_contains = set.contains(&1);
+```
+
+上述代码通过声明一个空的u8类型vec_set,通过insert()函数新增元素`1`,然后通过contains()函数,输入需要判断的元素,判定vec_set是否存在该元素。
+
+```move
+let mut set = vec_set::empty(); // 创建一个空的 VecSet
+set.insert(1); // 插入元素 1
+let _size = set.size(); //获取VecSet元素数量
+let _size = set.is_empty();//判断VecSet是否为空
+```
+上述代码通过声明一个空的u8类型vec_set,通过insert()函数新增元素`1`,
+
+然后通过size()函数,获取vec_set的元素数量;
+
+然后通过is_empty()函数,判断vec_set是否为空。
+
+## 总结
+Vector 和 VecSet 很相似,它们的函数操作,看起来大部分是相同,比如is_empty(),size(),不同点在于VecSet实际上是对Vector封装实现,
+增加了元素的唯一性,限制了元素必须拥有 copy,drop能力,这对于我们在日常开发中,带来了很大的便利。
+比如我们需要存入不能重复的数据,如果依靠Vector将带来极大的不安全性,使用VecSet这种结构数据,能使我们可以简便的操作数据,
+虽然牺牲了部分性能,但提升了代码安全性。
+
+💧 [HOH水分子公众号](https://mp.weixin.qq.com/s/d0brr-ao6cZ5t8Z5OO1Mog)
+
+🌊 [HOH水分子X账号](https://x.com/0xHOH)
+
+📹 [课程B站账号](https://space.bilibili.com/3493269495352098)
+
+💻 Github仓库 https://github.com/move-cn/letsmove
diff --git a/mover/gracecampo/readme.md b/mover/gracecampo/readme.md
index 6c55a900d..503d8308a 100644
--- a/mover/gracecampo/readme.md
+++ b/mover/gracecampo/readme.md
@@ -45,18 +45,18 @@
## 05 Move Swap
-- [] swap package id : 0x46fb85b6741a545440b0eed059f2152bb6b47dfd10f36509b2780ecc7b5ca346
-- [] call swap CoinA-> CoinB hash : 9nPXcW9VqTvD4LsHG9WMZ8HfmkAMPq7UPcVzsWzdHTSB
-- [] call swap CoinB-> CoinA hash : A5i884VwgzsatS15hC8rZDBbH8jHHrYMC7uYVvi7JYWY
+- [√] swap package id : 0x46fb85b6741a545440b0eed059f2152bb6b47dfd10f36509b2780ecc7b5ca346
+- [√] call swap CoinA-> CoinB hash : 9nPXcW9VqTvD4LsHG9WMZ8HfmkAMPq7UPcVzsWzdHTSB
+- [√] call swap CoinB-> CoinA hash : A5i884VwgzsatS15hC8rZDBbH8jHHrYMC7uYVvi7JYWY
## 06 Dapp-kit SDK PTB
-- [] save hash :
+- [√] save hash : 8ZUdehTybkXLm5GW3dXKnuPJRBTqHtHScsGXCwENTD9T
## 07 Move CTF Check In
-- [] CLI call 截图 : ![截图](./images/你的图片地址)
-- [] flag hash :
+- [] CLI call 截图 : ![截图](scan/CLI-call.png)
+ - [] flag hash : GusFVityk257Li1vDbbGYzz33xq3JXwzZrdPYUgSrDug
## 08 Move CTF Lets Move
diff --git a/mover/gracecampo/scan/CLI-call.png b/mover/gracecampo/scan/CLI-call.png
new file mode 100644
index 000000000..36858fd3e
Binary files /dev/null and b/mover/gracecampo/scan/CLI-call.png differ
diff --git "a/mover/huahuahua1223/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\345\255\246\344\271\240\350\256\260\345\275\225.png" "b/mover/huahuahua1223/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\345\255\246\344\271\240\350\256\260\345\275\225.png"
new file mode 100644
index 000000000..a01b5d6f1
Binary files /dev/null and "b/mover/huahuahua1223/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\345\255\246\344\271\240\350\256\260\345\275\225.png" differ
diff --git a/mover/huahuahua1223/co-learn-2411/readme.md b/mover/huahuahua1223/co-learn-2411/readme.md
index ae306ceca..9e18b7d1d 100644
--- a/mover/huahuahua1223/co-learn-2411/readme.md
+++ b/mover/huahuahua1223/co-learn-2411/readme.md
@@ -13,7 +13,7 @@
- [x] 第一周:![学习记录截图](./images/第一周学习记录.png)
- [x] 第二周:![学习记录截图](./images/第二周学习记录.png)
- [x] 第三周:![学习记录截图](./images/第三周学习记录.png)
-- [] 第四周:![学习记录截图](./images/你的图片地址)
+- [x] 第四周:![学习记录截图](./images/第四周学习记录.png)
## 参加直播答疑
@@ -40,8 +40,8 @@
- [x] 第一篇笔记【[学习笔记链接](https://blog.csdn.net/Huahua_1223/article/details/143750762)】
- [x] 第二篇笔记【[学习笔记链接](https://hua1223.blog.csdn.net/article/details/143866005)】
- [x] 第三篇笔记【[学习笔记链接](https://hua1223.blog.csdn.net/article/details/143895408)】
-- [x] 第四篇笔记【[学习笔记链接](https://hua1223.blog.csdn.net/article/details/144029667)】
-- [x] 第五篇笔记【[学习笔记链接](https://hua1223.blog.csdn.net/article/details/144032486)】
+- [x] 第四篇笔记【[学习笔记链接](https://hua1223.blog.csdn.net/article/details/144032486)】
+
## 在HOH社区公众号发布自己的技术文章
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/README.md b/mover/huahuahua1223/code/task6/my-first-sui-dapp/README.md
new file mode 100644
index 000000000..d0889dcae
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/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/huahuahua1223/code/task6/my-first-sui-dapp/index.html b/mover/huahuahua1223/code/task6/my-first-sui-dapp/index.html
new file mode 100644
index 000000000..bb7f75b16
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/index.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ Sui dApp Starter
+
+
+
+
+
+
+
+
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/package.json b/mover/huahuahua1223/code/task6/my-first-sui-dapp/package.json
new file mode 100644
index 000000000..c4e254424
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/package.json
@@ -0,0 +1,36 @@
+{
+ "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.39",
+ "@mysten/sui": "1.15.1",
+ "@radix-ui/colors": "^3.0.0",
+ "@radix-ui/react-icons": "^1.3.0",
+ "@radix-ui/themes": "^3.1.1",
+ "@tanstack/react-query": "^5.50.1",
+ "navi-sdk": "^1.4.4",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1"
+ },
+ "devDependencies": {
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "@typescript-eslint/eslint-plugin": "^7.16.0",
+ "@typescript-eslint/parser": "^7.16.0",
+ "@vitejs/plugin-react-swc": "^3.7.0",
+ "eslint": "^9.6.0",
+ "eslint-plugin-react-hooks": "^4.6.2",
+ "eslint-plugin-react-refresh": "^0.4.7",
+ "prettier": "^3.3.2",
+ "typescript": "^5.5.3",
+ "vite": "^5.3.3"
+ }
+}
\ No newline at end of file
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/pnpm-lock.yaml b/mover/huahuahua1223/code/task6/my-first-sui-dapp/pnpm-lock.yaml
new file mode 100644
index 000000000..96dc5e432
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/pnpm-lock.yaml
@@ -0,0 +1,4674 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@mysten/dapp-kit':
+ specifier: 0.14.39
+ version: 0.14.39(@tanstack/react-query@5.61.5(react@18.3.1))(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)
+ '@mysten/sui':
+ specifier: 1.15.1
+ version: 1.15.1(typescript@5.7.2)
+ '@radix-ui/colors':
+ specifier: ^3.0.0
+ version: 3.0.0
+ '@radix-ui/react-icons':
+ specifier: ^1.3.0
+ version: 1.3.2(react@18.3.1)
+ '@radix-ui/themes':
+ specifier: ^3.1.1
+ version: 3.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@tanstack/react-query':
+ specifier: ^5.50.1
+ version: 5.61.5(react@18.3.1)
+ navi-sdk:
+ specifier: ^1.4.4
+ version: 1.4.4(@types/node@22.10.1)(typescript@5.7.2)
+ react:
+ specifier: ^18.3.1
+ version: 18.3.1
+ react-dom:
+ specifier: ^18.3.1
+ version: 18.3.1(react@18.3.1)
+ devDependencies:
+ '@types/react':
+ specifier: ^18.3.3
+ version: 18.3.12
+ '@types/react-dom':
+ specifier: ^18.3.0
+ version: 18.3.1
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^7.16.0
+ version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0)(typescript@5.7.2)
+ '@typescript-eslint/parser':
+ specifier: ^7.16.0
+ version: 7.18.0(eslint@9.15.0)(typescript@5.7.2)
+ '@vitejs/plugin-react-swc':
+ specifier: ^3.7.0
+ version: 3.7.2(vite@5.4.11(@types/node@22.10.1))
+ eslint:
+ specifier: ^9.6.0
+ version: 9.15.0
+ eslint-plugin-react-hooks:
+ specifier: ^4.6.2
+ version: 4.6.2(eslint@9.15.0)
+ eslint-plugin-react-refresh:
+ specifier: ^0.4.7
+ version: 0.4.14(eslint@9.15.0)
+ prettier:
+ specifier: ^3.3.2
+ version: 3.4.1
+ typescript:
+ specifier: ^5.5.3
+ version: 5.7.2
+ vite:
+ specifier: ^5.3.3
+ version: 5.4.11(@types/node@22.10.1)
+
+packages:
+
+ '@0no-co/graphql.web@1.0.11':
+ resolution: {integrity: sha512-xuSJ9WXwTmtngWkbdEoopMo6F8NLtjy84UNAMsAr5C3/2SgAL/dEU10TMqTIsipqPQ8HA/7WzeqQ9DEQxSvPPA==}
+ peerDependencies:
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
+ peerDependenciesMeta:
+ graphql:
+ optional: true
+
+ '@0no-co/graphqlsp@1.12.16':
+ resolution: {integrity: sha512-B5pyYVH93Etv7xjT6IfB7QtMBdaaC07yjbhN6v8H7KgFStMkPvi+oWYBTibMFRMY89qwc9H8YixXg8SXDVgYWw==}
+ peerDependencies:
+ graphql: ^15.5.0 || ^16.0.0 || ^17.0.0
+ typescript: ^5.0.0
+
+ '@babel/runtime@7.26.0':
+ resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
+ engines: {node: '>=6.9.0'}
+
+ '@digitak/grubber@3.1.4':
+ resolution: {integrity: sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==}
+
+ '@emotion/hash@0.9.2':
+ resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
+
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
+ 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.21.5':
+ resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
+ 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.21.5':
+ resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
+ 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.21.5':
+ resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
+ 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.21.5':
+ resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
+ 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.21.5':
+ resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
+ 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.21.5':
+ resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
+ 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.21.5':
+ resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
+ 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.21.5':
+ resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
+ 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.21.5':
+ resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
+ 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.21.5':
+ resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
+ 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.21.5':
+ resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
+ 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.21.5':
+ resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
+ 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.21.5':
+ resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
+ 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.21.5':
+ resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
+ 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.21.5':
+ resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
+ 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.21.5':
+ resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
+ 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.21.5':
+ resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
+ 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.21.5':
+ resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
+ 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.21.5':
+ resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
+ 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.21.5':
+ resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
+ 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.21.5':
+ resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
+ 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.21.5':
+ resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.4.1':
+ resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
+ 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.12.1':
+ resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.19.0':
+ resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.9.0':
+ resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.2.0':
+ resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.15.0':
+ resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.4':
+ resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.2.3':
+ resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@floating-ui/core@1.6.8':
+ resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==}
+
+ '@floating-ui/dom@1.6.12':
+ resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
+
+ '@floating-ui/react-dom@2.1.2':
+ resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/utils@0.2.8':
+ resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
+
+ '@gql.tada/cli-utils@1.6.3':
+ resolution: {integrity: sha512-jFFSY8OxYeBxdKi58UzeMXG1tdm4FVjXa8WHIi66Gzu9JWtCE6mqom3a8xkmSw+mVaybFW5EN2WXf1WztJVNyQ==}
+ peerDependencies:
+ '@0no-co/graphqlsp': ^1.12.13
+ '@gql.tada/svelte-support': 1.0.1
+ '@gql.tada/vue-support': 1.0.1
+ graphql: ^15.5.0 || ^16.0.0 || ^17.0.0
+ typescript: ^5.0.0
+ peerDependenciesMeta:
+ '@gql.tada/svelte-support':
+ optional: true
+ '@gql.tada/vue-support':
+ optional: true
+
+ '@gql.tada/internal@1.0.8':
+ resolution: {integrity: sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g==}
+ 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
+
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.6':
+ resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.3.1':
+ resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+ engines: {node: '>=18.18'}
+
+ '@humanwhocodes/retry@0.4.1':
+ resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
+ engines: {node: '>=18.18'}
+
+ '@jest/schemas@29.6.3':
+ resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+
+ '@mysten/bcs@0.11.1':
+ resolution: {integrity: sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==}
+
+ '@mysten/bcs@1.1.1':
+ resolution: {integrity: sha512-8X3IwmVfkwgHnNHR4izpi7f7aD0iVDU2B8p2KoIzCA9sCGcl9O2RnFDezHbNGgT+yBT+dKVDpTAczhnwZ6eUkQ==}
+
+ '@mysten/dapp-kit@0.14.39':
+ resolution: {integrity: sha512-GcY68M6P+jvjALqy7U9onrCA25ETNlSlRpfsg5AnPpR0PBymnuVP9yYQMYk1aijFchYWNM4kALlazeLQiV2ldQ==}
+ peerDependencies:
+ '@tanstack/react-query': ^5.0.0
+ react: '*'
+
+ '@mysten/sui.js@0.54.1':
+ resolution: {integrity: sha512-TSmGIX7U9O/uS9EKIQdv7/S69KTbBhMJVelXCafJE6IJw8iB9cN9uLu0+uklkBSDrbRmLSEY70jMr3uRFjReIg==}
+ engines: {node: '>=16'}
+ deprecated: This package has been renamed to @mysten/sui, please update to use the renamed package.
+
+ '@mysten/sui@1.15.1':
+ resolution: {integrity: sha512-q8m+xtuh//rHEwEmk6pr7Dguw6/2ySNye2Oy1w6ivbkeRFgqoEE64+fYuMK+lX/SEPhOTEZtN7fp/Trno0KMnw==}
+ engines: {node: '>=18'}
+
+ '@mysten/wallet-standard@0.13.15':
+ resolution: {integrity: sha512-kTgwT6a5WolSnaz9r6/B5bvruuWUO8fmnHB9lgITkIraildVpK7NQIYHik2kd4OaAl118tmch0NPW/qoJFT35g==}
+
+ '@mysten/zksend@0.12.5':
+ resolution: {integrity: sha512-Ghl8CDGDg7fKEIifcRczJUSX/IJzpDHmozp6sTXFVwIiLZTRan9A/uJnDj6oeyBkoEvUxNd17wgm3UO66in/dw==}
+
+ '@noble/curves@1.7.0':
+ resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.6.0':
+ resolution: {integrity: sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.6.1':
+ resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==}
+ engines: {node: ^14.21.3 || >=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'}
+
+ '@pythnetwork/price-service-client@1.9.0':
+ resolution: {integrity: sha512-SLm3IFcfmy9iMqHeT4Ih6qMNZhJEefY14T9yTlpsH2D/FE5+BaGGnfcexUifVlfH6M7mwRC4hEFdNvZ6ebZjJg==}
+ deprecated: This package is deprecated and is no longer maintained. Please use @pythnetwork/hermes-client instead.
+
+ '@pythnetwork/price-service-sdk@1.7.1':
+ resolution: {integrity: sha512-xr2boVXTyv1KUt/c6llUTfbv2jpud99pWlMJbFaHGUBoygQsByuy7WbjIJKZ+0Blg1itLZl0Lp/pJGGg8SdJoQ==}
+
+ '@pythnetwork/pyth-sui-js@2.1.0':
+ resolution: {integrity: sha512-oSfpqtLATTEVaac/YbaRQBvOI7DM+Qds5O0GJjEcky7UQRtz/tlU9tjQ6VRn3vm8IXw8P1mKzJcaTIO134X9Sw==}
+
+ '@radix-ui/colors@3.0.0':
+ resolution: {integrity: sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==}
+
+ '@radix-ui/number@1.1.0':
+ resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==}
+
+ '@radix-ui/primitive@1.1.0':
+ resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
+
+ '@radix-ui/react-accessible-icon@1.1.0':
+ 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
+
+ '@radix-ui/react-alert-dialog@1.1.2':
+ resolution: {integrity: sha512-eGSlLzPhKO+TErxkiGcCZGuvbVMnLA1MTnyBksGOeGRGkxHiiJUujsjmNTdWTm4iHVSRaUao9/4Ur671auMghQ==}
+ 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
+
+ '@radix-ui/react-arrow@1.1.0':
+ 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
+
+ '@radix-ui/react-aspect-ratio@1.1.0':
+ 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
+
+ '@radix-ui/react-avatar@1.1.1':
+ resolution: {integrity: sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==}
+ 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
+
+ '@radix-ui/react-checkbox@1.1.2':
+ resolution: {integrity: sha512-/i0fl686zaJbDQLNKrkCbMyDm6FQMt4jg323k7HuqitoANm9sE23Ql8yOK3Wusk34HSLKDChhMux05FnP6KUkw==}
+ 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
+
+ '@radix-ui/react-collection@1.1.0':
+ 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
+
+ '@radix-ui/react-compose-refs@1.1.0':
+ 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
+
+ '@radix-ui/react-context-menu@2.2.2':
+ resolution: {integrity: sha512-99EatSTpW+hRYHt7m8wdDlLtkmTovEe8Z/hnxUPV+SKuuNL5HWNhQI4QSdjZqNSgXHay2z4M3Dym73j9p2Gx5Q==}
+ 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
+
+ '@radix-ui/react-context@1.1.0':
+ 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
+
+ '@radix-ui/react-context@1.1.1':
+ resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dialog@1.1.2':
+ resolution: {integrity: sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==}
+ 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
+
+ '@radix-ui/react-direction@1.1.0':
+ 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
+
+ '@radix-ui/react-dismissable-layer@1.1.1':
+ resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==}
+ 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
+
+ '@radix-ui/react-dropdown-menu@2.1.2':
+ resolution: {integrity: sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==}
+ 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
+
+ '@radix-ui/react-focus-guards@1.1.1':
+ resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.0':
+ 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
+
+ '@radix-ui/react-hover-card@1.1.2':
+ resolution: {integrity: sha512-Y5w0qGhysvmqsIy6nQxaPa6mXNKznfoGjOfBgzOjocLxr2XlSjqBMYQQL+FfyogsMuX+m8cZyQGYhJxvxUzO4w==}
+ 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
+
+ '@radix-ui/react-icons@1.3.2':
+ resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==}
+ peerDependencies:
+ react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc
+
+ '@radix-ui/react-id@1.1.0':
+ 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
+
+ '@radix-ui/react-menu@2.1.2':
+ resolution: {integrity: sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==}
+ 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
+
+ '@radix-ui/react-navigation-menu@1.2.1':
+ resolution: {integrity: sha512-egDo0yJD2IK8L17gC82vptkvW1jLeni1VuqCyzY727dSJdk5cDjINomouLoNk8RVF7g2aNIfENKWL4UzeU9c8Q==}
+ 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
+
+ '@radix-ui/react-popover@1.1.2':
+ resolution: {integrity: sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==}
+ 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
+
+ '@radix-ui/react-popper@1.2.0':
+ 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
+
+ '@radix-ui/react-portal@1.1.2':
+ resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==}
+ 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
+
+ '@radix-ui/react-presence@1.1.1':
+ resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==}
+ 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
+
+ '@radix-ui/react-primitive@2.0.0':
+ 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
+
+ '@radix-ui/react-progress@1.1.0':
+ resolution: {integrity: sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==}
+ 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
+
+ '@radix-ui/react-radio-group@1.2.1':
+ resolution: {integrity: sha512-kdbv54g4vfRjja9DNWPMxKvXblzqbpEC8kspEkZ6dVP7kQksGCn+iZHkcCz2nb00+lPdRvxrqy4WrvvV1cNqrQ==}
+ 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
+
+ '@radix-ui/react-roving-focus@1.1.0':
+ 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
+
+ '@radix-ui/react-scroll-area@1.2.1':
+ resolution: {integrity: sha512-FnM1fHfCtEZ1JkyfH/1oMiTcFBQvHKl4vD9WnpwkLgtF+UmnXMCad6ECPTaAjcDjam+ndOEJWgHyKDGNteWSHw==}
+ 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
+
+ '@radix-ui/react-select@2.1.2':
+ resolution: {integrity: sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==}
+ 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
+
+ '@radix-ui/react-slider@1.2.1':
+ resolution: {integrity: sha512-bEzQoDW0XP+h/oGbutF5VMWJPAl/UU8IJjr7h02SOHDIIIxq+cep8nItVNoBV+OMmahCdqdF38FTpmXoqQUGvw==}
+ 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
+
+ '@radix-ui/react-slot@1.1.0':
+ 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
+
+ '@radix-ui/react-switch@1.1.1':
+ resolution: {integrity: sha512-diPqDDoBcZPSicYoMWdWx+bCPuTRH4QSp9J+65IvtdS0Kuzt67bI6n32vCj8q6NZmYW/ah+2orOtMwcX5eQwIg==}
+ 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
+
+ '@radix-ui/react-tabs@1.1.1':
+ resolution: {integrity: sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==}
+ 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
+
+ '@radix-ui/react-toggle-group@1.1.0':
+ resolution: {integrity: sha512-PpTJV68dZU2oqqgq75Uzto5o/XfOVgkrJ9rulVmfTKxWp3HfUjHE6CP/WLRR4AzPX9HWxw7vFow2me85Yu+Naw==}
+ 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
+
+ '@radix-ui/react-toggle@1.1.0':
+ resolution: {integrity: sha512-gwoxaKZ0oJ4vIgzsfESBuSgJNdc0rv12VhHgcqN0TEJmmZixXG/2XpsLK8kzNWYcnaoRIEEQc0bEi3dIvdUpjw==}
+ 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
+
+ '@radix-ui/react-tooltip@1.1.4':
+ resolution: {integrity: sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==}
+ 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
+
+ '@radix-ui/react-use-callback-ref@1.1.0':
+ 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
+
+ '@radix-ui/react-use-controllable-state@1.1.0':
+ 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
+
+ '@radix-ui/react-use-escape-keydown@1.1.0':
+ 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
+
+ '@radix-ui/react-use-layout-effect@1.1.0':
+ 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
+
+ '@radix-ui/react-use-previous@1.1.0':
+ 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
+
+ '@radix-ui/react-use-rect@1.1.0':
+ 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
+
+ '@radix-ui/react-use-size@1.1.0':
+ 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
+
+ '@radix-ui/react-visually-hidden@1.1.0':
+ 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
+
+ '@radix-ui/rect@1.1.0':
+ resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
+
+ '@radix-ui/themes@3.1.6':
+ resolution: {integrity: sha512-4uaUK0E+3ZRURohKNqnzG8LciTJcpppuBbYxkp7miLyPiaXBwKTrEttdQpExsp/fP6J+ss+JHy5FJhU5lboQkg==}
+ 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
+
+ '@rollup/rollup-android-arm-eabi@4.27.4':
+ resolution: {integrity: sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.27.4':
+ resolution: {integrity: sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.27.4':
+ resolution: {integrity: sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.27.4':
+ resolution: {integrity: sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.27.4':
+ resolution: {integrity: sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.27.4':
+ resolution: {integrity: sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.27.4':
+ resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.27.4':
+ resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-arm64-gnu@4.27.4':
+ resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm64-musl@4.27.4':
+ resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.27.4':
+ resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.27.4':
+ resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-s390x-gnu@4.27.4':
+ resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-gnu@4.27.4':
+ resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-musl@4.27.4':
+ resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-win32-arm64-msvc@4.27.4':
+ resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.27.4':
+ resolution: {integrity: sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.27.4':
+ resolution: {integrity: sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==}
+ cpu: [x64]
+ os: [win32]
+
+ '@scure/base@1.2.1':
+ resolution: {integrity: sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==}
+
+ '@scure/bip32@1.6.0':
+ resolution: {integrity: sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA==}
+
+ '@scure/bip39@1.5.0':
+ resolution: {integrity: sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A==}
+
+ '@sinclair/typebox@0.27.8':
+ resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
+
+ '@suchipi/femver@1.0.0':
+ resolution: {integrity: sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==}
+
+ '@swc/core-darwin-arm64@1.9.3':
+ resolution: {integrity: sha512-hGfl/KTic/QY4tB9DkTbNuxy5cV4IeejpPD4zo+Lzt4iLlDWIeANL4Fkg67FiVceNJboqg48CUX+APhDHO5G1w==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@swc/core-darwin-x64@1.9.3':
+ resolution: {integrity: sha512-IaRq05ZLdtgF5h9CzlcgaNHyg4VXuiStnOFpfNEMuI5fm5afP2S0FHq8WdakUz5WppsbddTdplL+vpeApt/WCQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@swc/core-linux-arm-gnueabihf@1.9.3':
+ resolution: {integrity: sha512-Pbwe7xYprj/nEnZrNBvZfjnTxlBIcfApAGdz2EROhjpPj+FBqBa3wOogqbsuGGBdCphf8S+KPprL1z+oDWkmSQ==}
+ engines: {node: '>=10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@swc/core-linux-arm64-gnu@1.9.3':
+ resolution: {integrity: sha512-AQ5JZiwNGVV/2K2TVulg0mw/3LYfqpjZO6jDPtR2evNbk9Yt57YsVzS+3vHSlUBQDRV9/jqMuZYVU3P13xrk+g==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@swc/core-linux-arm64-musl@1.9.3':
+ resolution: {integrity: sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@swc/core-linux-x64-gnu@1.9.3':
+ resolution: {integrity: sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@swc/core-linux-x64-musl@1.9.3':
+ resolution: {integrity: sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@swc/core-win32-arm64-msvc@1.9.3':
+ resolution: {integrity: sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@swc/core-win32-ia32-msvc@1.9.3':
+ resolution: {integrity: sha512-rqpzNfpAooSL4UfQnHhkW8aL+oyjqJniDP0qwZfGnjDoJSbtPysHg2LpcOBEdSnEH+uIZq6J96qf0ZFD8AGfXA==}
+ engines: {node: '>=10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@swc/core-win32-x64-msvc@1.9.3':
+ resolution: {integrity: sha512-3YJJLQ5suIEHEKc1GHtqVq475guiyqisKSoUnoaRtxkDaW5g1yvPt9IoSLOe2mRs7+FFhGGU693RsBUSwOXSdQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@swc/core@1.9.3':
+ resolution: {integrity: sha512-oRj0AFePUhtatX+BscVhnzaAmWjpfAeySpM1TCbxA1rtBDeH/JDhi5yYzAKneDYtVtBvA7ApfeuzhMC9ye4xSg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@swc/helpers': '*'
+ peerDependenciesMeta:
+ '@swc/helpers':
+ optional: true
+
+ '@swc/counter@0.1.3':
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+
+ '@swc/types@0.1.17':
+ resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==}
+
+ '@tanstack/query-core@5.61.5':
+ resolution: {integrity: sha512-iG5vqurEOEbv+paP6kW3zPENa99kSIrd1THISJMaTwVlJ+N5yjVDNOUwp9McK2DWqWCXM3v13ubBbAyhxT78UQ==}
+
+ '@tanstack/react-query@5.61.5':
+ resolution: {integrity: sha512-rjy8aqPgBBEz/rjJnpnuhi8TVkVTorMUsJlM3lMvrRb5wK6yzfk34Er0fnJ7w/4qyF01SnXsLB/QsTBsLF5PaQ==}
+ peerDependencies:
+ react: ^18 || ^19
+
+ '@types/estree@1.0.6':
+ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/node@22.10.1':
+ resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==}
+
+ '@types/prop-types@15.7.13':
+ resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
+
+ '@types/react-dom@18.3.1':
+ resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==}
+
+ '@types/react@18.3.12':
+ resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
+
+ '@types/ws@8.5.13':
+ resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==}
+
+ '@typescript-eslint/eslint-plugin@7.18.0':
+ resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==}
+ 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.18.0':
+ resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/scope-manager@7.18.0':
+ resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+
+ '@typescript-eslint/type-utils@7.18.0':
+ resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/types@7.18.0':
+ resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+
+ '@typescript-eslint/typescript-estree@7.18.0':
+ resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/utils@7.18.0':
+ resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+
+ '@typescript-eslint/visitor-keys@7.18.0':
+ resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+
+ '@vanilla-extract/css@1.16.1':
+ resolution: {integrity: sha512-3jKxH5ty/ZjmGoLAx8liY7e87FRCIJfnuufX/K9fQklu0YHP3ClrNisU++LkZuD+GZleqMSAQMF0r8Otln+OPQ==}
+
+ '@vanilla-extract/dynamic@2.1.2':
+ resolution: {integrity: sha512-9BGMciD8rO1hdSPIAh1ntsG4LPD3IYKhywR7VOmmz9OO4Lx1hlwkSg3E6X07ujFx7YuBfx0GDQnApG9ESHvB2A==}
+
+ '@vanilla-extract/private@1.0.6':
+ resolution: {integrity: sha512-ytsG/JLweEjw7DBuZ/0JCN4WAQgM9erfSTdS1NQY778hFQSZ6cfCDEZZ0sgVm4k54uNz6ImKB33AYvSR//fjxw==}
+
+ '@vanilla-extract/recipes@0.5.5':
+ resolution: {integrity: sha512-VadU7+IFUwLNLMgks29AHav/K5h7DOEfTU91RItn5vwdPfzduodNg317YbgWCcpm7FSXkuR3B3X8ZOi95UOozA==}
+ peerDependencies:
+ '@vanilla-extract/css': ^1.0.0
+
+ '@vitejs/plugin-react-swc@3.7.2':
+ resolution: {integrity: sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==}
+ peerDependencies:
+ vite: ^4 || ^5 || ^6
+
+ '@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==}
+
+ '@wallet-standard/app@1.1.0':
+ resolution: {integrity: sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ==}
+ engines: {node: '>=16'}
+
+ '@wallet-standard/base@1.1.0':
+ resolution: {integrity: sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ==}
+ engines: {node: '>=16'}
+
+ '@wallet-standard/core@1.0.3':
+ resolution: {integrity: sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==}
+ engines: {node: '>=16'}
+
+ '@wallet-standard/features@1.1.0':
+ resolution: {integrity: sha512-hiEivWNztx73s+7iLxsuD1sOJ28xtRix58W7Xnz4XzzA/pF0+aicnWgjOdA10doVDEDZdUuZCIIqG96SFNlDUg==}
+ engines: {node: '>=16'}
+
+ '@wallet-standard/wallet@1.1.0':
+ resolution: {integrity: sha512-Gt8TnSlDZpAl+RWOOAB/kuvC7RpcdWAlFbHNoi4gsXsfaWa1QCT6LBcfIYTPdOZC9OVZUDwqGuGAcqZejDmHjg==}
+ 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.4:
+ resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
+ engines: {node: '>=0.4.0'}
+
+ acorn@8.14.0:
+ resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ 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'}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ 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'}
+
+ 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==}
+
+ axios-retry@3.9.1:
+ resolution: {integrity: sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==}
+
+ axios@1.7.8:
+ resolution: {integrity: sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base-x@4.0.0:
+ resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==}
+
+ base-x@5.0.0:
+ resolution: {integrity: sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ bech32@2.0.0:
+ resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bn.js@5.2.1:
+ resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
+
+ 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'}
+
+ bs58@5.0.0:
+ resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==}
+
+ bs58@6.0.0:
+ resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==}
+
+ buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+
+ cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ chai@4.5.0:
+ resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==}
+ engines: {node: '>=4'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ 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'}
+
+ classnames@2.5.1:
+ resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ 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'}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ 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==}
+
+ debug@4.3.7:
+ resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ 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.4:
+ resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==}
+ 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'}
+
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
+ 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'}
+
+ esbuild@0.17.19:
+ resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ esbuild@0.21.5:
+ resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ 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.14:
+ resolution: {integrity: sha512-aXvzCTK7ZBv1e7fahFuR3Z/fyQQSIQ711yPgYRj+Oj64tyTgO4iQIDmYXDBqvSWQ/FA4OSCsXOStlF+noU0/NA==}
+ peerDependencies:
+ eslint: '>=7'
+
+ eslint-scope@8.2.0:
+ resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.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.2.0:
+ resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.15.0:
+ resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.3.0:
+ resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ esquery@1.6.0:
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+ 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@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@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.2:
+ resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
+
+ follow-redirects@1.15.9:
+ resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ form-data@4.0.1:
+ resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
+ engines: {node: '>= 6'}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ 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'}
+
+ 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'}
+
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+
+ gql.tada@1.8.10:
+ resolution: {integrity: sha512-FrvSxgz838FYVPgZHGOSgbpOjhR+yq44rCzww3oOPJYi0OvBJjAgCiP6LEokZIYND2fUTXzQAyLgcvgw1yNP5A==}
+ hasBin: true
+ peerDependencies:
+ typescript: ^5.0.0
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ graphql@16.9.0:
+ resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==}
+ engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ human-signals@5.0.0:
+ resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+ engines: {node: '>=16.17.0'}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ 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'}
+
+ invariant@2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-retry-allowed@2.2.0:
+ resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==}
+ engines: {node: '>=10'}
+
+ 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==}
+
+ isomorphic-ws@4.0.1:
+ resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==}
+ peerDependencies:
+ ws: '*'
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ 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
+
+ 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'}
+
+ local-pkg@0.5.1:
+ resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==}
+ engines: {node: '>=14'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ 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==}
+
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+
+ magic-string@0.30.14:
+ resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==}
+
+ 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'}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ 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'}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ mitt@3.0.1:
+ resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
+
+ mlly@1.7.3:
+ resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==}
+
+ modern-ahocorasick@1.1.0:
+ resolution: {integrity: sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ nanoid@3.3.8:
+ resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ nanostores@0.10.3:
+ resolution: {integrity: sha512-Nii8O1XqmawqSCf9o2aWqVxhKRN01+iue9/VEd1TiJCr9VT5XxgPFbF1Edl1XN6pwJcZRsl8Ki+z01yb/T/C2g==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ navi-sdk@1.4.4:
+ resolution: {integrity: sha512-ixam9+OTc6lE8NbM3isL+9vFpYSgZOo5OBDZlUimWZvmdLMmvqyEg/hy+nWHLLyCbwo5rPx9iPIJrLrt6DdjOQ==}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ 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}
+
+ 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@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-limit@5.0.0:
+ resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
+ engines: {node: '>=18'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ 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-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==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ pkg-types@1.2.1:
+ resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==}
+
+ postcss@8.4.49:
+ resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier@3.4.1:
+ resolution: {integrity: sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ 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@18.3.1:
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
+ peerDependencies:
+ react: ^18.3.1
+
+ react-is@18.3.1:
+ resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+
+ 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.6.0:
+ resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==}
+ 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@18.3.1:
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
+ engines: {node: '>=0.10.0'}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rollup@4.27.4:
+ resolution: {integrity: sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==}
+ 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.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+
+ semver@7.6.3:
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+ 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'}
+
+ slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ stackback@0.0.2:
+ resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
+
+ std-env@3.8.0:
+ resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
+
+ 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-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ strip-literal@2.1.1:
+ resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==}
+
+ superstruct@1.0.4:
+ resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==}
+ engines: {node: '>=14.0.0'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ tinybench@2.9.0:
+ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
+
+ 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-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ ts-api-utils@1.4.3:
+ resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ typescript: '>=4.2.0'
+
+ ts-log@2.2.7:
+ resolution: {integrity: sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==}
+
+ tsconfig-paths@4.2.0:
+ resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
+ engines: {node: '>=6'}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ 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.1.0:
+ resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==}
+ engines: {node: '>=4'}
+
+ typescript@5.7.2:
+ resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ ufo@1.5.4:
+ resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
+
+ undici-types@6.20.0:
+ resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
+
+ 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.2:
+ resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+
+ valibot@0.36.0:
+ resolution: {integrity: sha512-CjF1XN4sUce8sBK9TixrDqFM7RwNkuXdJu174/AwmQUB62QbCQADg5lLe8ldBalFgtj1uKj+pKwDJiNo4Mn+eQ==}
+
+ 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.4.11:
+ resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==}
+ 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: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ 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
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ why-is-node-running@2.3.0:
+ resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ ws@8.18.0:
+ resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ yocto-queue@1.1.1:
+ resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==}
+ engines: {node: '>=12.20'}
+
+ zustand@4.5.5:
+ resolution: {integrity: sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==}
+ 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.11(graphql@16.9.0)':
+ optionalDependencies:
+ graphql: 16.9.0
+
+ '@0no-co/graphqlsp@1.12.16(graphql@16.9.0)(typescript@5.7.2)':
+ dependencies:
+ '@gql.tada/internal': 1.0.8(graphql@16.9.0)(typescript@5.7.2)
+ graphql: 16.9.0
+ typescript: 5.7.2
+
+ '@babel/runtime@7.26.0':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
+ '@digitak/grubber@3.1.4': {}
+
+ '@emotion/hash@0.9.2': {}
+
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.17.19':
+ optional: true
+
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.17.19':
+ optional: true
+
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.17.19':
+ optional: true
+
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.17.19':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.17.19':
+ optional: true
+
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.17.19':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.17.19':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.17.19':
+ optional: true
+
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.17.19':
+ optional: true
+
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.17.19':
+ optional: true
+
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.17.19':
+ optional: true
+
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.17.19':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.17.19':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.17.19':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.17.19':
+ optional: true
+
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.17.19':
+ optional: true
+
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.17.19':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.17.19':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.17.19':
+ optional: true
+
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.17.19':
+ optional: true
+
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.17.19':
+ optional: true
+
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-x64@0.17.19':
+ optional: true
+
+ '@esbuild/win32-x64@0.21.5':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0)':
+ dependencies:
+ eslint: 9.15.0
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/config-array@0.19.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.4
+ debug: 4.3.7
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/core@0.9.0': {}
+
+ '@eslint/eslintrc@3.2.0':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.7
+ espree: 10.3.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ 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@9.15.0': {}
+
+ '@eslint/object-schema@2.1.4': {}
+
+ '@eslint/plugin-kit@0.2.3':
+ dependencies:
+ levn: 0.4.1
+
+ '@floating-ui/core@1.6.8':
+ dependencies:
+ '@floating-ui/utils': 0.2.8
+
+ '@floating-ui/dom@1.6.12':
+ dependencies:
+ '@floating-ui/core': 1.6.8
+ '@floating-ui/utils': 0.2.8
+
+ '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/dom': 1.6.12
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@floating-ui/utils@0.2.8': {}
+
+ '@gql.tada/cli-utils@1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.9.0)(typescript@5.7.2))(graphql@16.9.0)(typescript@5.7.2)':
+ dependencies:
+ '@0no-co/graphqlsp': 1.12.16(graphql@16.9.0)(typescript@5.7.2)
+ '@gql.tada/internal': 1.0.8(graphql@16.9.0)(typescript@5.7.2)
+ graphql: 16.9.0
+ typescript: 5.7.2
+
+ '@gql.tada/internal@1.0.8(graphql@16.9.0)(typescript@5.7.2)':
+ dependencies:
+ '@0no-co/graphql.web': 1.0.11(graphql@16.9.0)
+ graphql: 16.9.0
+ typescript: 5.7.2
+
+ '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)':
+ dependencies:
+ graphql: 16.9.0
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.6':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.3.1
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.3.1': {}
+
+ '@humanwhocodes/retry@0.4.1': {}
+
+ '@jest/schemas@29.6.3':
+ dependencies:
+ '@sinclair/typebox': 0.27.8
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@mysten/bcs@0.11.1':
+ dependencies:
+ bs58: 5.0.0
+
+ '@mysten/bcs@1.1.1':
+ dependencies:
+ bs58: 6.0.0
+
+ '@mysten/dapp-kit@0.14.39(@tanstack/react-query@5.61.5(react@18.3.1))(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)':
+ dependencies:
+ '@mysten/sui': 1.15.1(typescript@5.7.2)
+ '@mysten/wallet-standard': 0.13.15(typescript@5.7.2)
+ '@mysten/zksend': 0.12.5(typescript@5.7.2)
+ '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-dropdown-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@tanstack/react-query': 5.61.5(react@18.3.1)
+ '@vanilla-extract/css': 1.16.1
+ '@vanilla-extract/dynamic': 2.1.2
+ '@vanilla-extract/recipes': 0.5.5(@vanilla-extract/css@1.16.1)
+ clsx: 2.1.1
+ react: 18.3.1
+ zustand: 4.5.5(@types/react@18.3.12)(react@18.3.1)
+ transitivePeerDependencies:
+ - '@gql.tada/svelte-support'
+ - '@gql.tada/vue-support'
+ - '@types/react'
+ - '@types/react-dom'
+ - babel-plugin-macros
+ - immer
+ - react-dom
+ - typescript
+
+ '@mysten/sui.js@0.54.1(typescript@5.7.2)':
+ dependencies:
+ '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0)
+ '@mysten/bcs': 0.11.1
+ '@noble/curves': 1.7.0
+ '@noble/hashes': 1.6.1
+ '@scure/bip32': 1.6.0
+ '@scure/bip39': 1.5.0
+ '@suchipi/femver': 1.0.0
+ bech32: 2.0.0
+ gql.tada: 1.8.10(graphql@16.9.0)(typescript@5.7.2)
+ graphql: 16.9.0
+ superstruct: 1.0.4
+ tweetnacl: 1.0.3
+ transitivePeerDependencies:
+ - '@gql.tada/svelte-support'
+ - '@gql.tada/vue-support'
+ - typescript
+
+ '@mysten/sui@1.15.1(typescript@5.7.2)':
+ dependencies:
+ '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0)
+ '@mysten/bcs': 1.1.1
+ '@noble/curves': 1.7.0
+ '@noble/hashes': 1.6.1
+ '@scure/bip32': 1.6.0
+ '@scure/bip39': 1.5.0
+ '@suchipi/femver': 1.0.0
+ bech32: 2.0.0
+ gql.tada: 1.8.10(graphql@16.9.0)(typescript@5.7.2)
+ graphql: 16.9.0
+ tweetnacl: 1.0.3
+ valibot: 0.36.0
+ transitivePeerDependencies:
+ - '@gql.tada/svelte-support'
+ - '@gql.tada/vue-support'
+ - typescript
+
+ '@mysten/wallet-standard@0.13.15(typescript@5.7.2)':
+ dependencies:
+ '@mysten/sui': 1.15.1(typescript@5.7.2)
+ '@wallet-standard/core': 1.0.3
+ transitivePeerDependencies:
+ - '@gql.tada/svelte-support'
+ - '@gql.tada/vue-support'
+ - typescript
+
+ '@mysten/zksend@0.12.5(typescript@5.7.2)':
+ dependencies:
+ '@mysten/sui': 1.15.1(typescript@5.7.2)
+ '@mysten/wallet-standard': 0.13.15(typescript@5.7.2)
+ mitt: 3.0.1
+ nanostores: 0.10.3
+ valibot: 0.36.0
+ transitivePeerDependencies:
+ - '@gql.tada/svelte-support'
+ - '@gql.tada/vue-support'
+ - typescript
+
+ '@noble/curves@1.7.0':
+ dependencies:
+ '@noble/hashes': 1.6.0
+
+ '@noble/hashes@1.6.0': {}
+
+ '@noble/hashes@1.6.1': {}
+
+ '@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
+
+ '@pythnetwork/price-service-client@1.9.0':
+ dependencies:
+ '@pythnetwork/price-service-sdk': 1.7.1
+ '@types/ws': 8.5.13
+ axios: 1.7.8
+ axios-retry: 3.9.1
+ isomorphic-ws: 4.0.1(ws@8.18.0)
+ ts-log: 2.2.7
+ ws: 8.18.0
+ transitivePeerDependencies:
+ - bufferutil
+ - debug
+ - utf-8-validate
+
+ '@pythnetwork/price-service-sdk@1.7.1':
+ dependencies:
+ bn.js: 5.2.1
+
+ '@pythnetwork/pyth-sui-js@2.1.0(typescript@5.7.2)':
+ dependencies:
+ '@mysten/sui': 1.15.1(typescript@5.7.2)
+ '@pythnetwork/price-service-client': 1.9.0
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - '@gql.tada/svelte-support'
+ - '@gql.tada/vue-support'
+ - bufferutil
+ - debug
+ - typescript
+ - utf-8-validate
+
+ '@radix-ui/colors@3.0.0': {}
+
+ '@radix-ui/number@1.1.0': {}
+
+ '@radix-ui/primitive@1.1.0': {}
+
+ '@radix-ui/react-accessible-icon@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-alert-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-aspect-ratio@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-avatar@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-checkbox@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-context-menu@2.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-context@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-context@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-direction@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-hover-card@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-icons@1.3.2(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@radix-ui/react-id@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-navigation-menu@1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-popover@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-progress@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-radio-group@1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-scroll-area@1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ 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.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ 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.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-slider@1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ 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.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-slot@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-switch@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-tabs@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-toggle-group@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-toggle': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-toggle@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-tooltip@1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-size@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/rect@1.1.0': {}
+
+ '@radix-ui/themes@3.1.6(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ 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.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-alert-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-aspect-ratio': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-avatar': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-checkbox': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context-menu': 2.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dropdown-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-hover-card': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-navigation-menu': 1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-popover': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-progress': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-radio-group': 1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-scroll-area': 1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-select': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slider': 1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-switch': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-tabs': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-toggle-group': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-tooltip': 1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll-bar: 2.3.6(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@rollup/rollup-android-arm-eabi@4.27.4':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.27.4':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.27.4':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.27.4':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.27.4':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.27.4':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.27.4':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.27.4':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.27.4':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.27.4':
+ optional: true
+
+ '@scure/base@1.2.1': {}
+
+ '@scure/bip32@1.6.0':
+ dependencies:
+ '@noble/curves': 1.7.0
+ '@noble/hashes': 1.6.1
+ '@scure/base': 1.2.1
+
+ '@scure/bip39@1.5.0':
+ dependencies:
+ '@noble/hashes': 1.6.1
+ '@scure/base': 1.2.1
+
+ '@sinclair/typebox@0.27.8': {}
+
+ '@suchipi/femver@1.0.0': {}
+
+ '@swc/core-darwin-arm64@1.9.3':
+ optional: true
+
+ '@swc/core-darwin-x64@1.9.3':
+ optional: true
+
+ '@swc/core-linux-arm-gnueabihf@1.9.3':
+ optional: true
+
+ '@swc/core-linux-arm64-gnu@1.9.3':
+ optional: true
+
+ '@swc/core-linux-arm64-musl@1.9.3':
+ optional: true
+
+ '@swc/core-linux-x64-gnu@1.9.3':
+ optional: true
+
+ '@swc/core-linux-x64-musl@1.9.3':
+ optional: true
+
+ '@swc/core-win32-arm64-msvc@1.9.3':
+ optional: true
+
+ '@swc/core-win32-ia32-msvc@1.9.3':
+ optional: true
+
+ '@swc/core-win32-x64-msvc@1.9.3':
+ optional: true
+
+ '@swc/core@1.9.3':
+ dependencies:
+ '@swc/counter': 0.1.3
+ '@swc/types': 0.1.17
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.9.3
+ '@swc/core-darwin-x64': 1.9.3
+ '@swc/core-linux-arm-gnueabihf': 1.9.3
+ '@swc/core-linux-arm64-gnu': 1.9.3
+ '@swc/core-linux-arm64-musl': 1.9.3
+ '@swc/core-linux-x64-gnu': 1.9.3
+ '@swc/core-linux-x64-musl': 1.9.3
+ '@swc/core-win32-arm64-msvc': 1.9.3
+ '@swc/core-win32-ia32-msvc': 1.9.3
+ '@swc/core-win32-x64-msvc': 1.9.3
+
+ '@swc/counter@0.1.3': {}
+
+ '@swc/types@0.1.17':
+ dependencies:
+ '@swc/counter': 0.1.3
+
+ '@tanstack/query-core@5.61.5': {}
+
+ '@tanstack/react-query@5.61.5(react@18.3.1)':
+ dependencies:
+ '@tanstack/query-core': 5.61.5
+ react: 18.3.1
+
+ '@types/estree@1.0.6': {}
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/node@22.10.1':
+ dependencies:
+ undici-types: 6.20.0
+
+ '@types/prop-types@15.7.13': {}
+
+ '@types/react-dom@18.3.1':
+ dependencies:
+ '@types/react': 18.3.12
+
+ '@types/react@18.3.12':
+ dependencies:
+ '@types/prop-types': 15.7.13
+ csstype: 3.1.3
+
+ '@types/ws@8.5.13':
+ dependencies:
+ '@types/node': 22.10.1
+
+ '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0)(typescript@5.7.2)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ '@typescript-eslint/parser': 7.18.0(eslint@9.15.0)(typescript@5.7.2)
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/type-utils': 7.18.0(eslint@9.15.0)(typescript@5.7.2)
+ '@typescript-eslint/utils': 7.18.0(eslint@9.15.0)(typescript@5.7.2)
+ '@typescript-eslint/visitor-keys': 7.18.0
+ eslint: 9.15.0
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ natural-compare: 1.4.0
+ ts-api-utils: 1.4.3(typescript@5.7.2)
+ optionalDependencies:
+ typescript: 5.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@7.18.0(eslint@9.15.0)(typescript@5.7.2)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2)
+ '@typescript-eslint/visitor-keys': 7.18.0
+ debug: 4.3.7
+ eslint: 9.15.0
+ optionalDependencies:
+ typescript: 5.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@7.18.0':
+ dependencies:
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/visitor-keys': 7.18.0
+
+ '@typescript-eslint/type-utils@7.18.0(eslint@9.15.0)(typescript@5.7.2)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2)
+ '@typescript-eslint/utils': 7.18.0(eslint@9.15.0)(typescript@5.7.2)
+ debug: 4.3.7
+ eslint: 9.15.0
+ ts-api-utils: 1.4.3(typescript@5.7.2)
+ optionalDependencies:
+ typescript: 5.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@7.18.0': {}
+
+ '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)':
+ dependencies:
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/visitor-keys': 7.18.0
+ debug: 4.3.7
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.6.3
+ ts-api-utils: 1.4.3(typescript@5.7.2)
+ optionalDependencies:
+ typescript: 5.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@7.18.0(eslint@9.15.0)(typescript@5.7.2)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0)
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2)
+ eslint: 9.15.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/visitor-keys@7.18.0':
+ dependencies:
+ '@typescript-eslint/types': 7.18.0
+ eslint-visitor-keys: 3.4.3
+
+ '@vanilla-extract/css@1.16.1':
+ dependencies:
+ '@emotion/hash': 0.9.2
+ '@vanilla-extract/private': 1.0.6
+ 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
+ lru-cache: 10.4.3
+ media-query-parser: 2.0.2
+ modern-ahocorasick: 1.1.0
+ picocolors: 1.1.1
+ transitivePeerDependencies:
+ - babel-plugin-macros
+
+ '@vanilla-extract/dynamic@2.1.2':
+ dependencies:
+ '@vanilla-extract/private': 1.0.6
+
+ '@vanilla-extract/private@1.0.6': {}
+
+ '@vanilla-extract/recipes@0.5.5(@vanilla-extract/css@1.16.1)':
+ dependencies:
+ '@vanilla-extract/css': 1.16.1
+
+ '@vitejs/plugin-react-swc@3.7.2(vite@5.4.11(@types/node@22.10.1))':
+ dependencies:
+ '@swc/core': 1.9.3
+ vite: 5.4.11(@types/node@22.10.1)
+ transitivePeerDependencies:
+ - '@swc/helpers'
+
+ '@vitest/expect@1.6.0':
+ dependencies:
+ '@vitest/spy': 1.6.0
+ '@vitest/utils': 1.6.0
+ chai: 4.5.0
+
+ '@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.14
+ 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
+
+ '@wallet-standard/app@1.1.0':
+ dependencies:
+ '@wallet-standard/base': 1.1.0
+
+ '@wallet-standard/base@1.1.0': {}
+
+ '@wallet-standard/core@1.0.3':
+ dependencies:
+ '@wallet-standard/app': 1.1.0
+ '@wallet-standard/base': 1.1.0
+ '@wallet-standard/features': 1.1.0
+ '@wallet-standard/wallet': 1.1.0
+
+ '@wallet-standard/features@1.1.0':
+ dependencies:
+ '@wallet-standard/base': 1.1.0
+
+ '@wallet-standard/wallet@1.1.0':
+ dependencies:
+ '@wallet-standard/base': 1.1.0
+
+ acorn-jsx@5.3.2(acorn@8.14.0):
+ dependencies:
+ acorn: 8.14.0
+
+ acorn-walk@8.3.4:
+ dependencies:
+ acorn: 8.14.0
+
+ acorn@8.14.0: {}
+
+ 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-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@5.2.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ argparse@2.0.1: {}
+
+ aria-hidden@1.2.4:
+ dependencies:
+ tslib: 2.8.1
+
+ array-union@2.1.0: {}
+
+ assertion-error@1.1.0: {}
+
+ asynckit@0.4.0: {}
+
+ axios-retry@3.9.1:
+ dependencies:
+ '@babel/runtime': 7.26.0
+ is-retry-allowed: 2.2.0
+
+ axios@1.7.8:
+ dependencies:
+ follow-redirects: 1.15.9
+ form-data: 4.0.1
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
+ balanced-match@1.0.2: {}
+
+ base-x@4.0.0: {}
+
+ base-x@5.0.0: {}
+
+ base64-js@1.5.1: {}
+
+ bech32@2.0.0: {}
+
+ binary-extensions@2.3.0: {}
+
+ bn.js@5.2.1: {}
+
+ 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
+
+ bs58@5.0.0:
+ dependencies:
+ base-x: 4.0.0
+
+ bs58@6.0.0:
+ dependencies:
+ base-x: 5.0.0
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ cac@6.7.14: {}
+
+ callsites@3.1.0: {}
+
+ chai@4.5.0:
+ dependencies:
+ assertion-error: 1.1.0
+ check-error: 1.0.3
+ deep-eql: 4.1.4
+ get-func-name: 2.0.2
+ loupe: 2.3.7
+ pathval: 1.1.1
+ type-detect: 4.1.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ 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
+
+ classnames@2.5.1: {}
+
+ clsx@2.1.1: {}
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ concat-map@0.0.1: {}
+
+ confbox@0.1.8: {}
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ css-what@6.1.0: {}
+
+ cssesc@3.0.0: {}
+
+ csstype@3.1.3: {}
+
+ debug@4.3.7:
+ dependencies:
+ ms: 2.1.3
+
+ dedent@1.5.3: {}
+
+ deep-eql@4.1.4:
+ dependencies:
+ type-detect: 4.1.0
+
+ deep-is@0.1.4: {}
+
+ deep-object-diff@1.1.9: {}
+
+ deepmerge@4.3.1: {}
+
+ delayed-stream@1.0.0: {}
+
+ detect-node-es@1.1.0: {}
+
+ diff-sequences@29.6.3: {}
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ 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.21.5:
+ 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
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-plugin-react-hooks@4.6.2(eslint@9.15.0):
+ dependencies:
+ eslint: 9.15.0
+
+ eslint-plugin-react-refresh@0.4.14(eslint@9.15.0):
+ dependencies:
+ eslint: 9.15.0
+
+ eslint-scope@8.2.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.0: {}
+
+ eslint@9.15.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0)
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/config-array': 0.19.0
+ '@eslint/core': 0.9.0
+ '@eslint/eslintrc': 3.2.0
+ '@eslint/js': 9.15.0
+ '@eslint/plugin-kit': 0.2.3
+ '@humanfs/node': 0.16.6
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.1
+ '@types/estree': 1.0.6
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.3.7
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.2.0
+ eslint-visitor-keys: 4.2.0
+ espree: 10.3.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.3.0:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ eslint-visitor-keys: 4.2.0
+
+ esquery@1.6.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@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.6
+
+ esutils@2.0.3: {}
+
+ execa@8.0.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ 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.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fastq@1.17.1:
+ dependencies:
+ reusify: 1.0.4
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.2
+ keyv: 4.5.4
+
+ flatted@3.3.2: {}
+
+ follow-redirects@1.15.9: {}
+
+ form-data@4.0.1:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ fsevents@2.3.3:
+ optional: true
+
+ get-func-name@2.0.2: {}
+
+ get-nonce@1.0.1: {}
+
+ get-stream@8.0.1: {}
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ globals@14.0.0: {}
+
+ globby@11.1.0:
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.2
+ ignore: 5.3.2
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ gql.tada@1.8.10(graphql@16.9.0)(typescript@5.7.2):
+ dependencies:
+ '@0no-co/graphql.web': 1.0.11(graphql@16.9.0)
+ '@0no-co/graphqlsp': 1.12.16(graphql@16.9.0)(typescript@5.7.2)
+ '@gql.tada/cli-utils': 1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.9.0)(typescript@5.7.2))(graphql@16.9.0)(typescript@5.7.2)
+ '@gql.tada/internal': 1.0.8(graphql@16.9.0)(typescript@5.7.2)
+ typescript: 5.7.2
+ transitivePeerDependencies:
+ - '@gql.tada/svelte-support'
+ - '@gql.tada/vue-support'
+ - graphql
+
+ graphemer@1.4.0: {}
+
+ graphql@16.9.0: {}
+
+ has-flag@4.0.0: {}
+
+ human-signals@5.0.0: {}
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ import-fresh@3.3.0:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ invariant@2.2.4:
+ dependencies:
+ loose-envify: 1.4.0
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-extglob@2.1.1: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-number@7.0.0: {}
+
+ is-retry-allowed@2.2.0: {}
+
+ is-stream@3.0.0: {}
+
+ isexe@2.0.0: {}
+
+ isomorphic-ws@4.0.1(ws@8.18.0):
+ dependencies:
+ ws: 8.18.0
+
+ js-tokens@4.0.0: {}
+
+ js-tokens@9.0.1: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ json-buffer@3.0.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@2.2.3: {}
+
+ 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
+
+ local-pkg@0.5.1:
+ dependencies:
+ mlly: 1.7.3
+ pkg-types: 1.2.1
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.merge@4.6.2: {}
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ loupe@2.3.7:
+ dependencies:
+ get-func-name: 2.0.2
+
+ lru-cache@10.4.3: {}
+
+ magic-string@0.30.14:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ media-query-parser@2.0.2:
+ dependencies:
+ '@babel/runtime': 7.26.0
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ micromatch@4.0.8:
+ 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: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimist@1.2.8: {}
+
+ mitt@3.0.1: {}
+
+ mlly@1.7.3:
+ dependencies:
+ acorn: 8.14.0
+ pathe: 1.1.2
+ pkg-types: 1.2.1
+ ufo: 1.5.4
+
+ modern-ahocorasick@1.1.0: {}
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.8: {}
+
+ nanostores@0.10.3: {}
+
+ natural-compare@1.4.0: {}
+
+ navi-sdk@1.4.4(@types/node@22.10.1)(typescript@5.7.2):
+ dependencies:
+ '@mysten/sui': 1.15.1(typescript@5.7.2)
+ '@mysten/sui.js': 0.54.1(typescript@5.7.2)
+ '@pythnetwork/pyth-sui-js': 2.1.0(typescript@5.7.2)
+ axios: 1.7.8
+ esrun: 3.2.26
+ tsconfig-paths: 4.2.0
+ vitest: 1.6.0(@types/node@22.10.1)
+ transitivePeerDependencies:
+ - '@edge-runtime/vm'
+ - '@gql.tada/svelte-support'
+ - '@gql.tada/vue-support'
+ - '@types/node'
+ - '@vitest/browser'
+ - '@vitest/ui'
+ - bufferutil
+ - debug
+ - happy-dom
+ - jsdom
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - typescript
+ - utf-8-validate
+
+ normalize-path@3.0.0: {}
+
+ npm-run-path@5.3.0:
+ dependencies:
+ path-key: 4.0.0
+
+ 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@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-limit@5.0.0:
+ dependencies:
+ yocto-queue: 1.1.1
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ path-exists@4.0.0: {}
+
+ path-key@3.1.1: {}
+
+ path-key@4.0.0: {}
+
+ path-type@4.0.0: {}
+
+ pathe@1.1.2: {}
+
+ pathval@1.1.1: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ pkg-types@1.2.1:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.7.3
+ pathe: 1.1.2
+
+ postcss@8.4.49:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ prettier@3.4.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@18.3.1(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.23.2
+
+ react-is@18.3.1: {}
+
+ react-remove-scroll-bar@2.3.6(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1)
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react-remove-scroll@2.6.0(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.6(@types/react@18.3.12)(react@18.3.1)
+ react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.2(@types/react@18.3.12)(react@18.3.1)
+ use-sidecar: 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react-style-singleton@2.2.1(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ invariant: 2.2.4
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react@18.3.1:
+ dependencies:
+ loose-envify: 1.4.0
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ regenerator-runtime@0.14.1: {}
+
+ resolve-from@4.0.0: {}
+
+ reusify@1.0.4: {}
+
+ rollup@4.27.4:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.27.4
+ '@rollup/rollup-android-arm64': 4.27.4
+ '@rollup/rollup-darwin-arm64': 4.27.4
+ '@rollup/rollup-darwin-x64': 4.27.4
+ '@rollup/rollup-freebsd-arm64': 4.27.4
+ '@rollup/rollup-freebsd-x64': 4.27.4
+ '@rollup/rollup-linux-arm-gnueabihf': 4.27.4
+ '@rollup/rollup-linux-arm-musleabihf': 4.27.4
+ '@rollup/rollup-linux-arm64-gnu': 4.27.4
+ '@rollup/rollup-linux-arm64-musl': 4.27.4
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.27.4
+ '@rollup/rollup-linux-riscv64-gnu': 4.27.4
+ '@rollup/rollup-linux-s390x-gnu': 4.27.4
+ '@rollup/rollup-linux-x64-gnu': 4.27.4
+ '@rollup/rollup-linux-x64-musl': 4.27.4
+ '@rollup/rollup-win32-arm64-msvc': 4.27.4
+ '@rollup/rollup-win32-ia32-msvc': 4.27.4
+ '@rollup/rollup-win32-x64-msvc': 4.27.4
+ fsevents: 2.3.3
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ scheduler@0.23.2:
+ dependencies:
+ loose-envify: 1.4.0
+
+ semver@7.6.3: {}
+
+ 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: {}
+
+ slash@3.0.0: {}
+
+ source-map-js@1.2.1: {}
+
+ stackback@0.0.2: {}
+
+ std-env@3.8.0: {}
+
+ strip-bom@3.0.0: {}
+
+ strip-final-newline@3.0.0: {}
+
+ strip-json-comments@3.1.1: {}
+
+ strip-literal@2.1.1:
+ dependencies:
+ js-tokens: 9.0.1
+
+ superstruct@1.0.4: {}
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ tinybench@2.9.0: {}
+
+ tinypool@0.8.4: {}
+
+ tinyspy@2.2.1: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ ts-api-utils@1.4.3(typescript@5.7.2):
+ dependencies:
+ typescript: 5.7.2
+
+ ts-log@2.2.7: {}
+
+ tsconfig-paths@4.2.0:
+ dependencies:
+ json5: 2.2.3
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+
+ tslib@2.8.1: {}
+
+ tweetnacl@1.0.3: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-detect@4.1.0: {}
+
+ typescript@5.7.2: {}
+
+ ufo@1.5.4: {}
+
+ undici-types@6.20.0: {}
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ use-callback-ref@1.3.2(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-sidecar@1.1.2(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-sync-external-store@1.2.2(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ valibot@0.36.0: {}
+
+ vite-node@1.6.0(@types/node@22.10.1):
+ dependencies:
+ cac: 6.7.14
+ debug: 4.3.7
+ pathe: 1.1.2
+ picocolors: 1.1.1
+ vite: 5.4.11(@types/node@22.10.1)
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+
+ vite@5.4.11(@types/node@22.10.1):
+ dependencies:
+ esbuild: 0.21.5
+ postcss: 8.4.49
+ rollup: 4.27.4
+ optionalDependencies:
+ '@types/node': 22.10.1
+ fsevents: 2.3.3
+
+ vitest@1.6.0(@types/node@22.10.1):
+ 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.4
+ chai: 4.5.0
+ debug: 4.3.7
+ execa: 8.0.1
+ local-pkg: 0.5.1
+ magic-string: 0.30.14
+ pathe: 1.1.2
+ picocolors: 1.1.1
+ std-env: 3.8.0
+ strip-literal: 2.1.1
+ tinybench: 2.9.0
+ tinypool: 0.8.4
+ vite: 5.4.11(@types/node@22.10.1)
+ vite-node: 1.6.0(@types/node@22.10.1)
+ why-is-node-running: 2.3.0
+ optionalDependencies:
+ '@types/node': 22.10.1
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ why-is-node-running@2.3.0:
+ dependencies:
+ siginfo: 2.0.0
+ stackback: 0.0.2
+
+ word-wrap@1.2.5: {}
+
+ ws@8.18.0: {}
+
+ yocto-queue@0.1.0: {}
+
+ yocto-queue@1.1.1: {}
+
+ zustand@4.5.5(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ use-sync-external-store: 1.2.2(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ react: 18.3.1
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/prettier.config.cjs b/mover/huahuahua1223/code/task6/my-first-sui-dapp/prettier.config.cjs
new file mode 100644
index 000000000..c07541106
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/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/huahuahua1223/code/task6/my-first-sui-dapp/src/App.tsx b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/App.tsx
new file mode 100644
index 000000000..3fda20e26
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/App.tsx
@@ -0,0 +1,41 @@
+import { ConnectButton } from "@mysten/dapp-kit";
+import { Box, Container, Flex, Heading } from "@radix-ui/themes";
+// import { WalletStatus } from "./WalletStatus";
+import { Navi } from "./navi.tsx";
+
+function App() {
+ return (
+ <>
+
+
+ dApp Starter Template
+
+
+
+
+
+
+
+
+ {/* */}
+
+
+
+ >
+ );
+}
+
+export default App;
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/OwnedObjects.tsx b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/OwnedObjects.tsx
new file mode 100644
index 000000000..fa759db0a
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/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/huahuahua1223/code/task6/my-first-sui-dapp/src/WalletStatus.tsx b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/WalletStatus.tsx
new file mode 100644
index 000000000..21e734677
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/WalletStatus.tsx
@@ -0,0 +1,23 @@
+import { useCurrentAccount } from "@mysten/dapp-kit";
+import { Container, Flex, Heading, Text } from "@radix-ui/themes";
+import { OwnedObjects } from "./OwnedObjects";
+
+export function WalletStatus() {
+ const account = useCurrentAccount();
+
+ return (
+
+ Wallet Status
+
+ {account ? (
+
+ Wallet connected
+ Address: {account.address}
+
+ ) : (
+ Wallet not connected
+ )}
+
+
+ );
+}
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/main.tsx b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/main.tsx
new file mode 100644
index 000000000..db3a81acc
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/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/huahuahua1223/code/task6/my-first-sui-dapp/src/navi.tsx b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/navi.tsx
new file mode 100644
index 000000000..41ad1139e
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/navi.tsx
@@ -0,0 +1,112 @@
+import { Button, Container, Flex, Text, Box, Heading } from "@radix-ui/themes"; // 导入 Radix UI 组件
+import { useCurrentAccount, useSignAndExecuteTransaction } from "@mysten/dapp-kit"; // 导入 Mysten DApp Kit 钩子
+import { Transaction } from "@mysten/sui/transactions"; // 导入 Sui 交易类
+import { Pool, PoolConfig } from "navi-sdk/dist/types"; // 导入 Navi SDK 中的池和池配置类型
+import { pool, Sui, wUSDC } from "navi-sdk/dist/address"; // 导入 Navi SDK 中的池地址和代币信息
+import { borrowCoin, depositCoin } from "navi-sdk/dist/libs/PTB"; // 导入 Navi SDK 中的借币和存币函数
+import { useState } from "react";
+
+// 1.[Deposit 1 SUI into Navi Protocol]
+// 2.[Borrow USDC of the current date 0.[month][day][hour]]
+// 3.[Then deposit an equivalent amount of USDC]
+export function Navi() {
+ // 当前连接的钱包账户
+ const account = useCurrentAccount();
+
+ // 获取用于签名和执行交易的函数
+ const { mutate: signAndExecuteTransaction } = useSignAndExecuteTransaction();
+
+ // 用于存储交易摘要和消息的状态
+ const [digest, setDigest] = useState(""); // 存储交易摘要
+ const [message, setMessage] = useState(""); // 存储错误或成功消息
+
+ // 处理存款和借款的异步函数
+ const deposit_borrow_Sui = async () => {
+ if (!account) {
+ setMessage("Please connect your wallet first"); // 如果没有连接钱包,提示用户
+ return;
+ }
+
+ try {
+ const date = new Date(); // 获取当前日期
+ const month = date.getMonth() + 1; // 获取月份
+ const day = date.getDate(); // 获取日期
+ const hour = date.getHours(); // 获取小时
+
+ // 计算借款金额
+ const borrow_amount =
+ parseFloat(
+ `0.${month.toString().padStart(2, "0")}${day.toString().padStart(2, "0")}${hour.toString().padStart(2, "0")}`,
+ ) *
+ 10 ** wUSDC.decimal;
+ console.log(borrow_amount);
+
+ const tx = new Transaction(); // 创建新的交易对象
+ tx.setSender(account.address); // 设置交易发送者
+
+ // 确保池配置有效
+ const suiPool: PoolConfig = pool[Sui.symbol as keyof Pool];
+ const wusdcPool: PoolConfig = pool[wUSDC.symbol as keyof Pool];
+
+ if (!suiPool || !wusdcPool) {
+ throw new Error("Invalid pool configuration"); // 如果池配置无效,抛出错误
+ }
+
+ // 存款 SUI
+ const [suiCoin] = tx.splitCoins(tx.gas, [1_000_000_000]); // 分割 SUI 代币
+ if (!suiCoin) throw new Error("Failed to split SUI coins"); // 如果分割失败,抛出错误
+
+ await depositCoin(tx, suiPool, suiCoin, 1_000_000_000); // 存款 SUI
+
+ // 借款和存款 USDC
+ const [toBorrowCoin] = await borrowCoin(tx, wusdcPool, borrow_amount); // 借款 USDC
+ if (!toBorrowCoin) throw new Error("Failed to borrow USDC"); // 如果借款失败,抛出错误
+
+ await depositCoin(tx, wusdcPool, toBorrowCoin, borrow_amount); // 存款 USDC
+
+ // 清除之前的消息
+ setMessage("");
+ setDigest("");
+
+ // 签名并执行交易
+ signAndExecuteTransaction(
+ { transaction: tx, chain: "sui:testnet" },
+ {
+ onSuccess: (result) => {
+ console.log("Transaction successful:", result); // 成功时打印结果
+ setDigest(result.digest); // 设置交易摘要
+ },
+ onError: (error) => {
+ console.error("Transaction failed:", error); // 失败时打印错误
+ setMessage(error.message || "Transaction failed"); // 设置错误消息
+ },
+ },
+ );
+ } catch (error) {
+ console.error("Error in deposit_borrow_Sui:", error); // 捕获并打印错误
+ setMessage(error instanceof Error ? error.message : "An unknown error occurred"); // 设置错误消息
+ }
+ };
+
+ return (
+
+
+ Navi Protocol Task
+
+ 此任务将向 Navi 协议存入 1 个 SUI,根据当前日期借入 USDC,然后存入等值的 USDC。
+
+
+
+ {digest && (
+ Transaction submitted: {digest} // 显示交易摘要
+ )}
+ {message && (
+ Error: {message} // 显示错误消息
+ )}
+
+
+
+ );
+}
+
+export default Navi; // 导出组件
\ No newline at end of file
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/networkConfig.ts b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/networkConfig.ts
new file mode 100644
index 000000000..96de92158
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/networkConfig.ts
@@ -0,0 +1,17 @@
+import { getFullnodeUrl } from "@mysten/sui/client";
+import { createNetworkConfig } from "@mysten/dapp-kit";
+
+const { networkConfig, useNetworkVariable, useNetworkVariables } =
+ createNetworkConfig({
+ devnet: {
+ url: getFullnodeUrl("devnet"),
+ },
+ testnet: {
+ url: getFullnodeUrl("testnet"),
+ },
+ mainnet: {
+ url: getFullnodeUrl("mainnet"),
+ },
+ });
+
+export { useNetworkVariable, useNetworkVariables, networkConfig };
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/vite-env.d.ts b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/vite-env.d.ts
new file mode 100644
index 000000000..11f02fe2a
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/my-first-sui-dapp/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/mover/huahuahua1223/code/task6/my-first-sui-dapp/tsconfig.json b/mover/huahuahua1223/code/task6/my-first-sui-dapp/tsconfig.json
new file mode 100644
index 000000000..a7fc6fbf2
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/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/huahuahua1223/code/task6/my-first-sui-dapp/tsconfig.node.json b/mover/huahuahua1223/code/task6/my-first-sui-dapp/tsconfig.node.json
new file mode 100644
index 000000000..42872c59f
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/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/huahuahua1223/code/task6/my-first-sui-dapp/vite.config.ts b/mover/huahuahua1223/code/task6/my-first-sui-dapp/vite.config.ts
new file mode 100644
index 000000000..d366e8c8d
--- /dev/null
+++ b/mover/huahuahua1223/code/task6/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/huahuahua1223/notes/readme.md b/mover/huahuahua1223/notes/readme.md
index 844b6b83b..52e739d4b 100644
--- a/mover/huahuahua1223/notes/readme.md
+++ b/mover/huahuahua1223/notes/readme.md
@@ -167,4 +167,24 @@ sui client call --package 0x2 --module coin --function mint_and_transfer --type-
```
# task6
-0.112616
\ No newline at end of file
+## 初始化项目
+1. 用dapp-kit脚手架创建项目
+npm create @mysten/dapp
+选择 `react-client-dapp`
+
+2. 下载依赖
+cd client_dapp
+pnpm i --save navi-sdk
+pnpm i
+
+修改`main.tsx`中的网络配置为`mainnet`
+
+## 部署合约
+在move包下启动命令行
+sui move build
+sui client publish --skip-dependency-verification
+复制得到的packageid到`src/constants.ts`里面
+
+## 运行项目
+在项目根目录下运行
+pnpm dev
diff --git a/mover/huahuahua1223/readme.md b/mover/huahuahua1223/readme.md
index 71fce4f4d..9347d0ef0 100644
--- a/mover/huahuahua1223/readme.md
+++ b/mover/huahuahua1223/readme.md
@@ -43,7 +43,7 @@
- [x] call swap CoinB-> CoinA hash : `5SVJqWQEnSvjDW7QmTPyT1oj1G1qBjv2rrfnv197o2CK`
## 06 Dapp-kit SDK PTB
-- [] save hash :
+- [x] save hash : `DFQdL24Ln5FPDK838EE4PSCXyuAw65w3mzzAJvwArGh5`
## 07 Move CTF Check In
- [] CLI call 截图 : ![截图](./images/你的图片地址)
diff --git a/mover/huzhengen/code/task3/display_nft/Move.lock b/mover/huzhengen/code/task3/display_nft/Move.lock
new file mode 100644
index 000000000..94daddb01
--- /dev/null
+++ b/mover/huzhengen/code/task3/display_nft/Move.lock
@@ -0,0 +1,40 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 3
+manifest_digest = "9C6BB38E4B353CE5BBCD6B378CED360DE2BE8AFA09C22723E93EAF321EDB2FFD"
+deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
+dependencies = [
+ { id = "Sui", name = "Sui" },
+]
+
+[[move.package]]
+id = "MoveStdlib"
+source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" }
+
+[[move.package]]
+id = "Sui"
+source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" }
+
+dependencies = [
+ { id = "MoveStdlib", name = "MoveStdlib" },
+]
+
+[move.toolchain-version]
+compiler-version = "1.37.3"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.testnet]
+chain-id = "4c78adac"
+original-published-id = "0xf6a53a51fd195b9edc80356cc3d9011d010bf5ea0ddc95755a8aa9e10805abdb"
+latest-published-id = "0xf6a53a51fd195b9edc80356cc3d9011d010bf5ea0ddc95755a8aa9e10805abdb"
+published-version = "1"
+
+[env.mainnet]
+chain-id = "35834a8a"
+original-published-id = "0xe73a2c3f093cc3aa9c984fcfc714b08d5f4cc682fc683efecbd345fb4eaf27c9"
+latest-published-id = "0xe73a2c3f093cc3aa9c984fcfc714b08d5f4cc682fc683efecbd345fb4eaf27c9"
+published-version = "1"
diff --git a/mover/huzhengen/code/task3/display_nft/Move.toml b/mover/huzhengen/code/task3/display_nft/Move.toml
new file mode 100644
index 000000000..e4f6bcd54
--- /dev/null
+++ b/mover/huzhengen/code/task3/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/mover/huzhengen/code/task3/display_nft/sources/display_nft.move b/mover/huzhengen/code/task3/display_nft/sources/display_nft.move
new file mode 100644
index 000000000..482852a0c
--- /dev/null
+++ b/mover/huzhengen/code/task3/display_nft/sources/display_nft.move
@@ -0,0 +1,63 @@
+module display_nft::display_nft;
+use std::string;
+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));
+
+
+ let nft = MyNFT {
+ id: object::new(ctx),
+ name: string::utf8(b"allen nft"),
+ image_url: string::utf8(
+ b"https://avatars.githubusercontent.com/u/10569262"
+ ),
+ };
+ transfer::public_transfer(nft, 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/mover/huzhengen/code/task3/readme.md b/mover/huzhengen/code/task3/readme.md
new file mode 100644
index 000000000..337e39d97
--- /dev/null
+++ b/mover/huzhengen/code/task3/readme.md
@@ -0,0 +1,20 @@
+```
+mainnet
+5MSwM5qefa6r1esmmK2ZZXhmLGa6cbg1GyAv71x5rQ7M
+https://suiscan.xyz/mainnet/tx/5MSwM5qefa6r1esmmK2ZZXhmLGa6cbg1GyAv71x5rQ7M
+contract: https://suiscan.xyz/mainnet/object/0xe73a2c3f093cc3aa9c984fcfc714b08d5f4cc682fc683efecbd345fb4eaf27c9/contracts
+create an nft: https://suiscan.xyz/mainnet/object/0x43e2aaba16240a66f9ec31d7c459185f88bd76626a536d02017ec8f0c09e60e1/txs
+```
+
+```
+测试网
+
+Az5FR3ckhkoPNv6gLRrujqGss8zg4uCM1qFsJ3yrLGwL
+
+https://testnet.suivision.xyz/object/0xb4c158231698afc50fcd0f36f4af2577f1c4284776da8e18acaa7860b278463cf
+
+
+create an nft: https://suiscan.xyz/testnet/object/0x0aacc3a31672b3429e33706d1493d7d094229278aeeb6436d994879a429f6915/txs
+
+https://testnet.suivision.xyz/object/0x0aacc3a31672b3429e33706d1493d7d094229278aeeb6436d994879a429f6915
+```
\ No newline at end of file
diff --git a/mover/huzhengen/images/nft.png b/mover/huzhengen/images/nft.png
new file mode 100644
index 000000000..0b9a02548
Binary files /dev/null and b/mover/huzhengen/images/nft.png differ
diff --git a/mover/huzhengen/notes/readme.md b/mover/huzhengen/notes/readme.md
index bf3bd07a4..093eaae43 100644
--- a/mover/huzhengen/notes/readme.md
+++ b/mover/huzhengen/notes/readme.md
@@ -1,8 +1,16 @@
命令
```
+sui client build
sui client publish
+sui client publish --skip-dependency-verification
sui client faucet
sui client addresses
sui client gas
+sui client envs
+sui client new-env --alias=mainnet --rpc https://fullnode.mainnet.sui.io:443
+sui client switch --env mainnet
+sui client new-address ed25519
+sui client active-address
+sui client switch --address ADDRESS
```
\ No newline at end of file
diff --git a/mover/huzhengen/readme.md b/mover/huzhengen/readme.md
index ad6890ebd..3dbda8165 100644
--- a/mover/huzhengen/readme.md
+++ b/mover/huzhengen/readme.md
@@ -26,10 +26,10 @@
- [] `Faucet Coin` address2 mint hash:
## 03 move NFT
-- [] nft package id :
-- [] nft object id :
-- [] 转账 nft hash:
-- [] scan上的NFT截图:![Scan截图](./images/你的图片地址)
+- [x] nft package id : 0xe73a2c3f093cc3aa9c984fcfc714b08d5f4cc682fc683efecbd345fb4eaf27c9
+- [x] nft object id : 0x877f9e619b274de1084f5008fd2898a0f8ad61b93bbe40155291af59e0c244f2
+- [x] 转账 nft hash: Dci1G4jS7TiobzdRH3tNicdFgkZG9Mt8SSZNKdxDoD8H
+- [x] scan上的NFT截图:![Scan截图](./images/nft.png)
## 04 Move Game
- [] game package id :
diff --git a/mover/jethrozz/co-learn-2411/images/lesson03.png b/mover/jethrozz/co-learn-2411/images/lesson03.png
new file mode 100644
index 000000000..5ea040442
Binary files /dev/null and b/mover/jethrozz/co-learn-2411/images/lesson03.png differ
diff --git a/mover/jethrozz/co-learn-2411/readme.md b/mover/jethrozz/co-learn-2411/readme.md
index 8dcd43642..ac4dc7b11 100644
--- a/mover/jethrozz/co-learn-2411/readme.md
+++ b/mover/jethrozz/co-learn-2411/readme.md
@@ -13,7 +13,7 @@
- [✔] 第一周:![学习记录截图](./images/lesson01finish.png)
- [✔] 第二周:![学习记录截图](./images/lesson02finish.png)
-- [✔] 第三周:![学习记录截图](./images/你的图片地址)
+- [✔] 第三周:![学习记录截图](./images/lesson03.png)
- [] 第四周:![学习记录截图](./images/你的图片地址)
## 参加直播答疑
diff --git a/mover/jethrozz/code/my_game/Move.toml b/mover/jethrozz/code/my_game/Move.toml
new file mode 100644
index 000000000..339477a80
--- /dev/null
+++ b/mover/jethrozz/code/my_game/Move.toml
@@ -0,0 +1,37 @@
+[package]
+name = "my_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" }
+my_coin = {local = "../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]
+my_game = "0x0"
+#my_coin = "0xea234fbb881adab94da3af129d8f7682da4f6ae5bf2cf5e013984bbeeebfcd2d"
+# Named addresses will be accessible in Move as `@name`. They're also exported:
+# for example, `std = "0x1"` is exported by the Standard Library.
+# alice = "0xA11CE"
+
+[dev-dependencies]
+# The dev-dependencies section allows overriding dependencies for `--test` and
+# `--dev` modes. You can introduce test-only dependencies here.
+# Local = { local = "../path/to/dev-build" }
+
+[dev-addresses]
+# The dev-addresses section allows overwriting named addresses for the `--test`
+# and `--dev` modes.
+# alice = "0xB0B"
+
diff --git a/mover/jethrozz/code/my_game/call.md b/mover/jethrozz/code/my_game/call.md
new file mode 100644
index 000000000..7ffc80663
--- /dev/null
+++ b/mover/jethrozz/code/my_game/call.md
@@ -0,0 +1,9 @@
+#存钱
+
+sui client call --package 0x68138d5d4accc1de3b9140775fe19ea95e06a6832525168e90194f6583958cf1 --module my_game --function add_coin --args 0x547fed5250dc0e883d0cd43bf3d0e6e5aa7726b259e50f2eb20c25e21ecce6d9 0x1b62e02fac49643691ad0730b3d24159b1d8e0e17ea825bbf20d2eebc95a37b4
+
+#取钱
+sui client call --package 0x68138d5d4accc1de3b9140775fe19ea95e06a6832525168e90194f6583958cf1 --module my_game --function remove_coin --args 0xd95acf245600d73417dc0fa6cf84bd971db8b632af6b91f4314a9496e56fab27 0x547fed5250dc0e883d0cd43bf3d0e6e5aa7726b259e50f2eb20c25e21ecce6d9 5000000000
+
+#play
+sui client call --package 0x68138d5d4accc1de3b9140775fe19ea95e06a6832525168e90194f6583958cf1 --module my_game --function play --args 1 0x8 0x5adeb6252a1f4205648e37f96217b974684418cfc279b3e48e0d1ef70fb3c6e8 0x547fed5250dc0e883d0cd43bf3d0e6e5aa7726b259e50f2eb20c25e21ecce6d9
diff --git a/mover/jethrozz/code/my_game/sources/my_game.move b/mover/jethrozz/code/my_game/sources/my_game.move
new file mode 100644
index 000000000..bd639501f
--- /dev/null
+++ b/mover/jethrozz/code/my_game/sources/my_game.move
@@ -0,0 +1,77 @@
+/*
+/// Module: my_game
+module my_game::my_game;
+*/
+module my_game::my_game;
+use my_coin::jethro_coin::{JETHRO_COIN};
+use sui::balance;
+use sui::random::{Self, Random, RandomGenerator};
+use sui::balance::Balance;
+use sui::coin::{Self, Coin};
+
+public struct GameCap has key{
+ id: UID,
+}
+
+public struct JethrozzGame has key {
+ id: UID,
+ amt: Balance,
+}
+
+
+fun init(ctx: &mut TxContext){
+ let game_cap = GameCap {
+ id: object::new(ctx),
+ };
+ let game = JethrozzGame {
+ id: object::new(ctx),
+ amt: balance::zero(),
+ };
+ transfer::share_object(game);
+ //权限校验
+ transfer::transfer(game_cap, ctx.sender());
+}
+//石头剪刀布 3:石头,2:剪刀 1:布
+
+entry fun play(in: u8, rand: &Random, in_amt: Coin, game: &mut JethrozzGame,ctx: &mut TxContext){
+ //输入合法校验
+ assert!(in > 4, 0x001);
+
+ let in_amt_value = in_amt.value();
+ let game_amt_value = game.amt.value();
+ //输入的钱必须大于池子的钱的10分之1
+ assert!(game_amt_value >= (in_amt_value * 10 ), 0x002);
+
+ let mut generator: RandomGenerator = random::new_generator(rand, ctx);
+ let game_rand = random::generate_u8_in_range(&mut generator, 1, 3);
+
+ if((game_rand > in && game_rand - in == 1) || (in < game_rand && game_rand - in == 2)){
+ //石头 beats 剪刀
+ //剪刀 beats 布
+ // 布 beats 石头
+ //从池子中取出来
+ let out_balance :Balance = game.amt.split(in_amt_value);
+ //转换成COIN
+ let out_coin = coin::from_balance(out_balance, ctx);
+ //将这个COIN转账给发起者
+ transfer::public_transfer(out_coin, ctx.sender());
+ //退回原来的钱
+ transfer::public_transfer(in_amt, ctx.sender());
+ }else {
+ //输了
+ let in_amt_balance = coin::into_balance(in_amt);
+ game.amt.join(in_amt_balance);
+ }
+}
+
+public entry fun add_coin(game: &mut JethrozzGame, coin :Coin, _: &mut TxContext){
+ let balance = coin::into_balance(coin);
+ game.amt.join(balance);
+}
+
+public entry fun remove_coin(_: &GameCap, game: &mut JethrozzGame, amt: u64, ctx : &mut TxContext){
+ let balance = game.amt.split(amt);
+ //转换成COIN
+ let coin = coin::from_balance(balance, ctx);
+ transfer::public_transfer(coin, ctx.sender())
+}
\ No newline at end of file
diff --git a/mover/jethrozz/code/my_game/tests/my_game_tests.move b/mover/jethrozz/code/my_game/tests/my_game_tests.move
new file mode 100644
index 000000000..a86dc77ed
--- /dev/null
+++ b/mover/jethrozz/code/my_game/tests/my_game_tests.move
@@ -0,0 +1,18 @@
+/*
+#[test_only]
+module my_game::my_game_tests;
+// uncomment this line to import the module
+// use my_game::my_game;
+
+const ENotImplemented: u64 = 0;
+
+#[test]
+fun test_my_game() {
+ // pass
+}
+
+#[test, expected_failure(abort_code = ::my_game::my_game_tests::ENotImplemented)]
+fun test_my_game_fail() {
+ abort ENotImplemented
+}
+*/
diff --git a/mover/jethrozz/readme.md b/mover/jethrozz/readme.md
index 39b0ec50d..0e65467fb 100644
--- a/mover/jethrozz/readme.md
+++ b/mover/jethrozz/readme.md
@@ -19,9 +19,9 @@
- [✔] package id 在 scan上的查看截图:![Scan截图](./co-learn-2411//images/packageid.png)
## 02 move coin
-- [✔] My Coin package id : 0xea234fbb881adab94da3af129d8f7682da4f6ae5bf2cf5e013984bbeeebfcd2d
-- [✔] Faucet package id : 0xea234fbb881adab94da3af129d8f7682da4f6ae5bf2cf5e013984bbeeebfcd2d
-- [✔] 转账 `My Coin` hash: 3EGvPzgTstugTkrD9wbm9FcW6pcYnegChhSG5uvW3i8Z
+- [✔] My Coin package id : 0xdbdacdcea63c748df6e247db1fcdc759af2255e2463e6c60815b161d23d866e9
+- [✔] Faucet package id : 0xdbdacdcea63c748df6e247db1fcdc759af2255e2463e6c60815b161d23d866e9
+- [✔] 转账 `My Coin` hash: 7fZD9u3zVAvXLeXqXugKwRPGYYAqiaPALqMmQRiQffL7
- [✔] `Faucet Coin` address1 mint hash: GvsScjav22iC98CkWzg2mCWm1kSR7saLTXVfxCybnoN8
- [✔] `Faucet Coin` address2 mint hash: iJQPVQXM8N4ymZ3khEqVYApX6fBLACGMNENsmXEaYsE
@@ -32,10 +32,10 @@
- [✔] scan上的NFT截图:![Scan截图](./co-learn-2411//images/jethrozz_nft.png)
## 04 Move Game
-- [] game package id :
-- [] deposit Coin hash:
-- [] withdraw `Coin` hash:
-- [] play game hash:
+- [✔] game package id : 0x68138d5d4accc1de3b9140775fe19ea95e06a6832525168e90194f6583958cf1
+- [✔] deposit Coin hash: 3C5XoBLRq9zrnFrq6YaMhR1RteLN1GKFFCgVJ3vobKMH
+- [✔] withdraw `Coin` hash: FYQTZSdhEwduTZupPuMA1zUGBAaa61DGr6yJSvMagZY8
+- [✔] play game hash: 4k2VesRJCUkicaFg9b2dkMihF6TzQbVrYnfFuay1mUZE
## 05 Move Swap
- [] swap package id :
diff --git a/mover/linqining/co-learn-2411/images/office_hour/week3.png b/mover/linqining/co-learn-2411/images/office_hour/week3.png
new file mode 100644
index 000000000..397114777
Binary files /dev/null and b/mover/linqining/co-learn-2411/images/office_hour/week3.png differ
diff --git a/mover/linqining/co-learn-2411/images/pormote/promote.png b/mover/linqining/co-learn-2411/images/pormote/promote.png
new file mode 100644
index 000000000..eac854b5f
Binary files /dev/null and b/mover/linqining/co-learn-2411/images/pormote/promote.png differ
diff --git a/mover/linqining/co-learn-2411/images/task/learn_week3/img.png b/mover/linqining/co-learn-2411/images/task/learn_week3/img.png
new file mode 100644
index 000000000..9e2053e35
Binary files /dev/null and b/mover/linqining/co-learn-2411/images/task/learn_week3/img.png differ
diff --git a/mover/linqining/co-learn-2411/readme.md b/mover/linqining/co-learn-2411/readme.md
index 106ab29f9..3e572a1ac 100644
--- a/mover/linqining/co-learn-2411/readme.md
+++ b/mover/linqining/co-learn-2411/readme.md
@@ -11,20 +11,20 @@
## 为共学营宣传(在朋友圈或者群聊中转发海报/文章)
-- [] 宣传截图:![宣传截图](./images/你的图片地址)
+- [x] 宣传截图:![宣传截图](./images/pormote/promote.png)
## 每周课程学习
- [x] 第一周:![学习记录截图](images/task/learn_week1/img.png)
- [x] 第二周:![学习记录截图](./images/task/learn_week2/img.png)
-- [] 第三周:![学习记录截图](./images/你的图片地址)
+- [x] 第三周:![学习记录截图](./images/task/learn_week3/img.png)
- [] 第四周:![学习记录截图](./images/你的图片地址)
## 参加直播答疑
- [x] 第一周:![学习记录截图](images/office_hour/week1.png)
- [x] 第二周:![学习记录截图](./images/office_hour/week2.png)
-- [] 第三周:![学习记录截图](./images/你的图片地址)
+- [x] 第三周:![学习记录截图](./images/office_hour/week3.png)
- [] 第四周:![学习记录截图](./images/你的图片地址)
## 群里分享学习笔记
diff --git a/mover/linqining/code/task4/linkgame/Move.lock b/mover/linqining/code/task4/linkgame/Move.lock
new file mode 100644
index 000000000..c77190656
--- /dev/null
+++ b/mover/linqining/code/task4/linkgame/Move.lock
@@ -0,0 +1,43 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 3
+manifest_digest = "54DBE8503E0A4DB27477F65EBB674DD25B23C3DD30F292C24097C5E6E02E7AF9"
+deps_digest = "3C4103934B1E040BB6B23F1D610B4EF9F2F1166A50A104EADCF77467C004C600"
+dependencies = [
+ { id = "Sui", name = "Sui" },
+ { id = "faucet_coin", name = "faucet_coin" },
+]
+
+[[move.package]]
+id = "MoveStdlib"
+source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" }
+
+[[move.package]]
+id = "Sui"
+source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/sui-framework" }
+
+dependencies = [
+ { id = "MoveStdlib", name = "MoveStdlib" },
+]
+
+[[move.package]]
+id = "faucet_coin"
+source = { git = "git@github.com:linqining/letsmove.git", rev = "main", subdir = "mover/linqining/code/task2/faucet_coin/" }
+
+dependencies = [
+ { id = "Sui", name = "Sui" },
+]
+
+[move.toolchain-version]
+compiler-version = "1.37.1"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.mainnet]
+chain-id = "35834a8a"
+original-published-id = "0xe6e615d3803b8fc33f3bb3d0d474d0ba8c9847146419c8bedf5fa19c296bff50"
+latest-published-id = "0xe6e615d3803b8fc33f3bb3d0d474d0ba8c9847146419c8bedf5fa19c296bff50"
+published-version = "1"
diff --git a/mover/linqining/code/task4/linkgame/Move.toml b/mover/linqining/code/task4/linkgame/Move.toml
new file mode 100644
index 000000000..9b899fa7f
--- /dev/null
+++ b/mover/linqining/code/task4/linkgame/Move.toml
@@ -0,0 +1,38 @@
+[package]
+name = "linkgame"
+edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move
+# license = "" # e.g., "MIT", "GPL", "Apache 2.0"
+# authors = ["..."] # e.g., ["Joe Smith (joesmith@noemail.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_coin = { git = "git@github.com:linqining/letsmove.git", subdir = "mover/linqining/code/task2/faucet_coin/", rev = "main" }
+
+# For remote import, use the `{ git = "...", subdir = "...", rev = "..." }`.
+# Revision can be a branch, a tag, and a commit hash.
+# MyRemotePackage = { git = "https://some.remote/host.git", subdir = "remote/path", rev = "main" }
+
+# For local dependencies use `local = path`. Path is relative to the package root
+# Local = { local = "../path/to" }
+
+# To resolve a version conflict and force a specific version for dependency
+# override use `override = true`
+# Override = { local = "../conflicting/version", override = true }
+
+[addresses]
+linkgame = "0x0"
+
+# Named addresses will be accessible in Move as `@name`. They're also exported:
+# for example, `std = "0x1"` is exported by the Standard Library.
+# alice = "0xA11CE"
+
+[dev-dependencies]
+# The dev-dependencies section allows overriding dependencies for `--test` and
+# `--dev` modes. You can introduce test-only dependencies here.
+# Local = { local = "../path/to/dev-build" }
+
+[dev-addresses]
+# The dev-addresses section allows overwriting named addresses for the `--test`
+# and `--dev` modes.
+# alice = "0xB0B"
+
diff --git a/mover/linqining/code/task4/linkgame/sources/linkgame.move b/mover/linqining/code/task4/linkgame/sources/linkgame.move
new file mode 100644
index 000000000..2cb734447
--- /dev/null
+++ b/mover/linqining/code/task4/linkgame/sources/linkgame.move
@@ -0,0 +1,62 @@
+module linkgame::linkgame;
+use sui::balance::Balance;
+use faucet_coin::eig::{EIG};
+use sui::coin;
+use sui::random::Random;
+use sui::transfer::{share_object, public_transfer,transfer};
+
+public struct AdminCap has key{
+ id:UID,
+}
+
+public struct LinkGame has key,store{
+ id: UID,
+ // 存钱必须用这个结构体,
+ amount: Balance,
+}
+
+fun init(ctx :&mut TxContext){
+ let game = LinkGame {
+ id: object::new(ctx),
+ amount: sui::balance::zero(),
+ };
+ share_object(game);
+ let admin = AdminCap{id:object::new(ctx)};
+ transfer(admin,ctx.sender());
+}
+// 0是反面1是正面
+entry fun play(game: &mut LinkGame, rand:&Random, guess_val:u8, user_bet_coin: coin::Coin, ctx: &mut TxContext){
+ let game_balance = game.amount.value();
+ let user_bet_amount = user_bet_coin.value();
+
+ // 奖池大于用户奖池
+ assert!(game_balance >= user_bet_amount * 10,0x1);
+
+ // up 正面 !up 反面
+ let mut generator = sui::random::new_generator(rand,ctx);
+ let gen_val = sui::random::generate_bool(&mut generator);
+ let mut is_up = false;
+ if (guess_val ==1){
+ is_up = true
+ };
+ if (is_up ==gen_val){
+ let out_balance = game.amount.split(user_bet_amount);
+ let out_coin = coin::from_balance(out_balance,ctx);
+ public_transfer(out_coin,ctx.sender());
+ public_transfer(user_bet_coin,ctx.sender());
+ }else{
+ let in_amt_balance = coin::into_balance(user_bet_coin);
+ game.amount.join(in_amt_balance);
+ }
+}
+
+public entry fun deposit(game:&mut LinkGame, amount: coin::Coin, _:&mut TxContext){
+ let in_amt = coin::into_balance(amount);
+ game.amount.join(in_amt);
+}
+
+public entry fun withdraw(_:&AdminCap, game:&mut LinkGame, amount: u64, ctx:&mut TxContext){
+ let out_coin = game.amount.split(amount);
+ let withdraw_coins = coin::from_balance(out_coin,ctx);
+ public_transfer(withdraw_coins,ctx.sender())
+}
\ No newline at end of file
diff --git a/mover/linqining/code/task4/linkgame/tests/linkgame_tests.move b/mover/linqining/code/task4/linkgame/tests/linkgame_tests.move
new file mode 100644
index 000000000..2593a79ee
--- /dev/null
+++ b/mover/linqining/code/task4/linkgame/tests/linkgame_tests.move
@@ -0,0 +1,18 @@
+/*
+#[test_only]
+module linkgame::linkgame_tests;
+// uncomment this line to import the module
+// use linkgame::linkgame;
+
+const ENotImplemented: u64 = 0;
+
+#[test]
+fun test_linkgame() {
+ // pass
+}
+
+#[test, expected_failure(abort_code = ::linkgame::linkgame_tests::ENotImplemented)]
+fun test_linkgame_fail() {
+ abort ENotImplemented
+}
+*/
diff --git a/mover/linqining/readme.md b/mover/linqining/readme.md
index 0e3b4c62d..b7345901b 100644
--- a/mover/linqining/readme.md
+++ b/mover/linqining/readme.md
@@ -36,10 +36,10 @@
## 04 Move Game
-- [] game package id :
-- [] deposit Coin hash:
-- [] withdraw `Coin` hash:
-- [] play game hash:
+- [x] game package id : 0xe6e615d3803b8fc33f3bb3d0d474d0ba8c9847146419c8bedf5fa19c296bff50
+- [x] deposit Coin hash: G8xWzdGqDbpbx94Vz1C6ePU6iJnrJ3E5KbLoGmGy15cx
+- [x] withdraw `Coin` hash: 7wUYGYhkJbgiNRTjwA9ruJ3gAjMJeAAUht5e1rNxFrWM
+- [x] play game hash: 6R8Gdu9zCuptC4y3BK9ZC543aZzDrNuE4xDB9mfd4ozT
## 05 Move Swap
- [] swap package id :
diff --git a/mover/supernovaYe/code/task2/faucetcoin/Move.lock b/mover/supernovaYe/code/task2/faucetcoin/Move.lock
new file mode 100644
index 000000000..befc55cef
--- /dev/null
+++ b/mover/supernovaYe/code/task2/faucetcoin/Move.lock
@@ -0,0 +1,40 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 3
+manifest_digest = "631D71D64640D411A0A651627D182D827D415B67DE6F94B3C8A2311D1CC43A75"
+deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
+dependencies = [
+ { id = "Sui", name = "Sui" },
+]
+
+[[move.package]]
+id = "MoveStdlib"
+source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" }
+
+[[move.package]]
+id = "Sui"
+source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" }
+
+dependencies = [
+ { id = "MoveStdlib", name = "MoveStdlib" },
+]
+
+[move.toolchain-version]
+compiler-version = "1.37.1"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.mainnet]
+chain-id = "35834a8a"
+original-published-id = "0x25f9b3ccc1cb677d5bd40a0375df3cca37fd333e1bc25bfbd1f3802986dd2638"
+latest-published-id = "0x25f9b3ccc1cb677d5bd40a0375df3cca37fd333e1bc25bfbd1f3802986dd2638"
+published-version = "1"
+
+[env.testnet]
+chain-id = "4c78adac"
+original-published-id = "0x4ceddf4c998593ca5b8d21f29b8d8770eb730617f0770beaf776c99c72177e04"
+latest-published-id = "0x4ceddf4c998593ca5b8d21f29b8d8770eb730617f0770beaf776c99c72177e04"
+published-version = "1"
diff --git a/mover/supernovaYe/code/task2/faucetcoin/Move.toml b/mover/supernovaYe/code/task2/faucetcoin/Move.toml
new file mode 100644
index 000000000..132e4c74c
--- /dev/null
+++ b/mover/supernovaYe/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/supernovaYe/code/task2/faucetcoin/sources/faucetcoin.move b/mover/supernovaYe/code/task2/faucetcoin/sources/faucetcoin.move
new file mode 100644
index 000000000..b2e25be40
--- /dev/null
+++ b/mover/supernovaYe/code/task2/faucetcoin/sources/faucetcoin.move
@@ -0,0 +1,39 @@
+/*
+/// Module: faucetcoin
+module faucetcoin::faucetcoin;
+*/
+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 {}
+
+ /// Register the managed currency to acquire its `TreasuryCap`. Because
+ /// this is a module initializer, it ensures the currency only gets
+ /// registered once.
+ fun init(otw: FAUCETCOIN, ctx: &mut TxContext) {
+ // Get a treasury cap for the coin and give it to the transaction sender
+ let (treasury_cap, metadata) = coin::create_currency(
+ otw,
+ 2,
+ b"FAUCETCOIN",
+ b"FaucetCoin",
+ b"",
+ option::none(),
+ ctx);
+ transfer::public_freeze_object(metadata);
+ transfer::public_share_object(treasury_cap);
+ }
+
+ // mint new coins
+ public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) {
+ coin::mint_and_transfer(treasury_cap, amount, recipient, ctx);
+ }
+
+ // burn coins
+ 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/supernovaYe/code/task2/faucetcoin/tests/faucetcoin_tests.move b/mover/supernovaYe/code/task2/faucetcoin/tests/faucetcoin_tests.move
new file mode 100644
index 000000000..6a93a27fa
--- /dev/null
+++ b/mover/supernovaYe/code/task2/faucetcoin/tests/faucetcoin_tests.move
@@ -0,0 +1,18 @@
+/*
+#[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/supernovaYe/code/task2/mycoin/Move.lock b/mover/supernovaYe/code/task2/mycoin/Move.lock
new file mode 100644
index 000000000..bb2e9247b
--- /dev/null
+++ b/mover/supernovaYe/code/task2/mycoin/Move.lock
@@ -0,0 +1,40 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 3
+manifest_digest = "53D63BF37A5A75E12B16FA15616621B9469CA2B028AD484BE07CBC84DEE64DCE"
+deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
+dependencies = [
+ { id = "Sui", name = "Sui" },
+]
+
+[[move.package]]
+id = "MoveStdlib"
+source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" }
+
+[[move.package]]
+id = "Sui"
+source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" }
+
+dependencies = [
+ { id = "MoveStdlib", name = "MoveStdlib" },
+]
+
+[move.toolchain-version]
+compiler-version = "1.37.1"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.mainnet]
+chain-id = "35834a8a"
+original-published-id = "0x4e428ffb725df4546e04b31630650a477b60b35bcd762411dd9bdccb819f4703"
+latest-published-id = "0x4e428ffb725df4546e04b31630650a477b60b35bcd762411dd9bdccb819f4703"
+published-version = "1"
+
+[env.testnet]
+chain-id = "4c78adac"
+original-published-id = "0x899bb237a3ac7909818216a753dbb4ff924573b1f7af8d7720d8026a7270fbcc"
+latest-published-id = "0x899bb237a3ac7909818216a753dbb4ff924573b1f7af8d7720d8026a7270fbcc"
+published-version = "1"
diff --git a/mover/supernovaYe/code/task2/mycoin/Move.toml b/mover/supernovaYe/code/task2/mycoin/Move.toml
new file mode 100644
index 000000000..70032b221
--- /dev/null
+++ b/mover/supernovaYe/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/supernovaYe/code/task2/mycoin/sources/mycoin.move b/mover/supernovaYe/code/task2/mycoin/sources/mycoin.move
new file mode 100644
index 000000000..b1d93391f
--- /dev/null
+++ b/mover/supernovaYe/code/task2/mycoin/sources/mycoin.move
@@ -0,0 +1,39 @@
+/*
+/// Module: mycoin
+module mycoin::mycoin;
+*/
+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 {}
+
+ /// Register the managed currency to acquire its `TreasuryCap`. Because
+ /// this is a module initializer, it ensures the currency only gets
+ /// registered once.
+ fun init(otw: MYCOIN, ctx: &mut TxContext) {
+ // Get a treasury cap for the coin and give it to the transaction sender
+ let (treasury_cap, metadata) = coin::create_currency(
+ otw,
+ 2,
+ b"MYCOIN",
+ b"MyCoin",
+ b"",
+ option::none(),
+ ctx);
+ transfer::public_freeze_object(metadata);
+ transfer::public_transfer(treasury_cap, tx_context::sender(ctx))
+ }
+
+ // mint new coins
+ public entry fun mint(treasury_cap: &mut TreasuryCap, amount: u64, recipient: address, ctx: &mut TxContext) {
+ coin::mint_and_transfer(treasury_cap, amount, recipient, ctx);
+ }
+
+ // burn coins
+ 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/supernovaYe/code/task2/mycoin/tests/mycoin_tests.move b/mover/supernovaYe/code/task2/mycoin/tests/mycoin_tests.move
new file mode 100644
index 000000000..d12b2353d
--- /dev/null
+++ b/mover/supernovaYe/code/task2/mycoin/tests/mycoin_tests.move
@@ -0,0 +1,18 @@
+/*
+#[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/supernovaYe/readme.md b/mover/supernovaYe/readme.md
index 2ad7462f3..eaf902008 100644
--- a/mover/supernovaYe/readme.md
+++ b/mover/supernovaYe/readme.md
@@ -19,11 +19,11 @@
- [x] package id 在 scan上的查看截图:![Scan截图](./images/0x3662154617e9542cd2d82d48d8d07d81a1553b7360736ef8aa223dbfb068c924.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 : 0x4e428ffb725df4546e04b31630650a477b60b35bcd762411dd9bdccb819f4703
+- [√] Faucet package id : 0x25f9b3ccc1cb677d5bd40a0375df3cca37fd333e1bc25bfbd1f3802986dd2638
+- [√] 转账 `My Coin` hash: GM4GGGSaYn8UatkB5etP51zJSTUdrEam7ScLRmKe7Rm8
+- [√] `Faucet Coin` address1 mint hash: 31x87KwgCfUKW6F4PPkFj5n13LE4d4pZ2uuxG6yYanqH
+- [√] `Faucet Coin` address2 mint hash: 4bQLLpjdgJy4tkmyidBYSm2Zihy4WWZhXej7EhNiLb1a
## 03 move NFT
- [] nft package id :
diff --git a/mover/xushuhui346/code/task3/my_nft/Move.lock b/mover/xushuhui346/code/task3/my_nft/Move.lock
new file mode 100644
index 000000000..3c1d3e322
--- /dev/null
+++ b/mover/xushuhui346/code/task3/my_nft/Move.lock
@@ -0,0 +1,34 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 3
+manifest_digest = "1C7E4E6784885553F41F77ACBDC5306913E332B17CDD69A828BE8590288858D2"
+deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
+dependencies = [
+ { id = "Sui", name = "Sui" },
+]
+
+[[move.package]]
+id = "MoveStdlib"
+source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" }
+
+[[move.package]]
+id = "Sui"
+source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" }
+
+dependencies = [
+ { id = "MoveStdlib", name = "MoveStdlib" },
+]
+
+[move.toolchain-version]
+compiler-version = "1.37.3"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.testnet]
+chain-id = "4c78adac"
+original-published-id = "0xf75d3d88f4bf586b41ddd6f158f3aefe6a1df2eb8b4159b7c125d30b3128b213"
+latest-published-id = "0xf75d3d88f4bf586b41ddd6f158f3aefe6a1df2eb8b4159b7c125d30b3128b213"
+published-version = "1"
diff --git a/mover/xushuhui346/code/task3/my_nft/Move.toml b/mover/xushuhui346/code/task3/my_nft/Move.toml
new file mode 100644
index 000000000..1f5914ca6
--- /dev/null
+++ b/mover/xushuhui346/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/xushuhui346/code/task3/my_nft/sources/hoh.code-workspace b/mover/xushuhui346/code/task3/my_nft/sources/hoh.code-workspace
new file mode 100644
index 000000000..6e3f461a9
--- /dev/null
+++ b/mover/xushuhui346/code/task3/my_nft/sources/hoh.code-workspace
@@ -0,0 +1,8 @@
+{
+ "folders": [
+ {
+ "path": "../../../../../../.."
+ }
+ ],
+ "settings": {}
+}
\ No newline at end of file
diff --git a/mover/xushuhui346/code/task3/my_nft/sources/my_nft.move b/mover/xushuhui346/code/task3/my_nft/sources/my_nft.move
new file mode 100644
index 000000000..8fab08d7f
--- /dev/null
+++ b/mover/xushuhui346/code/task3/my_nft/sources/my_nft.move
@@ -0,0 +1,33 @@
+/*
+/// Module: my_nft
+module my_nft::my_nft;
+*/
+module my_nft::my_nft;
+use std::string;
+use std::string::String;
+use sui::transfer::transfer;
+use sui::tx_context::sender;
+
+public struct MYNFT has key{
+ id:UID,
+ name:String,
+ image_url:String,
+}
+
+fun init(ctx:&mut TxContext){
+ let my_nft = MYNFT{
+ id:object::new(ctx),
+ name:string::utf8(b"xushuhui346 NFT"),
+ image_url:string::utf8(b"https://avatars.githubusercontent.com/u/19965482?s=400&u=a17a3e2ec8a1f020682d5e2a9413b61889be5968&v=4")
+ };
+ transfer(my_nft,sender(ctx));
+}
+
+public entry fun mint(url:address,image_url:String,ctx:&mut TxContext){
+ let my_nft = MYNFT{
+ id:object::new(ctx),
+ name:string::utf8(b"xushuhui346 NFT"),
+ image_url:image_url
+ };
+ transfer(my_nft,url);
+}
\ No newline at end of file
diff --git a/mover/xushuhui346/code/task3/my_nft/tests/my_nft_tests.move b/mover/xushuhui346/code/task3/my_nft/tests/my_nft_tests.move
new file mode 100644
index 000000000..4f30419a2
--- /dev/null
+++ b/mover/xushuhui346/code/task3/my_nft/tests/my_nft_tests.move
@@ -0,0 +1,18 @@
+/*
+#[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/xushuhui346/images/xushuhuiNFT.png b/mover/xushuhui346/images/xushuhuiNFT.png
new file mode 100644
index 000000000..dea4985eb
Binary files /dev/null and b/mover/xushuhui346/images/xushuhuiNFT.png differ
diff --git a/mover/xushuhui346/readme.md b/mover/xushuhui346/readme.md
index dd0d6469e..19f10af77 100644
--- a/mover/xushuhui346/readme.md
+++ b/mover/xushuhui346/readme.md
@@ -26,10 +26,10 @@
- [x] `Faucet Coin` address2 mint hash:FiuERVYA5YFg8BkYQE2F7sRsyqDshFka1cbFUS3pp68o
## 03 move NFT
-- [] nft package id :
-- [] nft object id :
-- [] 转账 nft hash:
-- [] scan上的NFT截图:![Scan截图](./images/你的图片地址)
+- [x] nft package id : 0xf75d3d88f4bf586b41ddd6f158f3aefe6a1df2eb8b4159b7c125d30b3128b213
+- [x] nft object id : 0x295055a5a543dfe6ec415ef7429b0aee9dd759c60c802de0df1f874a19582630
+- [x] 转账 nft hash: 5vovzg66CYxmjmGm1PDF6WBWFWyedBVHvUKXBqFaqrxk
+- [x] scan上的NFT截图:![Scan截图](./images/xushuhuiNFT.png)
## 04 Move Game
- [] game package id :
diff --git a/mover/yizuo66/code/task-2/yizuo_coin/Move.lock b/mover/yizuo66/code/task-2/yizuo_coin/Move.lock
new file mode 100644
index 000000000..a48637a64
--- /dev/null
+++ b/mover/yizuo66/code/task-2/yizuo_coin/Move.lock
@@ -0,0 +1,34 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 3
+manifest_digest = "B781AEA4967D75CCA00A5561DFE06CC61B722DA3A392820876DC47EFEEAF9365"
+deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
+dependencies = [
+ { id = "Sui", name = "Sui" },
+]
+
+[[move.package]]
+id = "MoveStdlib"
+source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" }
+
+[[move.package]]
+id = "Sui"
+source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" }
+
+dependencies = [
+ { id = "MoveStdlib", name = "MoveStdlib" },
+]
+
+[move.toolchain-version]
+compiler-version = "1.38.1"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.testnet]
+chain-id = "4c78adac"
+original-published-id = "0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761"
+latest-published-id = "0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761"
+published-version = "1"
diff --git a/mover/yizuo66/code/task-2/yizuo_coin/Move.toml b/mover/yizuo66/code/task-2/yizuo_coin/Move.toml
new file mode 100644
index 000000000..784362d5f
--- /dev/null
+++ b/mover/yizuo66/code/task-2/yizuo_coin/Move.toml
@@ -0,0 +1,37 @@
+[package]
+name = "yizuo_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]
+yizuo_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/yizuo66/code/task-2/yizuo_coin/sources/yizuo_coin.move b/mover/yizuo66/code/task-2/yizuo_coin/sources/yizuo_coin.move
new file mode 100644
index 000000000..a93282787
--- /dev/null
+++ b/mover/yizuo66/code/task-2/yizuo_coin/sources/yizuo_coin.move
@@ -0,0 +1,31 @@
+/*
+/// Module: yizuo_coin
+module yizuo_coin::yizuo_coin;
+*/
+
+module yizuo_coin::yizuo ;
+use sui::coin::create_currency;
+use std::option::{none};
+use sui::transfer::{ public_transfer, public_freeze_object};
+use sui::url::Url;
+
+public struct YIZUO has drop{}
+
+
+fun init(usd: YIZUO, ctx: &mut TxContext){
+
+ // https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/packages/sui-framework/sources/coin.move#L211
+
+ // 2 move 100 现实 1 1 0.01
+ // 4 move 10000 现实 1 1 0.0001
+ let no = none();
+ // let url = url::new_unsafe_from_bytes(b"");
+ // let yes = some(url);
+ let (treasury, coin_metadata) =
+ create_currency(usd, 8, b"YIZUO",b"YIZUO",b"this is yizuo coin",no, ctx);
+
+ public_freeze_object(coin_metadata);
+
+ public_transfer(treasury, ctx.sender());
+
+}
\ No newline at end of file
diff --git a/mover/yizuo66/code/task-2/yizuo_coin/sources/yizuo_rmb.move b/mover/yizuo66/code/task-2/yizuo_coin/sources/yizuo_rmb.move
new file mode 100644
index 000000000..1c3d629cd
--- /dev/null
+++ b/mover/yizuo66/code/task-2/yizuo_coin/sources/yizuo_rmb.move
@@ -0,0 +1,31 @@
+/*
+/// Module: yizuo_coin
+module yizuo_coin::yizuo_coin;
+*/
+
+module yizuo_coin::yizuo_rmb ;
+use sui::coin::create_currency;
+use std::option::{none};
+use sui::transfer::{ public_transfer, public_freeze_object, public_share_object};
+use sui::url::Url;
+
+public struct YIZUO_RMB has drop{}
+
+
+fun init(usd: YIZUO_RMB, ctx: &mut TxContext){
+
+ // https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/packages/sui-framework/sources/coin.move#L211
+
+ // 2 move 100 现实 1 1 0.01
+ // 4 move 10000 现实 1 1 0.0001
+ let no = none();
+ // let url = url::new_unsafe_from_bytes(b"");
+ // let yes = some(url);
+ let (treasury, coin_metadata) =
+ create_currency(usd, 8, b"YIZUO_RMB",b"YIZUO_RMB",b"this is yizuo_rmb coin",no, ctx);
+
+ public_freeze_object(coin_metadata);
+
+ public_share_object(treasury);
+
+}
\ No newline at end of file
diff --git a/mover/yizuo66/code/task-2/yizuo_coin/tests/yizuo_coin_tests.move b/mover/yizuo66/code/task-2/yizuo_coin/tests/yizuo_coin_tests.move
new file mode 100644
index 000000000..ab7ab19bf
--- /dev/null
+++ b/mover/yizuo66/code/task-2/yizuo_coin/tests/yizuo_coin_tests.move
@@ -0,0 +1,18 @@
+/*
+#[test_only]
+module yizuo_coin::yizuo_coin_tests;
+// uncomment this line to import the module
+// use yizuo_coin::yizuo_coin;
+
+const ENotImplemented: u64 = 0;
+
+#[test]
+fun test_yizuo_coin() {
+ // pass
+}
+
+#[test, expected_failure(abort_code = ::yizuo_coin::yizuo_coin_tests::ENotImplemented)]
+fun test_yizuo_coin_fail() {
+ abort ENotImplemented
+}
+*/
diff --git a/mover/yizuo66/code/task-2/yizuo_coin/yizuo.log b/mover/yizuo66/code/task-2/yizuo_coin/yizuo.log
new file mode 100644
index 000000000..5075a681b
--- /dev/null
+++ b/mover/yizuo66/code/task-2/yizuo_coin/yizuo.log
@@ -0,0 +1,524 @@
+yizuo@MM69 yizuo_coin % sui client publish
+[warning] Client/Server api version mismatch, client api version : 1.38.1, server api version : 1.38.2
+UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
+INCLUDING DEPENDENCY Sui
+INCLUDING DEPENDENCY MoveStdlib
+BUILDING yizuo_coin
+Successfully verified dependencies on-chain against source.
+Transaction Digest: FZgK4AQLfRLEq3nujTbdLBjSAdPAwskVzC3cn5Vrk2Xp
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Data │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Owner: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Budget: 14714800 MIST │
+│ Gas Price: 1000 MIST │
+│ Gas Payment: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Version: 236173280 │
+│ │ Digest: DRS8mJhayjZLwAjNfYPbyqtVDcPiyeE7fcQ1WmFTsaAd │
+│ └── │
+│ │
+│ Transaction Kind: Programmable │
+│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Input Objects │ │
+│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Pure Arg: Type: address, Value: "0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273" │ │
+│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ ╭─────────────────────────────────────────────────────────────────────────╮ │
+│ │ Commands │ │
+│ ├─────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Publish: │ │
+│ │ ┌ │ │
+│ │ │ Dependencies: │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │
+│ │ └ │ │
+│ │ │ │
+│ │ 1 TransferObjects: │ │
+│ │ ┌ │ │
+│ │ │ Arguments: │ │
+│ │ │ Result 0 │ │
+│ │ │ Address: Input 0 │ │
+│ │ └ │ │
+│ ╰─────────────────────────────────────────────────────────────────────────╯ │
+│ │
+│ Signatures: │
+│ kMzID4tvgSy2QaI7dxgJWoe1uyqCRFXsvchI/lZFj/Tkzn8H9cZ0+BPFhIoOYKLzRfvUojU5iXpZ03i9KoJLBg== │
+│ │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Effects │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Digest: FZgK4AQLfRLEq3nujTbdLBjSAdPAwskVzC3cn5Vrk2Xp │
+│ Status: Success │
+│ Executed Epoch: 566 │
+│ │
+│ Created Objects: │
+│ ┌── │
+│ │ ID: 0x1484c74770daea990bca0821296b7c740d83e484c4e342dafc4aed68b5e0e6b0 │
+│ │ Owner: Immutable │
+│ │ Version: 1 │
+│ │ Digest: 3FC8pgbFKMAwdrFKBtgmpgG74ugfXKUhvLomGdUwZTYo │
+│ └── │
+│ ┌── │
+│ │ ID: 0x3104577ea239b03fc4cfa3bcb7ed167e5f1ac79d4f2b6c9f10a414e6946497d8 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173281 │
+│ │ Digest: 2g87oYrjbsC78mDNoEhJruuWLdk1SwGWCjSB6kxryjjT │
+│ └── │
+│ ┌── │
+│ │ ID: 0xc61d70b478abe8617d51f7f754fe1e5690fc5a1cca725b8d613ba98dd99a81b6 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173281 │
+│ │ Digest: 4AZ4VyJf1QfFtHZV3VaMXLMZ8cygwrDp3mJYHeDToBxq │
+│ └── │
+│ ┌── │
+│ │ ID: 0xf7c992662a3f39ceb9976695147dd244270bc10ff615d5af85095ae8c424fc7b │
+│ │ Owner: Immutable │
+│ │ Version: 236173281 │
+│ │ Digest: 4M9DYSX4FavfjNTKUQrvJLNaHGaCNnrDgNLu9wQ6hcEn │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173281 │
+│ │ Digest: 6wMvxX7hQukDa2TvBLhNvWnzrnveVWNybfExBD2gZL1a │
+│ └── │
+│ Gas Object: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173281 │
+│ │ Digest: 6wMvxX7hQukDa2TvBLhNvWnzrnveVWNybfExBD2gZL1a │
+│ └── │
+│ Gas Cost Summary: │
+│ Storage Cost: 12714800 MIST │
+│ Computation Cost: 1000000 MIST │
+│ Storage Rebate: 978120 MIST │
+│ Non-refundable Storage Fee: 9880 MIST │
+│ │
+│ Transaction Dependencies: │
+│ FbcDBqtxeoi1xX4Yh1WPnj6eGRYiZ1FiAtDLjzXwjyjU │
+│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────╮
+│ No transaction block events │
+╰─────────────────────────────╯
+
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Object Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Created Objects: │
+│ ┌── │
+│ │ ObjectID: 0x3104577ea239b03fc4cfa3bcb7ed167e5f1ac79d4f2b6c9f10a414e6946497d8 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::TreasuryCap<0x1484c74770daea990bca0821296b7c740d83e484c4e342dafc4aed68b5e0e6b0::yizuo::YIZUO> │
+│ │ Version: 236173281 │
+│ │ Digest: 2g87oYrjbsC78mDNoEhJruuWLdk1SwGWCjSB6kxryjjT │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xc61d70b478abe8617d51f7f754fe1e5690fc5a1cca725b8d613ba98dd99a81b6 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::package::UpgradeCap │
+│ │ Version: 236173281 │
+│ │ Digest: 4AZ4VyJf1QfFtHZV3VaMXLMZ8cygwrDp3mJYHeDToBxq │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xf7c992662a3f39ceb9976695147dd244270bc10ff615d5af85095ae8c424fc7b │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Immutable │
+│ │ ObjectType: 0x2::coin::CoinMetadata<0x1484c74770daea990bca0821296b7c740d83e484c4e342dafc4aed68b5e0e6b0::yizuo::YIZUO> │
+│ │ Version: 236173281 │
+│ │ Digest: 4M9DYSX4FavfjNTKUQrvJLNaHGaCNnrDgNLu9wQ6hcEn │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ObjectID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │
+│ │ Version: 236173281 │
+│ │ Digest: 6wMvxX7hQukDa2TvBLhNvWnzrnveVWNybfExBD2gZL1a │
+│ └── │
+│ Published Objects: │
+│ ┌── │
+│ │ PackageID: 0x1484c74770daea990bca0821296b7c740d83e484c4e342dafc4aed68b5e0e6b0 │
+│ │ Version: 1 │
+│ │ Digest: 3FC8pgbFKMAwdrFKBtgmpgG74ugfXKUhvLomGdUwZTYo │
+│ │ Modules: yizuo │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Balance Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0x2::sui::SUI │
+│ │ Amount: -12736680 │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+
+
+
+
+yizuo@MM69 yizuo_coin % sui client publish
+[warning] Client/Server api version mismatch, client api version : 1.38.1, server api version : 1.38.2
+UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
+INCLUDING DEPENDENCY Sui
+INCLUDING DEPENDENCY MoveStdlib
+BUILDING yizuo_coin
+Successfully verified dependencies on-chain against source.
+Transaction Digest: 6BuaE2Xt8QWoy9Gt3LKtC4g9zbfHs5fmAgDNUS8Kh8eG
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Data │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Owner: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Budget: 14714800 MIST │
+│ Gas Price: 1000 MIST │
+│ Gas Payment: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Version: 236173281 │
+│ │ Digest: 6wMvxX7hQukDa2TvBLhNvWnzrnveVWNybfExBD2gZL1a │
+│ └── │
+│ │
+│ Transaction Kind: Programmable │
+│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Input Objects │ │
+│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Pure Arg: Type: address, Value: "0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273" │ │
+│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ ╭─────────────────────────────────────────────────────────────────────────╮ │
+│ │ Commands │ │
+│ ├─────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Publish: │ │
+│ │ ┌ │ │
+│ │ │ Dependencies: │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │
+│ │ └ │ │
+│ │ │ │
+│ │ 1 TransferObjects: │ │
+│ │ ┌ │ │
+│ │ │ Arguments: │ │
+│ │ │ Result 0 │ │
+│ │ │ Address: Input 0 │ │
+│ │ └ │ │
+│ ╰─────────────────────────────────────────────────────────────────────────╯ │
+│ │
+│ Signatures: │
+│ YystqR5nkxMyERxmx72CTfsfcd81eV9jWxNdoojD1nIbFH9bjVqeULogkmyKXxMpu8U5r0Wn8+aI1FLYvxNQCg== │
+│ │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Effects │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Digest: 6BuaE2Xt8QWoy9Gt3LKtC4g9zbfHs5fmAgDNUS8Kh8eG │
+│ Status: Success │
+│ Executed Epoch: 566 │
+│ │
+│ Created Objects: │
+│ ┌── │
+│ │ ID: 0x4b6229e46fcbea797d6618de5fb311a0deb757ed532b779200ce64926007964a │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173282 │
+│ │ Digest: ANW6u3FQgDo78VQ8Zh7jUSBF9CFnu5EkFBc2Urutfu5D │
+│ └── │
+│ ┌── │
+│ │ ID: 0xc4e4544df63287f56b2d6d84cb9ec7e2d8c978311d7e02dc18624fc7058513d4 │
+│ │ Owner: Immutable │
+│ │ Version: 236173282 │
+│ │ Digest: H5fwB6mSusfEqMvxdFBFHvfKGvBsSaXMKcTXj7gk5Y1f │
+│ └── │
+│ ┌── │
+│ │ ID: 0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608 │
+│ │ Owner: Immutable │
+│ │ Version: 1 │
+│ │ Digest: B6Wr3Q9GNuzSwbLcAn2WLmj6uYzVs7xERzBEeF7r2XYm │
+│ └── │
+│ ┌── │
+│ │ ID: 0xe5757f08cc942536816c83c9a73e863a496719e19b9d8349df9d1f331204277d │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173282 │
+│ │ Digest: 5RZsygoY8DTGGefoRMuGqAtvMnnhWa3GKJauEd9Uzxy7 │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173282 │
+│ │ Digest: 6ZGgGQAy7MUH48uddwu49jEsiDNZpYfpudkLHNctAeHK │
+│ └── │
+│ Gas Object: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173282 │
+│ │ Digest: 6ZGgGQAy7MUH48uddwu49jEsiDNZpYfpudkLHNctAeHK │
+│ └── │
+│ Gas Cost Summary: │
+│ Storage Cost: 12714800 MIST │
+│ Computation Cost: 1000000 MIST │
+│ Storage Rebate: 978120 MIST │
+│ Non-refundable Storage Fee: 9880 MIST │
+│ │
+│ Transaction Dependencies: │
+│ FZgK4AQLfRLEq3nujTbdLBjSAdPAwskVzC3cn5Vrk2Xp │
+│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────╮
+│ No transaction block events │
+╰─────────────────────────────╯
+
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Object Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Created Objects: │
+│ ┌── │
+│ │ ObjectID: 0x4b6229e46fcbea797d6618de5fb311a0deb757ed532b779200ce64926007964a │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::package::UpgradeCap │
+│ │ Version: 236173282 │
+│ │ Digest: ANW6u3FQgDo78VQ8Zh7jUSBF9CFnu5EkFBc2Urutfu5D │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xc4e4544df63287f56b2d6d84cb9ec7e2d8c978311d7e02dc18624fc7058513d4 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Immutable │
+│ │ ObjectType: 0x2::coin::CoinMetadata<0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608::yizuo::YIZUO> │
+│ │ Version: 236173282 │
+│ │ Digest: H5fwB6mSusfEqMvxdFBFHvfKGvBsSaXMKcTXj7gk5Y1f │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xe5757f08cc942536816c83c9a73e863a496719e19b9d8349df9d1f331204277d │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::TreasuryCap<0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608::yizuo::YIZUO> │
+│ │ Version: 236173282 │
+│ │ Digest: 5RZsygoY8DTGGefoRMuGqAtvMnnhWa3GKJauEd9Uzxy7 │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ObjectID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │
+│ │ Version: 236173282 │
+│ │ Digest: 6ZGgGQAy7MUH48uddwu49jEsiDNZpYfpudkLHNctAeHK │
+│ └── │
+│ Published Objects: │
+│ ┌── │
+│ │ PackageID: 0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608 │
+│ │ Version: 1 │
+│ │ Digest: B6Wr3Q9GNuzSwbLcAn2WLmj6uYzVs7xERzBEeF7r2XYm │
+│ │ Modules: yizuo │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Balance Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0x2::sui::SUI │
+│ │ Amount: -12736680 │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+
+
+
+
+
+
+Successfully verified dependencies on-chain against source.
+Transaction Digest: 3UMURqpi2u6ri2Qz1aDBtM7QRwzKGJcrGaznbV6x8YQK
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Data │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Owner: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Budget: 23295200 MIST │
+│ Gas Price: 1000 MIST │
+│ Gas Payment: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Version: 236173284 │
+│ │ Digest: DCm6kHsmURLasq32HViuGPKt2iEwD85ExZjrXK9iq6Gp │
+│ └── │
+│ │
+│ Transaction Kind: Programmable │
+│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Input Objects │ │
+│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Pure Arg: Type: address, Value: "0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273" │ │
+│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ ╭─────────────────────────────────────────────────────────────────────────╮ │
+│ │ Commands │ │
+│ ├─────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Publish: │ │
+│ │ ┌ │ │
+│ │ │ Dependencies: │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │
+│ │ └ │ │
+│ │ │ │
+│ │ 1 TransferObjects: │ │
+│ │ ┌ │ │
+│ │ │ Arguments: │ │
+│ │ │ Result 0 │ │
+│ │ │ Address: Input 0 │ │
+│ │ └ │ │
+│ ╰─────────────────────────────────────────────────────────────────────────╯ │
+│ │
+│ Signatures: │
+│ nosM4nMXQPiZDsS+f7q+9g+tomKlvEvCSG/KeAe1OPHukDm/0GIxiy9QgY0lpcQoQBWv7AWifbIysaowQjYSAQ== │
+│ │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Effects │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Digest: 3UMURqpi2u6ri2Qz1aDBtM7QRwzKGJcrGaznbV6x8YQK │
+│ Status: Success │
+│ Executed Epoch: 566 │
+│ │
+│ Created Objects: │
+│ ┌── │
+│ │ ID: 0x1243c21d6c7b16971b2ca966b17c0d7d0bc066632c38fa0a0786fd80d8fe3a74 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173285 │
+│ │ Digest: AVYWQwQrQNboLT1F3XPLSNXQkmvWfJTs1P5vEcfcPNuK │
+│ └── │
+│ ┌── │
+│ │ ID: 0x27c72eccb2dc9516bd5544f77d244c0279977fc5fd63e4383dd96dd04f598160 │
+│ │ Owner: Immutable │
+│ │ Version: 236173285 │
+│ │ Digest: EMkAxTDuXC2GpNq71Ma9o16xkZDEYQeUZzGekFttKfGX │
+│ └── │
+│ ┌── │
+│ │ ID: 0x7f386c989322e8d8f812fc1c264ef693dd3490af94db72b19b9e113b40232fce │
+│ │ Owner: Immutable │
+│ │ Version: 236173285 │
+│ │ Digest: AgAfKbEeCKkrvSrFL6PicG8RYvxKNG3ewNhqLDW8d6y8 │
+│ └── │
+│ ┌── │
+│ │ ID: 0xa0a891e5d45cbe13080228285ad6aab5202e4f7f727d1deb5cff452674ce09f1 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173285 │
+│ │ Digest: 8BQFRXuJDZa14HEe62wPDhxrojLdwows4x7VYMRgnYMx │
+│ └── │
+│ ┌── │
+│ │ ID: 0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761 │
+│ │ Owner: Immutable │
+│ │ Version: 1 │
+│ │ Digest: F8pUcR3ZPJ6rA7PEcusbBU4LDkvDnBEjE8UWuT8SeMoB │
+│ └── │
+│ ┌── │
+│ │ ID: 0xd057f05afd299294f21e9764a97e5b69d866a15c25cb753cc49d7a1969194072 │
+│ │ Owner: Shared( 236173285 ) │
+│ │ Version: 236173285 │
+│ │ Digest: 2eEQckd6fmCp75ocQHnNLm6cz5caErxoRtQKu5M8BKYW │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173285 │
+│ │ Digest: 3LVgFzq59UvedvYimVeEJj6HbFpRAQ6SCjvcCezwfovD │
+│ └── │
+│ Gas Object: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173285 │
+│ │ Digest: 3LVgFzq59UvedvYimVeEJj6HbFpRAQ6SCjvcCezwfovD │
+│ └── │
+│ Gas Cost Summary: │
+│ Storage Cost: 21295200 MIST │
+│ Computation Cost: 1000000 MIST │
+│ Storage Rebate: 978120 MIST │
+│ Non-refundable Storage Fee: 9880 MIST │
+│ │
+│ Transaction Dependencies: │
+│ EvfmeiTBu1KtdEqcufr4nAGXo2dnHJ9Gc4LYPGgHnMCg │
+│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────╮
+│ No transaction block events │
+╰─────────────────────────────╯
+
+╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Object Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Created Objects: │
+│ ┌── │
+│ │ ObjectID: 0x1243c21d6c7b16971b2ca966b17c0d7d0bc066632c38fa0a0786fd80d8fe3a74 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::TreasuryCap<0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo::YIZUO> │
+│ │ Version: 236173285 │
+│ │ Digest: AVYWQwQrQNboLT1F3XPLSNXQkmvWfJTs1P5vEcfcPNuK │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0x27c72eccb2dc9516bd5544f77d244c0279977fc5fd63e4383dd96dd04f598160 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Immutable │
+│ │ ObjectType: 0x2::coin::CoinMetadata<0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo::YIZUO> │
+│ │ Version: 236173285 │
+│ │ Digest: EMkAxTDuXC2GpNq71Ma9o16xkZDEYQeUZzGekFttKfGX │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0x7f386c989322e8d8f812fc1c264ef693dd3490af94db72b19b9e113b40232fce │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Immutable │
+│ │ ObjectType: 0x2::coin::CoinMetadata<0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo_rmb::YIZUO_RMB> │
+│ │ Version: 236173285 │
+│ │ Digest: AgAfKbEeCKkrvSrFL6PicG8RYvxKNG3ewNhqLDW8d6y8 │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xa0a891e5d45cbe13080228285ad6aab5202e4f7f727d1deb5cff452674ce09f1 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::package::UpgradeCap │
+│ │ Version: 236173285 │
+│ │ Digest: 8BQFRXuJDZa14HEe62wPDhxrojLdwows4x7VYMRgnYMx │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xd057f05afd299294f21e9764a97e5b69d866a15c25cb753cc49d7a1969194072 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Shared( 236173285 ) │
+│ │ ObjectType: 0x2::coin::TreasuryCap<0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo_rmb::YIZUO_RMB> │
+│ │ Version: 236173285 │
+│ │ Digest: 2eEQckd6fmCp75ocQHnNLm6cz5caErxoRtQKu5M8BKYW │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ObjectID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │
+│ │ Version: 236173285 │
+│ │ Digest: 3LVgFzq59UvedvYimVeEJj6HbFpRAQ6SCjvcCezwfovD │
+│ └── │
+│ Published Objects: │
+│ ┌── │
+│ │ PackageID: 0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761 │
+│ │ Version: 1 │
+│ │ Digest: F8pUcR3ZPJ6rA7PEcusbBU4LDkvDnBEjE8UWuT8SeMoB │
+│ │ Modules: yizuo, yizuo_rmb │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Balance Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0x2::sui::SUI │
+│ │ Amount: -21317080 │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
\ No newline at end of file
diff --git a/mover/yizuo66/code/task-2/yizuo_coin/yizuo_call.log b/mover/yizuo66/code/task-2/yizuo_coin/yizuo_call.log
new file mode 100644
index 000000000..5090bb3b0
--- /dev/null
+++ b/mover/yizuo66/code/task-2/yizuo_coin/yizuo_call.log
@@ -0,0 +1,296 @@
+yizuo@MM69 yizuo_coin % sui client call --package 0x2 \
+ --module coin \
+ --function mint_and_transfer \
+ --type-args 0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608::yizuo::YIZUO \
+ --args 0xe5757f08cc942536816c83c9a73e863a496719e19b9d8349df9d1f331204277d 1000000000 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273
+
+[warning] Client/Server api version mismatch, client api version : 1.38.1, server api version : 1.38.2
+Transaction Digest: DnzjD5us383qHyoerjzBdUsW63ybCNnn6pUL6gqCRQ2Z
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Data │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Owner: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Budget: 4342776 MIST │
+│ Gas Price: 1000 MIST │
+│ Gas Payment: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Version: 236173282 │
+│ │ Digest: 6ZGgGQAy7MUH48uddwu49jEsiDNZpYfpudkLHNctAeHK │
+│ └── │
+│ │
+│ Transaction Kind: Programmable │
+│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Input Objects │ │
+│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Imm/Owned Object ID: 0xe5757f08cc942536816c83c9a73e863a496719e19b9d8349df9d1f331204277d │ │
+│ │ 1 Pure Arg: Type: u64, Value: "1000000000" │ │
+│ │ 2 Pure Arg: Type: address, Value: "0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273" │ │
+│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ ╭───────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Commands │ │
+│ ├───────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 MoveCall: │ │
+│ │ ┌ │ │
+│ │ │ Function: mint_and_transfer │ │
+│ │ │ Module: coin │ │
+│ │ │ Package: 0x0000000000000000000000000000000000000000000000000000000000000002 │ │
+│ │ │ Type Arguments: │ │
+│ │ │ 0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608::yizuo::YIZUO │ │
+│ │ │ Arguments: │ │
+│ │ │ Input 0 │ │
+│ │ │ Input 1 │ │
+│ │ │ Input 2 │ │
+│ │ └ │ │
+│ ╰───────────────────────────────────────────────────────────────────────────────────────╯ │
+│ │
+│ Signatures: │
+│ 2QKpvfFu9wr44qt7ffdL/2SVH03nWjNjlhypYb1mAPa6EwAHiEx82VD7z3jLJipmJHLj+BGy4ovWmY9LjZh5Bg== │
+│ │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Effects │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Digest: DnzjD5us383qHyoerjzBdUsW63ybCNnn6pUL6gqCRQ2Z │
+│ Status: Success │
+│ Executed Epoch: 566 │
+│ │
+│ Created Objects: │
+│ ┌── │
+│ │ ID: 0x69170889c1ff89339d3f854a18a7b9a0dd1223dcbf17eb0b777eeacbfe6e0e58 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173283 │
+│ │ Digest: EzefDDYkyxvcW5E2h7Nw3Rrg9gXhMUFv75GysMqeB2Pr │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ID: 0xe5757f08cc942536816c83c9a73e863a496719e19b9d8349df9d1f331204277d │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173283 │
+│ │ Digest: GPF4XcyxhsfsExUnTiSJYeCB6qazSLZD2FyBZkBJL3u4 │
+│ └── │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173283 │
+│ │ Digest: FVR2iGiXEUj5v17eWMo9p9RGwAh9TNxdB9jWBtotZ8Xb │
+│ └── │
+│ Gas Object: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173283 │
+│ │ Digest: FVR2iGiXEUj5v17eWMo9p9RGwAh9TNxdB9jWBtotZ8Xb │
+│ └── │
+│ Gas Cost Summary: │
+│ Storage Cost: 4043200 MIST │
+│ Computation Cost: 1000000 MIST │
+│ Storage Rebate: 2678544 MIST │
+│ Non-refundable Storage Fee: 27056 MIST │
+│ │
+│ Transaction Dependencies: │
+│ 6BuaE2Xt8QWoy9Gt3LKtC4g9zbfHs5fmAgDNUS8Kh8eG │
+│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────╮
+│ No transaction block events │
+╰─────────────────────────────╯
+
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Object Changes │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Created Objects: │
+│ ┌── │
+│ │ ObjectID: 0x69170889c1ff89339d3f854a18a7b9a0dd1223dcbf17eb0b777eeacbfe6e0e58 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608::yizuo::YIZUO> │
+│ │ Version: 236173283 │
+│ │ Digest: EzefDDYkyxvcW5E2h7Nw3Rrg9gXhMUFv75GysMqeB2Pr │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ObjectID: 0xe5757f08cc942536816c83c9a73e863a496719e19b9d8349df9d1f331204277d │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::TreasuryCap<0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608::yizuo::YIZUO> │
+│ │ Version: 236173283 │
+│ │ Digest: GPF4XcyxhsfsExUnTiSJYeCB6qazSLZD2FyBZkBJL3u4 │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │
+│ │ Version: 236173283 │
+│ │ Digest: FVR2iGiXEUj5v17eWMo9p9RGwAh9TNxdB9jWBtotZ8Xb │
+│ └── │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Balance Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0x2::sui::SUI │
+│ │ Amount: -2364656 │
+│ └── │
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608::yizuo::YIZUO │
+│ │ Amount: 1000000000 │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+
+
+
+
+yizuo@MM69 yizuo_coin %
+sui client call --package 0x2 \
+ --module coin \
+ --function mint_and_transfer \
+ --type-args 0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo_rmb::YIZUO_RMB \
+ --args 0xd057f05afd299294f21e9764a97e5b69d866a15c25cb753cc49d7a1969194072 1000000000 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273
+[warning] Client/Server api version mismatch, client api version : 1.38.1, server api version : 1.38.2
+Transaction Digest: 4U1k1E5WoTHtsehWRtsXHMqJbmvTGfUeWczohgnMankS
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Data │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Owner: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Budget: 4404184 MIST │
+│ Gas Price: 1000 MIST │
+│ Gas Payment: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Version: 236173285 │
+│ │ Digest: 3LVgFzq59UvedvYimVeEJj6HbFpRAQ6SCjvcCezwfovD │
+│ └── │
+│ │
+│ Transaction Kind: Programmable │
+│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Input Objects │ │
+│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Shared Object ID: 0xd057f05afd299294f21e9764a97e5b69d866a15c25cb753cc49d7a1969194072 │ │
+│ │ 1 Pure Arg: Type: u64, Value: "1000000000" │ │
+│ │ 2 Pure Arg: Type: address, Value: "0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273" │ │
+│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ ╭───────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Commands │ │
+│ ├───────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 MoveCall: │ │
+│ │ ┌ │ │
+│ │ │ Function: mint_and_transfer │ │
+│ │ │ Module: coin │ │
+│ │ │ Package: 0x0000000000000000000000000000000000000000000000000000000000000002 │ │
+│ │ │ Type Arguments: │ │
+│ │ │ 0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo_rmb::YIZUO_RMB │ │
+│ │ │ Arguments: │ │
+│ │ │ Input 0 │ │
+│ │ │ Input 1 │ │
+│ │ │ Input 2 │ │
+│ │ └ │ │
+│ ╰───────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ │
+│ Signatures: │
+│ o6BaFr6VlA6CNlmBkvKQWgWWjOvZp31XMk9dhu73bCuxXhspOb+79Ky90J9C3Tc83zOHXfQgeFqDzdrNiDxJAA== │
+│ │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Effects │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Digest: 4U1k1E5WoTHtsehWRtsXHMqJbmvTGfUeWczohgnMankS │
+│ Status: Success │
+│ Executed Epoch: 566 │
+│ │
+│ Created Objects: │
+│ ┌── │
+│ │ ID: 0x4349ff59e8acc699035483cda5369f35e843d753a07eb5b5a111dcc4a4235c0c │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173286 │
+│ │ Digest: STWMe4aYSXdN2Ggr5BP2seUt8ysQBJifsmSUE7QYMVU │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ID: 0xd057f05afd299294f21e9764a97e5b69d866a15c25cb753cc49d7a1969194072 │
+│ │ Owner: Shared( 236173285 ) │
+│ │ Version: 236173286 │
+│ │ Digest: FGDE7QxJLMgQwcGxT3uTBQwEyd8eDHEp7miG9PshTdCA │
+│ └── │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173286 │
+│ │ Digest: 4Y38Z8RjXVViByzuYouKjFLiJpENAoraM6VqGXnUz7US │
+│ └── │
+│ Shared Objects: │
+│ ┌── │
+│ │ ID: 0xd057f05afd299294f21e9764a97e5b69d866a15c25cb753cc49d7a1969194072 │
+│ │ Version: 236173285 │
+│ │ Digest: 2eEQckd6fmCp75ocQHnNLm6cz5caErxoRtQKu5M8BKYW │
+│ └── │
+│ Gas Object: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173286 │
+│ │ Digest: 4Y38Z8RjXVViByzuYouKjFLiJpENAoraM6VqGXnUz7US │
+│ └── │
+│ Gas Cost Summary: │
+│ Storage Cost: 4164800 MIST │
+│ Computation Cost: 1000000 MIST │
+│ Storage Rebate: 2738736 MIST │
+│ Non-refundable Storage Fee: 27664 MIST │
+│ │
+│ Transaction Dependencies: │
+│ 3UMURqpi2u6ri2Qz1aDBtM7QRwzKGJcrGaznbV6x8YQK │
+│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────╮
+│ No transaction block events │
+╰─────────────────────────────╯
+
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Object Changes │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Created Objects: │
+│ ┌── │
+│ │ ObjectID: 0x4349ff59e8acc699035483cda5369f35e843d753a07eb5b5a111dcc4a4235c0c │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo_rmb::YIZUO_RMB> │
+│ │ Version: 236173286 │
+│ │ Digest: STWMe4aYSXdN2Ggr5BP2seUt8ysQBJifsmSUE7QYMVU │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ObjectID: 0xd057f05afd299294f21e9764a97e5b69d866a15c25cb753cc49d7a1969194072 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Shared( 236173285 ) │
+│ │ ObjectType: 0x2::coin::TreasuryCap<0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo_rmb::YIZUO_RMB> │
+│ │ Version: 236173286 │
+│ │ Digest: FGDE7QxJLMgQwcGxT3uTBQwEyd8eDHEp7miG9PshTdCA │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │
+│ │ Version: 236173286 │
+│ │ Digest: 4Y38Z8RjXVViByzuYouKjFLiJpENAoraM6VqGXnUz7US │
+│ └── │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Balance Changes │
+├────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0x2::sui::SUI │
+│ │ Amount: -2426064 │
+│ └── │
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo_rmb::YIZUO_RMB │
+│ │ Amount: 1000000000 │
+│ └── │
+╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯
\ No newline at end of file
diff --git a/mover/yizuo66/code/task-2/yizuo_coin/yizuo_call.sh b/mover/yizuo66/code/task-2/yizuo_coin/yizuo_call.sh
new file mode 100644
index 000000000..70488bf65
--- /dev/null
+++ b/mover/yizuo66/code/task-2/yizuo_coin/yizuo_call.sh
@@ -0,0 +1,19 @@
+ sui client call --package 0x2 \
+ --module coin \
+ --function mint_and_transfer \
+ --type-args 0xcc61159ac83c2ea47d730268f85a25081a79d86a7dec7aff4e2cd9b076edb608::yizuo::YIZUO \
+ --args 0xe5757f08cc942536816c83c9a73e863a496719e19b9d8349df9d1f331204277d 1000000000 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273
+
+
+ sui client call --package 0x2 \
+ --module coin \
+ --function mint_and_transfer \
+ --type-args 0x1484c74770daea990bca0821296b7c740d83e484c4e342dafc4aed68b5e0e6b0::yizuo::YIZUO \
+ --args 0x3104577ea239b03fc4cfa3bcb7ed167e5f1ac79d4f2b6c9f10a414e6946497d8 1000000000 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273
+
+
+sui client call --package 0x2 \
+ --module coin \
+ --function mint_and_transfer \
+ --type-args 0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761::yizuo_rmb::YIZUO_RMB \
+ --args 0xd057f05afd299294f21e9764a97e5b69d866a15c25cb753cc49d7a1969194072 1000000000 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273
\ No newline at end of file
diff --git a/mover/yizuo66/code/task-3/yizuo_nft/Move.lock b/mover/yizuo66/code/task-3/yizuo_nft/Move.lock
new file mode 100644
index 000000000..299a86684
--- /dev/null
+++ b/mover/yizuo66/code/task-3/yizuo_nft/Move.lock
@@ -0,0 +1,34 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 3
+manifest_digest = "6E2889A55A561CB6348487C5EB96ADFFE41FFCE83A55AA705C945E23F59C80B1"
+deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
+dependencies = [
+ { id = "Sui", name = "Sui" },
+]
+
+[[move.package]]
+id = "MoveStdlib"
+source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" }
+
+[[move.package]]
+id = "Sui"
+source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" }
+
+dependencies = [
+ { id = "MoveStdlib", name = "MoveStdlib" },
+]
+
+[move.toolchain-version]
+compiler-version = "1.38.1"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.testnet]
+chain-id = "4c78adac"
+original-published-id = "0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab"
+latest-published-id = "0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab"
+published-version = "1"
diff --git a/mover/yizuo66/code/task-3/yizuo_nft/Move.toml b/mover/yizuo66/code/task-3/yizuo_nft/Move.toml
new file mode 100644
index 000000000..9cec5ebdd
--- /dev/null
+++ b/mover/yizuo66/code/task-3/yizuo_nft/Move.toml
@@ -0,0 +1,37 @@
+[package]
+name = "yizuo_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]
+yizuo_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/yizuo66/code/task-3/yizuo_nft/sources/yizuo_nft.move b/mover/yizuo66/code/task-3/yizuo_nft/sources/yizuo_nft.move
new file mode 100644
index 000000000..e2637c7a5
--- /dev/null
+++ b/mover/yizuo66/code/task-3/yizuo_nft/sources/yizuo_nft.move
@@ -0,0 +1,71 @@
+/*
+/// Module: yizuo_nft
+module yizuo_nft::yizuo_nft;
+*/
+
+module yizuo_nft::yizuo_nft ;
+use std::string;
+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 YIZUO_NFT has drop {}
+
+
+fun init(otw: YIZUO_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));
+
+
+ let nft = MyNFT {
+ id: object::new(ctx),
+ name: string::utf8(b"uvd yizuo nft"),
+ image_url: string::utf8(
+ b"https://img1.baidu.com/it/u=3796891224,3749748453&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500"
+ ),
+ };
+ transfer::public_transfer(nft, 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));
+}
+
diff --git a/mover/yizuo66/code/task-3/yizuo_nft/tests/yizuo_nft_tests.move b/mover/yizuo66/code/task-3/yizuo_nft/tests/yizuo_nft_tests.move
new file mode 100644
index 000000000..c76383a05
--- /dev/null
+++ b/mover/yizuo66/code/task-3/yizuo_nft/tests/yizuo_nft_tests.move
@@ -0,0 +1,18 @@
+/*
+#[test_only]
+module yizuo_nft::yizuo_nft_tests;
+// uncomment this line to import the module
+// use yizuo_nft::yizuo_nft;
+
+const ENotImplemented: u64 = 0;
+
+#[test]
+fun test_yizuo_nft() {
+ // pass
+}
+
+#[test, expected_failure(abort_code = ::yizuo_nft::yizuo_nft_tests::ENotImplemented)]
+fun test_yizuo_nft_fail() {
+ abort ENotImplemented
+}
+*/
diff --git a/mover/yizuo66/code/task-3/yizuo_nft/yizuo_nft.logs b/mover/yizuo66/code/task-3/yizuo_nft/yizuo_nft.logs
new file mode 100644
index 000000000..857656da2
--- /dev/null
+++ b/mover/yizuo66/code/task-3/yizuo_nft/yizuo_nft.logs
@@ -0,0 +1,538 @@
+yizuo@MM69 yizuo_nft % sui client publish
+[warning] Client/Server api version mismatch, client api version : 1.38.1, server api version : 1.38.0
+UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
+INCLUDING DEPENDENCY Sui
+INCLUDING DEPENDENCY MoveStdlib
+BUILDING yizuo_nft
+Successfully verified dependencies on-chain against source.
+Transaction Digest: 67m1m4DgDb5bhVAUjk6Yg9nrxqvBksiGpbMm3rWeKTDR
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Data │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Owner: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Budget: 12602000 MIST │
+│ Gas Price: 1000 MIST │
+│ Gas Payment: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Version: 236173276 │
+│ │ Digest: DGhxXsBME6zdE98wFZsWyTQC3eS5fKUEjc9bDeWgknis │
+│ └── │
+│ │
+│ Transaction Kind: Programmable │
+│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Input Objects │ │
+│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Pure Arg: Type: address, Value: "0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273" │ │
+│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ ╭─────────────────────────────────────────────────────────────────────────╮ │
+│ │ Commands │ │
+│ ├─────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Publish: │ │
+│ │ ┌ │ │
+│ │ │ Dependencies: │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │
+│ │ └ │ │
+│ │ │ │
+│ │ 1 TransferObjects: │ │
+│ │ ┌ │ │
+│ │ │ Arguments: │ │
+│ │ │ Result 0 │ │
+│ │ │ Address: Input 0 │ │
+│ │ └ │ │
+│ ╰─────────────────────────────────────────────────────────────────────────╯ │
+│ │
+│ Signatures: │
+│ nW8k51KA13CTwOhlQSnXFJx8SHrIW3mhXExRlTrEKQg8XaWPq7aY0fGtyKON28v0oeqCRD0WvLqqrwQx+VbgCQ== │
+│ │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Effects │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Digest: 67m1m4DgDb5bhVAUjk6Yg9nrxqvBksiGpbMm3rWeKTDR │
+│ Status: Success │
+│ Executed Epoch: 565 │
+│ │
+│ Created Objects: │
+│ ┌── │
+│ │ ID: 0x2078527df0bd54f7a12e3004e8d62e3bf7d12b2e530454583f69baa4ebd53622 │
+│ │ Owner: Immutable │
+│ │ Version: 1 │
+│ │ Digest: 8eKM6Y81HNwGwALNBufmSazAgTYkgFNT6dB8FvKnKLvT │
+│ └── │
+│ ┌── │
+│ │ ID: 0x94ce47be266576d75d445c7222014f7fa99db3ba2407f3d7e6e25792a745340a │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173277 │
+│ │ Digest: 6oLExe6XfcqYsoPWcsNq66Hyzrt5ZBPFUbPZYk74QzJ1 │
+│ └── │
+│ ┌── │
+│ │ ID: 0xbba37482ce991de655eb470c6eb0c92387be3c2a513277fcb7138b65b2375f53 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173277 │
+│ │ Digest: AYXPD2ezxNsLMYCjZHLHaLPmLGoQ9w7NWobZsHMMD5o7 │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173277 │
+│ │ Digest: 8Dt92exMUgomSFhv3P97T1homqrWZ9bWDtsg863kFdJg │
+│ └── │
+│ Gas Object: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173277 │
+│ │ Digest: 8Dt92exMUgomSFhv3P97T1homqrWZ9bWDtsg863kFdJg │
+│ └── │
+│ Gas Cost Summary: │
+│ Storage Cost: 10602000 MIST │
+│ Computation Cost: 1000000 MIST │
+│ Storage Rebate: 978120 MIST │
+│ Non-refundable Storage Fee: 9880 MIST │
+│ │
+│ Transaction Dependencies: │
+│ CjwTFBfcYy9AEXN7YUtwnCHM4YR4vpreiDJZYabThz3o │
+│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────╮
+│ No transaction block events │
+╰─────────────────────────────╯
+
+╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Object Changes │
+├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Created Objects: │
+│ ┌── │
+│ │ ObjectID: 0x94ce47be266576d75d445c7222014f7fa99db3ba2407f3d7e6e25792a745340a │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2078527df0bd54f7a12e3004e8d62e3bf7d12b2e530454583f69baa4ebd53622::yizuo_nft::YiZuoNFT │
+│ │ Version: 236173277 │
+│ │ Digest: 6oLExe6XfcqYsoPWcsNq66Hyzrt5ZBPFUbPZYk74QzJ1 │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xbba37482ce991de655eb470c6eb0c92387be3c2a513277fcb7138b65b2375f53 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::package::UpgradeCap │
+│ │ Version: 236173277 │
+│ │ Digest: AYXPD2ezxNsLMYCjZHLHaLPmLGoQ9w7NWobZsHMMD5o7 │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ObjectID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │
+│ │ Version: 236173277 │
+│ │ Digest: 8Dt92exMUgomSFhv3P97T1homqrWZ9bWDtsg863kFdJg │
+│ └── │
+│ Published Objects: │
+│ ┌── │
+│ │ PackageID: 0x2078527df0bd54f7a12e3004e8d62e3bf7d12b2e530454583f69baa4ebd53622 │
+│ │ Version: 1 │
+│ │ Digest: 8eKM6Y81HNwGwALNBufmSazAgTYkgFNT6dB8FvKnKLvT │
+│ │ Modules: yizuo_nft │
+│ └── │
+╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Balance Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0x2::sui::SUI │
+│ │ Amount: -10623880 │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+
+
+
+
+
+yizuo@MM69 yizuo_nft % sui client publish
+[warning] Client/Server api version mismatch, client api version : 1.38.1, server api version : 1.38.0
+UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
+INCLUDING DEPENDENCY Sui
+INCLUDING DEPENDENCY MoveStdlib
+BUILDING yizuo_nft
+Successfully verified dependencies on-chain against source.
+Transaction Digest: 5zuEyZr3NyRbkUD26o3W5rYngpeeHReCzpYoJ3tAJTtR
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Data │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Owner: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Budget: 12921200 MIST │
+│ Gas Price: 1000 MIST │
+│ Gas Payment: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Version: 236173277 │
+│ │ Digest: 8Dt92exMUgomSFhv3P97T1homqrWZ9bWDtsg863kFdJg │
+│ └── │
+│ │
+│ Transaction Kind: Programmable │
+│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Input Objects │ │
+│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Pure Arg: Type: address, Value: "0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273" │ │
+│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ ╭─────────────────────────────────────────────────────────────────────────╮ │
+│ │ Commands │ │
+│ ├─────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Publish: │ │
+│ │ ┌ │ │
+│ │ │ Dependencies: │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │
+│ │ └ │ │
+│ │ │ │
+│ │ 1 TransferObjects: │ │
+│ │ ┌ │ │
+│ │ │ Arguments: │ │
+│ │ │ Result 0 │ │
+│ │ │ Address: Input 0 │ │
+│ │ └ │ │
+│ ╰─────────────────────────────────────────────────────────────────────────╯ │
+│ │
+│ Signatures: │
+│ UmIHF/Z70AuaWONVUa7iKfSAS88FToXA6KkDzXR16/RTCYPi8KIBL4Gg8k/VHWPW3ZpuF65yZIE9LBMzkVA2Bg== │
+│ │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Effects │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Digest: 5zuEyZr3NyRbkUD26o3W5rYngpeeHReCzpYoJ3tAJTtR │
+│ Status: Success │
+│ Executed Epoch: 565 │
+│ │
+│ Created Objects: │
+│ ┌── │
+│ │ ID: 0x168343d27a7c6f8b113354821d1149be1be0135bcea2e074770cfc05c221ba25 │
+│ │ Owner: Immutable │
+│ │ Version: 1 │
+│ │ Digest: 5yaWG1VUC6RfcpySgQNpwTnxoRHBzhrqwcpeSu9SFJp7 │
+│ └── │
+│ ┌── │
+│ │ ID: 0xa1a02949836d86827d850baac1bbf170b87baae82770bfa8c1a6a6840abb44e0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173278 │
+│ │ Digest: 7XSiWm2XAR9MQMwfCYj8WX8q51z8L1XXsiCj8pmYjZhA │
+│ └── │
+│ ┌── │
+│ │ ID: 0xf225fa5e7f850cdb91025d821dc5d632f788e0a3afffeb93af764581c018bb6a │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173278 │
+│ │ Digest: 62qYF6PYgvH9tTm22vnFSD9J96zNmKUqniW1exVT3JoZ │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173278 │
+│ │ Digest: FQEJv4XVcaipjiWiNYeFa4wxChrHmZyHxCb3ZwLYi2be │
+│ └── │
+│ Gas Object: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173278 │
+│ │ Digest: FQEJv4XVcaipjiWiNYeFa4wxChrHmZyHxCb3ZwLYi2be │
+│ └── │
+│ Gas Cost Summary: │
+│ Storage Cost: 10921200 MIST │
+│ Computation Cost: 1000000 MIST │
+│ Storage Rebate: 978120 MIST │
+│ Non-refundable Storage Fee: 9880 MIST │
+│ │
+│ Transaction Dependencies: │
+│ 67m1m4DgDb5bhVAUjk6Yg9nrxqvBksiGpbMm3rWeKTDR │
+│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────╮
+│ No transaction block events │
+╰─────────────────────────────╯
+
+╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Object Changes │
+├─────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Created Objects: │
+│ ┌── │
+│ │ ObjectID: 0xa1a02949836d86827d850baac1bbf170b87baae82770bfa8c1a6a6840abb44e0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x168343d27a7c6f8b113354821d1149be1be0135bcea2e074770cfc05c221ba25::yizuo_nft::YiZuoNFT │
+│ │ Version: 236173278 │
+│ │ Digest: 7XSiWm2XAR9MQMwfCYj8WX8q51z8L1XXsiCj8pmYjZhA │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xf225fa5e7f850cdb91025d821dc5d632f788e0a3afffeb93af764581c018bb6a │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::package::UpgradeCap │
+│ │ Version: 236173278 │
+│ │ Digest: 62qYF6PYgvH9tTm22vnFSD9J96zNmKUqniW1exVT3JoZ │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ObjectID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │
+│ │ Version: 236173278 │
+│ │ Digest: FQEJv4XVcaipjiWiNYeFa4wxChrHmZyHxCb3ZwLYi2be │
+│ └── │
+│ Published Objects: │
+│ ┌── │
+│ │ PackageID: 0x168343d27a7c6f8b113354821d1149be1be0135bcea2e074770cfc05c221ba25 │
+│ │ Version: 1 │
+│ │ Digest: 5yaWG1VUC6RfcpySgQNpwTnxoRHBzhrqwcpeSu9SFJp7 │
+│ │ Modules: yizuo_nft │
+│ └── │
+╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Balance Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0x2::sui::SUI │
+│ │ Amount: -10943080 │
+│ └── │
+
+
+
+
+
+
+
+
+yizuo@MM69 yizuo_nft % sui client publish
+[warning] Client/Server api version mismatch, client api version : 1.38.1, server api version : 1.38.0
+UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
+INCLUDING DEPENDENCY Sui
+INCLUDING DEPENDENCY MoveStdlib
+BUILDING yizuo_nft
+Successfully verified dependencies on-chain against source.
+Transaction Digest: C951KgwVL9yMWF4VTqS5ncUkAg842gShYeZuTomarnef
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Data │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Owner: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ Gas Budget: 22413600 MIST │
+│ Gas Price: 1000 MIST │
+│ Gas Payment: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Version: 236173278 │
+│ │ Digest: FQEJv4XVcaipjiWiNYeFa4wxChrHmZyHxCb3ZwLYi2be │
+│ └── │
+│ │
+│ Transaction Kind: Programmable │
+│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
+│ │ Input Objects │ │
+│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Pure Arg: Type: address, Value: "0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273" │ │
+│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
+│ ╭─────────────────────────────────────────────────────────────────────────╮ │
+│ │ Commands │ │
+│ ├─────────────────────────────────────────────────────────────────────────┤ │
+│ │ 0 Publish: │ │
+│ │ ┌ │ │
+│ │ │ Dependencies: │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │
+│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │
+│ │ └ │ │
+│ │ │ │
+│ │ 1 TransferObjects: │ │
+│ │ ┌ │ │
+│ │ │ Arguments: │ │
+│ │ │ Result 0 │ │
+│ │ │ Address: Input 0 │ │
+│ │ └ │ │
+│ ╰─────────────────────────────────────────────────────────────────────────╯ │
+│ │
+│ Signatures: │
+│ jfSuXmPp9u4kDr9+Anf4LedN7zq2ZwSHfXbNHuqExszyulgzTk9iSB9kNJk51tW7J8phe6U/l4Pl3cvSL4F/Bw== │
+│ │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Effects │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Digest: C951KgwVL9yMWF4VTqS5ncUkAg842gShYeZuTomarnef │
+│ Status: Success │
+│ Executed Epoch: 565 │
+│ │
+│ Created Objects: │
+│ ┌── │
+│ │ ID: 0x0233b5402c9060ee3c8fc983f7ca3c9fd2deb8eb81c4faf58fa6d58a63550b09 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173279 │
+│ │ Digest: 5tV4i7NHBJYnju4fsipSkmesyVs5GtexXeBfdi9kcAA │
+│ └── │
+│ ┌── │
+│ │ ID: 0x327a6cd38ef9dae658d3dfe23910b7a7e3f1f2f5d9397acc7efd58942070b249 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173279 │
+│ │ Digest: 9fk7JBW5Fx1oCP45AHm6pKGmVBY9pXRXMHqhvEB2NFmL │
+│ └── │
+│ ┌── │
+│ │ ID: 0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab │
+│ │ Owner: Immutable │
+│ │ Version: 1 │
+│ │ Digest: 4MuGzx5tHXoqJvCpa92FrTfStoQX889ytLzXy1tsjBfw │
+│ └── │
+│ ┌── │
+│ │ ID: 0x663c9ef1ace9a29c1103f1b093201a0a7abd2971a6e061c2a623a63e1c344280 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173279 │
+│ │ Digest: 6oTHkHYkoJvttRw5SYKfPQQBMLTiM6mk7znfjyTT17BQ │
+│ └── │
+│ ┌── │
+│ │ ID: 0xc7a5c60fe1230bbcd28a62359d050fea698e6f33dd725045beee2b4a83624259 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173279 │
+│ │ Digest: B9hWNDZLzt6twnpGvgiZEJqGqPEg6P1TneriXh6yoyWQ │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173279 │
+│ │ Digest: 8wh1Qh3i24PjrdCw2GSDH8PzVxteeiBZ9fk7PbHQG6hP │
+│ └── │
+│ Gas Object: │
+│ ┌── │
+│ │ ID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ Version: 236173279 │
+│ │ Digest: 8wh1Qh3i24PjrdCw2GSDH8PzVxteeiBZ9fk7PbHQG6hP │
+│ └── │
+│ Gas Cost Summary: │
+│ Storage Cost: 20413600 MIST │
+│ Computation Cost: 1000000 MIST │
+│ Storage Rebate: 978120 MIST │
+│ Non-refundable Storage Fee: 9880 MIST │
+│ │
+│ Transaction Dependencies: │
+│ 5zuEyZr3NyRbkUD26o3W5rYngpeeHReCzpYoJ3tAJTtR │
+│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Transaction Block Events │
+├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ EventID: C951KgwVL9yMWF4VTqS5ncUkAg842gShYeZuTomarnef:0 │
+│ │ PackageID: 0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab │
+│ │ Transaction Module: yizuo_nft │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ EventType: 0x2::display::DisplayCreated<0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab::yizuo_nft::MyNFT> │
+│ │ ParsedJSON: │
+│ │ ┌────┬────────────────────────────────────────────────────────────────────┐ │
+│ │ │ id │ 0xc7a5c60fe1230bbcd28a62359d050fea698e6f33dd725045beee2b4a83624259 │ │
+│ │ └────┴────────────────────────────────────────────────────────────────────┘ │
+│ └── │
+│ ┌── │
+│ │ EventID: C951KgwVL9yMWF4VTqS5ncUkAg842gShYeZuTomarnef:1 │
+│ │ PackageID: 0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab │
+│ │ Transaction Module: yizuo_nft │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ EventType: 0x2::display::VersionUpdated<0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab::yizuo_nft::MyNFT> │
+│ │ ParsedJSON: │
+│ │ ┌─────────┬──────────┬───────┬─────────────────────────────────────────────────┐ │
+│ │ │ fields │ contents │ key │ name │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ value │ {name} │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ key │ link │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ value │ https://sui-heroes.io/hero/{id} │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ key │ image_url │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ value │ {image_url} │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ key │ description │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ value │ A true Hero of the Sui ecosystem! │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ key │ project_url │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ value │ https://sui-heroes.io │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ key │ creator │ │
+│ │ │ │ ├───────┼─────────────────────────────────────────────────┤ │
+│ │ │ │ │ value │ Unknown Sui Fan │ │
+│ │ ├─────────┼──────────┴───────┴─────────────────────────────────────────────────┤ │
+│ │ │ id │ 0xc7a5c60fe1230bbcd28a62359d050fea698e6f33dd725045beee2b4a83624259 │ │
+│ │ ├─────────┼────────────────────────────────────────────────────────────────────┤ │
+│ │ │ version │ 1 │ │
+│ │ └─────────┴────────────────────────────────────────────────────────────────────┘ │
+│ └── │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Object Changes │
+├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ Created Objects: │
+│ ┌── │
+│ │ ObjectID: 0x0233b5402c9060ee3c8fc983f7ca3c9fd2deb8eb81c4faf58fa6d58a63550b09 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab::yizuo_nft::MyNFT │
+│ │ Version: 236173279 │
+│ │ Digest: 5tV4i7NHBJYnju4fsipSkmesyVs5GtexXeBfdi9kcAA │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0x327a6cd38ef9dae658d3dfe23910b7a7e3f1f2f5d9397acc7efd58942070b249 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::package::Publisher │
+│ │ Version: 236173279 │
+│ │ Digest: 9fk7JBW5Fx1oCP45AHm6pKGmVBY9pXRXMHqhvEB2NFmL │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0x663c9ef1ace9a29c1103f1b093201a0a7abd2971a6e061c2a623a63e1c344280 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::package::UpgradeCap │
+│ │ Version: 236173279 │
+│ │ Digest: 6oTHkHYkoJvttRw5SYKfPQQBMLTiM6mk7znfjyTT17BQ │
+│ └── │
+│ ┌── │
+│ │ ObjectID: 0xc7a5c60fe1230bbcd28a62359d050fea698e6f33dd725045beee2b4a83624259 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::display::Display<0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab::yizuo_nft::MyNFT> │
+│ │ Version: 236173279 │
+│ │ Digest: B9hWNDZLzt6twnpGvgiZEJqGqPEg6P1TneriXh6yoyWQ │
+│ └── │
+│ Mutated Objects: │
+│ ┌── │
+│ │ ObjectID: 0xf10537bf642010da16aa62719ee98e4d69135489c2b0f12b1232699576ec98f0 │
+│ │ Sender: 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │
+│ │ Version: 236173279 │
+│ │ Digest: 8wh1Qh3i24PjrdCw2GSDH8PzVxteeiBZ9fk7PbHQG6hP │
+│ └── │
+│ Published Objects: │
+│ ┌── │
+│ │ PackageID: 0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab │
+│ │ Version: 1 │
+│ │ Digest: 4MuGzx5tHXoqJvCpa92FrTfStoQX889ytLzXy1tsjBfw │
+│ │ Modules: yizuo_nft │
+│ └── │
+╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ Balance Changes │
+├───────────────────────────────────────────────────────────────────────────────────────────────────┤
+│ ┌── │
+│ │ Owner: Account Address ( 0xae8da2da7d08b7591709a6e6ff95e1a64067526087749aa4ecf8bb5cb4b8e273 ) │
+│ │ CoinType: 0x2::sui::SUI │
+│ │ Amount: -20435480 │
+│ └── │
+╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
\ No newline at end of file
diff --git a/mover/yizuo66/images/task-3.jpg b/mover/yizuo66/images/task-3.jpg
new file mode 100644
index 000000000..4459146d1
Binary files /dev/null and b/mover/yizuo66/images/task-3.jpg differ
diff --git a/mover/yizuo66/readme.md b/mover/yizuo66/readme.md
index 9ffbc4122..9ed68744b 100644
--- a/mover/yizuo66/readme.md
+++ b/mover/yizuo66/readme.md
@@ -7,7 +7,7 @@
- 工作经验: 9年
- 技术栈: `Go` `Python`
> 重要提示 请认真写自己的简介
-- 多年老运维,对系统架构和运维有丰富经验,最近在接触sui链跟tg相关的项目,学习下move相关知识
+- SRE,对Move特别感兴趣,想通过Move入门区块链
- 联系方式: tg: `https://t.me/Carl_xc`
## 任务
@@ -19,17 +19,17 @@
- [X] package id 在 scan上的查看截图:![Scan截图](./images/02.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 : 0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761
+- [X] Faucet package id : 0xa86b066a51f60c6c86b20f61d3c17b58be469ded3c8068837c4a6d7106f66761
+- [X] 转账 `My Coin` hash: 4U1k1E5WoTHtsehWRtsXHMqJbmvTGfUeWczohgnMankS
+- [X] `Faucet Coin` address1 mint hash: DnzjD5us383qHyoerjzBdUsW63ybCNnn6pUL6gqCRQ2Z
+- [X] `Faucet Coin` address2 mint hash: 4U1k1E5WoTHtsehWRtsXHMqJbmvTGfUeWczohgnMankS
## 03 move NFT
-- [] nft package id :
-- [] nft object id :
-- [] 转账 nft hash:
-- [] scan上的NFT截图:![Scan截图](./images/你的图片地址)
+- [X] nft package id : 0x4f46f827a7994ea523175dcb7e6ee67d817e0719daeead1734ce7998871c62ab
+- [X] nft object id : 0x0233b5402c9060ee3c8fc983f7ca3c9fd2deb8eb81c4faf58fa6d58a63550b09
+- [X] 转账 nft hash: FbcDBqtxeoi1xX4Yh1WPnj6eGRYiZ1FiAtDLjzXwjyjU
+- [X] scan上的NFT截图:![Scan截图](./images/task-3.jpg)
## 04 Move Game
- [] game package id :
diff --git "a/mover/zhbbll/co-learn-2411/images/\347\254\254\344\270\211\345\221\250\345\255\246\344\271\240.jpg" "b/mover/zhbbll/co-learn-2411/images/\347\254\254\344\270\211\345\221\250\345\255\246\344\271\240.jpg"
new file mode 100644
index 000000000..841a25bca
Binary files /dev/null and "b/mover/zhbbll/co-learn-2411/images/\347\254\254\344\270\211\345\221\250\345\255\246\344\271\240.jpg" differ
diff --git "a/mover/zhbbll/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\345\255\246\344\271\240.jpg" "b/mover/zhbbll/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\345\255\246\344\271\240.jpg"
new file mode 100644
index 000000000..dcf004a85
Binary files /dev/null and "b/mover/zhbbll/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\345\255\246\344\271\240.jpg" differ
diff --git "a/mover/zhbbll/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\347\255\224\347\226\221.jpg" "b/mover/zhbbll/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\347\255\224\347\226\221.jpg"
new file mode 100644
index 000000000..f9a93f4f7
Binary files /dev/null and "b/mover/zhbbll/co-learn-2411/images/\347\254\254\345\233\233\345\221\250\347\255\224\347\226\221.jpg" differ
diff --git a/mover/zhbbll/co-learn-2411/readme.md b/mover/zhbbll/co-learn-2411/readme.md
index c33f9802d..cf9011bf8 100644
--- a/mover/zhbbll/co-learn-2411/readme.md
+++ b/mover/zhbbll/co-learn-2411/readme.md
@@ -16,15 +16,15 @@
- [x] 第一周:![学习记录截图](./images/第一周学习.jpg)
- [x] 第二周:![学习记录截图](./images/第二周学习.jpg)
-- [] 第三周:![学习记录截图](./images/你的图片地址)
-- [] 第四周:![学习记录截图](./images/你的图片地址)
+- [x] 第三周:![学习记录截图](./images/第三周学习.jpg)
+- [x] 第四周:![学习记录截图](./images/第四周学习.jpg)
## 参加直播答疑
- [] 第一周:![学习记录截图](./images/你的图片地址)
- [] 第二周:![学习记录截图](./images/你的图片地址)
- [x] 第三周:![学习记录截图](./images/第三周提问.jpg)
-- [] 第四周:![学习记录截图](./images/你的图片地址)
+- [x] 第四周:![学习记录截图](./images/第四周答疑.jpg)
## 群里分享学习笔记
diff --git a/mover/zhbbll/code/task5/log b/mover/zhbbll/code/task5/log
new file mode 100644
index 000000000..a42b0ce53
--- /dev/null
+++ b/mover/zhbbll/code/task5/log
@@ -0,0 +1,20 @@
+test
+zhbbll_coin
+package: 0x64edf6d07750a214174a1ed3df3c870cfbffebe53738aed5ecdc29e398c533ec
+treasure: 0x24cd09344552130b39806e89e76b4ad8b763461b899e771e83b4c4e6e4471695
+coin: 0x0d93177a42e8daa5906c2018ab2d80fb04eb1e9af4ce9376f3664d8e419366d5
+
+zhbbll_faucet_coin:
+package: 0x7dcbd41518b9ae5e771bf523616ec8834b0e1985cbbfa6323ba7a79a50c14f6f
+treasure: 0xc01a5bff64fb9929e56bf51ac96c51fb985c55cff69d8c64c8047008b6b64ca9
+coin: 0x45288747398a67ee2aa26828431bcc1d1cc8fbc45064a8996493d4678403e636
+
+swap
+package: 0x2ebee5b412450c2cc5658baa06f4c42a059f0f7e50d5ca2566def33eb7f47426
+bank: 0x3db70535ee134c6f692f96ffeaa608cc97a7c2a582c4cb2bf028eaff1ed0435b
+adminCap: 0x024fe62e956a0d2ff83f08d99b383f9974b56da7f62d1088d068b47df5bcea7e
+
+main
+package: 0x302c31c249ba3c812342f5f72136e5708b390b739ff93d7ad3bf7814c2c3202b
+bank: 0x1d54c427ad50223ce2fd074c8894e50c136f27e7a90e0bee80d24894c96cef01
+admincap: 0xa7c872e6bda45404253ba982bd5e21680b71ac0cb809044db94bc33bf1f8fed5
diff --git a/mover/zhbbll/code/task5/zhbbll_coin/Move.lock b/mover/zhbbll/code/task5/zhbbll_coin/Move.lock
new file mode 100644
index 000000000..f13ccf10c
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_coin/Move.lock
@@ -0,0 +1,34 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 2
+manifest_digest = "595254CBB9A72AD3D48CC9FCE491F0106E5230A719423568EA6632F23CA64A31"
+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.34.0"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.mainnet]
+chain-id = "35834a8a"
+original-published-id = "0x7e15b359c7fb72be1f6467c9c3db1f216b6e5b72eb7b4a259ff896ad4fcf508f"
+latest-published-id = "0x7e15b359c7fb72be1f6467c9c3db1f216b6e5b72eb7b4a259ff896ad4fcf508f"
+published-version = "1"
diff --git a/mover/zhbbll/code/task5/zhbbll_coin/Move.toml b/mover/zhbbll/code/task5/zhbbll_coin/Move.toml
new file mode 100644
index 000000000..f5e73692e
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_coin/Move.toml
@@ -0,0 +1,37 @@
+[package]
+name = "zhbbll_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]
+zhbbll_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/zhbbll/code/task5/zhbbll_coin/sources/zhbbll_coin.move b/mover/zhbbll/code/task5/zhbbll_coin/sources/zhbbll_coin.move
new file mode 100644
index 000000000..7d2dae957
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_coin/sources/zhbbll_coin.move
@@ -0,0 +1,35 @@
+module zhbbll_coin::zhbbll_coin{
+ use sui::coin::{Self, Coin, TreasuryCap};
+ // create an OTW
+ public struct ZHBBLL_COIN has drop {}
+
+ fun init(witness: ZHBBLL_COIN, ctx: &mut TxContext){
+ let (treasury_cap, metadata) = coin::create_currency(
+ witness,
+ 9,
+ b"ZHBBLL",
+ b"ZHBBLL_COIN",
+ b"ChainBabyCoin",
+ option::none(),
+ ctx
+ );
+ transfer::public_freeze_object(metadata);
+ transfer::public_transfer(treasury_cap,tx_context::sender(ctx));
+ }
+ // mint and transfer
+ 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);
+ }
+}
diff --git a/mover/zhbbll/code/task5/zhbbll_coin/tests/zhbbll_coin_tests.move b/mover/zhbbll/code/task5/zhbbll_coin/tests/zhbbll_coin_tests.move
new file mode 100644
index 000000000..6650b88d1
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_coin/tests/zhbbll_coin_tests.move
@@ -0,0 +1,19 @@
+/*
+#[test_only]
+module zhbbll_coin::zhbbll_coin_tests {
+ // uncomment this line to import the module
+ // use zhbbll_coin::zhbbll_coin;
+
+ const ENotImplemented: u64 = 0;
+
+ #[test]
+ fun test_zhbbll_coin() {
+ // pass
+ }
+
+ #[test, expected_failure(abort_code = ::zhbbll_coin::zhbbll_coin_tests::ENotImplemented)]
+ fun test_zhbbll_coin_fail() {
+ abort ENotImplemented
+ }
+}
+*/
diff --git a/mover/zhbbll/code/task5/zhbbll_faucet_coin/Move.lock b/mover/zhbbll/code/task5/zhbbll_faucet_coin/Move.lock
new file mode 100644
index 000000000..c41ea3373
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_faucet_coin/Move.lock
@@ -0,0 +1,34 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 2
+manifest_digest = "1B240EFE1DF4B46347B0750B8D24AB4139C44ADDB7143ED7844C6644FE840620"
+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.34.0"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.mainnet]
+chain-id = "35834a8a"
+original-published-id = "0xe7366828123241f6ec15bbd77b03a02bbe308ab9d95781c6bb82d3f66ea5e444"
+latest-published-id = "0xe7366828123241f6ec15bbd77b03a02bbe308ab9d95781c6bb82d3f66ea5e444"
+published-version = "1"
diff --git a/mover/zhbbll/code/task5/zhbbll_faucet_coin/Move.toml b/mover/zhbbll/code/task5/zhbbll_faucet_coin/Move.toml
new file mode 100644
index 000000000..2475c9624
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_faucet_coin/Move.toml
@@ -0,0 +1,37 @@
+[package]
+name = "zhbbll_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]
+zhbbll_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/zhbbll/code/task5/zhbbll_faucet_coin/sources/zhbbll_faucet_coin.move b/mover/zhbbll/code/task5/zhbbll_faucet_coin/sources/zhbbll_faucet_coin.move
new file mode 100644
index 000000000..364a228cc
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_faucet_coin/sources/zhbbll_faucet_coin.move
@@ -0,0 +1,36 @@
+module zhbbll_faucet_coin::zhbbll_faucet_coin{
+ use sui::coin::{Self, Coin, TreasuryCap};
+ // create an OTW
+ public struct ZHBBLL_FAUCET_COIN has drop {}
+
+ fun init(witness: ZHBBLL_FAUCET_COIN, ctx: &mut TxContext){
+ let (treasury_cap, metadata) = coin::create_currency(
+ witness,
+ 9,
+ b"ZHBBLL_FAUCET",
+ b"ZHBBLL_FAUCET_COIN",
+ b"ChainBabyCoin",
+ option::none(),
+ ctx
+ );
+ transfer::public_freeze_object(metadata);
+ // share object
+ transfer::public_share_object(treasury_cap);
+ }
+ // mint and transfer
+ 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);
+ }
+}
diff --git a/mover/zhbbll/code/task5/zhbbll_faucet_coin/tests/zhbbll_faucet_coin_tests.move b/mover/zhbbll/code/task5/zhbbll_faucet_coin/tests/zhbbll_faucet_coin_tests.move
new file mode 100644
index 000000000..66441f4e2
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_faucet_coin/tests/zhbbll_faucet_coin_tests.move
@@ -0,0 +1,19 @@
+/*
+#[test_only]
+module zhbbll_faucet_coin::zhbbll_faucet_coin_tests {
+ // uncomment this line to import the module
+ // use zhbbll_faucet_coin::zhbbll_faucet_coin;
+
+ const ENotImplemented: u64 = 0;
+
+ #[test]
+ fun test_zhbbll_faucet_coin() {
+ // pass
+ }
+
+ #[test, expected_failure(abort_code = ::zhbbll_faucet_coin::zhbbll_faucet_coin_tests::ENotImplemented)]
+ fun test_zhbbll_faucet_coin_fail() {
+ abort ENotImplemented
+ }
+}
+*/
diff --git a/mover/zhbbll/code/task5/zhbbll_swap/Move.lock b/mover/zhbbll/code/task5/zhbbll_swap/Move.lock
new file mode 100644
index 000000000..44fd7a433
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_swap/Move.lock
@@ -0,0 +1,52 @@
+# @generated by Move, please check-in and do not edit manually.
+
+[move]
+version = 2
+manifest_digest = "89342AB15DD46B039CD694B88BCB8939952D493E82F19EC3F5180709484A1936"
+deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3"
+dependencies = [
+ { name = "Sui" },
+ { name = "zhbbll_coin" },
+ { name = "zhbbll_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 = "zhbbll_coin"
+source = { local = "..\\zhbbll_coin" }
+
+dependencies = [
+ { name = "Sui" },
+]
+
+[[move.package]]
+name = "zhbbll_faucet_coin"
+source = { local = "..\\zhbbll_faucet_coin" }
+
+dependencies = [
+ { name = "Sui" },
+]
+
+[move.toolchain-version]
+compiler-version = "1.34.0"
+edition = "2024.beta"
+flavor = "sui"
+
+[env]
+
+[env.mainnet]
+chain-id = "35834a8a"
+original-published-id = "0x302c31c249ba3c812342f5f72136e5708b390b739ff93d7ad3bf7814c2c3202b"
+latest-published-id = "0x302c31c249ba3c812342f5f72136e5708b390b739ff93d7ad3bf7814c2c3202b"
+published-version = "1"
diff --git a/mover/zhbbll/code/task5/zhbbll_swap/Move.toml b/mover/zhbbll/code/task5/zhbbll_swap/Move.toml
new file mode 100644
index 000000000..6e14e4d61
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_swap/Move.toml
@@ -0,0 +1,41 @@
+[package]
+name = "zhbbll_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" }
+zhbbll_coin={local="../zhbbll_coin"}
+zhbbll_faucet_coin={local="../zhbbll_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]
+zhbbll_swap = "0x0"
+pub = "0xeb2539e24af3cefa817a23feb648f7d7af3c19f9b51dfa4f9d07bc925bd67889"
+coin_trea_id = "0x474e5318854d59734152a04213bd5e502943d46ae371dc5a2bdd010c60bd98d0"
+
+# Named addresses will be accessible in Move as `@name`. They're also exported:
+# for example, `std = "0x1"` is exported by the Standard Library.
+# alice = "0xA11CE"
+
+[dev-dependencies]
+# The dev-dependencies section allows overriding dependencies for `--test` and
+# `--dev` modes. You can introduce test-only dependencies here.
+# Local = { local = "../path/to/dev-build" }
+
+[dev-addresses]
+# The dev-addresses section allows overwriting named addresses for the `--test`
+# and `--dev` modes.
+# alice = "0xB0B"
+
diff --git a/mover/zhbbll/code/task5/zhbbll_swap/sources/zhbbll_swap.move b/mover/zhbbll/code/task5/zhbbll_swap/sources/zhbbll_swap.move
new file mode 100644
index 000000000..a150ebdf7
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_swap/sources/zhbbll_swap.move
@@ -0,0 +1,96 @@
+/// Module: zhbbll_swap
+module zhbbll_swap::zhbbll_swap{
+ use zhbbll_coin::zhbbll_coin::ZHBBLL_COIN;
+ use zhbbll_faucet_coin::zhbbll_faucet_coin::ZHBBLL_FAUCET_COIN;
+ use sui::balance::{Self, Balance};
+ use sui::transfer::{transfer, share_object, public_transfer};
+ use sui::coin::{Self, Coin};
+
+ public struct AdminCap has key{
+ id: UID,
+ }
+
+ public struct Bank has key{
+ id: UID,
+ zhbbll_coin: Balance,
+ zhbbll_faucet_coin: Balance,
+ }
+ fun init(ctx: &mut TxContext){
+ let bank = Bank{
+ id: object::new(ctx),
+ zhbbll_coin: balance::zero(),
+ zhbbll_faucet_coin: balance::zero(),
+ };
+ share_object(bank);
+ let admin_cap = AdminCap{
+ id: object::new(ctx),
+ };
+ transfer(admin_cap, ctx.sender());
+ }
+ public entry fun deposit_zhbbll_coin(
+ _: &AdminCap,
+ bank: &mut Bank,
+ zhbbll_coin: Coin,
+ _: &mut TxContext
+ ){
+ let coin_balance = coin::into_balance(zhbbll_coin);
+ balance::join(&mut bank.zhbbll_coin, coin_balance);
+ }
+ public entry fun deposit_zhbbll_faucet_coin(
+ _: &AdminCap,
+ bank: &mut Bank,
+ zhbbll_faucet_coin: Coin,
+ _: &mut TxContext
+ ){
+ let coin_balance = coin::into_balance(zhbbll_faucet_coin);
+ balance::join(&mut bank.zhbbll_faucet_coin, coin_balance);
+ }
+ public entry fun withdraw_zhbbll_coin(
+ _: &AdminCap,
+ bank: &mut Bank,
+ amount: u64,
+ ctx: &mut TxContext,
+ ){
+ let coin_balance = balance::split(&mut bank.zhbbll_coin, amount);
+ let coin = coin::from_balance(coin_balance, ctx);
+ public_transfer(coin, ctx.sender());
+ }
+ public entry fun withdraw_zhbbll_faucet_coin(
+ _: &AdminCap,
+ bank: &mut Bank,
+ amount: u64,
+ ctx: &mut TxContext,
+ ){
+ let coin_balance = balance::split(&mut bank.zhbbll_faucet_coin, amount);
+ let coin = coin::from_balance(coin_balance, ctx);
+ public_transfer(coin, ctx.sender());
+ }
+
+ public entry fun swap_zhbbll_coin_to_zhbbll_faucet_coin(
+ bank: &mut Bank,
+ zhbbll_coin: Coin,
+ ctx: &mut TxContext,
+ ){
+ let amount = coin::value(&zhbbll_coin);
+ balance::join(&mut bank.zhbbll_coin, coin::into_balance(zhbbll_coin));
+
+ let amount_faucet = amount * 2;
+ let coin_faucet = balance::split(&mut bank.zhbbll_faucet_coin, amount_faucet);
+ public_transfer(coin::from_balance(coin_faucet, ctx), ctx.sender());
+ }
+ public entry fun swap_zhbbll_faucet_coin_to_zhbbll_coin(
+ bank: &mut Bank,
+ zhbbll_faucet_coin: Coin,
+ ctx: &mut TxContext,
+ ){
+ let amount = coin::value(&zhbbll_faucet_coin);
+ balance::join(&mut bank.zhbbll_faucet_coin, coin::into_balance(zhbbll_faucet_coin));
+
+ let amount_coin = amount / 2;
+ let coin = balance::split(&mut bank.zhbbll_coin, amount_coin);
+ public_transfer(coin::from_balance(coin, ctx), ctx.sender());
+ }
+
+
+
+}
diff --git a/mover/zhbbll/code/task5/zhbbll_swap/tests/zhbbll_swap_tests.move b/mover/zhbbll/code/task5/zhbbll_swap/tests/zhbbll_swap_tests.move
new file mode 100644
index 000000000..b42932b51
--- /dev/null
+++ b/mover/zhbbll/code/task5/zhbbll_swap/tests/zhbbll_swap_tests.move
@@ -0,0 +1,18 @@
+/*
+#[test_only]
+module zhbbll_swap::zhbbll_swap_tests;
+// uncomment this line to import the module
+// use zhbbll_swap::zhbbll_swap;
+
+const ENotImplemented: u64 = 0;
+
+#[test]
+fun test_zhbbll_swap() {
+ // pass
+}
+
+#[test, expected_failure(abort_code = ::zhbbll_swap::zhbbll_swap_tests::ENotImplemented)]
+fun test_zhbbll_swap_fail() {
+ abort ENotImplemented
+}
+*/
diff --git a/mover/zhbbll/readme.md b/mover/zhbbll/readme.md
index c0cdea514..819257e9e 100644
--- a/mover/zhbbll/readme.md
+++ b/mover/zhbbll/readme.md
@@ -42,14 +42,16 @@
## 05 Move Swap
-- [] swap package id :
-- [] call swap CoinA-> CoinB hash :
-- [] call swap CoinB-> CoinA hash :
+- [x] swap package id : 0x302c31c249ba3c812342f5f72136e5708b390b739ff93d7ad3bf7814c2c3202b
+- [x] call swap CoinA-> CoinB hash : 3PRDNA3YMYWYBVxALuSvykhePFPuWAZPAQyR1mq6fWwS
+- [x] call swap CoinB-> CoinA hash : BnyHKB8iMBEQCgtZwf7PuDPim96jrH9h6AWrvnM7qMAn
## 06 Dapp-kit SDK PTB
-- [] save hash :
+
+- [] save hash :
## 07 Move CTF Check In
+
- [] CLI call 截图 : ![截图](./images/你的图片地址)
- [] flag hash :