/*
This file is part of confluxWeb.
confluxWeb is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
confluxWeb is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with confluxWeb. If not, see .
*/
import {Utils} from 'conflux-web-utils';
import {AbstractConfluxWebModule, PromiEvent} from 'conflux-web-core';
import {formatters} from 'conflux-web-core-helpers';
export class AbstractMethod {
constructor(
rpcMethod: string,
parametersAmount: number,
utils: Utils,
formatters: formatters,
moduleInstance: AbstractConfluxWebModule
);
utils: Utils;
formatters: formatters;
promiEvent: PromiEvent;
rpcMethod: string;
parametersAmount: number;
parameters: any[];
getArguments(): any;
setArguments(args: any[]): void;
isHash(parameter: string): boolean;
hasWallets(): boolean;
callback(error: string | Error, response: any): void;
beforeExecution(moduleInstance: AbstractConfluxWebModule): void;
afterExecution(response: any): any;
execute(): Promise | PromiEvent | string;
clearSubscriptions(unsubscribeMethod: string): Promise;
}
export class AbstractMethodFactory {
constructor(utils: Utils, formatters: formatters);
methods: null | object;
hasMethod: boolean;
createMethod(name: string, moduleInstance: AbstractConfluxWebModule): AbstractMethod;
}