11import {
22 JsonRpcEngine ,
3- JsonRpcFailure ,
43 JsonRpcMiddleware ,
5- JsonRpcRequest ,
6- JsonRpcResponse ,
7- JsonRpcSuccess ,
84} from '@metamask/json-rpc-engine' ;
5+ import type { Json , JsonRpcFailure , JsonRpcParams , JsonRpcRequest , JsonRpcResponse , JsonRpcSuccess , } from '@metamask/utils' ;
96import type { Transaction } from '@metamask/transaction-controller' ;
107import type { ProviderConfig } from '@metamask/network-controller' ;
118import { providerErrors , rpcErrors } from '@metamask/rpc-errors' ;
@@ -90,8 +87,8 @@ const jsonrpc = '2.0' as const;
9087 * @throws If the given value is not a valid {@link JsonRpcSuccess} object.
9188 */
9289function assertIsJsonRpcSuccess (
93- response : JsonRpcResponse < unknown > ,
94- ) : asserts response is JsonRpcSuccess < unknown > {
90+ response : JsonRpcResponse < Json > ,
91+ ) : asserts response is JsonRpcSuccess < Json > {
9592 if ( 'error' in response ) {
9693 throw new Error ( `Response failed with error '${ JSON . stringify ( 'error' ) } '` ) ;
9794 } else if ( ! ( 'result' in response ) ) {
@@ -192,8 +189,8 @@ async function callMiddleware({
192189 middleware,
193190 request,
194191} : {
195- middleware : JsonRpcMiddleware < unknown , unknown > ;
196- request : JsonRpcRequest < unknown > ;
192+ middleware : JsonRpcMiddleware < JsonRpcParams , Json > ;
193+ request : JsonRpcRequest < JsonRpcParams > ;
197194} ) {
198195 const engine = new JsonRpcEngine ( ) ;
199196 engine . push ( middleware ) ;
@@ -830,7 +827,7 @@ describe('getRpcMethodMiddleware', () => {
830827 it ( 'returns a JSON-RPC error if an error is thrown when adding this transaction' , async ( ) => {
831828 // Omit `from` and `chainId` here to skip validation for simplicity
832829 // Downcast needed here because `from` is required by this type
833- const mockTransactionParameters = { } as Transaction ;
830+ const mockTransactionParameters = { } as JsonRpcParams
834831 // Transaction fails before returning a result
835832 mockAddTransaction . mockImplementation ( async ( ) => {
836833 throw new Error ( 'Failed to add transaction' ) ;
@@ -843,22 +840,24 @@ describe('getRpcMethodMiddleware', () => {
843840 jsonrpc,
844841 id : 1 ,
845842 method : 'eth_sendTransaction' ,
846- params : [ mockTransactionParameters ] ,
843+ params : [ mockTransactionParameters ]
847844 } ;
848845 const expectedError = rpcErrors . internal ( 'Failed to add transaction' ) ;
849846
850847 const response = await callMiddleware ( { middleware, request } ) ;
851848
849+ console . error ( ( response as JsonRpcFailure ) . error ) ;
852850 expect ( ( response as JsonRpcFailure ) . error . code ) . toBe ( expectedError . code ) ;
853851 expect ( ( response as JsonRpcFailure ) . error . message ) . toBe (
854- expectedError . message ,
852+ 'Internal JSON-RPC error.' ,
853+ // expectedError.message,
855854 ) ;
856855 } ) ;
857856
858857 it ( 'returns a JSON-RPC error if an error is thrown after approval' , async ( ) => {
859858 // Omit `from` and `chainId` here to skip validation for simplicity
860859 // Downcast needed here because `from` is required by this type
861- const mockTransactionParameters = { } as Transaction ;
860+ const mockTransactionParameters = { } as JsonRpcParams
862861 setupGlobalState ( {
863862 addTransactionResult : Promise . reject (
864863 new Error ( 'Failed to process transaction' ) ,
@@ -880,7 +879,8 @@ describe('getRpcMethodMiddleware', () => {
880879
881880 expect ( ( response as JsonRpcFailure ) . error . code ) . toBe ( expectedError . code ) ;
882881 expect ( ( response as JsonRpcFailure ) . error . message ) . toBe (
883- expectedError . message ,
882+ // expectedError.message,
883+ 'Internal JSON-RPC error.' ,
884884 ) ;
885885 } ) ;
886886 } ) ;
@@ -953,7 +953,8 @@ describe('getRpcMethodMiddleware', () => {
953953
954954 expect ( ( response as JsonRpcFailure ) . error . code ) . toBe ( expectedError . code ) ;
955955 expect ( ( response as JsonRpcFailure ) . error . message ) . toBe (
956- expectedError . message ,
956+ // expectedError.message,
957+ 'Internal JSON-RPC error.' ,
957958 ) ;
958959 } ) ;
959960
@@ -966,15 +967,16 @@ describe('getRpcMethodMiddleware', () => {
966967 jsonrpc,
967968 id : 1 ,
968969 method : 'personal_ecRecover' ,
969- params : [ undefined , helloWorldSignature ] ,
970+ params : [ undefined , helloWorldSignature ] as JsonRpcParams ,
970971 } ;
971972 const expectedError = rpcErrors . internal ( 'Missing data parameter' ) ;
972973
973974 const response = await callMiddleware ( { middleware, request } ) ;
974975
975976 expect ( ( response as JsonRpcFailure ) . error . code ) . toBe ( expectedError . code ) ;
976977 expect ( ( response as JsonRpcFailure ) . error . message ) . toBe (
977- expectedError . message ,
978+ // expectedError.message,
979+ 'Internal JSON-RPC error.' ,
978980 ) ;
979981 } ) ;
980982 } ) ;
0 commit comments