dodo.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const HttpKit = require('./kit/HttpKit')
  2. const Config = require("./Config")
  3. const PrivateConfig = require('./PrivateConfig.js')
  4. const chainID = 56
  5. const rpc = 'https://bsc-dataseed1.binance.org'
  6. class DoDo {}
  7. DoDo.price = async function (sellToken = '0xe9e7cea3dedca5984780bafc599bd69add087d56',
  8. sellTokenDecimals = 18,
  9. sellAmount = 100,
  10. buyToken = '0xba2ae424d960c26247dd6c32edc70b295c744c43',
  11. slippagePercentage = 0.03,
  12. affiliateAddress = '0x221d5c4993297Fd95fA17743b9297E2e49FCe9D2') {
  13. sellAmount = sellAmount * (10 ** sellTokenDecimals)
  14. const url = `https://bsc.api.0x.org/swap/v1/quote?sellToken=${sellToken}&sellAmount=${sellAmount}&buyToken=${buyToken}`
  15. + `&slippagePercentage=${slippagePercentage}&affiliateAddress=${affiliateAddress}`
  16. const { data: rst } = await HttpKit.get(url)
  17. if (!rst || !rst.price) {
  18. return rst
  19. }
  20. if (sellToken === '0xe9e7cea3dedca5984780bafc599bd69add087d56') {
  21. return 1 / parseFloat(rst.price)
  22. } else {
  23. parseFloat(rst.price)
  24. }
  25. }
  26. DoDo.swap = async function (fromTokenAddress = '0xe9e7cea3dedca5984780bafc599bd69add087d56',
  27. fromTokenDecimals = 18,
  28. toTokenAddress = '0x111111111117dc0aa78b770fa6a738034120c302',
  29. toTokenDecimals = 18,
  30. amount = 100,
  31. userAddr = PrivateConfig.address,
  32. slippage = 1) {
  33. amount = amount * (10 ** fromTokenDecimals)
  34. const url = `https://dodo-route.dodoex.io/dodoapi/getdodoroute?fromTokenAddress=${fromTokenAddress}&fromTokenDecimals=${fromTokenDecimals}`
  35. + `&toTokenAddress=${toTokenAddress}&toTokenDecimals=${toTokenDecimals}&fromAmount=${amount}&userAddr=${userAddr}`
  36. + `&slippage=${slippage}&chainId=${chainID}&rpc=${rpc}`
  37. const { data: rst } = await HttpKit.get(url, {
  38. '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'
  39. })
  40. return rst
  41. }
  42. module.exports = DoDo