diff --git a/src/BaseBlockTracker.ts b/src/BaseBlockTracker.ts index bd7b9903..4a2e71c1 100644 --- a/src/BaseBlockTracker.ts +++ b/src/BaseBlockTracker.ts @@ -1,5 +1,4 @@ import SafeEventEmitter from '@metamask/safe-event-emitter'; -import { JsonRpcRequest, JsonRpcResponse } from 'json-rpc-engine'; const sec = 1000; @@ -7,13 +6,6 @@ const calculateSum = (accumulator: number, currentValue: number) => accumulator + currentValue; const blockTrackerEvents: (string | symbol)[] = ['sync', 'latest']; -export interface Provider extends SafeEventEmitter { - sendAsync: ( - req: JsonRpcRequest, - cb: (err: Error, response: JsonRpcResponse) => void, - ) => void; -} - interface BaseBlockTrackerArgs { blockResetDuration?: number; } diff --git a/src/PollingBlockTracker.ts b/src/PollingBlockTracker.ts index 48bbb737..34f9bfbe 100644 --- a/src/PollingBlockTracker.ts +++ b/src/PollingBlockTracker.ts @@ -1,8 +1,9 @@ import getCreateRandomId from 'json-rpc-random-id'; import pify from 'pify'; import { JsonRpcRequest } from 'json-rpc-engine'; -import { BaseBlockTracker, Provider } from './BaseBlockTracker'; +import { BaseBlockTracker } from './BaseBlockTracker'; import { projectLogger, createModuleLogger } from './logging-utils'; +import { Provider } from './types'; const log = createModuleLogger(projectLogger, 'polling-block-tracker'); const createRandomId = getCreateRandomId(); diff --git a/src/SubscribeBlockTracker.ts b/src/SubscribeBlockTracker.ts index 039f5dd6..86958be2 100644 --- a/src/SubscribeBlockTracker.ts +++ b/src/SubscribeBlockTracker.ts @@ -1,6 +1,7 @@ import getCreateRandomId from 'json-rpc-random-id'; import { JsonRpcNotification, JsonRpcSuccess } from 'json-rpc-engine'; -import { BaseBlockTracker, Provider } from './BaseBlockTracker'; +import { BaseBlockTracker } from './BaseBlockTracker'; +import { Provider } from './types'; const createRandomId = getCreateRandomId(); diff --git a/src/index.ts b/src/index.ts index 11e7924f..53bc3052 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1,3 @@ export * from './PollingBlockTracker'; export * from './SubscribeBlockTracker'; +export * from './types'; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 00000000..55a89568 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,11 @@ +import SafeEventEmitter from '@metamask/safe-event-emitter'; +import { JsonRpcRequest, JsonRpcResponse } from 'json-rpc-engine'; + +// This type should be compatible with the one defined in +// `eth-json-rpc-middleware`. +export interface Provider extends SafeEventEmitter { + sendAsync: ( + req: JsonRpcRequest, + cb: (err: unknown, response: JsonRpcResponse) => void, + ) => void; +} diff --git a/tests/withBlockTracker.ts b/tests/withBlockTracker.ts index 439c47ee..9aa379b9 100644 --- a/tests/withBlockTracker.ts +++ b/tests/withBlockTracker.ts @@ -1,15 +1,13 @@ import util from 'util'; import SafeEventEmitter from '@metamask/safe-event-emitter'; import { JsonRpcRequest, JsonRpcResponse } from 'json-rpc-engine'; -import { Provider } from '../src/BaseBlockTracker'; -import { - SubscribeBlockTracker, - SubscribeBlockTrackerOptions, -} from '../src/SubscribeBlockTracker'; import { PollingBlockTracker, PollingBlockTrackerOptions, -} from '../src/PollingBlockTracker'; + Provider, + SubscribeBlockTracker, + SubscribeBlockTrackerOptions, +} from '../src'; interface WithPollingBlockTrackerOptions { provider?: FakeProviderOptions;