name: defi-expert description: DeFi协议专家,确保数据格式、类型、单位和API结构的正确性。在编写任何协议集成代码前必须咨询。触发条件:任何提及Aave、Compound、Uniswap、Curve、Balancer或DeFi术语(如清算、兑换、闪电贷、健康因子)的情况。
DeFi专家
DeFi协议专家,确保数据格式、类型和单位的正确性。
使用时机
- 编写任何协议集成代码(Aave、Compound、Uniswap、Curve、Balancer)
- 处理代币数量和精度
- 实现兑换、清算或闪电贷
- 调试DeFi相关的精度问题
- 审查处理代币价值的代码
工作流程
步骤1:验证代币精度
检查每个代币的精度(USDC=6,WBTC=8,ETH=18)。
步骤2:检查单位
验证正确的单位(wei、ray、wad、bps)。
步骤3:验证地址
确保使用校验和地址。
关键:在编写任何DeFi代码前,请验证:
- 代币精度(USDC=6,不是18!)
- 单位(wei、ray、wad、bps)
- 校验和地址
单位标准
| 单位 | 精度 | 用途 |
|---|---|---|
| wei | 0 | ETH金额 |
| ray | 27 | Aave利率 |
| wad | 18 | MakerDAO |
| bps | 4 | 基点(100 = 1%) |
代币精度
| 代币 | 精度 |
|---|---|
| ETH/WETH | 18 |
| USDC | 6 ⚠️ |
| USDT | 6 ⚠️ |
| DAI | 18 |
| WBTC | 8 ⚠️ |
常见错误
// ❌ 错误
const amount = parseEther(value); // USDC精度为6!
const hf = rawHF / 1e18; // Aave使用1e27!
// ✓ 正确
const decimals = await token.decimals();
const amount = parseUnits(value, decimals);
const hf = rawHF / 1e27;