UNPKG

@btc-vision/transaction

Version:

OPNet transaction library allows you to create and sign transactions for the OPNet network.

51 lines 1.81 kB
import { createPrivateKey, createPublicKey } from '@btc-vision/ecpair'; /** * Wraps an untweaked UniversalSigner as PsbtParallelKeyPair. * Used for script-path signing (raw private key needed). */ export function toParallelKeyPair(signer) { return { publicKey: signer.publicKey, getPrivateKey() { if (!signer.privateKey) { throw new Error('Signer does not have a private key'); } return createPrivateKey(signer.privateKey); }, sign(hash, lowR) { return signer.sign(hash, lowR); }, signSchnorr(hash) { if (!signer.signSchnorr) { throw new Error('Signer does not support Schnorr signing'); } return signer.signSchnorr(hash); }, }; } /** * Creates a hybrid adapter with untweaked publicKey (for PSBT input matching) * but tweaked privateKey (for correct key-path Schnorr signatures). * Uses createPrivateKey/createPublicKey for branded type validation. */ export function toTweakedParallelKeyPair(untweakedSigner, tweakedSigner) { return { publicKey: createPublicKey(untweakedSigner.publicKey), getPrivateKey() { if (!tweakedSigner.privateKey) { throw new Error('Tweaked signer does not have a private key'); } return createPrivateKey(tweakedSigner.privateKey); }, sign(hash, lowR) { return tweakedSigner.sign(hash, lowR); }, signSchnorr(hash) { if (!tweakedSigner.signSchnorr) { throw new Error('Tweaked signer does not support Schnorr signing'); } return tweakedSigner.signSchnorr(hash); }, }; } //# sourceMappingURL=ParallelSignerAdapter.js.map