用途:该技能面向基于浏览器的 Sui dApp 开发,使用 dApp Kit SDK。SDK 分为两个包:@mysten/dapp-kit-react 提供 React hooks、DAppKitProvider 与 React 组件封装;@mysten/dapp-kit-core 提供框架无关的核心能力,包括 actions、nanostores 状态与 Web Components,可用于 Vue、原生 JS、Svelte 等。两者暴露相同的 createDAppKit 工厂与相同 action API(signAndExecuteTransaction、signTransaction、signPersonalMessage 等),差异在于响应式状态与 UI 渲染方式。构建 PTB(splitCoins、moveCall、coinWithBalance 等)需同时应用 sui-ts-sdk 技能。旧的 @mysten/dapp-kit 已弃用(仅 JSON-RPC,不支持 gRPC/GraphQL),新项目必须使用新包。
主要能力:钱包连接与断开(ConnectButton、Connect Modal、useWallets、useDAppKit);多网络与 gRPC 客户端配置(createDAppKit、SuiGrpcClient);连接状态与账户信息读取(useWalletConnection、useCurrentAccount、useCurrentWallet);访问当前网络客户端(useCurrentClient);链上数据查询(配合 @tanstack/react-query,支持 enabled: !!account);分页查询(useInfiniteQuery);签名并执行交易。
使用方式:React 安装 npm install @mysten/dapp-kit-react @mysten/sui,可选 npm install @tanstack/react-query;非 React 安装 npm install @mysten/dapp-kit-core @mysten/sui,Vue 可加 npm install @nanostores/vue。用 createDAppKit 创建实例,配置 networks、defaultNetwork、createClient(须返回 SuiGrpcClient,不可传 SuiJsonRpcClient)。React 用 DAppKitProvider 包裹应用,并通过 declare module '@mysten/dapp-kit-react' 注册实例类型以获得类型推断。非 React 用 nanostores stores($connection、$currentNetwork、$currentClient、$wallets)订阅状态,并可注册 '@mysten/dapp-kit-core/web' 使用 Web Components(instance 需以 DOM 属性传入)。QueryClientProvider 必须包裹 react-query 用法。
适用场景与限制:适用于需要钱包连接、链上读取与交易提交的浏览器应用;钱包需实现 Sui Wallet Standard 才会被自动检测,组件须客户端渲染。资料未提供价格、收费或效果数据,部分内容在原文中被截断。