| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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
|