用途:Curve Finance 是锚定资产兑换的主流 AMM,StableSwap 池针对接近 1:1 交易的资产(稳定币、封装代币、LST)优化,滑点低于恒定乘积 AMM;CryptoSwap(Tricrypto)将机制扩展到波动性交易对。协议还发行 crvUSD 稳定币,由 LLAMMA 软清算机制支撑,价格穿越区间时逐步在抵押品与 crvUSD 之间转换,而非瞬时清算。CRV 排放通过 vote-escrowed CRV(veCRV)投票导向流动性 gauge。
主要能力:StableSwap 池(如 3pool、stETH/ETH、frxETH/ETH)、CryptoSwap 池(tricrypto2)、Meta 池(如 FRAX/3CRV)、Factory 池;支持兑换、添加/移除流动性、Curve Router 多池路由。合约用 Vyper 编写,ABI 编码与 Solidity 相同,viem 可直接使用。
使用方式:安装 npm install viem,创建 publicClient 与 walletClient。兑换调用 exchange(i, j, dx, min_dy),i、j 为代币索引而非地址;报价用 get_dy()(返回未扣手续费的估算值);务必先用 coins(i) 校验索引。Meta 池用 exchange_underlying()。ETH 池通过 msg.value 传入原生 ETH。Router 的 exchange 接收 _route(address[11])与 _swap_params(uint256[5][5])。添加流动性用 add_liquidity(amounts, min_mint_amount),数组长度随池类型为 2/3/4;移除用 remove_liquidity 或 remove_liquidity_one_coin。
限制与注意:各池类型 ABI 不同,没有通用池 ABI,需从 Etherscan 或 Curve 文档读取具体池 ABI;代币索引按部署而定,不按地址排序;get_dy() 未扣手续费;add_liquidity 数组长度错误会无提示地 revert;remove_liquidity_one_coin 在不平衡池大额提取时滑点高,应先模拟;get_virtual_price() 单调上升,可用于 LP 定价但不适合检测漏洞;veCRV 需锁定 CRV 1-4 年,投票权线性衰减且不可转让。
适用场景:稳定币与锚定资产兑换、波动性交易对兑换、流动性提供与治理投票。
资料未提供:具体收费、价格、支持链范围、审计与安全细节暂未提供。