返回顶部
t

ts-sdk-wallet-adapterTS钱包适配器

How to integrate wallet connection in React frontends using @aptos-labs/wallet-adapter-react. Covers

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
151
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

ts-sdk-wallet-adapter

TypeScript SDK: 钱包适配器 (React)

目的

指导如何在React中使用@aptos-labs/wallet-adapter-react实现钱包连接和前端交易提交。最终用户通过浏览器钱包(Petra、Nightly等)签署交易——绝不使用原始私钥。

必须遵循

  1. 1. 使用@aptos-labs/wallet-adapter-react进行前端钱包集成——这是标准的React适配器。
  2. 用AptosWalletAdapterProvider包裹应用根组件——所有useWallet()调用都需要此上下文。
  3. 使用useWallet()钩子在React组件中访问钱包功能。
  4. 在前端使用钱包适配器的signAndSubmitTransaction(来自useWallet())——而不是SDK直接提供的aptos.signAndSubmitTransaction。
  5. 提交后始终调用aptos.waitForTransaction({ transactionHash })——钱包在交易被接受时返回,而非已提交时。

严禁事项

  1. 1. 不要在浏览器/前端使用Account.generate()或原始私钥——为最终用户使用钱包适配器。
  2. 不要在React组件中使用SDK的aptos.signAndSubmitTransaction——使用useWallet()中钱包适配器的版本。
  3. 不要硬编码钱包名称——使用useWallet()中的wallets数组获取动态列表。

安装

bash
npm install @aptos-labs/wallet-adapter-react

现代AIP-62标准钱包(Petra、Nightly等)会自动检测,无需额外安装包。旧版钱包需要单独安装其插件包。



提供者设置

用AptosWalletAdapterProvider包裹应用根组件:

tsx
// main.tsx 或 App.tsx
import { AptosWalletAdapterProvider } from @aptos-labs/wallet-adapter-react;
import { Network } from @aptos-labs/ts-sdk;

function App() {
return (
autoConnect={true}
dappConfig={{
network: Network.TESTNET
}}
onError={(error) => console.error(钱包错误:, error)}
>


);
}



useWallet() 钩子

tsx
import { useWallet } from @aptos-labs/wallet-adapter-react;

function MyComponent() {
const {
account, // 当前连接账户 { address, publicKey }
connected, // 布尔值:是否已连接钱包?
wallet, // 当前钱包信息 { name, icon, url }
wallets, // 可用钱包数组
connect, // (walletName) => Promise
disconnect, // () => Promise
signAndSubmitTransaction, // 提交入口函数调用(在前端使用此方法)
signTransaction, // 仅签名不提交
submitTransaction, // 提交已签名的交易
signMessage, // 签名任意消息
signMessageAndVerify, // 签名并验证消息
changeNetwork, // 切换网络(并非所有钱包支持)
network // 当前网络信息
} = useWallet();
}



前端交易模式

使用带InputTransactionData的类型化负载:

tsx
// entry-functions/increment.ts
import { InputTransactionData } from @aptos-labs/wallet-adapter-react;
import { MODULE_ADDRESS } from ../lib/aptos;

export function buildIncrementPayload(): InputTransactionData {
return {
data: {
function: ${MODULE_ADDRESS}::counter::increment,
functionArguments: []
}
};
}

tsx
// components/IncrementButton.tsx
import { useWallet } from @aptos-labs/wallet-adapter-react;
import { aptos } from ../lib/aptos;
import { buildIncrementPayload } from ../entry-functions/increment;

function IncrementButton() {
const { signAndSubmitTransaction } = useWallet();

const handleClick = async () => {
try {
const response = await signAndSubmitTransaction(buildIncrementPayload());
await aptos.waitForTransaction({
transactionHash: response.hash
});
} catch (error) {
console.error(交易失败:, error);
}
};

return ;
}



钱包连接UI

tsx
import { useWallet } from @aptos-labs/wallet-adapter-react;

function WalletInfo() {
const { account, connected, connect, disconnect, wallet, wallets } = useWallet();

if (!connected) {
return (


{wallets.map((w) => (

))}

);
}

return (


已连接: {account?.address}


钱包: {wallet?.name}




);
}


常见错误


错误正确做法
缺少AptosWalletAdapterProvider包裹用提供者包裹应用根组件
提交后未等待交易完成
始终调用aptos.waitForTransaction() |
| 在React中使用SDK的aptos.signAndSubmitTransaction | 使用useWallet()中钱包适配器的signAndSubmitTransaction |
| 在前端使用Account.generate() | 使用钱包适配器;仅在服务器/脚本中生成 |
| 未处理用户拒绝操作 | 捕获并检查与拒绝相关的错误信息 |
| 硬编码钱包名称 | 使用useWallet()中的wallets数组获取动态列表 |


参考

use-ts-sdk

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ts-sdk-wallet-adapter-1776168131 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 ts-sdk-wallet-adapter-1776168131 技能

通过命令行安装

skillhub install ts-sdk-wallet-adapter-1776168131

下载

⬇ 下载 ts-sdk-wallet-adapter v1.0.0(免费)

文件大小: 2.85 KB | 发布时间: 2026-4-17 16:24

v1.0.0 最新 2026-4-17 16:24
Initial release of the ts-sdk-wallet-adapter skill.

- Provides a comprehensive guide for integrating wallet connection in React apps using @aptos-labs/wallet-adapter-react.
- Explains setup of AptosWalletAdapterProvider and useWallet() hook.
- Details best practices for transaction submission and wallet connection UI.
- Includes "always" and "never" guidelines for secure and correct frontend wallet handling.
- Lists common mistakes and their solutions for smooth integration.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large