首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pancakeswap - getAmountsOut得到了奇怪的结果

Pancakeswap - getAmountsOut得到了奇怪的结果
EN

Stack Overflow用户
提问于 2021-12-25 10:50:26
回答 1查看 2.8K关注 0票数 2

我正在web3中迈出第一步,这就是为什么问题可能很愚蠢的原因。

我不明白,为什么Pancakeswap的getAmountsOut方法的结果与我在Pancakeswap前端看到的交换结果有很大的不同。

烘焙小数应该是无处不在的18自动,所以我不明白为什么会有这样不同的结果。

示例BUSD烘焙交换

  1. My代码(结果为20000 BUSD -> 163Bake)

代码语言:javascript
复制
const Web3 = require('web3');
const abis = require('./abis');
const web3 = new Web3('wss://bsc-ws-node.nariox.org:443');

const amountInBUSD = web3.utils.toBN(web3.utils.toWei('20000'));
const busdTokenAddress = "0xE02dF9e3e622DeBdD69fb838bB799E3F168902c5";
const bakeTokenAddress = "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56";

const init = async () => {
  const pancakeSwap = new web3.eth.Contract(
    abis.pancakeSwap.router,
    "0x10ED43C718714eb63d5aA57B78B54704E256024E"
  );

  web3.eth.subscribe('newBlockHeaders')
    .on('data', async block => {
      const bakeOutput = await pancakeSwap.methods.getAmountsOut(amountInBUSD, [busdTokenAddress, bakeTokenAddress]).call();
      console.log(`PancakeSwap BUSD-BAKE: ${web3.utils.fromWei(amountInBUSD.toString())} -> ${web3.utils.fromWei(bakeOutput[1].toString())}`);
    })
    .on('error', error => {
      console.log(error);
    });
}
init();

  1. Call of getAmountsOut方法在bscscan中的路由器契约(结果为20000 BUSD -> 163个烘焙)

来自 UI的

  1. 屏幕截图(结果为20000 BUSD -> 12100烘焙)

EN

回答 1

Stack Overflow用户

发布于 2022-01-03 10:58:56

如果您将pcs屏幕截图上的路径/路由与bsc上的路径进行比较,您应该注意到它不使用相同的路径。

你会得到一个不同的价格,如果你交易对B美元的->烘焙与BUSD -> BNB ->烘焙

另外,请注意价格对游泳池的影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70479502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档