web3j 有没有方法获取代币的实时价格

pancake的api有十分钟延时,除了api想问下有没有其他的方法获取

请先 登录 后评论

最佳答案 2022-05-29 08:37

实时价格那就只能去查询链上合约的实时状态了,用来计算价格,使用 UniswapV2Library库(注意修改initcodehash为pancake的initcodehash)来计算价格,tokenIn是你要查询价格的Token,tokenOut是稳币USDX,amountIn传入1个单位的tokenIn,amountOut既是你要查询的tokenIn价格

(uint256 reserveIn, uint256 reserveOut) = UniswapV2Library.getReserves(
    factory,
    address(tokenIn),
    address(tokenOut)
);
uint256 amountOut = UniswapV2Library.getAmountOut(amountIn,reserveIn,reserveOut);

如果没有和稳币直接建立交易对,那就用getAmountsOut接口

function getAmountsOut(address factory, uint amountIn, address[] memory path) internal view returns (uint[] memory amounts)
请先 登录 后评论

其它 1 个回答

zen
请先 登录 后评论
  • 2 关注
  • 0 收藏,5494 浏览
  • 提出于 2022-05-24 23:19