🚀 Production release - #506
Conversation
Fixes two critical PnL calculation issues: 1. Infinite PnL % caused by unstable sort order for trades with identical timestamps (enforced Buy before Sell). 2. High Execution Price warnings for cross-chain swaps (e.g. WETH -> BSC USDC) caused by using source chain decimals for quote token. Updated to track usdcChainId from state changes.
- Refactored token selector in Buy and Sell components to use a flexible flexbox layout, resolving text overlap and width issues. - Fixed dailyPriceChange data mapping in Search.tsx to correctly handle both 'price_change_24h' and 'priceChange24h' properties. - Updated Buy.tsx to include price change data when pre-selecting tokens from URL.
- Implemented perps trading interface with real-time charts - Integrated Hyperliquid API for trading, deposits, and agent management - Added WebSocket support for live price updates and candle data - Created agent wallet management with local storage - Added deposit modal for USDC deposits to Hyperliquid bridge - Implemented price ticker with market data (mark price, oracle, 24h change, volume, OI, funding) - Downgraded lightweight-charts to v4 for compatibility - Updated test snapshots - Added chain switching logic for Arbitrum network
- Deleted src/apps/perps/integrations/supabase/ directory - Removed Supabase webhook URL from TradeSignals.tsx - Disabled trade signals fetch with TODO for future API endpoint - All Supabase dependencies removed from perps app
…ion UI - Replaced TradingView chart with lightweight Sparkline chart - 12-hour price history with 1-minute candles - 2-second auto-refresh - Clean UI without extra text - Implemented global storage for imported accounts - Accounts persist in localStorage after page refresh - Independent of connected wallet - New storage functions: storeImportedAccount, getImportedAccount, clearImportedAccount - Added visual validation status component - Shows validation progress during import - Displays success card with balance and positions - Shows error messages with troubleshooting info - Enhanced agent import UI - Custom account address input (pre-filled with connected wallet) - Validates account exists on Hyperliquid before importing - Shows imported account status with address - Added Remove button to clear imported account - Updated display conditions - Balance and positions show when imported account exists - Works regardless of wallet connection status - Fixed Tailwind CSS configuration - Added color definitions for perps app theme
- Fix negative mark price bug in PositionsCard (was using returnOnEquity instead of markPx) - Add mobile safe area padding (pb-24 on mobile, pb-8 on desktop) - Replace large Remove button with compact settings dropdown menu - Add leverage presets (2x, 5x, 10x, 20x) for faster trading - Create CompactHeader component for future status bar consolidation Fixes: - Mark price now displays correctly as positive value - Mobile bottom navigation no longer overlaps Long/Short buttons - Reduced visual noise and accidental click risk - Improved trading workflow efficiency
- Created mobile components: MobileHeader, MobileBalanceCard, MobilePositionsCard, MobileMarketsList - Added MobileIndex page with new mobile-first layout - Implemented responsive detection (switches at 768px breakpoint) - Fixed React hooks error by calling all hooks before conditional rendering - Added getMetaAndAssetCtxs export to client.ts for markets data - Mobile design matches provided mockup with cyan/green/red color scheme
- BTC now selected by default so chart loads immediately - Removed Hyperliquid Status banner section for cleaner UI
- Added token logos (colored circles with initials) - Display current price for each asset - Show 24h volume (formatted as B/M/K) - Display price change percentage (green/red) - Replaced CSV download button with sorting dropdown - Sort by: Price, Volume, or Change % - Uses metaAndAssetCtxs API for real-time market data
- Fixed metaAndAssetCtxs response structure parsing - API returns [metadata, assetContexts] array - data[0].universe contains asset metadata - data[1] array contains price/volume contexts - Assets now display correctly with price, volume, and change %
- Display mark price, oracle price, mid price - Show 24h volume and base volume - Display open interest - Show funding rate (color-coded) - Display premium (color-coded) - Show previous day price - Display impact prices - All data fetched from metaAndAssetCtxs API - Auto-refreshes every 2 seconds with chart
- Moved market data next to price with responsive layout - Shows Mark, Oracle, 24H Change, Volume, OI, Funding horizontally - Added subtle styling details (underlines, spacing) - Included dummy countdown timer for funding - Matches user's requested ticker design
- Removed grid layout completely - Used 'flex flex-wrap items-end gap-x-8' to force horizontal flow - Data items now sit side-by-side next to the price - Fixed '24H Change' display logic - Ensures ticker-like appearance as requested
- Split header into Left (Price) and Right (Market Data) sections - Used 'justify-between' to push market data to the far right - Increased current price font size to 4xl - Right-aligned all market data labels and values - Ensures layout matches requested top-right placement design
- Removed 'mt-2' from market ticker container - Added 'pt-0 mt-0' to guarantee top alignment - Keeps 'items-start' to align ticker top edge with Price Label top edge - Ensures precise top-right positioning as requested
- Reverted 'index.tsx' to standard responsive layout, removing 'MobileIndex' logic
- Updated 'SparklineChart' to use absolute positioning ('xl:absolute xl:top-6 xl:right-6')
- Guarantees top-right alignment for market ticker on desktop
- Resolves user feedback about incorrect layout and unwanted mobile view
…sitioning - Switched to 'flex justify-between items-start' on the main header container - Places Price (left) and Ticker (right) in the same horizontal flow - Ensures the Ticker block aligns perfectly with the top of the Price label - Eliminates vertical misalignment caused by absolute positioning offsets
Feature/add hyperliquid icon
…ined fix: import roundToSzDecimals to avoid runtime error
fix: use fallback HTTP transport in delegatedEoa mode
fix: safeguard against getEtherspotProvider crash in delegated mode
Mobula_Url_Updated
…update Update landing page content
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 23693060 | Triggered | JSON Web Token | 15a2774 | src/apps/perps/integrations/supabase/client.ts | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
Remove the Cypress image Chrome apt source before apt-get update so jq install is not blocked by an expired Google GPG key. Allow the Cloudflare Pages Slack notification step to fail without failing the workflow when CF_API_TOKEN auth is invalid.
|
Superseded by squash release PR to clear GitGuardian historical JWT finding. Use the new production release PR instead. |
Summary
Production release from
staging→main(170 commits, 165 files since last release).roundToSzDecimalsruntime fix.nvmrcfor Node.js 20; landing page content/copy/icon refreshTest plan