import { Address, Cell, Contract, ContractProvider, Message, Transaction } from "ton-core"; import { EmulatorBindings } from "../bindings/EmulatorBindings"; import { Tracker } from "../events/tracker"; import { Logger } from '../logger/logger'; import { Maybe } from "../utils/maybe"; import { ContractExecutor } from "./ContractExecutor"; /** * Contract system is a container for contracts that interact with each other */ export declare class ContractSystem { #private; static create(args?: { config?: Cell; now?: number; }): Promise; /** * Get current network config */ get config(): Cell; /** * Current contract system time */ get now(): number; /** * VM bindings for contract system */ get bindings(): EmulatorBindings; /** * LT of a contract system */ get lt(): bigint; private constructor(); /** * Open a treasure with a 1bn of TONs * @param seed random string that identifies a treasure * @param workchain optional workchain id * @returns treasure wallet */ treasure(seed: string, workchain?: number): import("../treasure/Treasure").Treasure; /** * Override contract state * @param address * @param code * @param data * @param balance */ override(address: Address, code: Cell, data: Cell, balance: bigint): void; /** * Update system state */ update(updates: { now?: Maybe; lt?: Maybe; config?: Maybe; }): void; /** * Get empty Contract Executor for a contract * @param contract contract address * @returns contract executor */ contract(contract: Address): ContractExecutor; /** * Creates a provider for contract * @param contract contract address * @returns contract provider */ provider(contract: Contract): ContractProvider; /** * Open a contract * @param src contract * @returns opened contract */ open(src: T): import("ton-core").OpenedContract; /** * Run until stop */ run(): Promise; /** * Create a tracker for a contract * @param address contract address */ track(address: Address): Tracker; /** * Create a logger for a contract * @param address contract address */ log(address: Address): Logger; /** * Send external message * @param message */ send(message: Message): void; getContractError(address: Address, code: number): string | null; }