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.
- package/index.js +10 -1
- package/loader.js +27 -4
- 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(
|
|
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(
|
|
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
|
-
:
|
|
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(
|
|
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
|
-
:
|
|
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 = []
|