@@ -16,14 +16,15 @@ function getAssetInfo(asset) {
16
16
return [ extractTokenInfo ( asset ) , Number ( asset . amount ) ]
17
17
}
18
18
19
- async function getAllPairs ( factory , chain ) {
19
+ async function getAllPairs ( factory , chain , { blacklistedPairs = [ ] } = { } ) {
20
+ const blacklist = new Set ( blacklistedPairs )
20
21
let allPairs = [ ]
21
22
let currentPairs ;
22
23
const limit = factory === 'terra14x9fr055x5hvr48hzy2t4q7kvjvfttsvxusa4xsdcy702mnzsvuqprer8r' ? 29 : 30 // some weird native token issue at one of the pagination query
23
24
do {
24
25
const queryStr = `{"pairs": { "limit": ${ limit } ${ allPairs . length ? `,"start_after":${ JSON . stringify ( allPairs [ allPairs . length - 1 ] . asset_infos ) } ` : "" } }}`
25
26
currentPairs = ( await queryContract ( { contract : factory , chain, data : queryStr } ) ) . pairs
26
- allPairs . push ( ...currentPairs )
27
+ allPairs . push ( ...currentPairs . filter ( pair => ! blacklist . has ( pair . contract_addr ) ) )
27
28
} while ( currentPairs . length > 0 )
28
29
const dtos = [ ]
29
30
const getPairPool = ( async ( pair ) => {
@@ -47,17 +48,17 @@ async function getAllPairs(factory, chain) {
47
48
return dtos
48
49
}
49
50
50
- function getFactoryTvl ( factory ) {
51
- return async ( _ , _1 , _2 , { chain } ) => {
52
- const pairs = ( await getAllPairs ( factory , chain ) ) . filter ( pair => ( pair . assets [ 0 ] . balance && pair . assets [ 1 ] . balance ) )
51
+ function getFactoryTvl ( factory , { blacklistedPairs = [ ] } = { } ) {
52
+ return async ( api ) => {
53
+ const pairs = ( await getAllPairs ( factory , api . chain , { blacklistedPairs } ) ) . filter ( pair => ( pair . assets [ 0 ] . balance && pair . assets [ 1 ] . balance ) )
53
54
54
55
const data = pairs . map ( ( { assets } ) => ( {
55
56
token0 : assets [ 0 ] . addr ,
56
57
token0Bal : assets [ 0 ] . balance ,
57
58
token1 : assets [ 1 ] . addr ,
58
59
token1Bal : assets [ 1 ] . balance ,
59
60
} ) )
60
- return transformDexBalances ( { chain , data } )
61
+ return transformDexBalances ( { api , data } )
61
62
}
62
63
}
63
64
0 commit comments