下载

arrow_down

开发者服务

arrow_down

更多

arrow_down
activityactivityactivityactivity
  • themelight
  • languageIcon

  • menu
Skip to Content
Zh CnDocs
Connect Wallet
教程Aptos-AIP-62

Aptos-AIP-62

AIP-62 标准是 Aptos 官方引入的新标准。它是一套与链无关的接口和约定,旨在改善应用程序和注入钱包之间的交互。它使用Wallet Standard方法来检测已安装的钱包并自动显示可连接钱包的列表。AIP-62 还升级了 DApps 和钱包之间交互的数据接口,例如封装的RawTransaction等。

💡
Tip

在不久的将来,随着钱包采用新标准,钱包适配器将弃用旧标准,仅保留对AIP-62钱包标准的支持。

当在 Bitget Wallet App 中运行 DApp 或在安装了 Chrome 扩展的 Chrome 浏览器中时,应用程序可以通过包装AptosWalletAdapterProvider来实现钱包注入。

import { AptosWalletAdapterProvider } from '@aptos-labs/wallet-adapter-react' ;<AptosWalletAdapterProvider autoConnect> <App /> </AptosWalletAdapterProvider>

钱包基础方法

获取钱包列表

DApps 可以直接使用 hooks 来获取通过registerWallet注册的钱包列表:

import { useWallet } from '@aptos-labs/wallet-adapter-react' const { wallets } = useWallet() // [{name: 'Bitget Wallet', icon: '...'}]

连接钱包

将钱包名称传递给 connect 方法以连接到指定钱包:

参数

  • name - string:钱包名称
import { useWallet } from '@aptos-labs/wallet-adapter-react' const { connect } = useWallet() // [{name: 'Bitget Wallet', icon: '...'}] await connect('Bitget Wallet')

获取钱包地址

import { useWallet } from '@aptos-labs/wallet-adapter-react' const { account } = useWallet() // {address: '...', publicKey: '...'}

获取网络

import { useWallet } from '@aptos-labs/wallet-adapter-react' const { network } = useWallet()

消息

签名

参数

  • options
    • message - string
    • nonce - string
import { useWallet } from '@aptos-labs/wallet-adapter-react' const { signMessage } = useWallet() const res = await signMessage({ message: '要签名并显示给用户的消息', nonce: '1', })

验证

签名信息旨在验证对私有资源的所有权。

import nacl from 'tweetnacl'; import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { signMessage, account } = useWallet(); const message = "hello"; const nonce = "random_string" try { const response = await signMessage({ message, nonce, }); const key = account.publicKey!.slice(2, 66); const verified = nacl.sign.detached.verify(Buffer.from(response.fullMessage), Buffer.from(response.signature, 'hex'), Buffer.from(key, 'hex')); console.log(verified); } catch (error) { console.error(error); }

交易

签名交易

import { useWallet } from '@aptos-labs/wallet-adapter-react' const { signTransaction } = useWallet() const transaction = { arguments: ['100000', '330679'], function: '0xc7efb4076dbe143cbcd98cfaaa929ecfc8f299203dfff63b95ccb6bfe19850fa::router::swap_exact_input', type: 'entry_function_payload', type_arguments: [ '0x1::aptos_coin::AptosCoin', '0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6::oft::CakeOFT', ], } try { const res = await signTransaction(transaction) } catch (error) { // 查看"错误" }

签名并广播交易

import { useWallet } from '@aptos-labs/wallet-adapter-react' const { signAndSubmitTransaction } = useWallet() try { const pendingTransaction = await signAndSubmitTransaction({ data: transaction, }) } catch (error) { // 查看"错误" }
Last updated on