1+ import { JsonRpcEngine , JsonRpcMiddleware } from '@metamask/json-rpc-engine' ;
2+ import { rpcErrors , JsonRpcError } from '@metamask/rpc-errors' ;
13import SafeEventEmitter from '@metamask/safe-event-emitter' ;
2- import { ethErrors , EthereumRpcError } from 'eth-rpc-errors' ;
3- import dequal from 'fast-deep-equal' ;
44import {
5- JsonRpcEngine ,
65 JsonRpcRequest ,
76 JsonRpcId ,
8- JsonRpcVersion ,
7+ JsonRpcVersion2 ,
98 JsonRpcSuccess ,
10- JsonRpcMiddleware ,
11- } from 'json-rpc-engine' ;
9+ JsonRpcParams ,
10+ Json ,
11+ } from '@metamask/utils' ;
12+ import dequal from 'fast-deep-equal' ;
1213
1314import messages from './messages' ;
1415import {
@@ -20,7 +21,7 @@ import {
2021
2122export type UnvalidatedJsonRpcRequest = {
2223 id ?: JsonRpcId ;
23- jsonrpc ?: JsonRpcVersion ;
24+ jsonrpc ?: JsonRpcVersion2 ;
2425 method : string ;
2526 params ?: unknown ;
2627} ;
@@ -37,10 +38,10 @@ export type BaseProviderOptions = {
3738 maxEventListeners ?: number ;
3839
3940 /**
40- * `json-rpc-engine` middleware. The middleware will be inserted in the given
41+ * `@metamask/ json-rpc-engine` middleware. The middleware will be inserted in the given
4142 * order immediately after engine initialization.
4243 */
43- rpcMiddleware ?: JsonRpcMiddleware < unknown , unknown > [ ] ;
44+ rpcMiddleware ?: JsonRpcMiddleware < JsonRpcParams , Json > [ ] ;
4445} ;
4546
4647export type RequestArguments = {
@@ -169,7 +170,7 @@ export abstract class BaseProvider extends SafeEventEmitter {
169170 */
170171 async request < T > ( args : RequestArguments ) : Promise < Maybe < T > > {
171172 if ( ! args || typeof args !== 'object' || Array . isArray ( args ) ) {
172- throw ethErrors . rpc . invalidRequest ( {
173+ throw rpcErrors . invalidRequest ( {
173174 message : messages . errors . invalidRequestArgs ( ) ,
174175 data : args ,
175176 } ) ;
@@ -178,7 +179,7 @@ export abstract class BaseProvider extends SafeEventEmitter {
178179 const { method, params } = args ;
179180
180181 if ( typeof method !== 'string' || method . length === 0 ) {
181- throw ethErrors . rpc . invalidRequest ( {
182+ throw rpcErrors . invalidRequest ( {
182183 message : messages . errors . invalidRequestMethod ( ) ,
183184 data : args ,
184185 } ) ;
@@ -189,7 +190,7 @@ export abstract class BaseProvider extends SafeEventEmitter {
189190 ! Array . isArray ( params ) &&
190191 ( typeof params !== 'object' || params === null )
191192 ) {
192- throw ethErrors . rpc . invalidRequest ( {
193+ throw rpcErrors . invalidRequest ( {
193194 message : messages . errors . invalidRequestParams ( ) ,
194195 data : args ,
195196 } ) ;
@@ -285,15 +286,9 @@ export abstract class BaseProvider extends SafeEventEmitter {
285286 callback ( error , response ) ;
286287 } ;
287288 }
288- return this . _rpcEngine . handle (
289- payload as JsonRpcRequest < unknown > ,
290- callbackWrapper ,
291- ) ;
289+ return this . _rpcEngine . handle ( payload as JsonRpcRequest , callbackWrapper ) ;
292290 }
293- return this . _rpcEngine . handle (
294- payload as JsonRpcRequest < unknown > [ ] ,
295- callbackWrapper ,
296- ) ;
291+ return this . _rpcEngine . handle ( payload as JsonRpcRequest [ ] , callbackWrapper ) ;
297292 }
298293
299294 /**
@@ -331,13 +326,13 @@ export abstract class BaseProvider extends SafeEventEmitter {
331326
332327 let error ;
333328 if ( isRecoverable ) {
334- error = new EthereumRpcError (
329+ error = new JsonRpcError (
335330 1013 , // Try again later
336331 errorMessage ?? messages . errors . disconnected ( ) ,
337332 ) ;
338333 this . _log . debug ( error ) ;
339334 } else {
340- error = new EthereumRpcError (
335+ error = new JsonRpcError (
341336 1011 , // Internal error
342337 errorMessage ?? messages . errors . permanentlyDisconnected ( ) ,
343338 ) ;
0 commit comments