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