import { ByteString, FixedArray, Ripemd160 } from "scrypt-ts"; import { GuardInfo } from "../contracts/token/cat20"; import { CAT20State } from "../contracts/token/cat20Proto"; import { Covenant } from "../lib/covenant"; import { Cat20GuardCovenant } from "./cat20GuardCovenant"; import { SubContractCall } from "../lib/catPsbt"; import { InputContext } from "../contracts/utils/sigHashUtils"; import { ProtocolState } from "../lib/state"; import { int32, MAX_STATE } from "../contracts/utils/txUtil"; import { Cat20Utxo, ChainProvider } from "../lib/provider"; import { SupportedNetwork } from "../lib/constants"; interface TraceableCat20Utxo extends Cat20Utxo { minterAddr: string; } export type InputTrace = { prevTxHex: string; prevTxInput: number; prevTxState: ProtocolState; prevPrevTxHex: string; }; export type TracedCat20Token = { token: CAT20Covenant; trace: InputTrace; }; export declare class CAT20Covenant extends Covenant { readonly minterAddr: string; static readonly LOCKED_ASM_VERSION = "36eb7d5819c558e74512693c33a8f309"; constructor(minterAddr: string, state?: CAT20State, network?: SupportedNetwork); static createTransferGuard(inputInfos: { token: CAT20Covenant; inputIndex: number; }[], receivers: { address: Ripemd160; amount: int32; outputIndex: number; }[], changeInfo?: { address: Ripemd160; }): { guard: Cat20GuardCovenant; outputTokens: FixedArray<(CAT20Covenant | undefined), typeof MAX_STATE>; changeTokenOutputIndex: number; }; static createBurnGuard(inputInfos: { token: CAT20Covenant; inputIndex: number; }[]): { guard: Cat20GuardCovenant; outputTokens: FixedArray; changeOutputIndex?: number; }; static backtrace(cat20Utxos: TraceableCat20Utxo[], chainProvider: ChainProvider): Promise; serializedState(): ByteString; userSpend(inputIndex: number, inputCtxs: Map, inputTokenTrace: InputTrace, guardInfo: GuardInfo, isP2TR: boolean, pubKey: ByteString): SubContractCall; contractSpend(inputIndex: number, inputCtxs: Map, inputTokenTrace: InputTrace, guardInfo: GuardInfo, contractInputIndex: number): SubContractCall; get minterScriptHex(): string; private unlockArgsBuilder; } export {}; //# sourceMappingURL=cat20Covenant.d.ts.map