meta-contract
Version:
Meta Contract SDK
49 lines (48 loc) • 2.07 kB
TypeScript
import * as mvc from '../../mvc';
import { ContractAdapter } from '../../common/ContractAdapter';
import { Bytes, FunctionCall, Int, Ripemd160, Sig, SigHashPreimage } from '../../scryptlib';
import * as ftProto from '../contract-proto/token.proto';
export declare class TokenGenesis extends ContractAdapter {
private constuctParams;
private _formatedDataPart;
constructor(constuctParams: {
pubKey: mvc.PublicKey;
});
clone(): TokenGenesis;
setFormatedDataPart(dataPart: ftProto.FormatedDataPart): void;
getFormatedDataPart(): ftProto.FormatedDataPart;
setFormatedDataPartFromLockingScript(script: mvc.Script): void;
isFirstGenesis(): boolean;
unlock({ txPreimage, sig, rabinMsg, rabinPaddingArray, rabinSigArray, rabinPubKeyIndexArray, rabinPubKeyVerifyArray, rabinPubKeyHashArray, genesisSatoshis, tokenScript, tokenSatoshis, changeAddress, changeSatoshis, opReturnScript, }: {
txPreimage: SigHashPreimage;
sig: Sig;
rabinMsg: Bytes;
rabinPaddingArray: Bytes[];
rabinSigArray: Int[];
rabinPubKeyIndexArray: number[];
rabinPubKeyVerifyArray: Int[];
rabinPubKeyHashArray: Bytes;
genesisSatoshis: number;
tokenScript: Bytes;
tokenSatoshis: number;
changeAddress: Ripemd160;
changeSatoshis: number;
opReturnScript: Bytes;
}): FunctionCall;
}
export declare class TokenGenesisFactory {
static lockingScriptSize: number;
static getLockingScriptSize(): number;
/**
* create genesis contract
* @param {Object} issuerPubKey issuer public key used to unlocking genesis contract
* @param {string} tokenName the token name
* @param {string} tokenSymbol the token symbol
* @param {number} decimalNum the token amount decimal number
* @returns
*/
static createContract(issuerPubKey: mvc.PublicKey): TokenGenesis;
static getDummyInstance(): TokenGenesis;
static calLockingScriptSize(): number;
static calUnlockingScriptSize(opreturnData: any): number;
}