UNPKG

@muirglacier/jellyfish-transaction-signature

Version:

A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin

54 lines 2.14 kB
/// <reference types="node" /> import { EllipticPair } from '@muirglacier/jellyfish-crypto'; import { Script, SIGHASH, Transaction, TransactionSegWit, Vout, Witness } from '@muirglacier/jellyfish-transaction'; export interface SignInputOption { /** * Prevout of this input */ prevout: Vout; /** * @return {Promise<Buffer>} compressed public key */ publicKey: () => Promise<Buffer>; /** * @param {Buffer} hash to sign * @return {Buffer} signature in DER format, SIGHASHTYPE not included * @see https://tools.ietf.org/html/rfc6979 * @see https://github.com/bitcoin/bitcoin/pull/13666 */ sign: (hash: Buffer) => Promise<Buffer>; /** * Optionally provide a witness script, * or it will be guessed if it can be guessed. */ witnessScript?: Script; } export interface SignOption { sigHashType?: SIGHASH; validate?: { version?: boolean; lockTime?: boolean; }; } /** * TransactionSigner * 1. you can sign an unsigned transaction and get a signed transaction. * 2. you can sign a vin and get a witness in tx for that vin * * https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki * https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki * https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki */ export declare const TransactionSigner: { /** * @param {Transaction} transaction to sign * @param {number} index of the vin to sign * @param {SignInputOption} option input option * @param {SIGHASH} sigHashType SIGHASH type */ signInput(transaction: Transaction, index: number, option: SignInputOption, sigHashType?: SIGHASH): Promise<Witness>; sign(transaction: Transaction, inputOptions: SignInputOption[], option?: SignOption): Promise<TransactionSegWit>; signPrevoutsWithEllipticPairs(transaction: Transaction, prevouts: Vout[], ellipticPairs: EllipticPair[], option?: SignOption): Promise<TransactionSegWit>; validate(transaction: Transaction, inputOptions: SignInputOption[], option: SignOption): void; }; //# sourceMappingURL=tx_signature.d.ts.map