meta-contract
Version:
Meta Contract SDK
51 lines (50 loc) • 2.15 kB
TypeScript
import { ContractAdapter } from '../../common/ContractAdapter';
import { Bytes, FunctionCall, SigHashPreimage } from '../../scryptlib';
import * as proto from '../contract-proto/tokenUnlockContractCheck.proto';
export declare enum TOKEN_UNLOCK_TYPE {
IN_2_OUT_5 = 1,
IN_4_OUT_8 = 2,
IN_8_OUT_12 = 3,
IN_3_OUT_100 = 4,
IN_20_OUT_5 = 5,
UNSUPPORT = 6
}
export declare class TokenUnlockContractCheck extends ContractAdapter {
constuctParams: {
unlockType: TOKEN_UNLOCK_TYPE;
};
private _formatedDataPart;
constructor(constuctParams: {
unlockType: TOKEN_UNLOCK_TYPE;
});
clone(): TokenUnlockContractCheck;
setFormatedDataPart(dataPart: proto.FormatedDataPart): void;
getFormatedDataPart(): proto.FormatedDataPart;
unlock({ txPreimage, prevouts, tokenScript, tokenTxHeaderArray, tokenTxHashProofArray, tokenSatoshiBytesArray, inputTokenAddressArray, inputTokenAmountArray, nOutputs, tokenOutputIndexArray, tokenOutputSatoshis, otherOutputArray, }: {
txPreimage: SigHashPreimage;
prevouts: Bytes;
tokenScript: Bytes;
tokenTxHeaderArray: Bytes;
tokenTxHashProofArray: Bytes;
tokenSatoshiBytesArray: Bytes;
inputTokenAddressArray: Bytes;
inputTokenAmountArray: Bytes;
nOutputs: number;
tokenOutputIndexArray: Bytes;
tokenOutputSatoshis: number;
otherOutputArray: Bytes;
}): FunctionCall;
}
export declare class TokenUnlockContractCheckFactory {
static tokenUnlockTypeInfos: {
type: TOKEN_UNLOCK_TYPE;
in: number;
out: number;
lockingScriptSize: number;
}[];
static getOptimumType(inCount: number, outCount: number): TOKEN_UNLOCK_TYPE;
static createContract(unlockType: TOKEN_UNLOCK_TYPE): TokenUnlockContractCheck;
static getLockingScriptSize(unlockType: TOKEN_UNLOCK_TYPE): number;
static calUnlockingScriptSize(checkType: TOKEN_UNLOCK_TYPE, mvcInputLen: number, tokenInputLen: number, tokenOutputLen: number, opreturnData: any): number;
static getDummyInstance(unlockType: TOKEN_UNLOCK_TYPE): TokenUnlockContractCheck;
}