utils.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import axios from "axios";
  2. /**
  3. * checks if the addr is a valid ethereum address (hex and 42 char long including the 0x)
  4. * @param {string} addr
  5. */
  6. function isValid(addr) {
  7. const re = /[0-9A-Fa-f]{40}/g;
  8. addr = addr.trim();
  9. const ans = ((addr.substr(0, 2) === '0x' && re.test(addr.substr(2))) //with the 0x
  10. || (re.test(addr))
  11. || addr.endsWith('.eth')); //without the 0x
  12. return ans;
  13. }
  14. /**
  15. * query is a map.
  16. * returns query string including the ? at the beginning
  17. * @param {string} query
  18. */
  19. function buildQueryString(query) {
  20. let queryString = '?';
  21. for (const [key, val] of Object.entries(query)) {
  22. queryString += key + '=' + val + '&';
  23. }
  24. if (queryString[queryString.length - 1] === '&') {
  25. queryString = queryString.substr(0, queryString.length - 1);
  26. }
  27. return queryString;
  28. }
  29. function getApi(url, thenFunction, finallyFunction=() => {}) {
  30. axios.get(url).then(thenFunction).catch(err => console.log(err)).finally(finallyFunction);
  31. }
  32. export { isValid, buildQueryString, getApi }