forked from trustwallet/assets
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgen_list.ts
More file actions
65 lines (51 loc) · 2.03 KB
/
gen_list.ts
File metadata and controls
65 lines (51 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const fs = require('fs')
import { getOpenseaCollectionAddresses } from "./opesea_contrats"
import {
Ethereum,
isPathExistsSync,
getChainAssetsPath,
chainsFolderPath,
readDirSync,
readFileSync,
isChainWhitelistExistSync,
isChainBlacklistExistSync,
getChainWhitelistPath,
getChainBlacklistPath,
writeFileSync,
sortDesc,
getUnique,
mapList
} from '../src/test/helpers'
const assetsChains = readDirSync(chainsFolderPath).filter(chain => isPathExistsSync(getChainAssetsPath(chain)))
assetsChains.forEach(async chain => {
const assets = readDirSync(getChainAssetsPath(chain))
const whitelistPath = getChainWhitelistPath(chain)
const blacklistPath = getChainBlacklistPath(chain)
//Create inital lists if they do not exists
if (!isChainWhitelistExistSync(chain)) {
writeFileSync(whitelistPath, `[]`)
}
if (!isChainBlacklistExistSync(chain)) {
writeFileSync(blacklistPath, `[]`)
}
const currentWhitelist = assets.concat(JSON.parse(readFileSync(whitelistPath)))
let currentBlacklist = JSON.parse(readFileSync(blacklistPath))
// Some chains required pulling lists from other sources
switch (chain) {
case Ethereum:
const nftList = await getOpenseaCollectionAddresses()
currentBlacklist = currentBlacklist.concat(nftList)
break;
default:
break;
}
const mappedWhiteList = mapList(currentWhitelist)
const mappedBlackList = mapList(currentBlacklist)
// Make sure whitelist do not contain assets from blacklist and oposite
const filteredWhitelist = currentWhitelist.filter(a => !mappedBlackList[a])
const filteredBlacklist = currentBlacklist.filter(a => !mappedWhiteList[a])
const finalWhiteList = sortDesc(getUnique(filteredWhitelist))
const finalBlackList = sortDesc(getUnique(filteredBlacklist))
fs.writeFileSync(whitelistPath, JSON.stringify(finalWhiteList, null, 4))
fs.writeFileSync(blacklistPath, JSON.stringify(finalBlackList, null, 4))
})