@@ -14,7 +14,7 @@ import {
1414 VaultMetadata ,
1515 VaultStatusResponse ,
1616} from "../types/api.types" ;
17- import { IAtvVault } from "../types/vault.types" ;
17+ import { IAtvVault , WithdrawType } from "../types/vault.types" ;
1818
1919export class VaultService {
2020 private toMetadata (
@@ -157,7 +157,7 @@ export class VaultService {
157157 } catch ( e : any ) {
158158 console . error (
159159 `[VaultService] getDepositTokens failed for vault ${ vault . productId } ` +
160- `(atvTokenAddress=${ vault . atvTokenAddress } , chainId=${ vault . chain . decimal } ):` ,
160+ `(atvTokenAddress=${ vault . atvTokenAddress } , chainId=${ vault . chain . decimal } ):` ,
161161 e ,
162162 ) ;
163163 return [ ] ;
@@ -288,9 +288,9 @@ export class VaultService {
288288 [ ] ,
289289 vault . chain ,
290290 ) ;
291- return { vaultAddress : vault . atvTokenAddress , isPaused, supported : true } ;
291+ return { isPaused, supported : true } ;
292292 } catch {
293- return { vaultAddress : vault . atvTokenAddress , isPaused : false , supported : false } ;
293+ return { isPaused : false , supported : false } ;
294294 }
295295 }
296296
@@ -304,14 +304,28 @@ export class VaultService {
304304 [ ] ,
305305 vault . chain ,
306306 ) ;
307- return { vaultAddress : vault . atvTokenAddress , isPaused, supported : true } ;
307+ return { isPaused, supported : true } ;
308308 } catch {
309- return { vaultAddress : vault . atvTokenAddress , isPaused : false , supported : false } ;
309+ return { isPaused : false , supported : false } ;
310310 }
311311 }
312312
313+ private static QUEUE_WITHDRAW_TYPES = new Set < WithdrawType > ( [
314+ WithdrawType . STANDARD ,
315+ WithdrawType . STANDARD_AUTO_REDEEM ,
316+ ] ) ;
317+
313318 async getQueueWithdrawStatus ( address : string ) : Promise < VaultStatusResponse > {
314319 const vault = await vaultRegistry . getVaultOrThrow ( address ) ;
320+
321+ // Check if the vault supports queued withdrawals based on CMS config
322+ const supportsQueue = vault . withdrawType . some ( ( t ) =>
323+ VaultService . QUEUE_WITHDRAW_TYPES . has ( t ) ,
324+ ) ;
325+ if ( ! supportsQueue ) {
326+ return { isPaused : false , supported : false } ;
327+ }
328+
315329 try {
316330 const isPaused = await ethersHelper . readContract < boolean > (
317331 vault . contracts . base . address ,
@@ -320,9 +334,9 @@ export class VaultService {
320334 [ ] ,
321335 vault . chain ,
322336 ) ;
323- return { vaultAddress : vault . atvTokenAddress , isPaused, supported : true } ;
337+ return { isPaused, supported : true } ;
324338 } catch {
325- return { vaultAddress : vault . atvTokenAddress , isPaused : false , supported : false } ;
339+ return { isPaused : false , supported : false } ;
326340 }
327341 }
328342}
0 commit comments