@@ -26,6 +26,7 @@ import {
2626 getMultipleAddressesEnabled ,
2727 getWsBatchRequestsEnabled ,
2828 handleConnectionClose ,
29+ paramRearrangementMap ,
2930 resolveParams ,
3031 sendToClient ,
3132} from '../../src/utils/utils' ;
@@ -313,4 +314,56 @@ describe('Utilities unit tests', async function () {
313314 } ) ;
314315 } ) ;
315316 } ) ;
317+
318+ describe ( 'paramRearrangementMap' , ( ) => {
319+ const requestDetails = new RequestDetails ( { ipAddress : '0.0.0.0' , requestId : 'test-id' } ) ;
320+ const specialMethodNames = [ `chainId` , `estimateGas` , `getStorageAt` , `newFilter` , `default` ] ;
321+
322+ const mockResolvedParams = {
323+ chainId : [ ] ,
324+ estimateGas : [
325+ {
326+ to : '0xD7d454ea421FA3E98c988c2A33b5292C70A43b1E' ,
327+ data : '0x18160ddd' ,
328+ } ,
329+ 'latest' ,
330+ ] ,
331+ getStorageAt : [ '0xd7d454ea421fa3e98c988c2a33b5292c70a43b1e' , '0x0' , 'latest' ] ,
332+ newFilter : [
333+ '0x0' ,
334+ 'latest' ,
335+ [ '0xf72ea4E404618E9DCcA79748236910887be9e2bd' ] ,
336+ [ '0x25d719d88a4512dd76c7442b910a83360845505894eb444ef299409e180f8fb9' ] ,
337+ ] ,
338+ default : [ '0x7cb9357e' , '0x7cb9357e' , '0x00abv' ] ,
339+ } ;
340+
341+ const expectedRearrangedParams = {
342+ chainId : [ requestDetails ] ,
343+ estimateGas : [ ...mockResolvedParams . estimateGas , requestDetails ] ,
344+ getStorageAt : [
345+ mockResolvedParams . getStorageAt [ 0 ] ,
346+ mockResolvedParams . getStorageAt [ 1 ] ,
347+ requestDetails ,
348+ mockResolvedParams . getStorageAt [ 2 ] ,
349+ ] ,
350+ newFilter : [
351+ mockResolvedParams . newFilter [ 0 ] ,
352+ mockResolvedParams . newFilter [ 1 ] ,
353+ requestDetails ,
354+ mockResolvedParams . newFilter [ 2 ] ,
355+ mockResolvedParams . newFilter [ 3 ] ,
356+ ] ,
357+ default : [ ...mockResolvedParams . default , requestDetails ] ,
358+ } ;
359+
360+ specialMethodNames . forEach ( ( methodName ) => {
361+ it ( `Should correctly rearrange parameters for ${ methodName } ` , ( ) => {
362+ const rearrangeParamsFn = paramRearrangementMap [ methodName ] ;
363+ const rearrangedParamsArray = rearrangeParamsFn ( mockResolvedParams [ methodName ] , requestDetails ) ;
364+ const expectedResult = expectedRearrangedParams [ methodName ] ;
365+ expect ( rearrangedParamsArray ) . to . deep . eq ( expectedResult ) ;
366+ } ) ;
367+ } ) ;
368+ } ) ;
316369} ) ;
0 commit comments