UNPKG

@muirglacier/jellyfish-transaction

Version:

A collection of TypeScript + JavaScript tools and libraries for DeFi Blockchain developers to build decentralized finance for Bitcoin

128 lines 4.82 kB
import BigNumber from 'bignumber.js'; import { BufferComposer, ComposableBuffer } from '@muirglacier/jellyfish-buffer'; import { Script, Transaction, TransactionSegWit, Vin, Vout, Witness, WitnessScript } from './tx'; import { OPCode } from './script'; /** * USE CTransaction AT YOUR OWN RISK. * The TransactionBuilder has safety logic built-in to prevent overspent, CTransaction is its raw counter part. * * Composable Transaction, C stands for Composable. * Immutable by design, it implements the Transaction interface for convenience. * Bi-directional fromBuffer, toBuffer deep composer. */ export declare class CTransaction extends ComposableBuffer<Transaction> implements Transaction { get version(): number; get vin(): Vin[]; get vout(): Vout[]; get lockTime(): number; composers(tx: Transaction): BufferComposer[]; /** * TransactionId is the double SHA256 of transaction buffer. * TxId are usually presented in BE order, this method return TxId in BE order. * * @return string transaction id */ get txId(): string; } /** * Composable Vin, C stands for Composable. * Immutable by design, it implements the Vin interface for convenience. * Bi-directional fromBuffer, toBuffer deep composer. */ export declare class CVin extends ComposableBuffer<Vin> implements Vin { /** * 32 bytes, 64 in hex */ get txid(): string; get index(): number; get script(): Script; get sequence(): number; composers(vin: Vin): BufferComposer[]; } /** * Composable Vout, C stands for Composable. * Immutable by design, it implements the Vout interface for convenience. * Bi-directional fromBuffer, toBuffer deep composer. * * This is Transaction V2 buffer composition */ export declare class CVoutV2 extends ComposableBuffer<Vout> implements Vout { get value(): BigNumber; get script(): Script; get tokenId(): number; composers(vout: Vout): BufferComposer[]; } /** * Composable Vout, C stands for Composable. * Immutable by design, it implements the Vout interface for convenience. * Bi-directional fromBuffer, toBuffer deep composer. * * This is Transaction V4 buffer composition */ export declare class CVoutV4 extends ComposableBuffer<Vout> implements Vout { get value(): BigNumber; get script(): Script; get tokenId(): number; composers(vout: Vout): BufferComposer[]; } /** * Composable Script, C stands for Composable. * Immutable by design, it implements the Script interface for convenience. * Bi-directional fromBuffer, toBuffer deep composer. * * This wraps the OPCode built in composer. */ export declare class CScript extends ComposableBuffer<Script> implements Script { get stack(): OPCode[]; composers(script: Script): BufferComposer[]; } /** * USE CTransactionSegWit AT YOUR OWN RISK. * The TransactionBuilder has safety logic built-in to prevent overspent, CTransactionSegWit is its raw counter part. * * Composable TransactionSegWit, C stands for Composable. * Immutable by design, it implements the TransactionSegWit interface for convenience. * Bi-directional fromBuffer, toBuffer deep composer. * * @see https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki * @see https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki * @see https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki */ export declare class CTransactionSegWit extends ComposableBuffer<TransactionSegWit> implements TransactionSegWit { get version(): number; get marker(): number; get flag(): number; get vin(): Vin[]; get vout(): Vout[]; get witness(): Witness[]; get lockTime(): number; composers(tx: TransactionSegWit): BufferComposer[]; /** * TransactionId is the double SHA256 of transaction buffer. * TxId are usually presented in BE order, this method return TxId in BE order. * * @return string transaction id */ get txId(): string; } /** * Composable Witness, C stands for Composable. * Immutable by design, it implements the Witness interface for convenience. * Bi-directional fromBuffer, toBuffer deep composer. */ export declare class CWitness extends ComposableBuffer<Witness> implements Witness { get scripts(): WitnessScript[]; composers(wit: Witness): BufferComposer[]; } /** * Composable WitnessScript, C stands for Composable. * Immutable by design, it implements the WitnessScript interface for convenience. * Bi-directional fromBuffer, toBuffer deep composer. * * This just wraps the WitnessScript with (n = VarUInt, + n Bytes). */ export declare class CWitnessScript extends ComposableBuffer<WitnessScript> implements WitnessScript { get hex(): string; composers(script: WitnessScript): BufferComposer[]; } //# sourceMappingURL=tx_composer.d.ts.map