@@ -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