@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
TypeScript
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