uniswap-v2-loader 6.1.2 → 6.1.5
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 +3 -6
- package/package.json +1 -1
- package/src/index.js +1 -1
- package/src/dex_db.js +0 -216
|
@@ -20,17 +20,14 @@ jobs:
|
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
22
|
- name: Checkout code
|
|
23
|
-
uses: actions/checkout@
|
|
23
|
+
uses: actions/checkout@v6
|
|
24
24
|
|
|
25
25
|
- name: Setup Node.js
|
|
26
|
-
uses: actions/setup-node@
|
|
26
|
+
uses: actions/setup-node@v6
|
|
27
27
|
with:
|
|
28
|
-
node-version: '
|
|
28
|
+
node-version: '24'
|
|
29
29
|
registry-url: 'https://registry.npmjs.org'
|
|
30
30
|
|
|
31
|
-
- name: Update npm
|
|
32
|
-
run: npm install -g npm@latest
|
|
33
|
-
|
|
34
31
|
- name: Install dependencies
|
|
35
32
|
run: npm i
|
|
36
33
|
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -5,7 +5,7 @@ const path = require('path')
|
|
|
5
5
|
const default_cache_filename = require('./default_cache_filename')
|
|
6
6
|
const dex_db = require('@calp-pro/dex-db')
|
|
7
7
|
const max_workers = os.cpus().length - 1
|
|
8
|
-
const debug_key = process.env.KEY || '
|
|
8
|
+
const debug_key = process.env.KEY || 'euEV_WdPWxmaSWLlGyKr9'
|
|
9
9
|
const uniswap_v2_factory = '0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f'
|
|
10
10
|
|
|
11
11
|
const load = (params = {}) => {
|
package/src/dex_db.js
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
// DexDB v2.0.0
|
|
2
|
-
// written 13 March 2026 by Vladimir Spirin at Danang, Vietnam
|
|
3
|
-
const fs = require('fs')
|
|
4
|
-
|
|
5
|
-
function writeUInt24LE(buf, value, offset) {
|
|
6
|
-
value &= 0xffffff
|
|
7
|
-
buf[offset] = value & 0xff
|
|
8
|
-
buf[offset + 1] = (value >>> 8) & 0xff
|
|
9
|
-
buf[offset + 2] = (value >>> 16) & 0xff
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function readUInt24LE(buf, offset) {
|
|
13
|
-
return buf[offset] |
|
|
14
|
-
(buf[offset + 1] << 8) |
|
|
15
|
-
(buf[offset + 2] << 16)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function dex_db(pairs = []) {
|
|
19
|
-
var aP = []
|
|
20
|
-
var aT = []
|
|
21
|
-
var P = new Map()//pairs
|
|
22
|
-
var T = new Map()//tokens
|
|
23
|
-
var p2tt = []// [p1.it0, p1.it1, p2.it0, p2, it1, ...]
|
|
24
|
-
var t2pt = []// [ [[ip, it], [ip, it], ...], ...]
|
|
25
|
-
|
|
26
|
-
const index = ([pair, token0, token1]) => {
|
|
27
|
-
var ip = P.get(pair)
|
|
28
|
-
if (ip == undefined) {
|
|
29
|
-
P.set(pair, ip = P.size)
|
|
30
|
-
aP.push(pair)
|
|
31
|
-
} else {
|
|
32
|
-
return undefined
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
var it0 = T.get(token0)
|
|
36
|
-
if (it0 == undefined) {
|
|
37
|
-
T.set(token0, it0 = T.size)
|
|
38
|
-
aT.push(token0)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
var it1 = T.get(token1)
|
|
42
|
-
if (it1 == undefined) {
|
|
43
|
-
T.set(token1, it1 = T.size)
|
|
44
|
-
aT.push(token1)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
p2tt[ip * 2] = it0
|
|
48
|
-
p2tt[ip * 2 + 1] = it1
|
|
49
|
-
|
|
50
|
-
if (t2pt[it0])
|
|
51
|
-
t2pt[it0].push(ip, it1)
|
|
52
|
-
else
|
|
53
|
-
t2pt[it0] = [ip, it1]
|
|
54
|
-
|
|
55
|
-
if (t2pt[it1])
|
|
56
|
-
t2pt[it1].push(ip, it0)
|
|
57
|
-
else
|
|
58
|
-
t2pt[it1] = [ip, it0]
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const index_save = ([pair, token0, token1], filename = 'dump') => {
|
|
62
|
-
if (pair.length != 42 || token0.length != 42 || token1.length != 42) return
|
|
63
|
-
var ip = P.get(pair)
|
|
64
|
-
if (ip == undefined) {
|
|
65
|
-
P.set(pair, ip = P.size)
|
|
66
|
-
aP.push(pair)
|
|
67
|
-
fs.appendFileSync(filename + '_pairs.bin', Buffer.from(pair.slice(2), 'hex'))
|
|
68
|
-
} else {
|
|
69
|
-
return undefined
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
var it0 = T.get(token0)
|
|
73
|
-
if (it0 == undefined) {
|
|
74
|
-
T.set(token0, it0 = T.size)
|
|
75
|
-
aT.push(token0)
|
|
76
|
-
fs.appendFileSync(filename + '_tokens.bin', Buffer.from(token0.slice(2), 'hex'))
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
var it1 = T.get(token1)
|
|
80
|
-
if (it1 == undefined) {
|
|
81
|
-
T.set(token1, it1 = T.size)
|
|
82
|
-
aT.push(token1)
|
|
83
|
-
fs.appendFileSync(filename + '_tokens.bin', Buffer.from(token1.slice(2), 'hex'))
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
p2tt[ip * 2] = it0
|
|
87
|
-
p2tt[ip * 2 + 1] = it1
|
|
88
|
-
|
|
89
|
-
const buf = Buffer.allocUnsafe(6)
|
|
90
|
-
writeUInt24LE(buf, it0, 0)
|
|
91
|
-
writeUInt24LE(buf, it1, 3)
|
|
92
|
-
fs.appendFileSync(filename + '_p2tt.bin', buf)
|
|
93
|
-
|
|
94
|
-
if (t2pt[it0])
|
|
95
|
-
t2pt[it0].push(ip, it1)
|
|
96
|
-
else
|
|
97
|
-
t2pt[it0] = [ip, it1]
|
|
98
|
-
|
|
99
|
-
if (t2pt[it1])
|
|
100
|
-
t2pt[it1].push(ip, it0)
|
|
101
|
-
else
|
|
102
|
-
t2pt[it1] = [ip, it0]
|
|
103
|
-
|
|
104
|
-
return [ip, it0, it1]
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const get_tokens = pair => {
|
|
108
|
-
const tokens = Array(2)
|
|
109
|
-
const ip = P.get(pair)
|
|
110
|
-
if (ip == undefined) return tokens
|
|
111
|
-
tokens[0] = aT[p2tt[ip * 2]]
|
|
112
|
-
tokens[1] = aT[p2tt[ip * 2 + 1]]
|
|
113
|
-
return tokens
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
const find_pairs_with_token = token => {
|
|
117
|
-
const pairs = []
|
|
118
|
-
const it = T.get(token)
|
|
119
|
-
if (it == undefined) return pairs
|
|
120
|
-
for (var i = 0; i < t2pt[it].length; i += 2)
|
|
121
|
-
pairs.push(
|
|
122
|
-
aP[t2pt[it][i]]
|
|
123
|
-
)
|
|
124
|
-
return pairs
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
const find_pairs_with_tokens = (token0, token1) => {
|
|
128
|
-
const pairs = []
|
|
129
|
-
const it0 = T.get(token0)
|
|
130
|
-
if (it0 == undefined) return pairs
|
|
131
|
-
const it1 = T.get(token1)
|
|
132
|
-
if (it1 == undefined) return pairs
|
|
133
|
-
for (var i = 0; i < t2pt[it0].length; i += 2)
|
|
134
|
-
if (t2pt[it0][i + 1] == it1)
|
|
135
|
-
pairs.push(
|
|
136
|
-
aP[t2pt[it0][i]]
|
|
137
|
-
)
|
|
138
|
-
return pairs
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const save = (filename = 'dump') => {
|
|
142
|
-
fs.writeFileSync(filename + '_pairs.bin', Buffer.concat(aP.map(a => Buffer.from(a.slice(2), 'hex'))))
|
|
143
|
-
fs.writeFileSync(filename + '_tokens.bin', Buffer.concat(aT.map(a => Buffer.from(a.slice(2), 'hex'))))
|
|
144
|
-
const bin = fs.openSync(filename + '_p2tt.bin', 'w')
|
|
145
|
-
const buf = Buffer.allocUnsafe(6)
|
|
146
|
-
for (var i = 0; i < p2tt.length; i += 2) {
|
|
147
|
-
writeUInt24LE(buf, p2tt[i], 0)
|
|
148
|
-
writeUInt24LE(buf, p2tt[i + 1], 3)
|
|
149
|
-
fs.writeSync(bin, buf)
|
|
150
|
-
}
|
|
151
|
-
fs.closeSync(bin)
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
const load = (filename = 'dump') => {
|
|
155
|
-
aP.length = 0
|
|
156
|
-
aT.length = 0
|
|
157
|
-
p2tt.length = 0
|
|
158
|
-
t2pt.length = 0
|
|
159
|
-
T = new Map()
|
|
160
|
-
P = new Map()
|
|
161
|
-
|
|
162
|
-
var buf = fs.readFileSync(filename + '_pairs.bin')
|
|
163
|
-
for (var i = 0; i < buf.length; i += 20) {
|
|
164
|
-
const pair = '0x' + buf.slice(i, i + 20).toString('hex')
|
|
165
|
-
aP.push(pair)
|
|
166
|
-
P.set(pair, i / 20)
|
|
167
|
-
}
|
|
168
|
-
buf = fs.readFileSync(filename + '_tokens.bin')
|
|
169
|
-
for (var i = 0; i < buf.length; i += 20) {
|
|
170
|
-
const token = '0x' + buf.slice(i, i + 20).toString('hex')
|
|
171
|
-
aT.push(token)
|
|
172
|
-
T.set(token, i / 20)
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
const bin = fs.openSync(filename + '_p2tt.bin', 'r')
|
|
176
|
-
const { size } = fs.fstatSync(bin)
|
|
177
|
-
buf = Buffer.allocUnsafe(6)
|
|
178
|
-
|
|
179
|
-
for (var offset = 0, ip, it0, it1; offset < size; offset += 6) {
|
|
180
|
-
fs.readSync(bin, buf, 0, 6, offset)
|
|
181
|
-
ip = offset / 6
|
|
182
|
-
it0 = readUInt24LE(buf, 0)
|
|
183
|
-
it1 = readUInt24LE(buf, 3)
|
|
184
|
-
p2tt[ip * 2] = it0
|
|
185
|
-
p2tt[ip * 2 + 1] = it1
|
|
186
|
-
|
|
187
|
-
if (t2pt[it0])
|
|
188
|
-
t2pt[it0].push(ip, it1)
|
|
189
|
-
else
|
|
190
|
-
t2pt[it0] = [ip, it1]
|
|
191
|
-
|
|
192
|
-
if (t2pt[it1])
|
|
193
|
-
t2pt[it1].push(ip, it0)
|
|
194
|
-
else
|
|
195
|
-
t2pt[it1] = [ip, it0]
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
fs.closeSync(bin)
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
pairs.forEach(index)
|
|
202
|
-
|
|
203
|
-
return {
|
|
204
|
-
index,
|
|
205
|
-
index_save,
|
|
206
|
-
find_pairs_with_token,
|
|
207
|
-
find_pairs_with_tokens,
|
|
208
|
-
save,
|
|
209
|
-
load,
|
|
210
|
-
get_tokens,
|
|
211
|
-
get_all_pairs: () => aP,
|
|
212
|
-
get_all_tokens: () => aT,
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
module.exports = dex_db
|