Sur cette page
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
| Code | Description |
|---|---|
| 4001 | Demande rejetée par l’utilisateur |
| 4100 | Non autorisé |
| -32603 | Erreur interne |
Dernière mise à jour le