Auf dieser Seite
signPsbt
Diese Methode durchläuft zum Signieren alle Eingaben, die der aktuellen Adresse entsprechen.
Kompatibilität von Wallets und Adresstypen
| Wallet-Typ | Modell | Unterstützte Adresstypen |
|---|---|---|
| Software-Wallet | - | p2wpkh (Native Segwit), p2tr (Taproot) |
| Hardware-Wallet | Pro, Classic1S | p2tr (Taproot) |
Methode
declare function signPsbt(
psbtHex: string,
options?: {
autoFinalized?: boolean;
toSignInputs?: Array<{
index: number;
address?: string;
publicKey?: string;
sighashTypes?: number[];
disableTweakSigner?: boolean;
useTweakedSigner?: boolean;
}>;
}
): Promise<string>Parameter
psbtHex— erforderlichstringdie Hex-Zeichenfolge der zu signierenden PSBToptions— optionalobjectautoFinalized— optionalboolean: ob die PSBT nach dem Signieren finalisiert werden soll; Standard isttruetoSignInputs— optionalArray: festlegen, welche Eingaben signiert werden sollenindex— erforderlichnumber: welche Eingabe signiert werden solladdress— optionalstring: welcher zugehörige private Schlüssel zum Signieren verwendet werden soll (entweder address oder publicKey angeben)publicKey— optionalstring: welcher zugehörige private Schlüssel zum Signieren verwendet werden soll (entweder address oder publicKey angeben)sighashTypes— optionalnumber[]: optionale sighash-Typen für die EingabedisableTweakSigner— optionalboolean: Standard ist false. Auf true setzen, um beim Signieren von Taproot-Eingaben den ursprünglichen privaten Schlüssel zu verwendenuseTweakedSigner— optionalboolean: erzwingen, ob ein angepasster Signierer verwendet wird. Höhere Priorität als disableTweakSigner
Rückgabe
Promise<string> — die Hex-Zeichenfolge der signierten PSBT
Beispiel
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
}Demo
Die Kompatibilität von Wallet und Adresse hängt von der Wallet- und Firmware-Version ab. Prüfen Sie die Unterstützung für das Zielkonto, bevor Sie sich auf die Kompatibilitätstabelle verlassen.
Die oben verkürzten PSBTs, Adressen und öffentlichen Schlüssel sind Platzhalter. Ersetzen Sie sie durch vollständige Werte. Die veröffentlichte Provider-Schnittstelle stellt autoFinalized bereit; zusätzliche toSignInputs-Optionen hängen von der Wallet-Implementierung ab und sollten mit Ihrer Zielversion geprüft werden. Das Signieren überträgt keine Transaktion.
Zuletzt aktualisiert am