uniswap-v2-loader 5.0.10 → 5.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +10 -1
  2. package/loader.js +27 -4
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -57,7 +57,15 @@ const load = (params = {}) => {
57
57
  method: 'eth_call',
58
58
  params: [{ to: factory, data: '0x574f2ba3' }, 'latest']
59
59
  })
60
- }).then(_ => _.json()).then(_ => Number(_.result))
60
+ }).then(
61
+ _ => {
62
+ if (_.ok) return _.json().then(_ => Number(_.result))
63
+ throw 'fail start'
64
+ },
65
+ _ => {
66
+ throw 'fetch failed'
67
+ }
68
+ )
61
69
  ).then(all_pairs_length => {
62
70
  const start_loading_from = pairs.length
63
71
  ? Math.max(from, pairs[pairs.length - 1].id + 1)
@@ -111,6 +119,7 @@ const load = (params = {}) => {
111
119
  }))
112
120
  ).then(() => pairs)
113
121
  })
122
+ .catch(() => new Promise(resolve => setTimeout(() => resolve(load(params)), 1000)))
114
123
  }
115
124
 
116
125
  module.exports.load = (params = {}) =>
package/loader.js CHANGED
@@ -9,7 +9,16 @@ const get_pairs_addresses = (key, factory, ids) => ids.length == 0
9
9
  method: 'eth_call',
10
10
  params: [{ to: factory, data: '0x1e3dd18b' + id.toString(16).padStart(64, '0') }, 'latest']
11
11
  })))
12
- }).then(_ => _.json()).then(responds => {
12
+ }).then(
13
+ _ => {
14
+ if (_.ok) return _.json()
15
+ throw 'respond not ok'
16
+ },
17
+ _ => {
18
+ throw _.cause?.message || 'failed fetch'
19
+ }
20
+ )
21
+ .then(responds => {
13
22
  responds.sort((a, b) => a.id - b.id)
14
23
  const addresses = []
15
24
  const failed_ids = []
@@ -20,8 +29,11 @@ const get_pairs_addresses = (key, factory, ids) => ids.length == 0
20
29
 
21
30
  return failed_ids.length == 0
22
31
  ? addresses
23
- : get_pairs_addresses(key, factory, failed_ids).then(retried => [...addresses, ...retried])
32
+ : new Promise(resolve => setTimeout(() => resolve(
33
+ get_pairs_addresses(key, factory, failed_ids).then(retried => [...addresses, ...retried])
34
+ ), 10000))
24
35
  })
36
+ .catch(() => new Promise(resolve => setTimeout(() => resolve(get_pairs_addresses(key, factory, ids)), 10000)))
25
37
 
26
38
  const get_tokens = (key, addresses) => addresses.length == 0
27
39
  ? Promise.resolve({})
@@ -42,7 +54,15 @@ const get_tokens = (key, addresses) => addresses.length == 0
42
54
  params: [{ to: address, data: '0xd21220a7' }, 'latest']
43
55
  }
44
56
  ]))
45
- }).then(_ => _.json()).then(responds => {
57
+ }).then(
58
+ _ => {
59
+ if (_.ok) return _.json()
60
+ throw 'respond not ok'
61
+ },
62
+ _ => {
63
+ throw _.cause?.message
64
+ }
65
+ ).then(responds => {
46
66
  responds.sort((a, b) => a.id - b.id)
47
67
  const tokens = {}
48
68
  const failed_addresses = []
@@ -62,8 +82,11 @@ const get_tokens = (key, addresses) => addresses.length == 0
62
82
 
63
83
  return failed_addresses.length == 0
64
84
  ? tokens
65
- : get_tokens(key, failed_addresses).then(retried => ({ ...tokens, ...retried }))
85
+ : new Promise(resolve => setTimeout(() => resolve(
86
+ get_tokens(key, failed_addresses).then(retried => ({ ...tokens, ...retried }))
87
+ ), 10000))
66
88
  })
89
+ .catch(() => new Promise(resolve => setTimeout(() => resolve(get_tokens(key, addresses)), 10000)))
67
90
 
68
91
  const main = ({ids, factory, key, multicall_size}, onpair) => {
69
92
  const chunks = []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uniswap-v2-loader",
3
- "version": "5.0.10",
3
+ "version": "5.0.12",
4
4
  "description": "Uniswap v2 protocol loader",
5
5
  "keywords": [
6
6
  "uniswap-v2",