Parse Coin and Network Details

This code helps get coinCode and network to pass to widget

To extract the available coins and their supported networks from allCoinDetails endpoint supported by Onramp, please refer the code below.

const fetch = require('node-fetch')

let url = 'https://api.onramp.money/onramp/api/v2/sell/public/allConfig'

let settings = { method: 'GET' }
let networkslist = []
let coinsList = []

async function getOnrampdata() {
  fetch(url, settings)
    .then(res => res.json())
    .then(obj => {
      saveNetworks(obj.data.networkConfig)
      saveCoinConfig(obj.data.allCoinConfig)
    })
}

function saveNetworks(networkjson) {
  //console.log(networkjson)
  var keys = Object.keys(networkjson)
  for (var i = 0; i < keys.length; i++) {
    networkslist.push([parseInt(keys[i]), networkjson[keys[i]]['chainSymbol']])
  }
  console.log('networksList :>> ', networkslist);
}

function lookupnetwork(chainId) {
  return networkslist.filter(nw => nw[0] === chainId)[0][1]
}

function saveCoinConfig(coinjson) {
  var keys = Object.keys(coinjson)
  let coinCode, networks
  for (var i = 0; i < keys.length; i++) {
    coinCode = keys[i]
    networks = coinjson[keys[i]]['networks']
    coinsList.push(coinCode)
    let coinnetwork = []
    for (var j = 0; j < networkslist.length; j++) {
      if (networks.includes(networkslist[j][0])) {
        coinnetwork.push(lookupnetwork(networkslist[j][0]))
        //console.log('coinCode,coinnetwork :>> ', coinCode,coinnetwork);
      }
    }
    coinsList.push(coinnetwork)
  }
  console.log(coinsList)
}

getOnrampdata()
[  [0, 'erc20'],
  [1, 'bep20'],
  [2, 'trc20'],
  [3, 'matic20'],
  [4, 'spl'],
  [5, 'bep2'],
  [7, 'nep5'],
  [8, 'eos'],
  [9, 'klay'],
  [10, 'matic20-test'],
  [11, 'okc'],
  [12, 'wemix 3.0'],
  [13, 'arbitrum'],
  [14, 'yota'],
  [15, 'ton']
]

Last updated