Skip to Content
dApps

Signature

Les exemples de signature ci-dessous utilisent connectSuiAccount() depuis Premiers pas. Il renvoie un compte Wallet Standard et sa chaîne active. Les exemples utilisent @mysten/[email protected]. Même les anciennes méthodes *TransactionBlock déclarent désormais des entrées Transaction dans @mysten/[email protected].

Demandez l’autorisation avant de signer, sélectionnez un compte connecté et lisez la chaîne active. Ces exemples utilisent @mysten/[email protected], qui correspond à @mysten/[email protected] accepté par le fournisseur actuel.

Découvrez comment signer des messages pour l’authentification.

Initialisez le contexte du compte avant les exemples suivants :

const { account, chain } = await connectSuiAccount()

Signer un message personnel

Signer des messages arbitraires pour l’authentification :

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 })

Signer un message (historique)

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

Vérifier la signature

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)

Gestion des erreurs

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

Codes d’erreur courants

CodeDescription
4001Demande rejetée par l’utilisateur
4100Non autorisé
-32603Erreur interne
Dernière mise à jour le