Skip to content

Commit 1728816

Browse files
authored
Mole: add new bluefin type of workers (#16973)
1 parent 7ce3f61 commit 1728816

File tree

1 file changed

+37
-11
lines changed

1 file changed

+37
-11
lines changed

projects/mole/lyf.js

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,15 @@ async function calLyfTvlSui(api) {
240240
const entity = workerEntities.find(({ workerInfo: w }) => w === workerId);
241241
if (!entity) return null;
242242

243-
return entity.isSF
243+
if (entity.dex == 0) { // cetus
244+
return entity.isSF
244245
? workerInfo.fields.clmm_pool_id
245246
: workerInfo.fields.position_nft?.fields?.pool;
247+
} else if (entity.dex == 1) { // bluefin
248+
return workerInfo.fields.pool_id;
249+
} else {
250+
console.error("dex type wrong")
251+
}
246252
}).filter(Boolean)
247253
);
248254

@@ -256,18 +262,38 @@ async function calLyfTvlSui(api) {
256262
if (!workerEntity) continue;
257263

258264
const isSF = workerEntity.isSF;
259-
const nftFields = isSF
260-
? workerInfo.fields.stable_farming_position_nft?.fields?.clmm_postion?.fields
261-
: workerInfo.fields.position_nft?.fields;
262-
265+
const dex = workerEntity.dex;
266+
let nftFields
267+
268+
if (dex == 0) {
269+
nftFields = isSF
270+
? workerInfo.fields.stable_farming_position_nft?.fields?.clmm_postion?.fields
271+
: workerInfo.fields.position_nft?.fields;
272+
} else if (dex == 1) {
273+
nftFields = workerInfo.fields.position_nft?.fields;
274+
} else {
275+
console.error("dex type wrong")
276+
}
277+
263278
if (!nftFields) continue;
264279

265-
const liquidity = nftFields.liquidity;
266-
const tickLower = i32BitsToNumber(nftFields.tick_lower_index?.fields?.bits);
267-
const tickUpper = i32BitsToNumber(nftFields.tick_upper_index?.fields?.bits);
268-
const poolId = isSF
269-
? workerInfo.fields.clmm_pool_id
270-
: nftFields.pool;
280+
let liquidity, tickLower, tickUpper, poolId
281+
282+
if (dex == 0) {
283+
liquidity = nftFields.liquidity;
284+
tickLower = i32BitsToNumber(nftFields.tick_lower_index?.fields?.bits);
285+
tickUpper = i32BitsToNumber(nftFields.tick_upper_index?.fields?.bits);
286+
poolId = isSF
287+
? workerInfo.fields.clmm_pool_id
288+
: nftFields.pool;
289+
} else if (dex == 1) {
290+
liquidity = nftFields.liquidity;
291+
tickLower = i32BitsToNumber(nftFields.lower_tick?.fields?.bits);
292+
tickUpper = i32BitsToNumber(nftFields.upper_tick?.fields?.bits);
293+
poolId = nftFields.pool_id;
294+
} else {
295+
console.error("dex type wrong")
296+
}
271297

272298
const poolInfo = poolMap.get(poolId);
273299
if (!poolInfo) continue;

0 commit comments

Comments
 (0)