feat: 添加 LP 流动性池功能

新增功能:
- 添加 LPPanel 组件,支持流动性池操作
- 添加流动性 (addLiquidity): 存入 YT 代币或 WUSD 获得 ytLP
- 移除流动性 (removeLiquidity): 销毁 ytLP 获取代币
- 代币互换 (swapYT): 在池内交换 YT 代币

合约集成:
- YTRewardRouter: 0x51eEF57eC57c867AC23945f0ce21aA5A9a2C246c
- YTLPToken: 0x1b96F219E8aeE557DD8bD905a6c72cc64eA5BD7B
- YTPoolManager: 0x14246886a1E1202cb6b5a2db793eF3359d536302
- YTVault: 0x19982e5145ca5401A1084c0BF916c0E0bB343Af9
- USDY: 0x631Bd6834C50f6d2B07035c9253b4a19132E888c

UI功能:
- 显示池子 AUM、ytLP 价格、总供应量
- 显示用户 ytLP 余额和冷却时间
- Tab 切换: 添加流动性/移除流动性/代币互换
- 代币授权检查和一键授权
- 滑点容忍度设置
- 中英文翻译支持

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-16 07:30:53 +00:00
parent 553ff58c4d
commit c16d846858
6 changed files with 1018 additions and 4 deletions

View File

@@ -18,7 +18,8 @@
"nav": {
"wusd": "WUSD",
"vaultTrading": "Vault Trading",
"factory": "Factory"
"factory": "Factory",
"lpPool": "LP Pool"
},
"header": {
"title": "YT Asset Test"
@@ -147,5 +148,36 @@
"updatePriceNotOwnerDesc": "Non-owner calls updateVaultPrices",
"setManagerNotOwner": "Set Manager (Not Owner)",
"setManagerNotOwnerDesc": "Non-owner calls setVaultManager"
},
"lp": {
"title": "YT Liquidity Pool",
"rewardRouter": "Reward Router Contract",
"ytLPToken": "ytLP Token",
"poolAUM": "Pool AUM",
"ytLPPrice": "ytLP Price",
"totalSupply": "Total Supply",
"yourBalance": "Your Balance",
"cooldownRemaining": "Cooldown Remaining",
"noCooldown": "No cooldown",
"addLiquidity": "Add Liquidity",
"addLiquidityDesc": "Deposit YT tokens or WUSD to receive ytLP tokens",
"removeLiquidity": "Remove Liquidity",
"removeLiquidityDesc": "Burn ytLP to get tokens back",
"swapTokens": "Swap Tokens",
"swapDesc": "Swap between YT tokens and WUSD in the pool",
"selectToken": "Select Token",
"amount": "Amount",
"slippage": "Slippage Tolerance",
"approveToken": "Approve Token",
"approveYtLP": "Approve ytLP",
"outputToken": "Output Token",
"ytLPAmount": "ytLP Amount",
"max": "Max",
"fromToken": "From Token",
"toToken": "To Token",
"swap": "Swap",
"cooldownNotPassed": "Cooldown not passed, please try later",
"insufficientOutput": "Insufficient output amount",
"cooldownWarning": "Cooldown remaining {{time}}, cannot remove liquidity yet"
}
}