/// import { BaseCoin as CoinConfig } from '@bitgo-beta/statics'; import { BaseKey, Entry } from './iface'; import { TransactionType } from './enum'; /** * Generic transaction to be extended with coin specific logic. */ export declare abstract class BaseTransaction { protected _id: string | undefined; protected _inputs: Entry[]; protected _outputs: Entry[]; protected _type: TransactionType | undefined; protected _signatures: string[]; protected _coinConfig: Readonly; /** * Base constructor. * * @param _coinConfig BaseCoin from statics library */ protected constructor(_coinConfig: Readonly); /** * Get the transaction id as seen in the blockchain. Transactions computed offline may not have an * id, however, this is left to the coin implementation. */ get id(): string; /** * One of {@link TransactionType} */ get type(): TransactionType; /** * Get the list of outputs. Amounts are expressed in absolute value. */ get outputs(): Entry[]; /** * Get the list of inputs. Amounts are expressed in absolute value. */ get inputs(): Entry[]; /** * Get the list of signatures (if any) produced for this transaction. */ get signature(): string[]; /** * Whether the private key can sign this transaction in its current state or not. it is possible * some transactions can only enforce this check after some other fields have been filled already * or even during build time. * * @param {BaseKey} key Private key to verify permissions on * @returns {boolean} false if the key cannot sign the transaction without a doubt, true otherwise */ abstract canSign(key: BaseKey): boolean; /** * Return the transaction in a coin specific JSON format. */ abstract toJson(): any; /** * Return the transaction in a format it can be broadcasted to the blockchain. */ abstract toBroadcastFormat(): any; /** * Returns the portion of the transaction that needs to be signed in Buffer format. * Only needed for coins that support adding signatures directly (e.g. TSS). */ get signablePayload(): Buffer; /** * Explain/parse a given coin transaction * TODO: Move all previous explainTransactions from 'core' to 'account-lib' for other coins, * TODO: convert to abstract */ explainTransaction(): any; } //# sourceMappingURL=baseTransaction.d.ts.map