Skip to Content
dApps

Firma

Los siguientes ejemplos de firma usan connectSuiAccount() de Primeros pasos. Devuelve una cuenta de Wallet Standard y su cadena activa. Los ejemplos usan @mysten/[email protected]. Incluso los métodos antiguos *TransactionBlock ahora declaran entradas Transaction en @mysten/[email protected].

Solicita permiso antes de firmar, selecciona una cuenta conectada y consulta la cadena activa. Estos ejemplos usan @mysten/[email protected], que coincide con @mysten/[email protected] aceptado por el proveedor actual.

Aprende a firmar mensajes para autenticación.

Inicializa el contexto de cuenta antes de los siguientes ejemplos:

const { account, chain } = await connectSuiAccount()

Firmar un mensaje personal

Firma mensajes arbitrarios para autenticación:

const message = new TextEncoder().encode('Hello, Sui!') const result = await provider.signPersonalMessage({ account, chain, message, }) console.log({ signature: result.signature, // Base64 encoded signature bytes: result.bytes, // Signed message bytes })

Firmar un mensaje (heredado)

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

Verificar la firma

import { verifyPersonalMessageSignature } from '@mysten/sui/verify' const message = new TextEncoder().encode('Hello, Sui!') const { signature } = await provider.signPersonalMessage({ message, account, chain }) const signerKey = await verifyPersonalMessageSignature(message, signature) const isExpectedSigner = signerKey.toSuiAddress() === account.address console.log('Expected signer:', isExpectedSigner)

Gestión de errores

try { await provider.requestPermissions() } catch (error) { if (error.code === 4001) { console.log('User rejected the connection request') } else { console.error('Connection error:', error.message) } }

Códigos de error habituales

CódigoDescripción
4001El usuario rechazó la solicitud
4100Sin autorización
-32603Error interno
Última actualización el