Skip to Content
dApps
Sur cette page

Signature

Appelez enable() avant d’utiliser l’API dApp. Les adresses renvoyées par l’API CIP-30 sont des octets encodés en hexadécimal ; les paramètres de transaction et de valeur sont du CBOR encodé en hexadécimal. Les exemples de navigateur utilisant Buffer nécessitent une importation explicite de buffer ou un utilitaire de conversion d’octets.

Découvrez comment signer des données pour l’authentification sur Cardano.


Signer des données (CIP-8)

Signer des données arbitraires pour l’authentification :

const api = await window.cardano.onekey.enable() const addresses = await api.getUsedAddresses() const address = addresses[0] // Message to sign const payload = Buffer.from('Hello Cardano!').toString('hex') const signature = await api.signData(address, payload) console.log({ signature: signature.signature, // COSE_Sign1 signature key: signature.key, // COSE_Key public key })

Vérifier la signature

import { COSESign1, COSEKey } from '@emurgo/cardano-message-signing-browser' const coseSign1 = COSESign1.from_bytes( Buffer.from(signature.signature, 'hex') ) const coseKey = COSEKey.from_bytes( Buffer.from(signature.key, 'hex') ) // Get the signed payload const signedPayload = coseSign1.payload() // Verify signature // Parsing COSE is not verification. Use a CIP-8 verifier to check the // protected headers, signing structure, payload, signature, and address binding.

Gestion des erreurs

try { const api = await window.cardano.onekey.enable() } catch (error) { if (error.code === -3) { console.log('The wallet refused the request') } else if (error.code === -4) { console.log('The account changed; reconnect and retry') } else { console.error('Error:', error.message) } }

Erreurs courantes

CodeDescription
-1Requête non valide
-2Erreur interne
-3Requête refusée
-4Compte modifié
Dernière mise à jour le