bug: hidden reserves are still offered as collateral swap targets
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 88/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- react, typescript
調査の方向性
src/components/transactions/Swap/modals/request/CollateralSwapModalContent.tsx の getTokensTo を読み、そのフィルターを src/modules/dashboard/lists/SupplyAssetsList/SupplyAssetsList.tsx および src/modules/dashboard/lists/Swap/modals/request/DebtSwapModalContent.tsx のフィルターと比較してください。isAssetHidden が現在のマーケットをどのように受け取るかを確認し、既存の凍結・一時停止中のアセットと GHO に関するルールが引き続き適用される一方で、非表示のリザーブが担保スワップの交換先から除外されることを検証してください。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
Reserves hidden via HIDDEN_ASSETS or the NEXT_PUBLIC_HIDDEN_RESERVES environment variable are still offered as destination assets in the collateral swap modal. Every other asset list in the app filters them out, including the neighbouring debt-swap modal, so this one list is the outlier.
getTokensTo in src/components/transactions/Swap/modals/request/CollateralSwapModalContent.tsx:217-221 filters only on frozen/paused and the GHO rule:
const tokensToSupply = reserves.filter(
(reserve: ComputedReserveData) =>
!(reserve.isFrozen || reserve.isPaused) &&
!displayGhoForMintableMarket({ symbol: reserve.symbol, currentMarket: currentMarket })
);
The supply list applies the same predicate plus the hidden check (src/modules/dashboard/lists/SupplyAssetsList/SupplyAssetsList.tsx:85-91):
const tokensToSupply = reserves
.filter(
(reserve: ComputedReserveData) =>
!(reserve.isFrozen || reserve.isPaused) &&
!displayGhoForMintableMarket({ symbol: reserve.symbol, currentMarket }) &&
!isAssetHidden(currentMarketData.market, reserve.underlyingAsset)
)
isAssetHidden is defined at src/modules/dashboard/lists/constants.ts:39 and is applied consistently elsewhere — BorrowAssetsList.tsx:104, BorrowedPositionsList.tsx:111, SuppliedPositionsList.tsx:101, MarketAssetsListContainer.tsx:90, and Swap/modals/request/DebtSwapModalContent.tsx:173. Only the collateral-swap target list omits it.
To Reproduce
Steps to reproduce the behavior:
- Deploy (or run locally) with a reserve address listed in
NEXT_PUBLIC_HIDDEN_RESERVES, or use a market with an entry inHIDDEN_ASSETS(e.g. aCRED on Horizon) - Confirm the reserve is correctly absent from "Assets to supply" on the Dashboard
- Open a supplied position's Swap (collateral swap) modal
- Open the destination token selector
- The hidden reserve is listed and can be selected as the swap target
Expected behavior
A reserve hidden by HIDDEN_ASSETS or NEXT_PUBLIC_HIDDEN_RESERVES should not be offered as a collateral-swap destination, matching the supply list and the debt-swap modal.
Screenshots
n/a — reproducible from the source as described above.
Desktop (please complete the following information):
- OS: any
- Browser: any (not browser-specific)
- Version:
main@ 32cc548b9
Smartphone (please complete the following information):
- Device: any
- OS: any
- Browser: any (same code path)
- Version:
main@ 32cc548b9
Additional context
The fix is to add !isAssetHidden(currentMarket, reserve.underlyingAsset) to that filter, mirroring DebtSwapModalContent. One detail: getTokensTo's currentMarket parameter is currently typed string while isAssetHidden takes a CustomMarket; the value passed in is store.currentMarket, which is already a CustomMarket, so the parameter type can simply be narrowed — again matching the debt-swap modal, which types it CustomMarket. Happy to open a PR.
- 主要言語
- TypeScript
- スター
- 537
- フォーク
- 495
- 平均マージ
- 1日 13時間
- マージ済み PR(30日)
- 14
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
aave/interface のほかの issue
-
bug: the current market is missing from the market switcher when it is a legacy market対応中かも @shivam-V8 が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信
-
bug: market switcher search reports "No markets found" for legacy markets対応中かも @shivam-V8 が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
Staking: "Claim all" Umbrella rewards button removed by v3 uplift対応中かも @MrMichou が 2 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
Typo: Principle Tokens -> Principal Tokens対応中かも @Shivamd0608 が 140 日前に担当しました。 オープンbug new issue
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
aave/interface#2861 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
app.aave.com/governance - UI - False 'Payload Executed' Text Stamp対応中かも @shivam-V8 が 1 日前に担当しました。 オープンbug new issue
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
aave/interface#2480 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
🐛 Bug: Calendar work items cannot be opened on mobile対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
jaegertracing/jaeger-ui#4596 ·
メンテナーはふだん 1 日以内に返信
-
area:tui enhancement platform:macos
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
anthropics/claude-code#101490 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
netlify/netlify-mcp#75 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信