1- import { Web3Provider } from '@ethersproject/providers' ;
21import type { RampsOrder } from '@metamask/ramps-controller' ;
32import type { TransactionMeta } from '@metamask/transaction-controller' ;
43import { TransactionType } from '@metamask/transaction-controller' ;
@@ -15,11 +14,6 @@ import {
1514 resolveSourceAmountRaw ,
1615} from './utils' ;
1716
18- jest . mock ( '@ethersproject/providers' , ( ) => ( {
19- ...jest . requireActual ( '@ethersproject/providers' ) ,
20- Web3Provider : jest . fn ( ) ,
21- } ) ) ;
22-
2317const TX_HASH_MOCK = '0xabc123' ;
2418const WALLET_ADDRESS_MOCK = '0x1111111111111111111111111111111111111111' as Hex ;
2519const ERC20_ADDRESS_MOCK = '0x2222222222222222222222222222222222222222' as Hex ;
@@ -210,23 +204,17 @@ describe('Fiat Utils', () => {
210204 messenger : resolveMessenger ,
211205 findNetworkClientIdByChainIdMock,
212206 getNetworkClientByIdMock,
207+ getNetworkConfigurationByChainIdMock,
213208 getTokensControllerStateMock,
214209 getRemoteFeatureFlagControllerStateMock :
215210 resolveRemoteFeatureFlagControllerStateMock ,
216211 } = getMessengerMock ( ) ;
217212
218- let mockGetTransactionReceipt : jest . Mock ;
219- let mockSend : jest . Mock ;
220- let mockGetTransaction : jest . Mock ;
221-
222213 beforeEach ( ( ) => {
223214 jest . resetAllMocks ( ) ;
224215
225- mockGetTransactionReceipt = jest . fn ( ) ;
226- mockSend = jest . fn ( ) ;
227- mockGetTransaction = jest . fn ( ) ;
228-
229216 findNetworkClientIdByChainIdMock . mockReturnValue ( NETWORK_CLIENT_ID_MOCK ) ;
217+ getNetworkConfigurationByChainIdMock . mockReturnValue ( undefined ) ;
230218 getNetworkClientByIdMock . mockReturnValue ( {
231219 provider : PROVIDER_MOCK ,
232220 } as never ) ;
@@ -255,16 +243,10 @@ describe('Fiat Utils', () => {
255243 allIgnoredTokens : { } ,
256244 allDetectedTokens : { } ,
257245 } as never ) ;
258-
259- ( Web3Provider as unknown as jest . Mock ) . mockImplementation ( ( ) => ( {
260- getTransactionReceipt : mockGetTransactionReceipt ,
261- send : mockSend ,
262- getTransaction : mockGetTransaction ,
263- } ) ) ;
264246 } ) ;
265247
266248 it ( 'returns on-chain ERC-20 amount from receipt logs' , async ( ) => {
267- mockGetTransactionReceipt . mockResolvedValue ( {
249+ ( PROVIDER_MOCK . request as jest . Mock ) . mockResolvedValue ( {
268250 logs : [
269251 {
270252 address : ERC20_ADDRESS_MOCK ,
@@ -297,11 +279,11 @@ describe('Fiat Utils', () => {
297279 } ) ;
298280
299281 expect ( result ) . toBe ( '1500000' ) ;
300- expect ( mockGetTransactionReceipt ) . not . toHaveBeenCalled ( ) ;
282+ expect ( PROVIDER_MOCK . request ) . not . toHaveBeenCalled ( ) ;
301283 } ) ;
302284
303285 it ( 'falls back to cryptoAmount when receipt is null' , async ( ) => {
304- mockGetTransactionReceipt . mockResolvedValue ( null ) ;
286+ ( PROVIDER_MOCK . request as jest . Mock ) . mockResolvedValue ( null ) ;
305287
306288 const result = await resolveSourceAmountRaw ( {
307289 messenger : resolveMessenger ,
@@ -314,7 +296,9 @@ describe('Fiat Utils', () => {
314296 } ) ;
315297
316298 it ( 'falls back to cryptoAmount when on-chain read throws' , async ( ) => {
317- mockGetTransactionReceipt . mockRejectedValue ( new Error ( 'Network error' ) ) ;
299+ ( PROVIDER_MOCK . request as jest . Mock ) . mockRejectedValue (
300+ new Error ( 'Network error' ) ,
301+ ) ;
318302
319303 const result = await resolveSourceAmountRaw ( {
320304 messenger : resolveMessenger ,
@@ -327,7 +311,7 @@ describe('Fiat Utils', () => {
327311 } ) ;
328312
329313 it ( 'returns native amount from debug_traceTransaction' , async ( ) => {
330- mockSend . mockResolvedValue ( {
314+ ( PROVIDER_MOCK . request as jest . Mock ) . mockResolvedValue ( {
331315 to : WALLET_ADDRESS_MOCK . toLowerCase ( ) ,
332316 value : '0x1bc16d674ec80000' ,
333317 calls : [ ] ,
@@ -344,11 +328,17 @@ describe('Fiat Utils', () => {
344328 } ) ;
345329
346330 it ( 'falls back to tx.value for native when trace is unsupported' , async ( ) => {
347- mockSend . mockRejectedValue ( new Error ( 'Method not found' ) ) ;
348- mockGetTransaction . mockResolvedValue ( {
349- to : WALLET_ADDRESS_MOCK . toLowerCase ( ) ,
350- value : { toString : ( ) => '2000000000000000000' } ,
351- } ) ;
331+ ( PROVIDER_MOCK . request as jest . Mock ) . mockImplementation (
332+ ( { method } : { method : string } ) => {
333+ if ( method === 'debug_traceTransaction' ) {
334+ return Promise . reject ( new Error ( 'Method not found' ) ) ;
335+ }
336+ return Promise . resolve ( {
337+ to : WALLET_ADDRESS_MOCK . toLowerCase ( ) ,
338+ value : '0x1bc16d674ec80000' ,
339+ } ) ;
340+ } ,
341+ ) ;
352342
353343 const result = await resolveSourceAmountRaw ( {
354344 messenger : resolveMessenger ,
0 commit comments