UNPKG

2.14 kBTypeScriptView Raw
1/// <reference types="node" />
2export interface BlankOutput {
3 script: Buffer;
4 valueBuffer: Buffer;
5}
6export interface Output {
7 script: Buffer;
8 value: number;
9}
10declare type OpenOutput = Output | BlankOutput;
11export interface Input {
12 hash: Buffer;
13 index: number;
14 script: Buffer;
15 sequence: number;
16 witness: Buffer[];
17}
18export declare class Transaction {
19 static readonly DEFAULT_SEQUENCE = 4294967295;
20 static readonly SIGHASH_ALL = 1;
21 static readonly SIGHASH_NONE = 2;
22 static readonly SIGHASH_SINGLE = 3;
23 static readonly SIGHASH_ANYONECANPAY = 128;
24 static readonly ADVANCED_TRANSACTION_MARKER = 0;
25 static readonly ADVANCED_TRANSACTION_FLAG = 1;
26 static fromBuffer(buffer: Buffer, _NO_STRICT?: boolean): Transaction;
27 static fromHex(hex: string): Transaction;
28 static isCoinbaseHash(buffer: Buffer): boolean;
29 version: number;
30 locktime: number;
31 ins: Input[];
32 outs: OpenOutput[];
33 isCoinbase(): boolean;
34 addInput(hash: Buffer, index: number, sequence?: number, scriptSig?: Buffer): number;
35 addOutput(scriptPubKey: Buffer, value: number): number;
36 hasWitnesses(): boolean;
37 weight(): number;
38 virtualSize(): number;
39 byteLength(): number;
40 clone(): Transaction;
41 /**
42 * Hash transaction for signing a specific input.
43 *
44 * Bitcoin uses a different hash for each signed transaction input.
45 * This method copies the transaction, makes the necessary changes based on the
46 * hashType, and then hashes the result.
47 * This hash can then be used to sign the provided transaction input.
48 */
49 hashForSignature(inIndex: number, prevOutScript: Buffer, hashType: number): Buffer;
50 hashForWitnessV0(inIndex: number, prevOutScript: Buffer, value: number, hashType: number): Buffer;
51 getHash(forWitness?: boolean): Buffer;
52 getId(): string;
53 toBuffer(buffer?: Buffer, initialOffset?: number): Buffer;
54 toHex(): string;
55 setInputScript(index: number, scriptSig: Buffer): void;
56 setWitness(index: number, witness: Buffer[]): void;
57 private __byteLength;
58 private __toBuffer;
59}
60export {};