import { AllPlugins } from '../../../../Fct';
import { ChainId, FlowType, Plugin } from '../../../../Fct/generics';
import { MulticallConfig, MulticallMethod, MulticallName, MulticallProtocol, MulticallType } from './Multicall';
import { BeforeSimulate } from './BeforeSimulate';
declare function createMulticallPlugin
[]>({ plugin, protocol, type, method, name, config, addPluginOnInit, withPluginOutputs, estimateGasFromPlugins, beforeSimulate, flowType, }: {
plugin: AllPlugins | AllPlugins[];
protocol: MulticallProtocol;
type: MulticallType;
method: MulticallMethod;
name: MulticallName;
config: MulticallConfig
;
withPluginOutputs?: boolean;
addPluginOnInit?: boolean;
estimateGasFromPlugins?: (plugins: P, chainId: ChainId) => string;
beforeSimulate?: BeforeSimulate;
flowType?: FlowType;
}): {
new ({ chainId, vaultAddress, walletAddress, }: {
chainId: ChainId;
vaultAddress?: string | undefined;
walletAddress?: string | undefined;
}): {
_plugins: P;
readonly chainId: ChainId;
readonly type: MulticallType;
readonly protocol: "KIROBO_MULTICALL";
readonly method: MulticallMethod;
readonly name: MulticallName;
readonly toENS: string;
readonly config: MulticallConfig
;
getOutputValues: ({ provider, walletSigner, execute, withAutoApprovals, service, }: {
provider: import("../../../../Fct/generics").PluginProviderType;
walletSigner?: any;
execute?: boolean | undefined;
withAutoApprovals?: boolean | undefined;
service?: any;
}) => Promise | {
params: {};
error: string;
}>;
readonly contractInterface: string;
readonly methodInterface: string;
readonly methodInterfaceHash: string;
readonly contractInterfaceReturns: string;
readonly plugins: P;
readonly pluginsLength: number;
_plugin: {
new (args: {
chainId: ChainId;
initParams?: Partial<{
[x: string]: any;
}> | undefined;
walletAddress?: string | undefined;
vaultAddress?: string | undefined;
provider?: import("@ethersproject/providers").JsonRpcProvider | undefined;
}): import("../../../../Fct").NewPluginType>;
} | {
new (args: {
chainId: ChainId;
initParams?: Partial<{
[x: string]: any;
}> | undefined;
walletAddress?: string | undefined;
vaultAddress?: string | undefined;
provider?: import("@ethersproject/providers").JsonRpcProvider | undefined;
}): import("../../../../Fct").NewPluginType>;
}[];
_protocol: "KIROBO_MULTICALL";
_type: MulticallType;
_method: MulticallMethod;
_name: MulticallName;
_config: MulticallConfig;
_chainId: ChainId;
_vaultAddress?: string | undefined;
_walletAddress?: string | undefined;
_addPluginOnInit?: boolean | undefined;
_withPluginOutputs?: boolean | undefined;
_estimateGasFromPlugins?: ((plugins: P, chainId: ChainId) => string) | undefined;
_beforeSimulate?: BeforeSimulate | undefined;
_flowType?: FlowType;
readonly gasLimit: string;
add: (pluginNodeJSON?: (import("../../../../Fct/generics").JSONParams & string) | undefined) => any | undefined;
remove: () => any;
readonly input: import("../../../../Fct/generics").Input<{
input: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
} & {
to?: import("../../../../Fct").FctAddress | undefined;
gasLimit?: import("../../../../Fct").FctValue | undefined;
isOffChainOnly?: import("../../../../Fct").FctBoolean | undefined;
value?: import("../../../../Fct").FctValue | undefined;
} & {
methodParams: {
[key: string]: import("../../../../Fct").FctParamType;
};
};
output: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
};
}, Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}>>;
readonly output: import("../../../../Fct/generics").Output<{
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
}>;
removeAll: () => any;
toJSON: () => import("./Multicall").MulticallPluginJSON;
fromJSON: (multicallJSON: import("./Multicall").MulticallPluginJSON) => boolean;
jsonToPlugin: (plugin: import("../../../../Fct/generics").JSONParams & string, chainId: ChainId) => import("../../../../Fct").NewPluginType> | undefined;
subscribe: ({ callback, id, }: {
callback: (p: {
instance: import("../../../../Fct").NewPluginType<"KIROBO_MULTICALL", MulticallType, MulticallMethod, "erc20Airdrop" | "erc20Approvals" | "erc20MonoTransfers" | "erc20Transfers" | "transfers" | "multiBalance" | "multiAction" | "multiCall" | "multiValidate" | "multiGetOffchainData" | "multiMultiplier" | "multiDivider" | "multiSubtract" | "multiAdd" | "ethTransfers" | "approvedSwap" | "unwrapAndSendEth", {
input: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
} & {
to?: import("../../../../Fct").FctAddress | undefined;
gasLimit?: import("../../../../Fct").FctValue | undefined;
isOffChainOnly?: import("../../../../Fct").FctBoolean | undefined;
value?: import("../../../../Fct").FctValue | undefined;
} & {
methodParams: {
[key: string]: import("../../../../Fct").FctParamType;
};
};
output: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
};
}, Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}>>;
details: {
plugin: {
new (args: {
chainId: ChainId;
initParams?: Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}> | undefined;
walletAddress?: string | undefined;
vaultAddress?: string | undefined;
provider?: import("@ethersproject/providers").JsonRpcProvider | undefined;
}): import("../../../../Fct").NewPluginType<"KIROBO_MULTICALL", MulticallType, MulticallMethod, "erc20Airdrop" | "erc20Approvals" | "erc20MonoTransfers" | "erc20Transfers" | "transfers" | "multiBalance" | "multiAction" | "multiCall" | "multiValidate" | "multiGetOffchainData" | "multiMultiplier" | "multiDivider" | "multiSubtract" | "multiAdd" | "ethTransfers" | "approvedSwap" | "unwrapAndSendEth", {
input: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
} & {
to?: import("../../../../Fct").FctAddress | undefined;
gasLimit?: import("../../../../Fct").FctValue | undefined;
isOffChainOnly?: import("../../../../Fct").FctBoolean | undefined;
value?: import("../../../../Fct").FctValue | undefined;
} & {
methodParams: {
[key: string]: import("../../../../Fct").FctParamType;
};
};
output: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
};
}, Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}>>;
};
name: MulticallName;
description: MulticallName;
};
}, errors: undefined, chainId: ChainId, gasLimit: string | undefined) => void;
id: string;
}) => void;
unsubscribe: ({ id }: {
id: string;
}) => void;
getInterface(prev?: {
instance?: Plugin | undefined;
} | undefined): {
instance: import("../../../../Fct").NewPluginType<"KIROBO_MULTICALL", MulticallType, MulticallMethod, "erc20Airdrop" | "erc20Approvals" | "erc20MonoTransfers" | "erc20Transfers" | "transfers" | "multiBalance" | "multiAction" | "multiCall" | "multiValidate" | "multiGetOffchainData" | "multiMultiplier" | "multiDivider" | "multiSubtract" | "multiAdd" | "ethTransfers" | "approvedSwap" | "unwrapAndSendEth", {
input: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
} & {
to?: import("../../../../Fct").FctAddress | undefined;
gasLimit?: import("../../../../Fct").FctValue | undefined;
isOffChainOnly?: import("../../../../Fct").FctBoolean | undefined;
value?: import("../../../../Fct").FctValue | undefined;
} & {
methodParams: {
[key: string]: import("../../../../Fct").FctParamType;
};
};
output: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
};
}, Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}>>;
details: {
plugin: {
new (args: {
chainId: ChainId;
initParams?: Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}> | undefined;
walletAddress?: string | undefined;
vaultAddress?: string | undefined;
provider?: import("@ethersproject/providers").JsonRpcProvider | undefined;
}): import("../../../../Fct").NewPluginType<"KIROBO_MULTICALL", MulticallType, MulticallMethod, "erc20Airdrop" | "erc20Approvals" | "erc20MonoTransfers" | "erc20Transfers" | "transfers" | "multiBalance" | "multiAction" | "multiCall" | "multiValidate" | "multiGetOffchainData" | "multiMultiplier" | "multiDivider" | "multiSubtract" | "multiAdd" | "ethTransfers" | "approvedSwap" | "unwrapAndSendEth", {
input: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
} & {
to?: import("../../../../Fct").FctAddress | undefined;
gasLimit?: import("../../../../Fct").FctValue | undefined;
isOffChainOnly?: import("../../../../Fct").FctBoolean | undefined;
value?: import("../../../../Fct").FctValue | undefined;
} & {
methodParams: {
[key: string]: import("../../../../Fct").FctParamType;
};
};
output: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
};
}, Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}>>;
};
name: MulticallName;
description: MulticallName;
};
};
pluginParamsToMulticallParamsTuples: () => {
inputs: {
param: import("../../../../Fct").ParamsSchemas;
key: string;
}[][];
outputs: {
param: import("../../../../Fct").ParamsSchemas;
key: string;
}[][];
uniqueParams: {
param: import("../../../../Fct").ParamsSchemas;
key: string;
}[];
onchainParams: {
param: import("../../../../Fct").ParamsSchemas;
key: string;
}[];
};
create: (isEstimation?: boolean | undefined, testProvider?: import("@ethersproject/providers").JsonRpcProvider | undefined) => Promise;
setMethodParams(params: import("../../../../Fct").SetMethodParamsArgs): void;
getOutputParamsTypes: () => string[] | (string | (string & import("../../../../Fct").TradingGraphPropsType))[][][];
setOutputParams(params: import("../../../../Fct").SetOutputParamsArgs): void;
_getOutputValues: ({ provider, execute }: {
provider: import("../../../../Fct/generics").PluginProviderType;
execute?: boolean | undefined;
}) => Promise<{
trx: (string | boolean | string[])[];
gasLimit: any;
} | {
trx: import("@ethersproject/abi").Result[];
gasLimit: any;
}>;
getRequiredApprovals: (isEstimation?: boolean | undefined) => import("../../../../Fct").RequiredApprovalInterface[];
observers: Map>;
details: {
plugin: {
new (args: {
chainId: ChainId;
initParams?: Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}> | undefined;
walletAddress?: string | undefined;
vaultAddress?: string | undefined;
provider?: import("@ethersproject/providers").JsonRpcProvider | undefined;
}): import("../../../../Fct").NewPluginType<"KIROBO_MULTICALL", MulticallType, MulticallMethod, "erc20Airdrop" | "erc20Approvals" | "erc20MonoTransfers" | "erc20Transfers" | "transfers" | "multiBalance" | "multiAction" | "multiCall" | "multiValidate" | "multiGetOffchainData" | "multiMultiplier" | "multiDivider" | "multiSubtract" | "multiAdd" | "ethTransfers" | "approvedSwap" | "unwrapAndSendEth", {
input: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
} & {
to?: import("../../../../Fct").FctAddress | undefined;
gasLimit?: import("../../../../Fct").FctValue | undefined;
isOffChainOnly?: import("../../../../Fct").FctBoolean | undefined;
value?: import("../../../../Fct").FctValue | undefined;
} & {
methodParams: {
[key: string]: import("../../../../Fct").FctParamType;
};
};
output: {
[key: string]: import("../../../../Fct").FctParamType | {
[key: string]: import("../../../../Fct").FctParamType;
};
};
}, Partial<{
[x: string]: unknown;
to?: unknown;
gasLimit?: unknown;
isOffChainOnly?: unknown;
value?: unknown;
methodParams: unknown;
}>>;
};
name: MulticallName;
description: MulticallName;
};
}, errors: undefined, chainId: ChainId, gasLimit: string | undefined) => void>;
updateSubscriptions: () => void;
currentGasLimit: string | undefined;
_currentGasLimit: string | undefined;
};
};
export default createMulticallPlugin;