Blockchain web3.contract.functions.getAmount()中存在差异

Blockchain web3.contract.functions.getAmount()中存在差异,blockchain,smartcontracts,web3,web3js,web3py,Blockchain,Smartcontracts,Web3,Web3js,Web3py,我正在使用Web3.py,我遇到了一些奇怪的事情 对于以下代码(使用Pancake Router V2): 从web3导入web3 从web3.0中间件导入geth_poa_中间件 web3=web3(web3.HTTPProvider('https://bsc-dataseed1.binance.org:443')) web3.middleware\u onion.inject(geth\u poa\u middleware,layer=0) ABI={“输入”:[{“内部类型”:“uint2

我正在使用Web3.py,我遇到了一些奇怪的事情

对于以下代码(使用Pancake Router V2):

从web3导入web3
从web3.0中间件导入geth_poa_中间件
web3=web3(web3.HTTPProvider('https://bsc-dataseed1.binance.org:443'))
web3.middleware\u onion.inject(geth\u poa\u middleware,layer=0)
ABI={“输入”:[{“内部类型”:“uint256”,“名称”:“金额”,“类型”:“uint256”},{“内部类型”:“地址[]”,“名称”:“路径”,“类型”:“地址[]”}],“名称”:“getAmountsOut”,“输出”:[{“内部类型”:“uint256[]”,“名称”:“金额”,“类型”:“uint256[]”,“}],“状态可变性”:“视图”,“类型”:“函数”}
CAKE_ROUTER_V2=web3.toChecksumAddress('0x10ed43c718714eb63d5aa57b78b54704e256024e')
路由器契约=web3.eth.contract(地址=CAKE\u路由器V2,abi=abi),
WBNB=web3.toChecksumAddress('0xbb4cdb9cbd36b01bd1bd1cbaebf2de08d9173bc095c')
CAKE=web3.toChecksumAddress('0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82')
KONGSHIBA=web3.toChecksumAddress('0x126f5f2a88451d24544f79d11f869116351d46e1')
打印(router_contract.functions.getAmountsOut(1,[WBNB,CAKE]).call())
打印(router_contract.functions.getAmountsOut(1[WBNB,KONGSHIBA]).call())
我得到以下信息:

[1, 19]
[1, 160]
WBNB和CAKE有18位小数,KONGSHIBA有17位小数。
目前蛋糕的价值约为27.7美元,WBNB为545.41291093美元,KONGSHIBA为0.000000000000000000332美元。
所以我应该回去了:

[1, 19]
[1, 16000000000000000000]

请告知。

您找到soultion了吗?没有,最终我只是从流动性资源中得到了价格,这一个似乎是非常糟糕的合同。您如何从流动性中计算价格?