const HttpKit = require('./kit/HttpKit') const Config = require("./Config") const PrivateConfig = require('./PrivateConfig.js') const chainID = 56 const rpc = 'https://bsc-dataseed1.binance.org' class DoDo {} DoDo.price = async function (sellToken = '0xe9e7cea3dedca5984780bafc599bd69add087d56', sellTokenDecimals = 18, sellAmount = 100, buyToken = '0xba2ae424d960c26247dd6c32edc70b295c744c43', slippagePercentage = 0.03, affiliateAddress = '0x221d5c4993297Fd95fA17743b9297E2e49FCe9D2') { sellAmount = sellAmount * (10 ** sellTokenDecimals) const url = `https://bsc.api.0x.org/swap/v1/quote?sellToken=${sellToken}&sellAmount=${sellAmount}&buyToken=${buyToken}` + `&slippagePercentage=${slippagePercentage}&affiliateAddress=${affiliateAddress}` const { data: rst } = await HttpKit.get(url) if (!rst || !rst.price) { return rst } if (sellToken === '0xe9e7cea3dedca5984780bafc599bd69add087d56') { return 1 / parseFloat(rst.price) } else { parseFloat(rst.price) } } DoDo.swap = async function (fromTokenAddress = '0xe9e7cea3dedca5984780bafc599bd69add087d56', fromTokenDecimals = 18, toTokenAddress = '0x111111111117dc0aa78b770fa6a738034120c302', toTokenDecimals = 18, amount = 100, userAddr = PrivateConfig.address, slippage = 1) { amount = amount * (10 ** fromTokenDecimals) const url = `https://dodo-route.dodoex.io/dodoapi/getdodoroute?fromTokenAddress=${fromTokenAddress}&fromTokenDecimals=${fromTokenDecimals}` + `&toTokenAddress=${toTokenAddress}&toTokenDecimals=${toTokenDecimals}&fromAmount=${amount}&userAddr=${userAddr}` + `&slippage=${slippage}&chainId=${chainID}&rpc=${rpc}` const { data: rst } = await HttpKit.get(url, { 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4464.0 Safari/537.36 Edg/91.0.852.0' }) return rst } module.exports = DoDo