import * as bsv from "../../bsv"; 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: bsv.PublicKey; }); clone(): TokenGenesis; setFormatedDataPart(dataPart: ftProto.FormatedDataPart): void; getFormatedDataPart(): ftProto.FormatedDataPart; setFormatedDataPartFromLockingScript(script: bsv.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: bsv.PublicKey): TokenGenesis; static getDummyInstance(): TokenGenesis; static calLockingScriptSize(): number; static calUnlockingScriptSize(opreturnData: any): number; }