@@ -53,11 +53,13 @@ export async function initializeRound(
5353 }
5454 for ( const orderDetails of iterOrders ( orders , shuffle ) ) {
5555 // update pools data on each batch start
56+ let newPoolCreated = false ;
5657 if ( maxConcurrencyCounter === this . appOptions . maxConcurrency ) {
57- await this . state . router . sushi ?. update ( blockNumber ) . catch ( ( ) => undefined ) ;
58+ newPoolCreated =
59+ ( await this . state . router . sushi ?. update ( blockNumber ) . catch ( ( ) => false ) ) ?? false ;
5860 }
5961
60- await prepareRouter . call ( this , orderDetails , blockNumber ) ;
62+ await prepareRouter . call ( this , orderDetails , blockNumber , newPoolCreated ) ;
6163
6264 concurrencyProcessBatch . push (
6365 processOrderInit . call ( this , orderDetails , blockNumber ! , roundSpanCtx ) ,
@@ -98,10 +100,15 @@ export async function initializeRound(
98100 * @param orderDetails - The order details
99101 * @param blockNumber - The block number to fetch data at
100102 */
101- export async function prepareRouter ( this : RainSolver , orderDetails : Pair , blockNumber ?: bigint ) {
103+ export async function prepareRouter (
104+ this : RainSolver ,
105+ orderDetails : Pair ,
106+ blockNumber ?: bigint ,
107+ newPoolCreated ?: boolean ,
108+ ) {
102109 const key = `${ orderDetails . sellToken . toLowerCase ( ) } -${ orderDetails . buyToken . toLowerCase } ` ;
103110 const value = this . state . router . cache . get ( key ) ;
104- if ( typeof value === "number" && value > 3 ) return ;
111+ if ( ! newPoolCreated && typeof value === "number" && value > 3 ) return ;
105112
106113 const fromToken = new Token ( {
107114 chainId : this . state . chainConfig . id ,
0 commit comments