diff --git a/types/bitcoinjs-lib/bitcoinjs-lib-tests.ts b/types/bitcoinjs-lib/bitcoinjs-lib-tests.ts index 7267fe5d26..6723a7e577 100644 --- a/types/bitcoinjs-lib/bitcoinjs-lib-tests.ts +++ b/types/bitcoinjs-lib/bitcoinjs-lib-tests.ts @@ -1,5 +1,3 @@ -/// - import bigi = require('bigi'); import bitcoin = require('bitcoinjs-lib'); @@ -8,57 +6,57 @@ declare const describe: any; declare const assert: any; describe('bitcoinjs-lib (basic)', () => { - it('can generate a random bitcoin address', () => { - // for testing only - function rng() { return new Buffer('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'); } + it('can generate a random bitcoin address', () => { + // for testing only + function rng() { return new Buffer('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'); } - // generate random keyPair - const keyPair = bitcoin.ECPair.makeRandom({ rng }); - const address = keyPair.getAddress(); + // generate random keyPair + const keyPair = bitcoin.ECPair.makeRandom({ rng }); + const address = keyPair.getAddress(); - assert.strictEqual(address, '1F5VhMHukdnUES9kfXqzPzMeF1GPHKiF64'); - }); + assert.strictEqual(address, '1F5VhMHukdnUES9kfXqzPzMeF1GPHKiF64'); + }); - it('can generate an address from a SHA256 hash', () => { - const hash = bitcoin.crypto.sha256('correct horse battery staple'); - const d = bigi.fromBuffer(hash); + it('can generate an address from a SHA256 hash', () => { + const hash = bitcoin.crypto.sha256(Buffer.from('correct horse battery staple', 'utf8')); + const d = bigi.fromBuffer(hash); - const keyPair = new bitcoin.ECPair(d); - const address = keyPair.getAddress(); + const keyPair = new bitcoin.ECPair(d); + const address = keyPair.getAddress(); - assert.strictEqual(address, '1C7zdTfnkzmr13HfA2vNm5SJYRK6nEKyq8'); - }); + assert.strictEqual(address, '1C7zdTfnkzmr13HfA2vNm5SJYRK6nEKyq8'); + }); - it('can generate a random keypair for alternative networks', () => { - // for testing only - function rng() { return new Buffer('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'); } + it('can generate a random keypair for alternative networks', () => { + // for testing only + function rng() { return new Buffer('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'); } - const litecoin = bitcoin.networks.litecoin; + const litecoin = bitcoin.networks.litecoin; - const keyPair = bitcoin.ECPair.makeRandom({ network: litecoin, rng }); - const wif = keyPair.toWIF(); - const address = keyPair.getAddress(); + const keyPair = bitcoin.ECPair.makeRandom({ network: litecoin, rng }); + const wif = keyPair.toWIF(); + const address = keyPair.getAddress(); - assert.strictEqual(address, 'LZJSxZbjqJ2XVEquqfqHg1RQTDdfST5PTn'); - assert.strictEqual(wif, 'T7A4PUSgTDHecBxW1ZiYFrDNRih2o7M8Gf9xpoCgudPF9gDiNvuS'); - }); + assert.strictEqual(address, 'LZJSxZbjqJ2XVEquqfqHg1RQTDdfST5PTn'); + assert.strictEqual(wif, 'T7A4PUSgTDHecBxW1ZiYFrDNRih2o7M8Gf9xpoCgudPF9gDiNvuS'); + }); - it('can import an address via WIF', () => { - const keyPair = bitcoin.ECPair.fromWIF('Kxr9tQED9H44gCmp6HAdmemAzU3n84H3dGkuWTKvE23JgHMW8gct'); - const address = keyPair.getAddress(); + it('can import an address via WIF', () => { + const keyPair = bitcoin.ECPair.fromWIF('Kxr9tQED9H44gCmp6HAdmemAzU3n84H3dGkuWTKvE23JgHMW8gct', bitcoin.networks.testnet); + const address = keyPair.getAddress(); - assert.strictEqual(address, '19AAjaTUbRjQCMuVczepkoPswiZRhjtg31'); - }); + assert.strictEqual(address, '19AAjaTUbRjQCMuVczepkoPswiZRhjtg31'); + }); - it('can create a Transaction', () => { - const keyPair = bitcoin.ECPair.fromWIF('L1uyy5qTuGrVXrmrsvHWHgVzW9kKdrp27wBC7Vs6nZDTF2BRUVwy'); - const tx = new bitcoin.TransactionBuilder(); + it('can create a Transaction', () => { + const keyPair = bitcoin.ECPair.fromWIF('L1uyy5qTuGrVXrmrsvHWHgVzW9kKdrp27wBC7Vs6nZDTF2BRUVwy', bitcoin.networks.testnet); + const tx = new bitcoin.TransactionBuilder(); - tx.addInput('aa94ab02c182214f090e99a0d57021caffd0f195a81c24602b1028b130b63e31', 0); - tx.addOutput('1Gokm82v6DmtwKEB8AiVhm82hyFSsEvBDK', 15000); - tx.sign(0, keyPair); + tx.addInput('aa94ab02c182214f090e99a0d57021caffd0f195a81c24602b1028b130b63e31', 0); + tx.addOutput('1Gokm82v6DmtwKEB8AiVhm82hyFSsEvBDK', 15000); + tx.sign(0, keyPair); - // tslint:disable-next-line:max-line-length - assert.strictEqual(tx.build().toHex(), '0100000001313eb630b128102b60241ca895f1d0ffca2170d5a0990e094f2182c102ab94aa000000006b483045022100aefbcf847900b01dd3e3debe054d3b6d03d715d50aea8525f5ea3396f168a1fb022013d181d05b15b90111808b22ef4f9ebe701caf2ab48db269691fdf4e9048f4f60121029f50f51d63b345039a290c94bffd3180c99ed659ff6ea6b1242bca47eb93b59fffffffff01983a0000000000001976a914ad618cf4333b3b248f9744e8e81db2964d0ae39788ac00000000'); - }); + // tslint:disable-next-line:max-line-length + assert.strictEqual(tx.build().toHex(), '0100000001313eb630b128102b60241ca895f1d0ffca2170d5a0990e094f2182c102ab94aa000000006b483045022100aefbcf847900b01dd3e3debe054d3b6d03d715d50aea8525f5ea3396f168a1fb022013d181d05b15b90111808b22ef4f9ebe701caf2ab48db269691fdf4e9048f4f60121029f50f51d63b345039a290c94bffd3180c99ed659ff6ea6b1242bca47eb93b59fffffffff01983a0000000000001976a914ad618cf4333b3b248f9744e8e81db2964d0ae39788ac00000000'); + }); }); diff --git a/types/bitcoinjs-lib/index.d.ts b/types/bitcoinjs-lib/index.d.ts index 600edda000..dc2af73403 100644 --- a/types/bitcoinjs-lib/index.d.ts +++ b/types/bitcoinjs-lib/index.d.ts @@ -1,114 +1,238 @@ -// Type definitions for bitcoinjs-lib 2.3 -// Project: https://github.com/bitcoinjs/bitcoinjs-lib#readme -// Definitions by: Mohamed Hegazy +// Type definitions for bitcoinjs-lib 3.0 +// Project: https://github.com/bitcoinjs/bitcoinjs-lib +// Definitions by: Mohamed Hegazy +// Daniel +// Ron Buckton // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// Declaration file initially generated by dts-gen for bitcoinjs-lib 3.0.3 +// based on the flow version found at https://github.com/flowtype/flow-typed/blob/master/definitions/npm/bitcoinjs-lib_v2.x.x/flow_v0.17.x-/bitcoinjs-lib_v2.x.x.js -export class Block { - constructor(); - checkMerkleRoot(): any; - checkProofOfWork(): any; - getHash(): any; - getId(): any; - getUTCDate(): any; - toBuffer(headersOnly: any): any; - toHex(headersOnly: any): any; - static calculateMerkleRoot(transactions: any): any; - static calculateTarget(bits: any): any; - static fromBuffer(buffer: any): any; - static fromHex(hex: any): any; +/// +import BigInteger = require("bigi"); + +export interface Utxo { + address: string; + amount: number; + scriptPubKey: Buffer; + txid: string; + vout: number; } -export class ECPair { - constructor(d: any, Q?: any, options?: any); - getAddress(): string; - getNetwork(): Network; - getPublicKeyBuffer(): any; - sign(hash: any): any; - toWIF(): string; - verify(hash: any, signature: any): boolean; - static fromPublicKeyBuffer(buffer: any, network: Network): ECPair; - static fromWIF(string: any, network?: Network): ECPair; - static makeRandom(options: any): ECPair; + +export interface Output { + script: Buffer; + value: number; } -export class ECSignature { - constructor(r: any, s: any, ...args: any[]); - toCompact(i: any, compressed: any): any; - toDER(): any; - toScriptSignature(hashType: any): any; - static fromDER(buffer: any): ECSignature; - static parseCompact(buffer: any): ECSignature; - static parseScriptSignature(buffer: any): ECSignature; -} -export class HDNode { - constructor(keyPair: any, chainCode: any, ...args: any[]); - derive(index: any): any; - deriveHardened(index: any): any; - derivePath(path: any): any; - getAddress(): string; - getFingerprint(): any; - getIdentifier(): any; - getNetwork(): Network; - getPublicKeyBuffer(): any; - isNeutered(): any; - neutered(): any; - sign(hash: any): any; - toBase58(__isPrivate: any): any; - toString(__isPrivate: any): any; - verify(hash: any, signature: any): any; - static HIGHEST_BIT: number; - static LENGTH: number; - static fromBase58(string: any, networks: Network[]): HDNode; - static fromSeedBuffer(seed: any, network: Network, ...args: any[]): HDNode; - static fromSeedHex(hex: any, network: Network): HDNode; -} -export class Transaction { - constructor(); - addInput(hash: any, index: any, sequence: any, scriptSig: any, ...args: any[]): any; - addOutput(scriptPubKey: any, value: any, ...args: any[]): any; - byteLength(): number; - clone(): Transaction; - getHash(): any; - getId(): any; - hashForSignature(inIndex: any, prevOutScript: any, hashType: any, ...args: any[]): any; - isCoinbase(): boolean; - setInputScript(index: any, scriptSig: any, ...args: any[]): void; - toBuffer(buffer?: any, initialOffset?: any): Buffer; - toHex(): string; - static DEFAULT_SEQUENCE: number; - static SIGHASH_ALL: number; - static SIGHASH_ANYONECANPAY: number; - static SIGHASH_NONE: number; - static SIGHASH_SINGLE: number; - static fromBuffer(buffer: any, __noStrict: any): Transaction; - static fromHex(hex: any): Transaction; - static isCoinbaseHash(buffer: any): Transaction; -} -export class TransactionBuilder { - constructor(network?: Network); - addInput(txHash: any, vout: any, sequence?: any, prevOutScript?: any): any; - addOutput(scriptPubKey: any, value: any): any; - build(): Transaction; - buildIncomplete(): Transaction; - setLockTime(locktime: number): any; - setVersion(version: number): void; - sign(index: any, keyPair: any, redeemScript?: any, hashType?: any): any; - static fromTransaction(transaction: Transaction, network: Network): TransactionBuilder; + +export interface Input { + script: Buffer; + hash: Buffer; + index: number; + sequence: number; } export interface Network { - bitcoin: { - private: number; - public: number; - }; - dustThreshold: number; - messagePrefix: string; - pubKeyHash: number; - scriptHash: number; - wif: number; + bip32: { + public: number; + private: number; + }; + messagePrefix: string; + pubKeyHash: number; + scriptHash: number; + wif: number; +} + +export class Block { + constructor(); + + byteLength(headersOnly?: boolean): number; + + checkMerkleRoot(): any; + + checkProofOfWork(): any; + + getHash(): Buffer; + + getId(): string; + + getUTCDate(): any; + + toBuffer(headersOnly?: boolean): Buffer; + + toHex(headersOnly?: boolean): string; + + static calculateMerkleRoot(transactions: Transaction[] | Array<{ getHash(): Buffer; }>): Buffer; + + static calculateTarget(bits: number): Buffer; + + static fromBuffer(buffer: Buffer): Block; + + static fromHex(hex: string): Block; +} + +export class ECPair { + constructor(d: BigInteger, Q?: null | undefined, options?: { compressed?: boolean, network?: Network }); + + constructor(d: null | undefined, Q: any, options?: { compressed?: boolean, network?: Network }); // Q should be ECPoint, but not sure how to define such type + + getAddress(): string; + + getNetwork(): Network; + + getPublicKeyBuffer(): Buffer; + + sign(hash: Buffer): Buffer; + + toWIF(): string; + + verify(hash: Buffer, signature: ECSignature): boolean; + + static fromPublicKeyBuffer(buffer: Buffer, network: Network): ECPair; + + static fromWIF(string: string, network: Network): ECPair; + + static makeRandom(options?: { compressed?: boolean, network?: Network, rng?: Rng }): ECPair; +} + +export type Rng = (size: number) => Buffer; + +export class ECSignature { + constructor(r: BigInteger, s: BigInteger); + + toCompact(i: number, compressed: boolean): Buffer; + + toDER(): Buffer; + + toScriptSignature(hashType: number): Buffer; + + static fromDER(buffer: Buffer): ECSignature; + + static parseCompact(buffer: Buffer): { compressed: boolean, i: number, signature: ECSignature }; + + static parseScriptSignature(buffer: Buffer): { signature: ECSignature, hashType: number }; +} + +export class HDNode { + constructor(keyPair: ECPair, chainCode: Buffer); + + keyPair: ECPair; + + derive(index: number): HDNode; + + deriveHardened(index: number): HDNode; + + derivePath(path: string): HDNode; + + getAddress(): string; + + getFingerprint(): Buffer; + + getIdentifier(): Buffer; + + getNetwork(): Network; + + getPublicKeyBuffer(): Buffer; + + isNeutered(): boolean; + + neutered(): HDNode; + + sign(hash: Buffer): ECSignature; + + toBase58(): string; + + verify(hash: Buffer, signature: ECSignature): Buffer; + + static HIGHEST_BIT: number; + + static LENGTH: number; + + static fromBase58(string: string, networks?: Network[] | Network): HDNode; + + static fromSeedBuffer(seed: Buffer, network?: Network): HDNode; + + static fromSeedHex(hex: string, network?: Network): HDNode; + + static MASTER_SECRET: Buffer; +} + +export class Transaction { + version: number; + locktime: number; + ins: Input[]; + outs: Output[]; + constructor(); + + addInput(hash: Buffer, index: number, sequence?: number, scriptSig?: Buffer): number; + + addOutput(scriptPubKey: Buffer, value: number): number; + + byteLength(): number; + + clone(): Transaction; + + getHash(): Buffer; + + getId(): string; + + hasWitnesses(): boolean; + + hashForSignature(inIndex: number, prevOutScript: Buffer, hashType: number): Buffer; + + hashForWitnessV0(inIndex: number, prevOutScript: Buffer, value: number, hashType: number): Buffer; + + isCoinbase(): boolean; + + setInputScript(index: number, scriptSig: Buffer): void; + + setWitness(index: number, witness: any, ...args: any[]): void; + + toBuffer(buffer: Buffer, initialOffset?: number): Buffer; + + toHex(): string; + + static ADVANCED_TRANSACTION_FLAG: number; + + static ADVANCED_TRANSACTION_MARKER: number; + + static DEFAULT_SEQUENCE: number; + + static SIGHASH_ALL: number; + + static SIGHASH_ANYONECANPAY: number; + + static SIGHASH_NONE: number; + + static SIGHASH_SINGLE: number; + + static fromBuffer(buffer: Buffer, __noStrict?: boolean): Transaction; + + static fromHex(hex: string): Transaction; + + static isCoinbaseHash(buffer: Buffer): boolean; +} + +export class TransactionBuilder { + constructor(network?: Network, maximumFeeRate?: number); + + addInput(txhash: Buffer | string | Transaction, vout: number, sequence?: number, prevOutScript?: Buffer): number; + + addOutput(scriptPubKey: Buffer | string, value: number): number; + + build(): Transaction; + + buildIncomplete(): Transaction; + + setLockTime(locktime: number): void; + + setVersion(version: number): void; + + sign(vin: number, keyPair: ECPair, redeemScript?: Buffer, hashType?: number, witnessValue?: number, witnessScript?: Buffer): void; + + static fromTransaction(transaction: Transaction, network: Network): TransactionBuilder; } export const networks: { bitcoin: Network; - dogecoin: Network; litecoin: Network; testnet: Network; }; @@ -232,172 +356,78 @@ export const opcodes: { OP_WITHIN: number; OP_XOR: number; }; -export namespace HDNode { - namespace MASTER_SECRET { - const BYTES_PER_ELEMENT: number; - const byteLength: number; - const byteOffset: number; - const length: number; - const offset: number; - function asciiSlice(): any; - function asciiWrite(): any; - function base64Slice(): any; - function base64Write(): any; - function compare(target: any, start: any, end: any, thisStart: any, thisEnd: any): any; - function copy(): any; - function copyWithin(p0: any, p1: any): any; - function entries(): any; - function equals(b: any): any; - function every(p0: any): any; - function fill(val: any, start: any, end: any, encoding: any): any; - function filter(p0: any): any; - function find(p0: any): any; - function findIndex(p0: any): any; - function forEach(p0: any): any; - function hexSlice(): any; - function hexWrite(): any; - function includes(val: any, byteOffset: any, encoding: any): any; - function indexOf(val: any, byteOffset: any, encoding: any): any; - function inspect(): any; - function join(p0: any): any; - function keys(): any; - function lastIndexOf(val: any, byteOffset: any, encoding: any): any; - function latin1Slice(): any; - function latin1Write(): any; - function map(p0: any): any; - function readDoubleBE(offset: any, noAssert: any): any; - function readDoubleLE(offset: any, noAssert: any): any; - function readFloatBE(offset: any, noAssert: any): any; - function readFloatLE(offset: any, noAssert: any): any; - function readInt16BE(offset: any, noAssert: any): any; - function readInt16LE(offset: any, noAssert: any): any; - function readInt32BE(offset: any, noAssert: any): any; - function readInt32LE(offset: any, noAssert: any): any; - function readInt8(offset: any, noAssert: any): any; - function readIntBE(offset: any, byteLength: any, noAssert: any): any; - function readIntLE(offset: any, byteLength: any, noAssert: any): any; - function readUInt16BE(offset: any, noAssert: any): any; - function readUInt16LE(offset: any, noAssert: any): any; - function readUInt32BE(offset: any, noAssert: any): any; - function readUInt32LE(offset: any, noAssert: any): any; - function readUInt8(offset: any, noAssert: any): any; - function readUIntBE(offset: any, byteLength: any, noAssert: any): any; - function readUIntLE(offset: any, byteLength: any, noAssert: any): any; - function reduce(p0: any): any; - function reduceRight(p0: any): any; - function reverse(): any; - function set(p0: any): any; - function slice(start: any, end: any): any; - function some(p0: any): any; - function sort(p0: any): any; - function subarray(p0: any, p1: any): any; - function swap16(): any; - function swap32(): any; - function swap64(): any; - function toJSON(): any; - function toLocaleString(): any; - function toString(...args: any[]): any; - function ucs2Slice(): any; - function ucs2Write(): any; - function undefined(): any; - function utf8Slice(): any; - function utf8Write(): any; - function values(): any; - function write(string: any, offset: any, length: any, encoding: any): any; - function writeDoubleBE(val: any, offset: any, noAssert: any): any; - function writeDoubleLE(val: any, offset: any, noAssert: any): any; - function writeFloatBE(val: any, offset: any, noAssert: any): any; - function writeFloatLE(val: any, offset: any, noAssert: any): any; - function writeInt16BE(value: any, offset: any, noAssert: any): any; - function writeInt16LE(value: any, offset: any, noAssert: any): any; - function writeInt32BE(value: any, offset: any, noAssert: any): any; - function writeInt32LE(value: any, offset: any, noAssert: any): any; - function writeInt8(value: any, offset: any, noAssert: any): any; - function writeIntBE(value: any, offset: any, byteLength: any, noAssert: any): any; - function writeIntLE(value: any, offset: any, byteLength: any, noAssert: any): any; - function writeUInt16BE(value: any, offset: any, noAssert: any): any; - function writeUInt16LE(value: any, offset: any, noAssert: any): any; - function writeUInt32BE(value: any, offset: any, noAssert: any): any; - function writeUInt32LE(value: any, offset: any, noAssert: any): any; - function writeUInt8(value: any, offset: any, noAssert: any): any; - function writeUIntBE(value: any, offset: any, byteLength: any, noAssert: any): any; - function writeUIntLE(value: any, offset: any, byteLength: any, noAssert: any): any; - namespace buffer { - const byteLength: number; - function slice(p0: any, p1: any): any; - } - namespace parent { - const byteLength: number; - function slice(p0: any, p1: any): any; - } - } -} + export namespace address { - function fromBase58Check(address: any): any; - function fromOutputScript(scriptPubKey: any, network?: Network): any; - function toBase58Check(hash: any, version: any, ...args: any[]): any; - function toOutputScript(address: any, network?: Network): any; + function fromBase58Check(address: string): { hash: Buffer, version: number }; + + function fromOutputScript(outputScript: Buffer, network?: Network): { hash: Buffer, version: number }; + + function toBase58Check(hash: Buffer, version: number): string; + + function toOutputScript(address: string, network?: Network): string; } + export namespace bufferutils { - function equal(a: any, b: any): any; - function pushDataSize(i: any): any; - function readPushDataInt(buffer: any, offset: any): any; - function readUInt64LE(buffer: any, offset: any): any; - function readVarInt(buffer: any, offset: any): any; - function reverse(src: any): any; - function varIntBuffer(i: any): any; - function varIntSize(i: any): any; - function writePushDataInt(buffer: any, number: any, offset: any): any; - function writeUInt64LE(buffer: any, value: any, offset: any): void; - function writeVarInt(buffer: any, number: any, offset: any): any; + function pushDataSize(i: number): number; + + function readPushDataInt(buffer: Buffer, offset: number): { opcode: number, number: number, size: number }; + + function readUInt64LE(buffer: Buffer, offset: number): number; + + function readVarInt(buffer: Buffer, offset: number): { number: number, size: number }; + + function varIntBuffer(number: number, buffer: Buffer, offset: number): Buffer; + + function varIntSize(number: number): number; + + function writePushDataInt(buffer: Buffer, number: number, offset: number): number; + + function writeUInt64LE(buffer: Buffer, value: number, offset: number): number; + + function writeVarInt(buffer: Buffer, number: number, offset: number): number; } + export namespace crypto { - function hash160(buffer: any): any; - function hash256(buffer: any): any; - function ripemd160(buffer: any): any; - function sha1(buffer: any): any; - function sha256(buffer: any): any; -} -export namespace message { - function magicHash(message: any, network: any): any; - function sign(keyPair: any, message: any, network: any): any; - function verify(address: any, signature: any, message: any, network: any): any; + function hash160(buffer: Buffer): Buffer; + + function hash256(buffer: Buffer): Buffer; + + function ripemd160(buffer: Buffer): Buffer; + + function sha1(buffer: Buffer): Buffer; + + function sha256(buffer: Buffer): Buffer; } + export namespace script { - function classifyInput(script: any, allowIncomplete: any): any; - function classifyOutput(script: any): any; - function compile(chunks: any): any; - function decompile(buffer: any): any; - function fromASM(asm: any): any; - function isCanonicalPubKey(buffer: any): any; - function isCanonicalSignature(buffer: any): any; - function isDefinedHashType(hashType: any): any; - function isMultisigInput(script: any, allowIncomplete: any): any; - function isMultisigOutput(script: any): any; - function isNullDataOutput(script: any): any; - function isPubKeyHashInput(script: any): any; - function isPubKeyHashOutput(script: any): any; - function isPubKeyInput(script: any): any; - function isPubKeyOutput(script: any): any; - function isScriptHashInput(script: any, allowIncomplete: any): any; - function isScriptHashOutput(script: any): any; - function isWitnessPubKeyHashOutput(script: any): any; - function isWitnessScriptHashOutput(script: any): any; - function multisigInput(signatures: any, scriptPubKey: any): any; - function multisigOutput(m: any, pubKeys: any, ...args: any[]): any; - function nullDataOutput(data: any): any; - function pubKeyHashInput(signature: any, pubKey: any, ...args: any[]): any; - function pubKeyHashOutput(pubKeyHash: any): any; - function pubKeyInput(signature: any): any; - function pubKeyOutput(pubKey: any): any; - function scriptHashInput(scriptSig: any, scriptPubKey: any): any; - function scriptHashOutput(scriptHash: any): any; - function toASM(chunks: any): any; - function witnessPubKeyHashOutput(pubKeyHash: any): any; - function witnessScriptHashInput(scriptSig: any, scriptPubKey: any): any; - function witnessScriptHashOutput(scriptHash: any): any; + function classifyInput(script: Buffer | Array, allowIncomplete: boolean): "pubkeyhash" | "scripthash" | "multisig" | "pubkey" | "nonstandard"; + + function classifyOutput(script: Buffer | Array): "witnesspubkeyhash" | "witnessscripthash" | "pubkeyhash" + | "scripthash" | "multisig" | "pubkey" | "witnesscommitment" | "nulldata" | "nonstandard"; + + function classifyWitness(script: Buffer | Array, allowIncomplete: boolean): "witnesspubkeyhash" | "witnessscripthash" | "nonstandard"; + + function compile(chunks: Array): Buffer; + + function decompile(buffer: Buffer): Array; + + function fromASM(asm: string): Buffer; + + function isCanonicalPubKey(buffer: Buffer): boolean; + + function isCanonicalSignature(buffer: Buffer): boolean; + + function isDefinedHashType(hashType: any): boolean; + + function isPushOnly(value: any): boolean; + + function toASM(chunks: Buffer | Array): string; + + function toStack(chunks: Buffer | Array): Buffer[]; + namespace number { - function decode(buffer: any, maxLength: any, minimal: any): any; - function encode(number: any): any; + function decode(buffer: Buffer, maxLength: number, minimal: boolean): number; + + function encode(number: number): Buffer; } } diff --git a/types/bitcoinjs-lib/tsconfig.json b/types/bitcoinjs-lib/tsconfig.json index 7a9a4cf261..d1f5ec75b6 100644 --- a/types/bitcoinjs-lib/tsconfig.json +++ b/types/bitcoinjs-lib/tsconfig.json @@ -19,4 +19,4 @@ "index.d.ts", "bitcoinjs-lib-tests.ts" ] -} \ No newline at end of file +}