Skip to Content
dApps

signPsbt

Cette méthode parcourt toutes les entrées correspondant à l’adresse actuelle pour les signer.

Compatibilité des portefeuilles et types d’adresses

Type de portefeuilleModèleTypes d’adresses pris en charge
Portefeuille logiciel-p2wpkh (Segwit natif), p2tr (Taproot)
Portefeuille matérielPro, Classic1Sp2tr (Taproot)

Méthode

declare function signPsbt( psbtHex: string, options?: { autoFinalized?: boolean; toSignInputs?: Array<{ index: number; address?: string; publicKey?: string; sighashTypes?: number[]; disableTweakSigner?: boolean; useTweakedSigner?: boolean; }>; } ): Promise<string>

Paramètres

  • psbtHex — obligatoire string la chaîne hexadécimale de la PSBT à signer
  • options — facultatif object
    • autoFinalized — facultatif boolean : indique s’il faut finaliser la PSBT après signature, la valeur par défaut est true
    • toSignInputs — facultatif Array : spécifier les entrées à signer
      • index — obligatoire number : entrée à signer
      • address — facultatif string : (spécifier address ou publicKey) clé privée correspondante à utiliser pour la signature
      • publicKey — facultatif string : (spécifier address ou publicKey) clé privée correspondante à utiliser pour la signature
      • sighashTypes — facultatif number[] : types sighash facultatifs pour l’entrée
      • disableTweakSigner — facultatif boolean : false par défaut. Définir sur true pour utiliser la clé privée d’origine lors de la signature des entrées taproot
      • useTweakedSigner — facultatif boolean : imposer l’utilisation ou non d’un signataire ajusté. Priorité supérieure à disableTweakSigner

Valeur de retour

Promise<string> — la chaîne hexadécimale de la PSBT signée

Exemple

const provider = (window.$onekey && window.$onekey.btc) || window.unisat; try { // Basic signing const signedBasic = await provider.signPsbt("70736274ff01007d...."); // Advanced signing with options const signedAdvanced = await provider.signPsbt( "70736274ff01007d....", { autoFinalized: false, toSignInputs: [ { index: 0, address: "bc1qxxx...xxx", }, { index: 1, publicKey: "02xxx...xxx", sighashTypes: [1] }, { index: 2, publicKey: "02xxx...xxx", disableTweakSigner: true } ] } ); console.log('Signed PSBT:', signedAdvanced); } catch (error) { console.error('Failed to sign PSBT:', error); // Handle signing errors appropriately }

Démonstration

Ouvrir l’exemple 

La compatibilité des portefeuilles et des adresses dépend du portefeuille et de la version du micrologiciel. Vérifiez la prise en charge du compte cible avant de vous fier au tableau de compatibilité.

Les PSBT, adresses et clés publiques abrégées ci-dessus sont des valeurs fictives. Remplacez-les par des valeurs complètes. L’interface publiée du fournisseur expose autoFinalized ; les options supplémentaires de toSignInputs dépendent de l’implémentation du portefeuille et doivent être vérifiées avec votre version cible. La signature ne diffuse pas de transaction.

Dernière mise à jour le