Skip to Content
dApp 接入

签名

了解如何签署消息用于身份验证。


签署个人消息

签署任意消息用于身份验证:

const message = new TextEncoder().encode('Hello, Sui!') const [account] = await provider.getAccounts() const chain = await provider.getActiveChain() const result = await provider.signPersonalMessage({ message, account, chain, }) console.log({ signature: result.signature, // Base64 编码的签名 bytes: result.bytes, // 已签名的消息字节 })

签署消息(旧版)

const message = new TextEncoder().encode('Hello, Sui!') const [account] = await provider.getAccounts() const chain = await provider.getActiveChain() const result = await provider.signMessage({ message, account, chain, }) console.log({ signature: result.signature, messageBytes: result.messageBytes, })

验证签名

import { verifyPersonalMessage } from '@mysten/sui.js/verify' const message = new TextEncoder().encode('Hello, Sui!') const [account] = await provider.getAccounts() const chain = await provider.getActiveChain() const { signature } = await provider.signPersonalMessage({ message, account, chain }) const accounts = await provider.getAccounts() const publicKey = accounts[0].publicKey const isValid = await verifyPersonalMessage(message, signature) console.log('签名有效:', isValid)

错误处理

try { await provider.requestPermissions() } catch (error) { if (error.code === 4001) { console.log('用户拒绝了连接请求') } else { console.error('连接错误:', error.message) } }

常见错误码

错误码描述
4001用户拒绝请求
4100未授权
-32603内部错误
Last updated on