@@ -254,14 +254,7 @@ export default class RouteOperator {
254254
255255 let quoteMetadata = this . quoteMetadataCache . get ( routeName , quoteParams ) ;
256256
257- const isRefetchRequired =
258- ! quoteMetadata ?. quote ||
259- ! quoteMetadata ?. request ||
260- ! quoteMetadata ?. router ;
261-
262- if ( isRefetchRequired ) {
263- // Refetch the quote as cached quote does not exist
264- // This case should be hit rarely
257+ if ( ! quoteMetadata ) {
265258 quoteMetadata = await route . getQuote (
266259 amount ,
267260 sourceToken ,
@@ -273,12 +266,7 @@ export default class RouteOperator {
273266 ) ;
274267 }
275268
276- return route . send (
277- quoteMetadata as QuoteMetadata ,
278- signer ,
279- destChain ,
280- recipientAddress ,
281- ) ;
269+ return route . send ( quoteMetadata , signer , destChain , recipientAddress ) ;
282270 }
283271}
284272
@@ -308,7 +296,7 @@ class QuoteMetadataCache {
308296 ) } :${ params . nativeGas } :${ params . recipient } `;
309297 }
310298
311- get ( routeName : string , params : QuoteParams ) : Partial < QuoteMetadata > | null {
299+ get ( routeName : string , params : QuoteParams ) : QuoteMetadata | null {
312300 const key = this . quoteParamsKey ( routeName , params ) ;
313301 const quoteMetadata = this . cache [ key ] ;
314302 const hasQuoteExpired = quoteMetadata ?. ttl ( ) <= 5_000 ;
@@ -321,7 +309,7 @@ class QuoteMetadataCache {
321309 return {
322310 quote : quoteMetadata . quote ,
323311 request : quoteMetadata . request ,
324- router : quoteMetadata . router ,
312+ routeInstance : quoteMetadata . routeInstance ,
325313 } ;
326314 }
327315
@@ -343,7 +331,7 @@ class QuoteMetadataCache {
343331
344332 // We don't yet have a pending request for this key, so initiate one
345333 route
346- . computeQuote (
334+ . getQuote (
347335 params . amount ,
348336 params . sourceToken ,
349337 params . destToken ,
@@ -352,7 +340,7 @@ class QuoteMetadataCache {
352340 { nativeGas : params . nativeGas } ,
353341 params . recipient ,
354342 )
355- . then ( ( { router , quote, request } : Required < QuoteMetadata > ) => {
343+ . then ( ( { routeInstance , quote, request } : QuoteMetadata ) => {
356344 const pending = this . pending [ key ] ;
357345
358346 for ( const { resolve } of pending ) {
@@ -365,7 +353,7 @@ class QuoteMetadataCache {
365353 quote . expires = getQuoteExpiry ( quote . expires ) ;
366354 }
367355
368- this . cache [ key ] = new QuoteMetadataEntry ( quote , router , request ) ;
356+ this . cache [ key ] = new QuoteMetadataEntry ( quote , routeInstance , request ) ;
369357 } )
370358 . catch ( ( err : any ) => {
371359 const pending = this . pending [ key ] ;
@@ -377,10 +365,14 @@ class QuoteMetadataCache {
377365 delete this . pending [ key ] ;
378366
379367 // Cache uncaught error
380- this . cache [ key ] = new QuoteMetadataEntry ( {
381- success : false ,
382- error : err ,
383- } ) ;
368+ this . cache [ key ] = new QuoteMetadataEntry (
369+ {
370+ success : false ,
371+ error : err ,
372+ } ,
373+ { } as routes . Route < Network > ,
374+ { } as routes . RouteTransferRequest < Network > ,
375+ ) ;
384376 } ) ;
385377
386378 return new Promise ( ( resolve , reject ) => {
@@ -418,17 +410,17 @@ class QuoteMetadataEntry {
418410 // Last time we fetched a quote
419411 timestamp : Date ;
420412 // Optional route used for the quote
421- router ? : routes . Route < Network > ;
413+ routeInstance : routes . Route < Network > ;
422414 // Optional request used for the quote
423- request ? : routes . RouteTransferRequest < Network > ;
415+ request : routes . RouteTransferRequest < Network > ;
424416
425417 constructor (
426418 quote : QuoteResult ,
427- router ? : routes . Route < Network > ,
428- request ? : routes . RouteTransferRequest < Network > ,
419+ routeInstance : routes . Route < Network > ,
420+ request : routes . RouteTransferRequest < Network > ,
429421 ) {
430422 this . quote = quote ;
431- this . router = router ;
423+ this . routeInstance = routeInstance ;
432424 this . request = request ;
433425 this . timestamp = new Date ( ) ;
434426 }
0 commit comments