diff --git a/.github/workflows/update-prod-staging.yml b/.github/workflows/update-prod-staging.yml index 58c6eaa345..7a41a7eedb 100644 --- a/.github/workflows/update-prod-staging.yml +++ b/.github/workflows/update-prod-staging.yml @@ -19,12 +19,6 @@ jobs: domain: 'app.aave.com', artifact: 'out', build_path: 'out' - }, - { - name: 'Staging', - domain: 'staging.aave.com', - artifact: 'out_staging', - build_path: 'out_staging' } ] environment: @@ -39,18 +33,6 @@ jobs: name: ${{ matrix.environment.artifact }} path: ${{ matrix.environment.build_path }} - # Only for staging environment - - name: pinata - id: pinata - if: matrix.environment.name == 'Staging' - uses: aave/pinata-action@35662944e92cf082457973f10aa42e48df179b47 - with: - PINATA_API_KEY: '${{ secrets.PINATA_API_KEY }}' - PINATA_SECRET_KEY: '${{ secrets.PINATA_SECRET_KEY }}' - PIN_ALIAS: 'app-aave-staging' - BUILD_LOCATION: './out_staging' - CID_VERSION: 1 - - name: Pin to primary IPFS server id: ipfs-primary uses: ./.github/actions/ipfs-pin @@ -60,25 +42,22 @@ jobs: IPFS_SERVER: '${{ secrets.IPFS_PRIMARY_SERVER }}' IPFS_SERVER_KEY: '${{ secrets.IPFS_PRIMARY_SERVER_KEY }}' BUILD_PATH: ${{ matrix.environment.build_path }} - PINATA_HASH: ${{ matrix.environment.name == 'Production' && inputs.PINATA_HASH || steps.pinata.outputs.hash }} + PINATA_HASH: ${{ inputs.PINATA_HASH }} - uses: aave/cloudflare-update-action@0f2084730a068fab162853c4e7cc40537233d34a with: CF_API_TOKEN: '${{ secrets.CF_API_TOKEN }}' CF_ZONE_ID: '${{ secrets.CF_ZONE_ID }}' - HASH: ${{ matrix.environment.name == 'Production' && inputs.PINATA_HASH || steps.pinata.outputs.hash }} + HASH: ${{ inputs.PINATA_HASH }} CF_DEPLOYMENT_DOMAIN: ${{ matrix.environment.domain }} - # Only for production environment - name: prepare release - if: matrix.environment.name == 'Production' run: | cp .github/release-template.md ./release-notes.md sed -i 's||${{ inputs.PINATA_HASH }}|g' ./release-notes.md echo "TAG=release-$(date '+%Y-%m-%d_%H-%M')" >> ${GITHUB_ENV} - name: Create GH release - if: matrix.environment.name == 'Production' uses: ncipollo/release-action@4c75f0f2e4ae5f3c807cf0904605408e319dcaac # v1.10.0 with: name: Production release diff --git a/README.md b/README.md index 473682f2b2..3fbca7b0e7 100644 --- a/README.md +++ b/README.md @@ -47,8 +47,13 @@ There's a github action commenting the appropriate IPFS hash embedded in the Clo For ease of use: -- the DNS of [https://staging.aave.com](https://staging.aave.com) will always point to the latest main IPFS hash with all networks enabled -- the DNS of [https://app.aave.com](https://app.aave.com) will always point to the latest main IPFS hash with disabled test networks +- the DNS of [https://app.aave.com](https://app.aave.com) will always point to the latest main IPFS hash. + +### Testnet Networks Access +The interface now includes a feature toggle for testnet networks. Users can enable test networks by: +1. Opening the Settings menu +2. Toggling the "Testnet mode" switch +3. Once enabled, testnet networks (like Sepolia, Mumbai, etc.) will become available in the network selection menu ### Links known to work at some point: diff --git a/src/components/incentives/IncentivesTooltipContent.tsx b/src/components/incentives/IncentivesTooltipContent.tsx index d4ba3eae85..3a46bcc9d7 100644 --- a/src/components/incentives/IncentivesTooltipContent.tsx +++ b/src/components/incentives/IncentivesTooltipContent.tsx @@ -48,6 +48,11 @@ const IncentivesSymbolMap: { symbol: 'aPYUSD', aToken: true, }, + aAvaSAVAX: { + tokenIconSymbol: 'sAVAX', + symbol: 'asAVAX', + aToken: true, + }, }; interface IncentivesTooltipContentProps { diff --git a/src/hooks/useMeritIncentives.ts b/src/hooks/useMeritIncentives.ts index 1864a6d8d3..ca984c6dc9 100644 --- a/src/hooks/useMeritIncentives.ts +++ b/src/hooks/useMeritIncentives.ts @@ -1,6 +1,6 @@ import { ProtocolAction } from '@aave/contract-helpers'; import { ReserveIncentiveResponse } from '@aave/math-utils/dist/esm/formatters/incentive/calculate-reserve-incentives'; -import { AaveV3Base, AaveV3Ethereum } from '@bgd-labs/aave-address-book'; +import { AaveV3Avalanche, AaveV3Base, AaveV3Ethereum } from '@bgd-labs/aave-address-book'; import { useQuery } from '@tanstack/react-query'; import { CustomMarket } from 'src/ui-config/marketsConfig'; @@ -12,12 +12,16 @@ export enum MeritAction { BASE_SUPPLY_CBBTC = 'base-supply-cbbtc', BASE_SUPPLY_USDC = 'base-supply-usdc', BASE_BORROW_USDC = 'base-borrow-usdc', + AVALANCHE_SUPPLY_BTCB = 'avalanche-supply-btcb', + AVALANCHE_SUPPLY_USDC = 'avalanche-supply-usdc', + AVALANCHE_SUPPLY_USDT = 'avalanche-supply-usdt', + AVALANCHE_SUPPLY_SAVAX = 'avalanche-supply-savax', } type MeritIncentives = { totalAPR: number; actionsAPR: { - [key in MeritAction]: number; + [key in MeritAction]: number | null | undefined; }; }; @@ -120,6 +124,40 @@ const MERIT_DATA_MAP: Record }, ], }, + [CustomMarket.proto_avalanche_v3]: { + ['BTC.b']: [ + { + action: MeritAction.AVALANCHE_SUPPLY_BTCB, + rewardTokenAddress: AaveV3Avalanche.ASSETS.BTCb.A_TOKEN, + rewardTokenSymbol: 'aAvaSAVAX', + protocolAction: ProtocolAction.supply, + }, + ], + USDC: [ + { + action: MeritAction.AVALANCHE_SUPPLY_USDC, + rewardTokenAddress: AaveV3Avalanche.ASSETS.USDC.A_TOKEN, + rewardTokenSymbol: 'aAvaSAVAX', + protocolAction: ProtocolAction.supply, + }, + ], + USDt: [ + { + action: MeritAction.AVALANCHE_SUPPLY_USDT, + rewardTokenAddress: AaveV3Avalanche.ASSETS.USDt.A_TOKEN, + rewardTokenSymbol: 'aAvaSAVAX', + protocolAction: ProtocolAction.supply, + }, + ], + sAVAX: [ + { + action: MeritAction.AVALANCHE_SUPPLY_SAVAX, + rewardTokenAddress: AaveV3Avalanche.ASSETS.sAVAX.A_TOKEN, + rewardTokenSymbol: 'aAvaSAVAX', + protocolAction: ProtocolAction.supply, + }, + ], + }, }; export const useMeritIncentives = ({ @@ -156,6 +194,10 @@ export const useMeritIncentives = ({ const APR = data.actionsAPR[incentive.action]; + if (!APR) { + return null; + } + return { incentiveAPR: (APR / 100).toString(), rewardTokenAddress: incentive.rewardTokenAddress, diff --git a/src/layouts/MainLayout.tsx b/src/layouts/MainLayout.tsx index 382257c5e2..896d48351c 100644 --- a/src/layouts/MainLayout.tsx +++ b/src/layouts/MainLayout.tsx @@ -9,14 +9,15 @@ import { AppHeader } from './AppHeader'; import TopBarNotify from './TopBarNotify'; export function MainLayout({ children }: { children: ReactNode }) { - const APP_BANNER_VERSION = '4.0.0'; + const APP_BANNER_VERSION = '5.0.0'; return ( <> diff --git a/src/locales/de/messages.po b/src/locales/de/messages.po index b771350e19..fc9688a2c2 100644 --- a/src/locales/de/messages.po +++ b/src/locales/de/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: de\n" "Project-Id-Version: aave-interface\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-11 18:06\n" +"PO-Revision-Date: 2024-11-27 18:06\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" diff --git a/src/locales/el/messages.po b/src/locales/el/messages.po index f483c8b636..a5451a567d 100644 --- a/src/locales/el/messages.po +++ b/src/locales/el/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: el\n" "Project-Id-Version: aave-interface\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-11 18:06\n" +"PO-Revision-Date: 2024-11-27 18:06\n" "Last-Translator: \n" "Language-Team: Greek\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" diff --git a/src/locales/es/messages.po b/src/locales/es/messages.po index 39795d9f45..c2183724be 100644 --- a/src/locales/es/messages.po +++ b/src/locales/es/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: es\n" "Project-Id-Version: aave-interface\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-11 18:06\n" +"PO-Revision-Date: 2024-11-27 18:06\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" diff --git a/src/locales/fr/messages.po b/src/locales/fr/messages.po index 0f68f7a4bb..6c95f64189 100644 --- a/src/locales/fr/messages.po +++ b/src/locales/fr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fr\n" "Project-Id-Version: aave-interface\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-11 18:06\n" +"PO-Revision-Date: 2024-11-27 18:06\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" diff --git a/src/locales/ru/messages.po b/src/locales/ru/messages.po index 09c7e2fa45..cd9a75f6cc 100644 --- a/src/locales/ru/messages.po +++ b/src/locales/ru/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ru\n" "Project-Id-Version: aave-interface\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-11 18:06\n" +"PO-Revision-Date: 2024-11-27 18:06\n" "Last-Translator: \n" "Language-Team: Russian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" diff --git a/src/locales/zh/messages.po b/src/locales/zh/messages.po index b5257369ff..ad3b316513 100644 --- a/src/locales/zh/messages.po +++ b/src/locales/zh/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh\n" "Project-Id-Version: aave-interface\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-11-11 18:06\n" +"PO-Revision-Date: 2024-11-27 18:06\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Plural-Forms: nplurals=1; plural=0;\n"