import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../../common"; export interface ISplitMainInterface extends utils.Interface { functions: { "acceptControl(address)": FunctionFragment; "cancelControlTransfer(address)": FunctionFragment; "createSplit(address[],uint32[],uint32,address)": FunctionFragment; "distributeERC20(address,address,address[],uint32[],uint32,address)": FunctionFragment; "distributeETH(address,address[],uint32[],uint32,address)": FunctionFragment; "makeSplitImmutable(address)": FunctionFragment; "predictImmutableSplitAddress(address[],uint32[],uint32)": FunctionFragment; "transferControl(address,address)": FunctionFragment; "updateAndDistributeERC20(address,address,address[],uint32[],uint32,address)": FunctionFragment; "updateAndDistributeETH(address,address[],uint32[],uint32,address)": FunctionFragment; "updateSplit(address,address[],uint32[],uint32)": FunctionFragment; "walletImplementation()": FunctionFragment; "withdraw(address,uint256,address[])": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "acceptControl" | "cancelControlTransfer" | "createSplit" | "distributeERC20" | "distributeETH" | "makeSplitImmutable" | "predictImmutableSplitAddress" | "transferControl" | "updateAndDistributeERC20" | "updateAndDistributeETH" | "updateSplit" | "walletImplementation" | "withdraw"): FunctionFragment; encodeFunctionData(functionFragment: "acceptControl", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "cancelControlTransfer", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "createSplit", values: [ PromiseOrValue[], PromiseOrValue[], PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "distributeERC20", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue[], PromiseOrValue[], PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "distributeETH", values: [ PromiseOrValue, PromiseOrValue[], PromiseOrValue[], PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "makeSplitImmutable", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "predictImmutableSplitAddress", values: [ PromiseOrValue[], PromiseOrValue[], PromiseOrValue ]): string; encodeFunctionData(functionFragment: "transferControl", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "updateAndDistributeERC20", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue[], PromiseOrValue[], PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "updateAndDistributeETH", values: [ PromiseOrValue, PromiseOrValue[], PromiseOrValue[], PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "updateSplit", values: [ PromiseOrValue, PromiseOrValue[], PromiseOrValue[], PromiseOrValue ]): string; encodeFunctionData(functionFragment: "walletImplementation", values?: undefined): string; encodeFunctionData(functionFragment: "withdraw", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue[] ]): string; decodeFunctionResult(functionFragment: "acceptControl", data: BytesLike): Result; decodeFunctionResult(functionFragment: "cancelControlTransfer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createSplit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "distributeERC20", data: BytesLike): Result; decodeFunctionResult(functionFragment: "distributeETH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "makeSplitImmutable", data: BytesLike): Result; decodeFunctionResult(functionFragment: "predictImmutableSplitAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferControl", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateAndDistributeERC20", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateAndDistributeETH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateSplit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "walletImplementation", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; events: { "CancelControlTransfer(address)": EventFragment; "ControlTransfer(address,address,address)": EventFragment; "CreateSplit(address)": EventFragment; "DistributeERC20(address,address,uint256,address)": EventFragment; "DistributeETH(address,uint256,address)": EventFragment; "InitiateControlTransfer(address,address)": EventFragment; "UpdateSplit(address)": EventFragment; "Withdrawal(address,uint256,address[],uint256[])": EventFragment; }; getEvent(nameOrSignatureOrTopic: "CancelControlTransfer"): EventFragment; getEvent(nameOrSignatureOrTopic: "ControlTransfer"): EventFragment; getEvent(nameOrSignatureOrTopic: "CreateSplit"): EventFragment; getEvent(nameOrSignatureOrTopic: "DistributeERC20"): EventFragment; getEvent(nameOrSignatureOrTopic: "DistributeETH"): EventFragment; getEvent(nameOrSignatureOrTopic: "InitiateControlTransfer"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdateSplit"): EventFragment; getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; } export interface CancelControlTransferEventObject { split: string; } export declare type CancelControlTransferEvent = TypedEvent<[ string ], CancelControlTransferEventObject>; export declare type CancelControlTransferEventFilter = TypedEventFilter; export interface ControlTransferEventObject { split: string; previousController: string; newController: string; } export declare type ControlTransferEvent = TypedEvent<[ string, string, string ], ControlTransferEventObject>; export declare type ControlTransferEventFilter = TypedEventFilter; export interface CreateSplitEventObject { split: string; } export declare type CreateSplitEvent = TypedEvent<[string], CreateSplitEventObject>; export declare type CreateSplitEventFilter = TypedEventFilter; export interface DistributeERC20EventObject { split: string; token: string; amount: BigNumber; distributorAddress: string; } export declare type DistributeERC20Event = TypedEvent<[ string, string, BigNumber, string ], DistributeERC20EventObject>; export declare type DistributeERC20EventFilter = TypedEventFilter; export interface DistributeETHEventObject { split: string; amount: BigNumber; distributorAddress: string; } export declare type DistributeETHEvent = TypedEvent<[ string, BigNumber, string ], DistributeETHEventObject>; export declare type DistributeETHEventFilter = TypedEventFilter; export interface InitiateControlTransferEventObject { split: string; newPotentialController: string; } export declare type InitiateControlTransferEvent = TypedEvent<[ string, string ], InitiateControlTransferEventObject>; export declare type InitiateControlTransferEventFilter = TypedEventFilter; export interface UpdateSplitEventObject { split: string; } export declare type UpdateSplitEvent = TypedEvent<[string], UpdateSplitEventObject>; export declare type UpdateSplitEventFilter = TypedEventFilter; export interface WithdrawalEventObject { account: string; ethAmount: BigNumber; tokens: string[]; tokenAmounts: BigNumber[]; } export declare type WithdrawalEvent = TypedEvent<[ string, BigNumber, string[], BigNumber[] ], WithdrawalEventObject>; export declare type WithdrawalEventFilter = TypedEventFilter; export interface ISplitMain extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: ISplitMainInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { acceptControl(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; cancelControlTransfer(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; createSplit(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, controller: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; distributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; distributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; makeSplitImmutable(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; predictImmutableSplitAddress(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; transferControl(split: PromiseOrValue, newController: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateAndDistributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateAndDistributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateSplit(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; walletImplementation(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdraw(account: PromiseOrValue, withdrawETH: PromiseOrValue, tokens: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; acceptControl(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; cancelControlTransfer(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; createSplit(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, controller: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; distributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; distributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; makeSplitImmutable(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; predictImmutableSplitAddress(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: CallOverrides): Promise; transferControl(split: PromiseOrValue, newController: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateAndDistributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateAndDistributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateSplit(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; walletImplementation(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdraw(account: PromiseOrValue, withdrawETH: PromiseOrValue, tokens: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; callStatic: { acceptControl(split: PromiseOrValue, overrides?: CallOverrides): Promise; cancelControlTransfer(split: PromiseOrValue, overrides?: CallOverrides): Promise; createSplit(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, controller: PromiseOrValue, overrides?: CallOverrides): Promise; distributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: CallOverrides): Promise; distributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: CallOverrides): Promise; makeSplitImmutable(split: PromiseOrValue, overrides?: CallOverrides): Promise; predictImmutableSplitAddress(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: CallOverrides): Promise; transferControl(split: PromiseOrValue, newController: PromiseOrValue, overrides?: CallOverrides): Promise; updateAndDistributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: CallOverrides): Promise; updateAndDistributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: CallOverrides): Promise; updateSplit(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: CallOverrides): Promise; walletImplementation(overrides?: CallOverrides): Promise; withdraw(account: PromiseOrValue, withdrawETH: PromiseOrValue, tokens: PromiseOrValue[], overrides?: CallOverrides): Promise; }; filters: { "CancelControlTransfer(address)"(split?: PromiseOrValue | null): CancelControlTransferEventFilter; CancelControlTransfer(split?: PromiseOrValue | null): CancelControlTransferEventFilter; "ControlTransfer(address,address,address)"(split?: PromiseOrValue | null, previousController?: PromiseOrValue | null, newController?: PromiseOrValue | null): ControlTransferEventFilter; ControlTransfer(split?: PromiseOrValue | null, previousController?: PromiseOrValue | null, newController?: PromiseOrValue | null): ControlTransferEventFilter; "CreateSplit(address)"(split?: PromiseOrValue | null): CreateSplitEventFilter; CreateSplit(split?: PromiseOrValue | null): CreateSplitEventFilter; "DistributeERC20(address,address,uint256,address)"(split?: PromiseOrValue | null, token?: PromiseOrValue | null, amount?: null, distributorAddress?: PromiseOrValue | null): DistributeERC20EventFilter; DistributeERC20(split?: PromiseOrValue | null, token?: PromiseOrValue | null, amount?: null, distributorAddress?: PromiseOrValue | null): DistributeERC20EventFilter; "DistributeETH(address,uint256,address)"(split?: PromiseOrValue | null, amount?: null, distributorAddress?: PromiseOrValue | null): DistributeETHEventFilter; DistributeETH(split?: PromiseOrValue | null, amount?: null, distributorAddress?: PromiseOrValue | null): DistributeETHEventFilter; "InitiateControlTransfer(address,address)"(split?: PromiseOrValue | null, newPotentialController?: PromiseOrValue | null): InitiateControlTransferEventFilter; InitiateControlTransfer(split?: PromiseOrValue | null, newPotentialController?: PromiseOrValue | null): InitiateControlTransferEventFilter; "UpdateSplit(address)"(split?: PromiseOrValue | null): UpdateSplitEventFilter; UpdateSplit(split?: PromiseOrValue | null): UpdateSplitEventFilter; "Withdrawal(address,uint256,address[],uint256[])"(account?: PromiseOrValue | null, ethAmount?: null, tokens?: null, tokenAmounts?: null): WithdrawalEventFilter; Withdrawal(account?: PromiseOrValue | null, ethAmount?: null, tokens?: null, tokenAmounts?: null): WithdrawalEventFilter; }; estimateGas: { acceptControl(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; cancelControlTransfer(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; createSplit(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, controller: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; distributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; distributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; makeSplitImmutable(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; predictImmutableSplitAddress(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: CallOverrides): Promise; transferControl(split: PromiseOrValue, newController: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateAndDistributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateAndDistributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateSplit(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; walletImplementation(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdraw(account: PromiseOrValue, withdrawETH: PromiseOrValue, tokens: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { acceptControl(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; cancelControlTransfer(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; createSplit(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, controller: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; distributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; distributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; makeSplitImmutable(split: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; predictImmutableSplitAddress(accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: CallOverrides): Promise; transferControl(split: PromiseOrValue, newController: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateAndDistributeERC20(split: PromiseOrValue, token: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateAndDistributeETH(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, distributorAddress: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; updateSplit(split: PromiseOrValue, accounts: PromiseOrValue[], percentAllocations: PromiseOrValue[], distributorFee: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; walletImplementation(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdraw(account: PromiseOrValue, withdrawETH: PromiseOrValue, tokens: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; }