@@ -59,7 +59,8 @@ export const useTokens = (
5959 isTestnet : boolean = chainServerId
6060 ? ! ! findChain ( { serverId : chainServerId } ) ?. isTestnet
6161 : false ,
62- showAll = false
62+ showAll = false ,
63+ showBlocked = false
6364) => {
6465 const abortProcess = useRef < AbortController > ( ) ;
6566 const [ data , setData ] = useSafeState ( walletProject ) ;
@@ -162,6 +163,16 @@ export const useTokens = (
162163 setData ( _data ) ;
163164 const snapshot = await queryTokensCache ( userAddr , wallet , isTestnet ) ;
164165
166+ const blocked = showBlocked
167+ ? [ ]
168+ : ( await wallet . getBlockedToken ( ) ) . filter ( ( token ) => {
169+ if ( isTestnet ) {
170+ return checkIsTestnet ( token . chain ) ;
171+ } else {
172+ return ! checkIsTestnet ( token . chain ) ;
173+ }
174+ } ) ;
175+
165176 if ( ! snapshot ) {
166177 log ( '--Terminate-tokens-snapshot-' , userAddr ) ;
167178 setLoading ( false ) ;
@@ -188,9 +199,11 @@ export const useTokens = (
188199 setData ( _data ) ;
189200 _tokens = sortWalletTokens ( _data ) ;
190201 if ( isTestnet ) {
191- dispatch . account . setTestnetTokenList ( filterDisplayToken ( _tokens , [ ] ) ) ;
202+ dispatch . account . setTestnetTokenList (
203+ filterDisplayToken ( _tokens , blocked )
204+ ) ;
192205 } else {
193- dispatch . account . setTokenList ( filterDisplayToken ( _tokens , [ ] ) ) ;
206+ dispatch . account . setTokenList ( filterDisplayToken ( _tokens , blocked ) ) ;
194207 }
195208 setLoading ( false ) ;
196209 // setTokens(filterDisplayToken(_tokens, blocked));
@@ -239,9 +252,23 @@ export const useTokens = (
239252 // customize with balance
240253 customTokenList . push ( token ) ;
241254 }
255+ if (
256+ blocked . find (
257+ ( t ) =>
258+ isSameAddress ( token . id , t . address ) &&
259+ token . chain === t . chain &&
260+ token . is_core
261+ )
262+ ) {
263+ blockedTokenList . push ( token ) ;
264+ }
242265 } ) ;
243266 const apiProvider = isTestnet ? wallet . testnetOpenapi : wallet . openapi ;
244-
267+ const noBalanceBlockedTokens = blocked . filter ( ( token ) => {
268+ return ! blockedTokenList . find (
269+ ( t ) => isSameAddress ( token . address , t . id ) && token . chain === t . chain
270+ ) ;
271+ } ) ;
245272 const noBalanceCustomizeTokens = customizeTokens . filter ( ( token ) => {
246273 return ! customTokenList . find (
247274 ( t ) => isSameAddress ( token . address , t . id ) && token . chain === t . chain
@@ -256,6 +283,13 @@ export const useTokens = (
256283 ...noBalanceCustomTokens . filter ( ( token ) => ! token . is_core )
257284 ) ;
258285 }
286+ if ( noBalanceBlockedTokens . length > 0 ) {
287+ const blockedTokens = await apiProvider . customListToken (
288+ noBalanceBlockedTokens . map ( ( item ) => `${ item . chain } :${ item . address } ` ) ,
289+ userAddr
290+ ) ;
291+ blockedTokenList . push ( ...blockedTokens . filter ( ( token ) => token . is_core ) ) ;
292+ }
259293 const formattedCustomTokenList = customTokenList . map (
260294 ( token ) => new DisplayedToken ( token ) as AbstractPortfolioToken
261295 ) ;
@@ -286,12 +320,12 @@ export const useTokens = (
286320 _tokens = sortWalletTokens ( _data ) ;
287321 if ( isTestnet ) {
288322 dispatch . account . setTestnetTokenList ( [
289- ...filterDisplayToken ( _tokens , [ ] ) ,
323+ ...filterDisplayToken ( _tokens , blocked ) ,
290324 ...formattedCustomTokenList ,
291325 ] ) ;
292326 } else {
293327 dispatch . account . setTokenList ( [
294- ...filterDisplayToken ( _tokens , [ ] ) ,
328+ ...filterDisplayToken ( _tokens , blocked ) ,
295329 ...formattedCustomTokenList ,
296330 ] ) ;
297331 }
0 commit comments