みなさん、こんばんは、できるだけ明確にしようと思います。私は web3.py を使用して s**tcoins の価格を取得しようとしていましたが、多くの問題を解決した後、私が尋ねた質問に行き詰まっています。
tokenAddres = '0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82' #Cake
tokenAddres = Web3.toChecksumAddress(tokenAddres)
bnbPrice = calcBNBPrice()
print(f'current BNB price: {bnbPrice}')
priceInBnb = calcSell(1, tokenAddres)
print(f'SHIT_TOKEN VALUE IN BNB : {priceInBnb} | Just convert it to USD ')
print(f'SHIT_TOKEN VALUE IN USD: {priceInBnb * bnbPrice}')
calcsell 関数は、トークンの値を BNB で返す関数でなければなりません
def calcSell(tokenToSell, tokenAddress):
BNBTokenAddress = Web3.toChecksumAddress("0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c") # BNB
amountOut = None
tokenRouter = web3.eth.contract(address=Web3.toChecksumAddress(tokenAddress), abi=tokenAbi)
tokenDecimals = tokenRouter.functions.decimals().call()
tokenToSell = setDecimals(tokenToSell, tokenDecimals) # Set token a correct number of 0s
router = web3.eth.contract(address=Web3.toChecksumAddress(pancakeSwapContract), abi=pancakeSwapAbi)
amountIn = web3.toWei(tokenToSell, 'ether')
amountOut = router.functions.getAmountsOut(amountIn, [tokenAddress, BNBTokenAddress]).call()
amountOut = web3.fromWei(amountOut[1], 'ether')
return amountOut
私が得る値は次の
とおりです。USD SHIT_TOKEN VALUE IN USD に変換するだけ
です: 340708627.4489159379891912819
正しいものは次のとおりです
。SHIT_TOKEN VALUE IN BNB : 0.048846069961106416 | USD SHIT_TOKEN VALUE IN USD に変換するだけ
です: 16.98585439310707
推測はありますか?ご不明な点がございましたら、お気軽にお問い合わせください。