import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../common"; export type TokenAmountStruct = { evmAddress: AddressLike; amount: BigNumberish; }; export type TokenAmountStructOutput = [evmAddress: string, amount: bigint] & { evmAddress: string; amount: bigint; }; export type NFTAmountStruct = { evmAddress: AddressLike; tokenId: BigNumberish; amount: BigNumberish; }; export type NFTAmountStructOutput = [ evmAddress: string, tokenId: bigint, amount: bigint ] & { evmAddress: string; tokenId: bigint; amount: bigint; }; export type OutMessageV1Struct = { shardsKey: BigNumberish; tvmTarget: string; tvmPayload: string; tvmProtocolFee: BigNumberish; tvmExecutorFee: BigNumberish; tvmValidExecutors: string[]; toBridge: TokenAmountStruct[]; toBridgeNFT: NFTAmountStruct[]; }; export type OutMessageV1StructOutput = [ shardsKey: bigint, tvmTarget: string, tvmPayload: string, tvmProtocolFee: bigint, tvmExecutorFee: bigint, tvmValidExecutors: string[], toBridge: TokenAmountStructOutput[], toBridgeNFT: NFTAmountStructOutput[] ] & { shardsKey: bigint; tvmTarget: string; tvmPayload: string; tvmProtocolFee: bigint; tvmExecutorFee: bigint; tvmValidExecutors: string[]; toBridge: TokenAmountStructOutput[]; toBridgeNFT: NFTAmountStructOutput[]; }; export interface TestProxyInterface extends Interface { getFunction(nameOrSignature: "bridgeTokensToTON" | "emptyFunction" | "getValue" | "getVersion" | "invoke" | "invokeWithCallback" | "mockWithCustomError" | "mockWithDefaultError" | "onERC721Received" | "receiveNFT" | "sendMultiplyCallbackToCrossChainLayer"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Invoke" | "InvokeWithCallback" | "Receive"): EventFragment; encodeFunctionData(functionFragment: "bridgeTokensToTON", values: [OutMessageV1Struct]): string; encodeFunctionData(functionFragment: "emptyFunction", values: [BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "getValue", values?: undefined): string; encodeFunctionData(functionFragment: "getVersion", values?: undefined): string; encodeFunctionData(functionFragment: "invoke", values: [BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "invokeWithCallback", values: [BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "mockWithCustomError", values: [BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "mockWithDefaultError", values: [BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "onERC721Received", values: [AddressLike, AddressLike, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "receiveNFT", values: [BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "sendMultiplyCallbackToCrossChainLayer", values: [BytesLike, BytesLike]): string; decodeFunctionResult(functionFragment: "bridgeTokensToTON", data: BytesLike): Result; decodeFunctionResult(functionFragment: "emptyFunction", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getValue", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVersion", data: BytesLike): Result; decodeFunctionResult(functionFragment: "invoke", data: BytesLike): Result; decodeFunctionResult(functionFragment: "invokeWithCallback", data: BytesLike): Result; decodeFunctionResult(functionFragment: "mockWithCustomError", data: BytesLike): Result; decodeFunctionResult(functionFragment: "mockWithDefaultError", data: BytesLike): Result; decodeFunctionResult(functionFragment: "onERC721Received", data: BytesLike): Result; decodeFunctionResult(functionFragment: "receiveNFT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "sendMultiplyCallbackToCrossChainLayer", data: BytesLike): Result; } export declare namespace InvokeEvent { type InputTuple = [ value: BigNumberish, shardsKey: BigNumberish, timestamp: BigNumberish, operationId: BytesLike, tvmCaller: string, extraData: BytesLike ]; type OutputTuple = [ value: bigint, shardsKey: bigint, timestamp: bigint, operationId: string, tvmCaller: string, extraData: string ]; interface OutputObject { value: bigint; shardsKey: bigint; timestamp: bigint; operationId: string; tvmCaller: string; extraData: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace InvokeWithCallbackEvent { type InputTuple = [ shardsKey: BigNumberish, timestamp: BigNumberish, operationId: BytesLike, tvmCaller: string, extraData: BytesLike, receivedTokens: TokenAmountStruct[] ]; type OutputTuple = [ shardsKey: bigint, timestamp: bigint, operationId: string, tvmCaller: string, extraData: string, receivedTokens: TokenAmountStructOutput[] ]; interface OutputObject { shardsKey: bigint; timestamp: bigint; operationId: string; tvmCaller: string; extraData: string; receivedTokens: TokenAmountStructOutput[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ReceiveEvent { type InputTuple = [value: BigNumberish]; type OutputTuple = [value: bigint]; interface OutputObject { value: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface TestProxy extends BaseContract { connect(runner?: ContractRunner | null): TestProxy; waitForDeployment(): Promise; interface: TestProxyInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; bridgeTokensToTON: TypedContractMethod<[ outMessage: OutMessageV1Struct ], [ void ], "payable">; emptyFunction: TypedContractMethod<[ arg0: BytesLike, arg1: BytesLike ], [ void ], "view">; getValue: TypedContractMethod<[], [bigint], "view">; getVersion: TypedContractMethod<[], [bigint], "view">; invoke: TypedContractMethod<[ tacHeader: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; invokeWithCallback: TypedContractMethod<[ tacHeader: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; mockWithCustomError: TypedContractMethod<[ arg0: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; mockWithDefaultError: TypedContractMethod<[ arg0: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; onERC721Received: TypedContractMethod<[ arg0: AddressLike, arg1: AddressLike, arg2: BigNumberish, arg3: BytesLike ], [ string ], "view">; receiveNFT: TypedContractMethod<[ tacHeader: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; sendMultiplyCallbackToCrossChainLayer: TypedContractMethod<[ header: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "bridgeTokensToTON"): TypedContractMethod<[outMessage: OutMessageV1Struct], [void], "payable">; getFunction(nameOrSignature: "emptyFunction"): TypedContractMethod<[arg0: BytesLike, arg1: BytesLike], [void], "view">; getFunction(nameOrSignature: "getValue"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getVersion"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "invoke"): TypedContractMethod<[ tacHeader: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "invokeWithCallback"): TypedContractMethod<[ tacHeader: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "mockWithCustomError"): TypedContractMethod<[ arg0: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "mockWithDefaultError"): TypedContractMethod<[ arg0: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "onERC721Received"): TypedContractMethod<[ arg0: AddressLike, arg1: AddressLike, arg2: BigNumberish, arg3: BytesLike ], [ string ], "view">; getFunction(nameOrSignature: "receiveNFT"): TypedContractMethod<[ tacHeader: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "sendMultiplyCallbackToCrossChainLayer"): TypedContractMethod<[ header: BytesLike, arguments: BytesLike ], [ void ], "nonpayable">; getEvent(key: "Invoke"): TypedContractEvent; getEvent(key: "InvokeWithCallback"): TypedContractEvent; getEvent(key: "Receive"): TypedContractEvent; filters: { "Invoke(uint256,uint64,uint256,bytes32,string,bytes)": TypedContractEvent; Invoke: TypedContractEvent; "InvokeWithCallback(uint64,uint256,bytes32,string,bytes,tuple[])": TypedContractEvent; InvokeWithCallback: TypedContractEvent; "Receive(uint256)": TypedContractEvent; Receive: TypedContractEvent; }; }