@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
TypeScript
/// <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