En esta página
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ódigo | Descripción |
|---|---|
| 4001 | El usuario rechazó la solicitud |
| 4100 | Sin autorización |
| -32603 | Error interno |
Última actualización el