import { CairoOption, Call, Contract } from "starknet"; import { ProjectivePoint } from "../types.js"; import { ProofOfFund } from "../provers/fund.js"; import { AEBalance } from "../ae_balance.js"; import { Audit } from "./audit.js"; import { IOperation, OperationType } from "./operation.js"; interface IFundOperation extends IOperation { type: typeof OperationType.Fund; populateApprove(): Promise; } /** * Represents the calldata of a fund operation. * @interface FundOpParams * @property {ProjectivePoint} to - The Tongo account to fund * @property {bigint} amount - The amount of tongo to fund * @property {AEBalance} hint - AE encryption of the final balance of the account * @property {ProofOfFund} proof - ZK proof for the fund operation * @property {CairoOption} auditPart - Optional Audit to declare the balance of the account after the tx * @property {Contract} Tongo - The Tongo instance to interact with */ interface FundOpParams { to: ProjectivePoint; amount: bigint; hint: AEBalance; proof: ProofOfFund; auditPart: CairoOption; Tongo: Contract; } export declare class FundOperation implements IFundOperation { type: typeof OperationType.Fund; Tongo: Contract; to: ProjectivePoint; amount: bigint; hint: AEBalance; proof: ProofOfFund; auditPart: CairoOption; approve?: Call; constructor({ to, amount, proof, auditPart, Tongo, hint }: FundOpParams); toCalldata(): Call; populateApprove(): Promise; } export {};