trustwallet-assets/script/gen_list.ts
Mykola 10294db1cd
Add tests to over lowercase file naming when address checksum (#1039)
* Add tests cover lwoercase file naming when address checksum

* Optimised images with calibre/image-actions

* SG10006(YOU) (YOU)

* Optimised images with calibre/image-actions

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-01-17 17:31:42 +09:00

64 lines
1.9 KiB
TypeScript

const fs = require('fs')
import { getOpenseaCollectionAddresses } from "./opesea_contrats"
import {
Ethereum, Terra, Tron,
getChainAssetsPath,
ethSidechains,
readDirSync,
readFileSync,
isChainWhitelistExistSync,
isChainBlacklistExistSync,
getChainWhitelistPath,
getChainBlacklistPath,
writeFileSync,
sortDesc,
getUnique,
mapList
} from '../src/test/helpers'
const assetsChains = ethSidechains.concat([Terra, Tron])
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 = JSON.parse(readFileSync(whitelistPath))
const currentBlacklist = JSON.parse(readFileSync(blacklistPath))
let newBlackList = []
// Some chains required pulling lists from other sources
switch (chain) {
case Ethereum:
const nftList = await getOpenseaCollectionAddresses()
newBlackList = currentBlacklist.concat(nftList)
break;
default:
newBlackList = newBlackList.concat(currentBlacklist)
break;
}
const removedAssets = getRemovedAddressesFromAssets(assets, currentWhitelist)
newBlackList = newBlackList.concat(removedAssets)
fs.writeFileSync(whitelistPath, JSON.stringify(sortDesc(assets), null, 4))
fs.writeFileSync(blacklistPath, JSON.stringify(getUnique(sortDesc(newBlackList)), null, 4))
})
function getRemovedAddressesFromAssets(assets: string[], whiteList: string[]): string[] {
const mappedAssets = mapList(assets)
const removed = whiteList.filter(a => !mappedAssets.hasOwnProperty(a))
return removed
}