mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-01 13:47:06 +01:00
3577d3545f
Converting this controller to TypeScript furthers the goal of getting this whole codebase converted, of course, but it also helps in comparing the differences between this version of the NetworkController and the version in the `core` repo more easily, which will ultimately help us in coalescing the two implementations. Co-authored-by: Mark Stacey <markjstacey@gmail.com> Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
51 lines
1.1 KiB
TypeScript
51 lines
1.1 KiB
TypeScript
declare module 'eth-query' {
|
|
// What it says on the tin. We omit `null` because confusingly, this is used
|
|
// for a successful response to indicate a lack of an error.
|
|
type EverythingButNull =
|
|
| string
|
|
| number
|
|
| boolean
|
|
| object
|
|
| symbol
|
|
| undefined;
|
|
|
|
type ProviderSendAsyncResponse<Result> = {
|
|
error?: { message: string };
|
|
result?: Result;
|
|
};
|
|
|
|
type ProviderSendAsyncCallback<Result> = (
|
|
error: unknown,
|
|
response: ProviderSendAsyncResponse<Result>,
|
|
) => void;
|
|
|
|
type Provider = {
|
|
sendAsync<Params, Result>(
|
|
payload: SendAsyncPayload<Params>,
|
|
callback: ProviderSendAsyncCallback<Result>,
|
|
): void;
|
|
};
|
|
|
|
type SendAsyncPayload<Params> = {
|
|
id: number;
|
|
jsonrpc: '2.0';
|
|
method: string;
|
|
params: Params;
|
|
};
|
|
|
|
type SendAsyncCallback<Result> = (
|
|
...args:
|
|
| [error: EverythingButNull, result: undefined]
|
|
| [error: null, result: Result]
|
|
) => void;
|
|
|
|
export default class EthQuery {
|
|
constructor(provider: Provider);
|
|
|
|
sendAsync<Params, Result>(
|
|
opts: Partial<SendAsyncPayload<Params>>,
|
|
callback: SendAsyncCallback<Result>,
|
|
): void;
|
|
}
|
|
}
|