uniswap-v2-loader 5.0.27 → 6.0.0
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/.github/workflows/test.yml +1 -1
- package/README.md +2 -2
- package/package.json +1 -1
- package/src/index.js +30 -13
|
@@ -35,7 +35,7 @@ jobs:
|
|
|
35
35
|
run: npm i -g .
|
|
36
36
|
|
|
37
37
|
- name: Test CLI load first 4 pairs from Uniswap V2 using 2 workers
|
|
38
|
-
run: uniswap-v2-loader --to=
|
|
38
|
+
run: uniswap-v2-loader --to=3 --multicall_size=2 --workers=2
|
|
39
39
|
|
|
40
40
|
- name: Run ESM tests
|
|
41
41
|
run: npm run test-esm
|
package/README.md
CHANGED
|
@@ -60,11 +60,11 @@ Methods:
|
|
|
60
60
|
|
|
61
61
|
`config` is an Object (key/value)
|
|
62
62
|
- `from`
|
|
63
|
-
* Start
|
|
63
|
+
* Start index (inclusive).
|
|
64
64
|
* Type: `number`
|
|
65
65
|
* Default: `0`
|
|
66
66
|
- `to`
|
|
67
|
-
* End index (
|
|
67
|
+
* End index (inclusive).
|
|
68
68
|
* Type: `number`
|
|
69
69
|
* Default: `undefined`
|
|
70
70
|
- `filename`
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -39,12 +39,12 @@ const load = (params = {}) => {
|
|
|
39
39
|
}, [])
|
|
40
40
|
: []
|
|
41
41
|
|
|
42
|
-
if (to >= 0 && pairs.length
|
|
42
|
+
if (to >= 0 && to <= pairs.length - 1) {
|
|
43
43
|
if (progress)
|
|
44
|
-
for (var i = from; i
|
|
44
|
+
for (var i = from; i <= to; i++)
|
|
45
45
|
progress(pairs[i].id, to, pairs[i])
|
|
46
46
|
|
|
47
|
-
return Promise.resolve(pairs.slice(
|
|
47
|
+
return Promise.resolve(pairs.slice(from, to + 1))
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
return (to
|
|
@@ -61,17 +61,24 @@ const load = (params = {}) => {
|
|
|
61
61
|
})
|
|
62
62
|
}).then(
|
|
63
63
|
_ => {
|
|
64
|
-
if (_.ok) return _.json().then(_ =>
|
|
64
|
+
if (_.ok) return _.json().then(_ => {
|
|
65
|
+
const total_pools = Number(_.result)
|
|
66
|
+
if (total_pools > 0) {
|
|
67
|
+
const last_id = total_pools - 1
|
|
68
|
+
return last_id
|
|
69
|
+
}
|
|
70
|
+
return 0
|
|
71
|
+
})
|
|
65
72
|
throw 'fail start'
|
|
66
73
|
},
|
|
67
74
|
_ => {
|
|
68
75
|
throw 'fetch failed'
|
|
69
76
|
}
|
|
70
77
|
)
|
|
71
|
-
).then(
|
|
78
|
+
).then(last_id => {
|
|
72
79
|
const start_loading_from = pairs.length
|
|
73
80
|
? Math.max(from, pairs[pairs.length - 1].id + 1)
|
|
74
|
-
:
|
|
81
|
+
: from
|
|
75
82
|
|
|
76
83
|
var next_pair_order = pairs.length
|
|
77
84
|
? pairs[pairs.length - 1].id + 1
|
|
@@ -79,11 +86,11 @@ const load = (params = {}) => {
|
|
|
79
86
|
|
|
80
87
|
if (progress)
|
|
81
88
|
for (var i = from; i < start_loading_from; i++)
|
|
82
|
-
progress(pairs[i].id,
|
|
89
|
+
progress(pairs[i].id, last_id + 1, pairs[i])
|
|
83
90
|
|
|
84
91
|
const onpair = pair => {
|
|
85
92
|
pairs[pair.id] = pair
|
|
86
|
-
if (progress) progress(pair.id,
|
|
93
|
+
if (progress && pair.id >= from) progress(pair.id, last_id + 1, pair)
|
|
87
94
|
var _
|
|
88
95
|
while (_ = pairs[next_pair_order]) {
|
|
89
96
|
fs.appendFileSync(filename, `${_.id},${_.pair},${_.token0},${_.token1}\n`)
|
|
@@ -93,15 +100,20 @@ const load = (params = {}) => {
|
|
|
93
100
|
|
|
94
101
|
if (!workers) {
|
|
95
102
|
const ids = []
|
|
96
|
-
for (var i = start_loading_from; i
|
|
103
|
+
for (var i = start_loading_from; i <= last_id; i++)
|
|
97
104
|
ids.push(i)
|
|
98
105
|
return require('./loader')({ ids, factory, key, multicall_size, abort_signal }, onpair)
|
|
99
|
-
.then(() =>
|
|
106
|
+
.then(() => {
|
|
107
|
+
if (from && to) return pairs.filter(({id}) => id >= from && id <= to)
|
|
108
|
+
if (from) return pairs.filter(({id}) => id >= from)
|
|
109
|
+
if (to) return pairs.filter(({id}) => id <= to)
|
|
110
|
+
return pairs
|
|
111
|
+
})
|
|
100
112
|
}
|
|
101
113
|
|
|
102
114
|
const missed = Array(workers).fill(null).map(() => [])
|
|
103
115
|
|
|
104
|
-
for (var i = start_loading_from, iw = 0; i
|
|
116
|
+
for (var i = start_loading_from, iw = 0; i <= last_id; i++)
|
|
105
117
|
missed[iw++ % workers].push(i)
|
|
106
118
|
|
|
107
119
|
cluster.setupPrimary({ exec: path.join(__dirname, 'loader.js') })
|
|
@@ -121,7 +133,12 @@ const load = (params = {}) => {
|
|
|
121
133
|
y()
|
|
122
134
|
})
|
|
123
135
|
}))
|
|
124
|
-
).then(() =>
|
|
136
|
+
).then(() => {
|
|
137
|
+
if (from && to) return pairs.filter(({id}) => id >= from && id <= to)
|
|
138
|
+
if (from) return pairs.filter(({id}) => id >= from)
|
|
139
|
+
if (to) return pairs.filter(({id}) => id <= to)
|
|
140
|
+
return pairs
|
|
141
|
+
})
|
|
125
142
|
})
|
|
126
143
|
.catch(() => abort_signal?.aborted ? pairs : new Promise(resolve => setTimeout(() => resolve(load(params)), 1000)))
|
|
127
144
|
}
|
|
@@ -139,7 +156,7 @@ module.exports.subscribe = (callback, params = {}) => {
|
|
|
139
156
|
const update = pairs =>
|
|
140
157
|
timeout = setTimeout(
|
|
141
158
|
() =>
|
|
142
|
-
load({...params, pairs, from: pairs.length})
|
|
159
|
+
subscribed && load({...params, pairs, from: pairs.length})
|
|
143
160
|
.then(pairs => {
|
|
144
161
|
if (!subscribed) return
|
|
145
162
|
callback(pairs)
|