UNPKG

@muirglacier/jellyfish-transaction

Version:

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

259 lines 11.4 kB
/// <reference types="node" /> import { SmartBuffer } from 'smart-buffer'; import { OPCode, StaticCode } from './opcode'; import { OP_PUSHDATA } from './data'; import { OP_DEFI_TX } from './dftx'; import { DfTx } from './dftx/dftx'; import * as constants from './constants'; import * as control from './control'; import * as stack from './stack'; import * as splice from './splice'; import * as bitwise from './bitwise'; import * as arithmetic from './arithmetic'; import * as crypto from './crypto'; import * as expansion from './expansion'; import * as invalid from './invalid'; import { PoolAddLiquidity, PoolCreatePair, PoolRemoveLiquidity, PoolSwap, CompositeSwap, PoolUpdatePair } from './dftx/dftx_pool'; import { TokenCreate, TokenMint, TokenUpdate, TokenUpdateAny } from './dftx/dftx_token'; import { AccountToAccount, AccountToUtxos, AnyAccountToAccount, UtxosToAccount } from './dftx/dftx_account'; import { AppointOracle, RemoveOracle, SetOracleData, UpdateOracle } from './dftx/dftx_oracles'; import { SetLoanScheme, DestroyLoanScheme, SetDefaultLoanScheme, SetCollateralToken, SetLoanToken, UpdateLoanToken, CreateVault, UpdateVault, DepositToVault, WithdrawFromVault, CloseVault, TakeLoan, PaybackLoan, PlaceAuctionBid } from './dftx/dftx_loans'; import { SetGovernance, SetGovernanceHeight, CreateCfp, CreateVoc, Vote } from './dftx/dftx_governance'; import { ICXCreateOrder, ICXMakeOffer, ICXCloseOrder, ICXCloseOffer, ICXSubmitDFCHTLC, ICXSubmitEXTHTLC, ICXClaimDFCHTLC } from './dftx/dftx_icxorderbook'; import { CreateMasternode, ResignMasternode } from './dftx/dftx_masternode'; /** * @param num to map as OPCode, 1 byte long */ export declare function numAsOPCode(num: number): StaticCode; /** * Unmapped OPCode are codes that don't yet have a class for it yet. */ export declare class OP_UNMAPPED extends StaticCode { constructor(code: number); } /** * All static OP_CODES & DEFI Custom Tx scripting * @see https://github.com/DeFiCh/ain/blob/master/src/script/script.h */ export declare const OP_CODES: { /** * Read SmartBuffer and create OPCode[] stack. * * Using P2WPKH redeem script as an example. * * Input Example: 1600140e7c0ab18b305bc987a266dc06de26fcfab4b56a * 0x16 (VarUInt) * 0x00 (OP_0) * 6ab5b4fafc26de06dc66a287c95b308bb10a7c0e (formatted as big endian) * * Output Example: * OP_0 * OP_PUSHDATA<RIPEMD160(SHA256(pubkey))> * * @param {SmartBuffer} buffer to read from * @return {OPCode[]} read from buffer to OPCode */ fromBuffer(buffer: SmartBuffer): OPCode[]; /** * Converts OPCode[] and write it into SmartBuffer. * * Using P2PKH redeem script as an example. * * Input Example: * OP_DUP * OP_HASH160 * OP_PUSHDATA<RIPEMD160(SHA256(pubkey))> * OP_EQUALVERIFY * OP_CHECKSIG * * Output Example: 1976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa815988ac * 0x19 (VarUInt) * 0x76 (OP_DUP) * 0xa9 (OP_HASH160) * 5981aa7f16f0e20cd5b2216abe4d7eeedb42de3b (formatted as big endian) * 0x88 (OP_EQUALVERIFY) * 0xac (OP_CHECKSIG) * * @param {OPCode[]} stack to convert into raw buffer * @param {SmartBuffer} buffer to write to */ toBuffer(stack: OPCode[], buffer: SmartBuffer): void; OP_DEFI_TX: (dftx: DfTx<any>) => OP_DEFI_TX; OP_DEFI_TX_POOL_SWAP: (poolSwap: PoolSwap) => OP_DEFI_TX; OP_DEFI_TX_COMPOSITE_SWAP: (compositeSwap: CompositeSwap) => OP_DEFI_TX; OP_DEFI_TX_POOL_ADD_LIQUIDITY: (poolAddLiquidity: PoolAddLiquidity) => OP_DEFI_TX; OP_DEFI_TX_POOL_REMOVE_LIQUIDITY: (poolRemoveLiquidity: PoolRemoveLiquidity) => OP_DEFI_TX; OP_DEFI_TX_POOL_CREATE_PAIR: (poolCreatePair: PoolCreatePair) => OP_DEFI_TX; OP_DEFI_TX_POOL_UPDATE_PAIR: (poolCreatePair: PoolUpdatePair) => OP_DEFI_TX; OP_DEFI_TX_TOKEN_MINT: (tokenMint: TokenMint) => OP_DEFI_TX; OP_DEFI_TX_TOKEN_CREATE: (tokenCreate: TokenCreate) => OP_DEFI_TX; OP_DEFI_TX_TOKEN_UPDATE: (tokenUpdate: TokenUpdate) => OP_DEFI_TX; OP_DEFI_TX_TOKEN_UPDATE_ANY: (tokenUpdateAny: TokenUpdateAny) => OP_DEFI_TX; OP_DEFI_TX_UTXOS_TO_ACCOUNT: (utxosToAccount: UtxosToAccount) => OP_DEFI_TX; OP_DEFI_TX_ACCOUNT_TO_UTXOS: (accountToUtxos: AccountToUtxos) => OP_DEFI_TX; OP_DEFI_TX_ACCOUNT_TO_ACCOUNT: (accountToAccount: AccountToAccount) => OP_DEFI_TX; OP_DEFI_TX_ANY_ACCOUNT_TO_ACCOUNT: (anyAccountToAccount: AnyAccountToAccount) => OP_DEFI_TX; OP_DEFI_TX_APPOINT_ORACLE: (appointOracle: AppointOracle) => OP_DEFI_TX; OP_DEFI_TX_REMOVE_ORACLE: (removeOracle: RemoveOracle) => OP_DEFI_TX; OP_DEFI_TX_UPDATE_ORACLE: (updateOracle: UpdateOracle) => OP_DEFI_TX; OP_DEFI_TX_SET_ORACLE_DATA: (setOracleData: SetOracleData) => OP_DEFI_TX; OP_DEFI_TX_AUTO_AUTH_PREP: () => OP_DEFI_TX; OP_DEFI_TX_CREATE_MASTER_NODE: (createMasterNode: CreateMasternode) => OP_DEFI_TX; OP_DEFI_TX_RESIGN_MASTER_NODE: (resignMasternode: ResignMasternode) => OP_DEFI_TX; OP_DEFI_TX_SET_GOVERNANCE: (setGovernance: SetGovernance) => OP_DEFI_TX; OP_DEFI_TX_SET_GOVERNANCE_HEIGHT: (setGovernanceHeight: SetGovernanceHeight) => OP_DEFI_TX; OP_DEFI_TX_ICX_CREATE_ORDER: (createOrder: ICXCreateOrder) => OP_DEFI_TX; OP_DEFI_TX_ICX_MAKE_OFFER: (makeOffer: ICXMakeOffer) => OP_DEFI_TX; OP_DEFI_TX_ICX_CLOSE_ORDER: (closeOrder: ICXCloseOrder) => OP_DEFI_TX; OP_DEFI_TX_ICX_CLOSE_OFFER: (closeOffer: ICXCloseOffer) => OP_DEFI_TX; OP_DEFI_TX_CREATE_CFP: (createCfp: CreateCfp) => OP_DEFI_TX; OP_DEFI_TX_CREATE_VOC: (createVoc: CreateVoc) => OP_DEFI_TX; OP_DEFI_TX_VOTE: (vote: Vote) => OP_DEFI_TX; OP_DEFI_TX_ICX_SUBMIT_DFC_HTLC: (icxSubmitDFCHTLC: ICXSubmitDFCHTLC) => OP_DEFI_TX; OP_DEFI_TX_ICX_SUBMIT_EXT_HTLC: (icxSubmitEXTHTLC: ICXSubmitEXTHTLC) => OP_DEFI_TX; OP_DEFI_TX_ICX_CLAIM_DFC_HTLC: (icxClaimDFCHTLC: ICXClaimDFCHTLC) => OP_DEFI_TX; OP_DEFI_TX_SET_LOAN_SCHEME: (setLoanScheme: SetLoanScheme) => OP_DEFI_TX; OP_DEFI_TX_DESTROY_LOAN_SCHEME: (destroyLoanScheme: DestroyLoanScheme) => OP_DEFI_TX; OP_DEFI_TX_SET_DEFAULT_LOAN_SCHEME: (setDefaultLoanScheme: SetDefaultLoanScheme) => OP_DEFI_TX; OP_DEFI_TX_SET_COLLATERAL_TOKEN: (setCollateralToken: SetCollateralToken) => OP_DEFI_TX; OP_DEFI_TX_SET_LOAN_TOKEN: (setLoanToken: SetLoanToken) => OP_DEFI_TX; OP_DEFI_TX_UPDATE_LOAN_TOKEN: (updateLoanToken: UpdateLoanToken) => OP_DEFI_TX; OP_DEFI_TX_CREATE_VAULT: (createVault: CreateVault) => OP_DEFI_TX; OP_DEFI_TX_UPDATE_VAULT: (updateVault: UpdateVault) => OP_DEFI_TX; OP_DEFI_TX_DEPOSIT_TO_VAULT: (depositToVault: DepositToVault) => OP_DEFI_TX; OP_DEFI_TX_WITHDRAW_FROM_VAULT: (WithdrawFromVault: WithdrawFromVault) => OP_DEFI_TX; OP_DEFI_TX_CLOSE_VAULT: (closeVault: CloseVault) => OP_DEFI_TX; OP_DEFI_TX_TAKE_LOAN: (takeLoan: TakeLoan) => OP_DEFI_TX; OP_DEFI_TX_PAYBACK_LOAN: (paybackLoan: PaybackLoan) => OP_DEFI_TX; OP_DEFI_TX_AUCTION_BID: (placeAuctionBid: PlaceAuctionBid) => OP_DEFI_TX; OP_0: constants.OP_0; OP_FALSE: constants.OP_FALSE; /** * OP_PUSHDATA1 use OP_PUSHDATA * OP_PUSHDATA2 use OP_PUSHDATA * OP_PUSHDATA4 use OP_PUSHDATA * @param {Buffer} buffer * @param {'little' | 'big'} endian order */ OP_PUSHDATA: (buffer: Buffer, endian: 'little' | 'big') => OP_PUSHDATA; /** * @param {Buffer} buffer in little endian */ OP_PUSHDATA_LE: (buffer: Buffer) => OP_PUSHDATA; /** * @param {string} hex in little endian */ OP_PUSHDATA_HEX_LE: (hex: string) => OP_PUSHDATA; OP_1NEGATE: constants.OP_1NEGATE; OP_RESERVED: constants.OP_RESERVED; OP_1: constants.OP_1; OP_TRUE: constants.OP_TRUE; OP_2: constants.OP_2; OP_3: constants.OP_3; OP_4: constants.OP_4; OP_5: constants.OP_5; OP_6: constants.OP_6; OP_7: constants.OP_7; OP_8: constants.OP_8; OP_9: constants.OP_9; OP_10: constants.OP_10; OP_11: constants.OP_11; OP_12: constants.OP_12; OP_13: constants.OP_13; OP_14: constants.OP_14; OP_15: constants.OP_15; OP_16: constants.OP_16; OP_NOP: control.OP_NOP; OP_VER: control.OP_VER; OP_IF: control.OP_IF; OP_NOTIF: control.OP_NOTIF; OP_VERIF: control.OP_VERIF; OP_VERNOTIF: control.OP_VERNOTIF; OP_ELSE: control.OP_ELSE; OP_ENDIF: control.OP_ENDIF; OP_VERIFY: control.OP_VERIFY; OP_RETURN: control.OP_RETURN; OP_TOALTSTACK: stack.OP_TOALTSTACK; OP_FROMALTSTACK: stack.OP_FROMALTSTACK; OP_2DROP: stack.OP_2DROP; OP_2DUP: stack.OP_2DUP; OP_3DUP: stack.OP_3DUP; OP_2OVER: stack.OP_2OVER; OP_2ROT: stack.OP_2ROT; OP_2SWAP: stack.OP_2SWAP; OP_IFDUP: stack.OP_IFDUP; OP_DEPTH: stack.OP_DEPTH; OP_DROP: stack.OP_DROP; OP_DUP: stack.OP_DUP; OP_NIP: stack.OP_NIP; OP_OVER: stack.OP_OVER; OP_PICK: stack.OP_PICK; OP_ROLL: stack.OP_ROLL; OP_ROT: stack.OP_ROT; OP_SWAP: stack.OP_SWAP; OP_TUCK: stack.OP_TUCK; OP_CAT: splice.OP_CAT; OP_SUBSTR: splice.OP_SUBSTR; OP_LEFT: splice.OP_LEFT; OP_RIGHT: splice.OP_RIGHT; OP_SIZE: splice.OP_SIZE; OP_INVERT: bitwise.OP_INVERT; OP_AND: bitwise.OP_AND; OP_OR: bitwise.OP_OR; OP_XOR: bitwise.OP_XOR; OP_EQUAL: bitwise.OP_EQUAL; OP_EQUALVERIFY: bitwise.OP_EQUALVERIFY; OP_RESERVED1: bitwise.OP_RESERVED1; OP_RESERVED2: bitwise.OP_RESERVED2; OP_1ADD: arithmetic.OP_1ADD; OP_1SUB: arithmetic.OP_1SUB; OP_2MUL: arithmetic.OP_2MUL; OP_2DIV: arithmetic.OP_2DIV; OP_NEGATE: arithmetic.OP_NEGATE; OP_ABS: arithmetic.OP_ABS; OP_NOT: arithmetic.OP_NOT; OP_0NOTEQUAL: arithmetic.OP_0NOTEQUAL; OP_ADD: arithmetic.OP_ADD; OP_SUB: arithmetic.OP_SUB; OP_MUL: arithmetic.OP_MUL; OP_DIV: arithmetic.OP_DIV; OP_MOD: arithmetic.OP_MOD; OP_LSHIFT: arithmetic.OP_LSHIFT; OP_RSHIFT: arithmetic.OP_RSHIFT; OP_BOOLAND: arithmetic.OP_BOOLAND; OP_BOOLOR: arithmetic.OP_BOOLOR; OP_NUMEQUAL: arithmetic.OP_NUMEQUAL; OP_NUMEQUALVERIFY: arithmetic.OP_NUMEQUALVERIFY; OP_NUMNOTEQUAL: arithmetic.OP_NUMNOTEQUAL; OP_LESSTHAN: arithmetic.OP_LESSTHAN; OP_GREATERTHAN: arithmetic.OP_GREATERTHAN; OP_LESSTHANOREQUAL: arithmetic.OP_LESSTHANOREQUAL; OP_GREATERTHANOREQUAL: arithmetic.OP_GREATERTHANOREQUAL; OP_MIN: arithmetic.OP_MIN; OP_MAX: arithmetic.OP_MAX; OP_WITHIN: arithmetic.OP_WITHIN; OP_RIPEMD160: crypto.OP_RIPEMD160; OP_SHA1: crypto.OP_SHA1; OP_SHA256: crypto.OP_SHA256; OP_HASH160: crypto.OP_HASH160; OP_HASH256: crypto.OP_HASH256; OP_CODESEPARATOR: crypto.OP_CODESEPARATOR; OP_CHECKSIG: crypto.OP_CHECKSIG; OP_CHECKSIGVERIFY: crypto.OP_CHECKSIGVERIFY; OP_CHECKMULTISIG: crypto.OP_CHECKMULTISIG; OP_CHECKMULTISIGVERIFY: crypto.OP_CHECKMULTISIGVERIFY; OP_NOP1: expansion.OP_NOP1; OP_CHECKLOCKTIMEVERIFY: expansion.OP_CHECKLOCKTIMEVERIFY; OP_NOP2: expansion.OP_NOP2; OP_CHECKSEQUENCEVERIFY: expansion.OP_CHECKSEQUENCEVERIFY; OP_NOP3: expansion.OP_NOP3; OP_NOP4: expansion.OP_NOP4; OP_NOP5: expansion.OP_NOP5; OP_NOP6: expansion.OP_NOP6; OP_NOP7: expansion.OP_NOP7; OP_NOP8: expansion.OP_NOP8; OP_NOP9: expansion.OP_NOP9; OP_NOP10: expansion.OP_NOP10; OP_INVALIDOPCODE: invalid.OP_INVALIDOPCODE; }; //# sourceMappingURL=mapping.d.ts.map