diff --git a/dapp/src/components/Footer.tsx b/dapp/src/components/Footer.tsx index 730a3626b..1a0222010 100644 --- a/dapp/src/components/Footer.tsx +++ b/dapp/src/components/Footer.tsx @@ -29,10 +29,6 @@ const NAVIGATION: FooterListItem[] = [ children: "FAQ", href: externalHref.FAQ, }, - { - children: "Blog", - href: externalHref.BLOG, - }, { children: "Discord", href: externalHref.DISCORD, diff --git a/dapp/src/components/MidasVaultDetails.tsx b/dapp/src/components/MidasVaultDetails.tsx index 5173980c1..15fecc38b 100644 --- a/dapp/src/components/MidasVaultDetails.tsx +++ b/dapp/src/components/MidasVaultDetails.tsx @@ -1,6 +1,6 @@ import React from "react" import TbtcIcon from "#/assets/icons/TbtcIcon" -import { externalHref, transparency, vaults } from "#/constants" +import { externalHref, transparency } from "#/constants" import { addressUtils } from "#/utils" import { Button, Icon, Link, Text } from "@chakra-ui/react" import { IconArrowUpRight } from "@tabler/icons-react" @@ -15,46 +15,38 @@ import DeBankLink from "./shared/DeBankLink" export default function MidasVaultDetailsDescription() { return ( <> - This BTC-neutral vault generates yield from multiple sources: DeFi - (liquidity provision + delta-neutral strategies), options premia, and BTC - staking (Starknet).{" "} + This vault holds tBTC prior to the deployment to vetted strategies.{" "} Midas {" "} - provides algorithmic infrastructure and 24/7 portfolio monitoring. Risk - and strategy management are handled by{" "} - - Re7 Labs - - , the innovation arm of Re7 Capital and creators of the Re7 DeFi Ratings - framework. Risk parameters for the vault have been reviewed and approved - by the Acre Security Council, following the{" "} - - Acre Deployment Policy - - . A protocol fee of 20% on earned rewards will go to the Acre DAO and its - partners. Deposits and withdrawals are always under your direct control, - and all deployments, rewards, and redemptions are fully on-chain and - auditable. + is the infrastructure provider and reviews all deposits and redemptions + for accounting, security and additional infrastructure. The tBTC is ready + to request redeem from the Midas vault at any time with approximately 72 + hour cool down time. If redeeming back to Bitcoin, there is a 0.20% fee + from the Threshold Network bridge. ) } +function AddressValue({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ) +} + export function getMidasVaultDetails({ depositFeePercentage, withdrawalFeePercentage, @@ -67,7 +59,7 @@ export function getMidasVaultDetails({ vaultTvlInUsd: number }) { return { - vaultName: "BTC-Neutral Blended Yield", + vaultName: "Midas acreBTC (macreBTC) Vault", description: , icon: TbtcIcon, sections: [ @@ -77,10 +69,10 @@ export function getMidasVaultDetails({ tooltip: "Annual Percentage Yield (APY) is the annual rate of return earned on an investment.", items: [ - { label: "Gross Annual", value: "4% (est.)" }, - { label: "Net Annual", value: "3% (est.)" }, - { label: "Net Monthly", value: "0.87% (est.)" }, - { label: "Net Weekly", value: "0.20% (est.)" }, + { label: "Gross Annual", value: "0%" }, + { label: "Net Annual", value: "0%" }, + { label: "Net Monthly", value: "0%" }, + { label: "Net Weekly", value: "0%" }, ], }, { @@ -132,81 +124,46 @@ export function getMidasVaultDetails({ label: "Transparency", items: [ { - label: "BTC-Neutral Blended Yield Vault", + label: "Available BTC (tBTC) Liquidity", value: ( - - - {addressUtils.truncateAddress( - vaults.VAULT_PROVIDERS.tbtc.address, - )} - - - - ), - }, - { - label: "Assets to be Deployed", - value: ( - - + + {addressUtils.truncateAddress( - transparency.ASSETS_TO_BE_DEPLOYED, + transparency.AVAILABLE_LIQUIDITY_BUFFER, )} - + ), }, { - label: "Onchain Wallets", + label: "AcreBTC", value: ( - - - {addressUtils.truncateAddress(transparency.ONCHAIN_WALLETS)} - + + + {addressUtils.truncateAddress(transparency.ACREBTC_TOKEN)} + - + ), }, { - label: "Available Liquidity Buffer", + label: "Withdrawal Queue", value: ( - - - {addressUtils.truncateAddress( - transparency.AVAILABLE_LIQUIDITY_BUFFER, - )} - + + + {addressUtils.truncateAddress(transparency.WITHDRAWAL_QUEUE)} + - + ), }, ], @@ -215,22 +172,7 @@ export function getMidasVaultDetails({ sectionKey: "misc", items: [ { - label: "Risk Manager", - value: ( - - ), - }, - { - label: "Vault Infrastructure Provider", + label: "Infrastructure Provider", value: ( diff --git a/dapp/src/pages/DashboardPage/index.tsx b/dapp/src/pages/DashboardPage/index.tsx index 96c9b04f9..73378187c 100644 --- a/dapp/src/pages/DashboardPage/index.tsx +++ b/dapp/src/pages/DashboardPage/index.tsx @@ -2,22 +2,24 @@ import React from "react" import { featureFlags } from "#/constants" import { useActivities, useTriggerConnectWalletModal, useWallet } from "#/hooks" import usePositionStats from "#/hooks/usePositionStats" -import { Card, Grid, VStack } from "@chakra-ui/react" +import { Box, Card, Grid, VStack } from "@chakra-ui/react" import Vaults from "#/components/Vaults" import WithdrawalStatusBanner, { WithdrawStatus, } from "#/components/WithdrawalStatusBanner" +import ProtocolPauseBanner from "#/components/ProtocolPauseBanner" import DashboardCard from "./DashboardCard" import AcrePointsCard from "./AcrePointsCard" import AcrePointsTemplateCard from "./AcrePointsTemplateCard" import TransactionHistory from "./TransactionHistory" import BTCDepositedCard from "./BTCDepositedCard" import RewardsEarnedCard from "./RewardsEarnedCard" -import EstimatedAPRCard from "./EstimatedAPRCard" +import CurrentAPYCard from "./CurrentAPYCard" const fullWidthGridColumn = { base: "1", md: "span 3" } const grid = { + notice: fullWidthGridColumn, dashboard: { base: "1", md: "span 2" }, points: { base: "1", md: "3 / span 1" }, withdrawals: fullWidthGridColumn, @@ -60,6 +62,10 @@ export default function DashboardPage() { gridGap={{ base: 4, "2xl": 8 }} templateColumns={{ base: "1fr ", md: "repeat(3, 1fr)" }} > + + + + {featureFlags.ACRE_POINTS_ENABLED ? ( @@ -94,7 +100,7 @@ export default function DashboardPage() { isLoading={isLoading} btcAmount={data?.earned} /> - + )} diff --git a/dapp/src/types/chain.ts b/dapp/src/types/chain.ts index 0e0c689ac..9df547759 100644 --- a/dapp/src/types/chain.ts +++ b/dapp/src/types/chain.ts @@ -1,3 +1,3 @@ export type Chain = "bitcoin" | "ethereum" -export type ExplorerDataType = "transaction" | "address" +export type ExplorerDataType = "transaction" | "address" | "token" diff --git a/dapp/src/utils/chainUtils.ts b/dapp/src/utils/chainUtils.ts index 431e19227..e403c16a0 100644 --- a/dapp/src/utils/chainUtils.ts +++ b/dapp/src/utils/chainUtils.ts @@ -6,13 +6,19 @@ import { Chain, ExplorerDataType } from "#/types" // However, it provides us with an easy way // to handle the next data for block explorer. const createBlockExplorerLink = ( - prefix: string, + rawPrefix: string, id: string, type: ExplorerDataType, ) => { + // Some explorer base URLs carry a trailing slash, which would otherwise + // produce a double slash in the resulting link. + const prefix = rawPrefix.replace(/\/+$/, "") + switch (type) { case "address": return `${prefix}/address/${id}` + case "token": + return `${prefix}/token/${id}` case "transaction": default: { return `${prefix}/tx/${id}`