Skip to content

Commit 52728bc

Browse files
authored
Merge pull request #422 from rainlanguage/2025-12-06-new-pool-wtacher
new pool notif handler
2 parents 39c5846 + 8ee445c commit 52728bc

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

src/core/process/round.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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,

src/router/sushi/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,8 @@ export class SushiRouter extends RainSolverRouterBase {
252252
* Updates the pool data to the latest block or the specified block number
253253
* @param blockNumber - Optional block number to fetch the pools data at a specific block height
254254
*/
255-
async update(blockNumber?: bigint) {
256-
await this.dataFetcher.updatePools(blockNumber);
255+
async update(blockNumber?: bigint): Promise<boolean> {
256+
return await this.dataFetcher.updatePools(blockNumber);
257257
}
258258

259259
/**

0 commit comments

Comments
 (0)