diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..d0db6e6e --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,17 @@ + +# Memory Context + +# [terminal] recent context, 2026-04-30 1:58pm EDT + +Legend: 🎯session 🔴bugfix 🟣feature 🔄refactor ✅change 🔵discovery ⚖️decision +Format: ID TIME TYPE TITLE +Fetch details: get_observations([IDs]) | Search: mem-search skill + +Stats: 2 obs (810t read) | 25,698t work | 97% savings + +### Apr 30, 2026 +37 1:56p 🔵 TradingView volume indicator feature flags already present in constants +38 1:57p 🔵 Volume indicator intentionally disabled in TradingView chart via CHART_DISABLED_FEATURES + +Access 26k tokens of past work via get_observations([IDs]) or mem-search skill. + \ No newline at end of file diff --git a/src/components/trade/chart/datafeed.ts b/src/components/trade/chart/datafeed.ts index a7a018d4..a0f44766 100644 --- a/src/components/trade/chart/datafeed.ts +++ b/src/components/trade/chart/datafeed.ts @@ -146,6 +146,7 @@ export function createDatafeed(): IBasicDataFeed { minmov: CHART_DATAFEED_CONFIG.MIN_MOVEMENT, has_intraday: true, supported_resolutions: SUPPORTED_RESOLUTIONS, + visible_plots_set: "ohlcv", volume_precision: CHART_DATAFEED_CONFIG.VOLUME_PRECISION, data_status: CHART_DATAFEED_CONFIG.DATA_STATUS, }; diff --git a/src/components/trade/chart/token-selector.tsx b/src/components/trade/chart/token-selector.tsx index f017517c..1ceca78b 100644 --- a/src/components/trade/chart/token-selector.tsx +++ b/src/components/trade/chart/token-selector.tsx @@ -34,7 +34,7 @@ const marketScopes: { value: MarketScope; label: string }[] = [ { value: "all", label: "All" }, { value: "perp", label: "Perp" }, { value: "spot", label: "Spot" }, - { value: "hip3", label: "HIP-3" }, + { value: "hip3", label: "TradFi" }, ]; function getSzDecimals(market: MarketRow): number { diff --git a/src/components/trade/chart/tradingview-chart.tsx b/src/components/trade/chart/tradingview-chart.tsx index b8a910d6..5c862344 100644 --- a/src/components/trade/chart/tradingview-chart.tsx +++ b/src/components/trade/chart/tradingview-chart.tsx @@ -18,6 +18,8 @@ import { import { createDatafeed } from "./datafeed"; import { buildChartOverrides, generateChartCssUrl, getLoadingScreenColors, getToolbarBgColor } from "./theme-colors"; +const VOLUME_STUDY_NAME = "Volume"; + interface Props { symbol?: string; interval?: string; @@ -86,6 +88,14 @@ export function TradingViewChart({ widgetRef.current.onChartReady(() => { chartReadyRef.current = true; + + const chart = widgetRef.current?.activeChart(); + if (!chart) return; + + const hasVolumeStudy = chart.getAllStudies().some((study) => study.name === VOLUME_STUDY_NAME); + if (!hasVolumeStudy) { + void chart.createStudy(VOLUME_STUDY_NAME, false, false, undefined, undefined, { disableUndo: true }); + } }); } catch (error) { console.error("Error initializing TradingView widget:", error); diff --git a/src/components/trade/components/global-modals.tsx b/src/components/trade/components/global-modals.tsx index 51982df9..133f0113 100644 --- a/src/components/trade/components/global-modals.tsx +++ b/src/components/trade/components/global-modals.tsx @@ -1,7 +1,7 @@ import { Suspense } from "react"; import { createLazyComponent } from "@/lib/lazy"; -const DepositModal = createLazyComponent(() => import("../tradebox/deposit-modal"), "DepositModal"); +// const DepositModal = createLazyComponent(() => import("../tradebox/deposit-modal"), "DepositModal"); const FaucetModal = createLazyComponent(() => import("../tradebox/faucet-modal"), "FaucetModal"); const GlobalSettingsDialog = createLazyComponent(() => import("./global-settings-dialog"), "GlobalSettingsDialog"); const SpotSwapModal = createLazyComponent(() => import("./spot-swap-modal"), "SpotSwapModal"); @@ -12,7 +12,7 @@ const AcrossBridgeModal = createLazyComponent(() => import("../tradebox/across-b export function GlobalModals() { return ( - + {/* */} diff --git a/src/components/trade/header/top-nav.tsx b/src/components/trade/header/top-nav.tsx index 4de592eb..fd59210c 100644 --- a/src/components/trade/header/top-nav.tsx +++ b/src/components/trade/header/top-nav.tsx @@ -1,13 +1,12 @@ import { t } from "@lingui/core/macro"; import { Trans } from "@lingui/react/macro"; -import { ArrowsLeftRightIcon, DownloadSimpleIcon, DropIcon, GearIcon, TrophyIcon } from "@phosphor-icons/react"; +import { ArrowsLeftRightIcon, DropIcon, GearIcon, TrophyIcon } from "@phosphor-icons/react"; import { useConnection } from "wagmi"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/cn"; import { useExchangeScope } from "@/providers/exchange-scope"; import { useAcrossBridgeModalActions, - useDepositModalActions, useFaucetModalActions, usePointsModalActions, useSettingsDialogActions, @@ -32,7 +31,6 @@ function getScopeAccentClass(scope: string): string { } export function TopNav() { - const { open: openDepositModal } = useDepositModalActions(); const { open: openFaucetModal } = useFaucetModalActions(); const { open: openPointsModal } = usePointsModalActions(); const { open: openSettingsDialog } = useSettingsDialogActions(); @@ -81,7 +79,7 @@ export function TopNav() { Faucet )} - {!isTestnet && ( + {/* {!isTestnet && ( - )} + )} */} {!isTestnet && ( )} diff --git a/src/components/trade/header/user-menu.tsx b/src/components/trade/header/user-menu.tsx index a838c4d6..cb1fb88f 100644 --- a/src/components/trade/header/user-menu.tsx +++ b/src/components/trade/header/user-menu.tsx @@ -86,7 +86,7 @@ export function UserMenu() { return ( ); } diff --git a/src/components/trade/mobile/mobile-account-view.tsx b/src/components/trade/mobile/mobile-account-view.tsx index ae850e54..26c69283 100644 --- a/src/components/trade/mobile/mobile-account-view.tsx +++ b/src/components/trade/mobile/mobile-account-view.tsx @@ -83,7 +83,7 @@ export function MobileAccountView({ className }: MobileAccountViewProps) {
-

Connect Wallet

+

Login

Connect your wallet to view your account, positions, and start trading.

@@ -99,7 +99,7 @@ export function MobileAccountView({ className }: MobileAccountViewProps) { "min-h-[48px]", )} > - Connect Wallet + Login
@@ -145,7 +145,7 @@ export function MobileAccountView({ className }: MobileAccountViewProps) { "transition-colors rounded-xs hover:bg-transparent", "min-h-[44px] min-w-[44px] flex items-center justify-center", )} - aria-label="Disconnect wallet" + aria-label="Logout" > diff --git a/src/components/trade/tradebox/account-panel.tsx b/src/components/trade/tradebox/account-panel.tsx index 887116fc..1d92ba2f 100644 --- a/src/components/trade/tradebox/account-panel.tsx +++ b/src/components/trade/tradebox/account-panel.tsx @@ -223,7 +223,7 @@ export function AccountPanel() { {!isConnected ? ( -
{t`Connect wallet to view account`}
+
{t`Login to view account`}
) : (
diff --git a/src/components/trade/tradebox/across-bridge-modal.tsx b/src/components/trade/tradebox/across-bridge-modal.tsx index d89cf6be..8aaf2751 100644 --- a/src/components/trade/tradebox/across-bridge-modal.tsx +++ b/src/components/trade/tradebox/across-bridge-modal.tsx @@ -7,7 +7,7 @@ import { useEffect, useMemo, useState } from "react"; import type { Address } from "viem"; import { formatUnits, parseUnits } from "viem"; import { useConnection } from "wagmi"; -import { arbitrum, base, mainnet } from "wagmi/chains"; +import { arbitrum, base, mainnet, polygon } from "wagmi/chains"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { InfoRow, InfoRowGroup } from "@/components/ui/info-row"; @@ -28,9 +28,11 @@ const COUNTERFACTUAL_CHAINS = [ { id: mainnet.id, name: "Ethereum", shortName: "ETH" }, { id: arbitrum.id, name: "Arbitrum", shortName: "ARB" }, { id: base.id, name: "Base", shortName: "BASE" }, + { id: polygon.id, name: "Polygon", shortName: "POLY" }, ] as const; -const POPULAR_SYMBOLS = new Set(["USDC", "USDT", "USDT0", "ETH", "WETH", "WBTC", "DAI", "cbBTC"]); +// const POPULAR_SYMBOLS = new Set(["USDC", "USDT", "USDT0", "ETH", "WETH", "WBTC", "DAI", "cbBTC"]); +const POPULAR_SYMBOLS = new Set(["USDT", "USDT0"]); const INTEGRATOR_ID = (import.meta.env.VITE_ACROSS_INTEGRATOR_ID ?? "0xdead") as `0x${string}`; const ACROSS_API_KEY = import.meta.env.VITE_ACROSS_API_KEY as string | undefined; diff --git a/src/config/constants.ts b/src/config/constants.ts index 43058f6b..402ffd63 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -35,9 +35,9 @@ export const TWAP_MINUTES_MAX = 1440; export const SCALE_LEVELS_MIN = 2; export const SCALE_LEVELS_MAX = 20; -export const DEFAULT_MAX_LEVERAGE = 50; +export const DEFAULT_MAX_LEVERAGE = 5; export const MARKET_LEVERAGE_HARD_MAX = 100; -export const DEFAULT_MARKET_ORDER_SLIPPAGE_PERCENT = 2.5; +export const DEFAULT_MARKET_ORDER_SLIPPAGE_PERCENT = 1.0; export const MARKET_ORDER_SLIPPAGE_MIN_PERCENT = 0.1; export const MARKET_ORDER_SLIPPAGE_MAX_PERCENT = 100; export const DEFAULT_LEVERAGE_BY_MODE = { cross: 10, isolated: 10 } as const; @@ -186,7 +186,6 @@ export const CHART_DISABLED_FEATURES = [ "display_market_status", "popup_hints", "header_saveload", - "create_volume_indicator_by_default", "volume_force_overlay", "show_logo_on_all_charts", "caption_buttons_text_if_possible", @@ -282,7 +281,7 @@ export const UI_TEXT = { USER_MENU: { COPY_ADDRESS: "Copy Address", CONNECTING: "Connecting...", - CONNECT_WALLET: "Connect Wallet", + CONNECT_WALLET: "Login", ADD_FUNDS: "Add funds", DISCONNECT: "Disconnect", }, @@ -367,7 +366,7 @@ export const UI_TEXT = { PNL_LABEL: "PNL", TAB_PERPS: "Perps", TAB_SPOT: "Spot", - CONNECT: "Connect wallet to view account", + CONNECT: "Login to view account", LOADING: "Loading...", BALANCE_LABEL: "Balance", UNREALIZED_LABEL: "Unrealized PNL", @@ -507,7 +506,7 @@ export const UI_TEXT = { HELP_TEXT: "Bridge USDC from Arbitrum or other chains to your Hyperliquid account.", }, WALLET_DIALOG: { - TITLE: "Connect Wallet", + TITLE: "Login", EMPTY: "No wallets found", }, ORDER_ENTRY: { @@ -522,7 +521,7 @@ export const UI_TEXT = { ERROR_SIZE: "Enter size", ERROR_MIN_NOTIONAL: "Min order value $10", ERROR_EXCEEDS_MAX: "Exceeds max size", - BUTTON_CONNECT: "Connect Wallet", + BUTTON_CONNECT: "Login", BUTTON_SWITCHING: "Switching...", BUTTON_SWITCH_CHAIN: "Switch to Arbitrum", BUTTON_DEPOSIT: "Deposit", diff --git a/src/lib/trade/use-button-content.ts b/src/lib/trade/use-button-content.ts index b1047e8c..6f4dcfc5 100644 --- a/src/lib/trade/use-button-content.ts +++ b/src/lib/trade/use-button-content.ts @@ -44,7 +44,7 @@ export function useButtonContent(input: ButtonContentInput): ButtonContent { return useMemo(() => { if (!input.isConnected) { return { - text: t`Connect Wallet`, + text: t`Login`, action: input.onConnectWallet, disabled: false, variant: "cyan", diff --git a/src/locales/ar/messages.po b/src/locales/ar/messages.po index 8f9c4216..2ffe85ea 100644 --- a/src/locales/ar/messages.po +++ b/src/locales/ar/messages.po @@ -194,8 +194,8 @@ msgstr "الرصيد" #~ msgstr "مسار التنقل" #: src/components/trade/header/top-nav.tsx -msgid "Bridge" -msgstr "" +#~ msgid "Bridge" +#~ msgstr "" #: src/components/trade/order-entry/deposit-modal.tsx #~ msgid "Bridge USDC from Arbitrum or other chains to your Hyperliquid account." @@ -373,15 +373,6 @@ msgstr "" #~ msgid "Connect a wallet to manage positions." #~ msgstr "قم بتوصيل المحفظة لإدارة المراكز." -#: src/components/trade/header/user-menu.tsx -#: src/lib/trade/use-button-content.ts -msgid "Connect Wallet" -msgstr "ربط المحفظة" - -#: src/components/trade/tradebox/account-panel.tsx -msgid "Connect wallet to view account" -msgstr "اربط المحفظة لعرض الحساب" - #: src/components/trade/tradebox/faucet-modal.tsx msgid "Connect your wallet to claim USDH" msgstr "" @@ -1047,6 +1038,15 @@ msgstr "جاري تحميل المحفظة..." msgid "Loading..." msgstr "جارٍ التحميل..." +#: src/components/trade/header/user-menu.tsx +#: src/lib/trade/use-button-content.ts +msgid "Login" +msgstr "ربط المحفظة" + +#: src/components/trade/tradebox/account-panel.tsx +msgid "Login to view account" +msgstr "اربط المحفظة لعرض الحساب" + #: src/components/trade/positions/position-limit-close-modal.tsx #: src/components/trade/positions/position-tpsl-modal.tsx #: src/components/trade/positions/positions-tab.tsx diff --git a/src/locales/en/messages.po b/src/locales/en/messages.po index 0081deb9..7b785987 100644 --- a/src/locales/en/messages.po +++ b/src/locales/en/messages.po @@ -194,8 +194,8 @@ msgstr "Balance" #~ msgstr "Breadcrumb" #: src/components/trade/header/top-nav.tsx -msgid "Bridge" -msgstr "Bridge" +#~ msgid "Bridge" +#~ msgstr "Bridge" #: src/components/trade/order-entry/deposit-modal.tsx #~ msgid "Bridge USDC from Arbitrum or other chains to your Hyperliquid account." @@ -374,15 +374,6 @@ msgstr "Confirm in wallet" #~ msgid "Connect a wallet to manage positions." #~ msgstr "Connect a wallet to manage positions." -#: src/components/trade/header/user-menu.tsx -#: src/lib/trade/use-button-content.ts -msgid "Connect Wallet" -msgstr "Connect Wallet" - -#: src/components/trade/tradebox/account-panel.tsx -msgid "Connect wallet to view account" -msgstr "Connect wallet to view account" - #: src/components/trade/tradebox/faucet-modal.tsx msgid "Connect your wallet to claim USDH" msgstr "Connect your wallet to claim USDH" @@ -1053,6 +1044,15 @@ msgstr "Loading wallet..." msgid "Loading..." msgstr "Loading..." +#: src/components/trade/header/user-menu.tsx +#: src/lib/trade/use-button-content.ts +msgid "Login" +msgstr "Login" + +#: src/components/trade/tradebox/account-panel.tsx +msgid "Login to view account" +msgstr "Login to view account" + #: src/components/trade/positions/position-limit-close-modal.tsx #: src/components/trade/positions/position-tpsl-modal.tsx #: src/components/trade/positions/positions-tab.tsx diff --git a/src/locales/es/messages.po b/src/locales/es/messages.po index fa77821c..2330adb2 100644 --- a/src/locales/es/messages.po +++ b/src/locales/es/messages.po @@ -194,8 +194,8 @@ msgstr "Saldo" #~ msgstr "Ruta de navegación" #: src/components/trade/header/top-nav.tsx -msgid "Bridge" -msgstr "" +#~ msgid "Bridge" +#~ msgstr "" #: src/components/trade/order-entry/deposit-modal.tsx #~ msgid "Bridge USDC from Arbitrum or other chains to your Hyperliquid account." @@ -373,15 +373,6 @@ msgstr "" #~ msgid "Connect a wallet to manage positions." #~ msgstr "Conecta una billetera para gestionar posiciones." -#: src/components/trade/header/user-menu.tsx -#: src/lib/trade/use-button-content.ts -msgid "Connect Wallet" -msgstr "Conectar billetera" - -#: src/components/trade/tradebox/account-panel.tsx -msgid "Connect wallet to view account" -msgstr "Conecta billetera para ver cuenta" - #: src/components/trade/tradebox/faucet-modal.tsx msgid "Connect your wallet to claim USDH" msgstr "" @@ -1047,6 +1038,15 @@ msgstr "Cargando billetera..." msgid "Loading..." msgstr "Cargando..." +#: src/components/trade/header/user-menu.tsx +#: src/lib/trade/use-button-content.ts +msgid "Login" +msgstr "Conectar billetera" + +#: src/components/trade/tradebox/account-panel.tsx +msgid "Login to view account" +msgstr "Conecta billetera para ver cuenta" + #: src/components/trade/positions/position-limit-close-modal.tsx #: src/components/trade/positions/position-tpsl-modal.tsx #: src/components/trade/positions/positions-tab.tsx diff --git a/src/locales/fr/messages.po b/src/locales/fr/messages.po index 4510c997..bced8e47 100644 --- a/src/locales/fr/messages.po +++ b/src/locales/fr/messages.po @@ -194,8 +194,8 @@ msgstr "Solde" #~ msgstr "Fil d'Ariane" #: src/components/trade/header/top-nav.tsx -msgid "Bridge" -msgstr "" +#~ msgid "Bridge" +#~ msgstr "" #: src/components/trade/order-entry/deposit-modal.tsx #~ msgid "Bridge USDC from Arbitrum or other chains to your Hyperliquid account." @@ -373,15 +373,6 @@ msgstr "" #~ msgid "Connect a wallet to manage positions." #~ msgstr "Connectez un portefeuille pour gérer les positions." -#: src/components/trade/header/user-menu.tsx -#: src/lib/trade/use-button-content.ts -msgid "Connect Wallet" -msgstr "Connecter le portefeuille" - -#: src/components/trade/tradebox/account-panel.tsx -msgid "Connect wallet to view account" -msgstr "Connectez le portefeuille pour voir le compte" - #: src/components/trade/tradebox/faucet-modal.tsx msgid "Connect your wallet to claim USDH" msgstr "" @@ -1047,6 +1038,15 @@ msgstr "Chargement du portefeuille..." msgid "Loading..." msgstr "Chargement..." +#: src/components/trade/header/user-menu.tsx +#: src/lib/trade/use-button-content.ts +msgid "Login" +msgstr "Connecter le portefeuille" + +#: src/components/trade/tradebox/account-panel.tsx +msgid "Login to view account" +msgstr "Connectez le portefeuille pour voir le compte" + #: src/components/trade/positions/position-limit-close-modal.tsx #: src/components/trade/positions/position-tpsl-modal.tsx #: src/components/trade/positions/positions-tab.tsx diff --git a/src/locales/hi/messages.po b/src/locales/hi/messages.po index 90e7b8c3..9ca1279a 100644 --- a/src/locales/hi/messages.po +++ b/src/locales/hi/messages.po @@ -194,8 +194,8 @@ msgstr "शेष" #~ msgstr "ब्रेडक्रम्ब" #: src/components/trade/header/top-nav.tsx -msgid "Bridge" -msgstr "" +#~ msgid "Bridge" +#~ msgstr "" #: src/components/trade/order-entry/deposit-modal.tsx #~ msgid "Bridge USDC from Arbitrum or other chains to your Hyperliquid account." @@ -373,15 +373,6 @@ msgstr "" #~ msgid "Connect a wallet to manage positions." #~ msgstr "पोजीशन प्रबंधित करने के लिए वॉलेट कनेक्ट करें।" -#: src/components/trade/header/user-menu.tsx -#: src/lib/trade/use-button-content.ts -msgid "Connect Wallet" -msgstr "वॉलेट कनेक्ट करें" - -#: src/components/trade/tradebox/account-panel.tsx -msgid "Connect wallet to view account" -msgstr "खाता देखने के लिए वॉलेट कनेक्ट करें" - #: src/components/trade/tradebox/faucet-modal.tsx msgid "Connect your wallet to claim USDH" msgstr "" @@ -1047,6 +1038,15 @@ msgstr "वॉलेट लोड हो रहा है..." msgid "Loading..." msgstr "लोड हो रहा है..." +#: src/components/trade/header/user-menu.tsx +#: src/lib/trade/use-button-content.ts +msgid "Login" +msgstr "वॉलेट कनेक्ट करें" + +#: src/components/trade/tradebox/account-panel.tsx +msgid "Login to view account" +msgstr "खाता देखने के लिए वॉलेट कनेक्ट करें" + #: src/components/trade/positions/position-limit-close-modal.tsx #: src/components/trade/positions/position-tpsl-modal.tsx #: src/components/trade/positions/positions-tab.tsx diff --git a/src/locales/zh/messages.po b/src/locales/zh/messages.po index 74a7f630..e9445677 100644 --- a/src/locales/zh/messages.po +++ b/src/locales/zh/messages.po @@ -194,8 +194,8 @@ msgstr "余额" #~ msgstr "面包屑导航" #: src/components/trade/header/top-nav.tsx -msgid "Bridge" -msgstr "" +#~ msgid "Bridge" +#~ msgstr "" #: src/components/trade/order-entry/deposit-modal.tsx #~ msgid "Bridge USDC from Arbitrum or other chains to your Hyperliquid account." @@ -373,15 +373,6 @@ msgstr "" #~ msgid "Connect a wallet to manage positions." #~ msgstr "连接钱包以管理仓位。" -#: src/components/trade/header/user-menu.tsx -#: src/lib/trade/use-button-content.ts -msgid "Connect Wallet" -msgstr "连接钱包" - -#: src/components/trade/tradebox/account-panel.tsx -msgid "Connect wallet to view account" -msgstr "连接钱包查看账户" - #: src/components/trade/tradebox/faucet-modal.tsx msgid "Connect your wallet to claim USDH" msgstr "" @@ -1047,6 +1038,15 @@ msgstr "加载钱包中..." msgid "Loading..." msgstr "加载中..." +#: src/components/trade/header/user-menu.tsx +#: src/lib/trade/use-button-content.ts +msgid "Login" +msgstr "连接钱包" + +#: src/components/trade/tradebox/account-panel.tsx +msgid "Login to view account" +msgstr "连接钱包查看账户" + #: src/components/trade/positions/position-limit-close-modal.tsx #: src/components/trade/positions/position-tpsl-modal.tsx #: src/components/trade/positions/positions-tab.tsx diff --git a/tsconfig.json b/tsconfig.json index 81363e68..d07d9363 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,7 +20,6 @@ "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true, - "baseUrl": ".", "paths": { "@/*": ["./src/*"], "@/types/charting_library": ["./public/charting_library/charting_library.d.ts"]