import { Address } from "../core/address"; import { TokenTransfer } from "../core/tokens"; export declare type ContractDeployInput = { bytecode: Uint8Array; /** * The gas limit for the operation. If not provided, a gas limit estimator must be used. * Failure to provide this parameter without an estimator may lead to runtime errors. */ gasLimit?: bigint; arguments?: any[]; nativeTransferAmount?: bigint; isUpgradeable?: boolean; isReadable?: boolean; isPayable?: boolean; isPayableBySmartContract?: boolean; }; export declare type ContractExecuteInput = { contract: Address; gasLimit?: bigint; function: string; arguments?: any[]; nativeTransferAmount?: bigint; tokenTransfers?: TokenTransfer[]; }; export declare type ContractUpgradeInput = ContractDeployInput & { contract: Address; }; export interface SmartContractDeployOutcome { returnCode: string; returnMessage: string; contracts: DeployedSmartContract[]; } export declare type ParsedSmartContractCallOutcome = { values: any[]; returnCode: string; returnMessage: string; }; export declare type DeployedSmartContract = { address: Address; ownerAddress: Address; codeHash: Uint8Array; };