UNPKG

@axerunners/axecore-lib

Version:

A pure and powerful JavaScript Axe library.

97 lines (86 loc) 2.78 kB
import { Transaction } from "../Transaction"; import { PrivateKey } from "../../PrivateKey"; import {Script} from "../../script/Script"; import {BufferWriter} from "../../buffer/BufferWriter"; /** * Instantiate an Input from an Object * * @param params * @returns {Input|*} * @constructor */ export class Input { constructor(params: any); prevTxId: Buffer; outputIndex: number; sequenceNumber: number; script: Script; /** * @function * @returns {Object} A plain object with the input information */ toObject(): Object; /** * @function * @returns {Object} A plain object with the input information */ toJSON(): Object; /** * Instantiate an Input from an Object * * @param {Object} obj - An Object containing satoshis and script * @returns {Input} A instance of an Input */ static fromObject(obj: Object): Input; /** * Set a script from a Buffer * Replace any previously set script * * @param {Buffer} br * @return {Input} */ fromBufferReader(br: Buffer): Input; /** * Will return a BufferWriter instance with Input representation as value * @params {BufferWriter} writer? * @returns {BufferWriter} writer */ toBufferWriter(write:BufferWriter): BufferWriter; /** * Set script from a Script, a buffer or it's String representation. * Replace any previously set script * * @param {Script|Buffer|String} script * @return {Input} */ setScript(script: Script|Buffer|String): Input; /** * Retrieve signatures for the provided PrivateKey. * * @param {Transaction} transaction - the transaction to be signed * @param {PrivateKey} privateKey - the private key to use when signing * @param {number} inputIndex - the index of this input in the provided transaction * @param {number} sigType - defaults to Signature.SIGHASH_ALL * @param {Buffer} addressHash - if provided, don't calculate the hash of the * public key associated with the private key provided * @abstract */ getSignatures(transaction: Transaction, privateKey: PrivateKey, inputIndex: number, sigType: number, addressHash: Buffer): void; /** * Answer if the input is final based on it's sequence number * @return {boolean} */ isFinal(): Boolean; /** * Verifies the signature and returns if it's valid or not * * @param {Transaction} transaction * @param {Object} signature * @return {boolean} */ isValidSignature(transaction: Transaction, signature: Object): Boolean; /** * @returns {Boolean} true if this is a coinbase input (represents no input) */ isNull(): Boolean; }