Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const numberOfTries = 5
- const delayTime = 500
- const delay = async () => {
- return new Promise((resolve) => {
- setTimeout(() => resolve(), delayTime)
- })
- }
- const requestHandler = async (walletFunction) => {
- try {
- for (let i = 0; i < numberOfTries; i++) {
- try {
- const result = await walletFunction()
- return result
- } catch (error) {
- if (error.code) {
- switch (error.code) {
- case 13:
- await delay()
- break
- case 14:
- throw { message: "Can't connect to node IP" }
- default:
- throw error
- }
- }
- }
- }
- throw { message: "Can't perform transaction right now. Try again in a few minutes" }
- } catch (error) {
- throw error
- }
- }
- module.exports = requestHandler
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement