100 以太链 DEX聚合器 推荐哪个 ?用于合约调用

希望
1能跨从链上查询各个合约的交易价格(比如1inch DEX 的getExpectedReturn),以及合约地址是多少?
2实现智能合约swap功能
3请问聚合器能获得底池子大小吗?
希望老师们提供下具体的合约地址和实现方法

======
如果聚合器没法从一个合约获得价格那现在eth uni v2 和v3获取价格的合约和方法各是什么?

谢谢大家!!!

请先 登录 后评论

2 个回答

Tiny熊
  擅长:智能合约,以太坊

Uniswap v2 v3 SDK 以及合约都有获取价格的方法。
v2 用的是 Router 合约, v3 用的是 Quoter 合约

他们是通过自己当前自身池子的深度来计算,各家聚合器也在使用这些接口,在链下计算最优的兑换路径。

请先 登录 后评论
solidity开发 - solidity开发工程师

uniswapV2相关合约

  • UniswapV2Factory eth链合约地址是0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f,该合约可以用来查询有没有某个token pair, 方法是function getPair(address tokenA, address tokenB) external view returns (address pair);
  • RouterV2 eth链合约地址是0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,该合约可以用于token的swap和addLiquidity操作,方法比较多,举几个例子吧 function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);, 这个方法是把native token(也就是ETH)兑换成其他的ERC20 token,amountOutMin 参数是为了防止汉堡攻击导致滑点太大而设置的参数,用户可以限制获得token的最小数量,
    function getAmountsOut(uint amountIn, address[] memory path) public view returns (uint[] memory amounts);,方法可以用来查询token的价格,就是指定输入,得到输出,输出是兑换得到的目标token的数量,
请先 登录 后评论
  • 2 关注
  • 0 收藏,1902 浏览
  • 提出于 2023-11-28 17:16