Upload Bitcollar Max (#1896)

* Add files via upload

* Add script moving 0xX..X.png from toor to it's folder in assets assuming file ETH.

Co-authored-by: Mykola <kolya182@gmail.com>
This commit is contained in:
Bitcollar Max 2020-04-17 20:33:50 -07:00 committed by GitHub
parent 99ee8f9ca1
commit d2a6283b29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 47 additions and 12 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

15
package-lock.json generated
View File

@ -3989,6 +3989,12 @@
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
"dev": true "dev": true
}, },
"image-extensions": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/image-extensions/-/image-extensions-1.1.0.tgz",
"integrity": "sha1-uOa/YDnfAFbjM1AqALZjejEF2JQ=",
"dev": true
},
"image-size": { "image-size": {
"version": "0.8.3", "version": "0.8.3",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz",
@ -4164,6 +4170,15 @@
"integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=",
"dev": true "dev": true
}, },
"is-image": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-image/-/is-image-3.0.0.tgz",
"integrity": "sha512-NNPLvwKZ/hqx1Wv+ayKvVeDOylIapVKSxK/guzmB9doAk0FEdK0KqFKbnwNbuMLEPqEY4NaBhxzB4e98fVOq2Q==",
"dev": true,
"requires": {
"image-extensions": "^1.1.0"
}
},
"is-my-ip-valid": { "is-my-ip-valid": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz",

View File

@ -48,6 +48,7 @@
"ethereum-checksum-address": "0.0.5", "ethereum-checksum-address": "0.0.5",
"eztz-lib": "^0.1.2", "eztz-lib": "^0.1.2",
"image-size": "^0.8.3", "image-size": "^0.8.3",
"is-image": "^3.0.0",
"jest": "^25.2.7", "jest": "^25.2.7",
"jest-expect-message": "^1.0.2", "jest-expect-message": "^1.0.2",
"nested-property": "^2.0.0", "nested-property": "^2.0.0",

View File

@ -1,4 +1,5 @@
import * as fs from "fs" import * as fs from "fs"
const isImage = require("is-image");
import { import {
ethSidechains, ethSidechains,
getChainAssetPath, getChainAssetPath,
@ -12,27 +13,43 @@ import {
makeDirIfDoestExist, makeDirIfDoestExist,
readDirSync, readDirSync,
toChecksum, toChecksum,
getRootDirFilesList,
rootDirAllowedFiles,
isEthereumAddress
} from "../src/test/helpers" } from "../src/test/helpers"
ethSidechains.forEach(chain => { ethSidechains.forEach(chain => {
const assetsPath = getChainAssetsPath(chain) const chainAssetsPath = getChainAssetsPath(chain)
const chainAssets = readDirSync(assetsPath)
chainAssets.forEach(async asset => { readDirSync(chainAssetsPath).forEach(async asset => {
const assetPath = getChainAssetPath(chain, asset) const assetPath = getChainAssetPath(chain, asset)
const isDir = await isPathDir(assetPath) const isDir = await isPathDir(assetPath)
if (!isDir) { if (!isDir) {
const assetName = getFileName(asset) const checksum = toChecksum(getFileName(asset))
const checksum = toChecksum(assetName)
if (isChecksum(checksum) && getFileExt(asset).toLocaleLowerCase() === logoExtension) { if (isChecksum(checksum) && getFileExt(asset).toLocaleLowerCase() === logoExtension) {
// Moves file like /assets/0x..XX.png => /asstes/0x..XX/logo.png // Moves file like blockchains/<chain>/assets/0x..XX.png => blockchains/<chain>/asstes/0x..XX/logo.png
await makeDirIfDoestExist(assetsPath, checksum) await makeDirIfDoestExist(chainAssetsPath, checksum)
const newPath = `${assetsPath}/${checksum}/${logo}` const newPath = `${chainAssetsPath}/${checksum}/${logo}`
fs.renameSync(assetPath, newPath) fs.renameSync(assetPath, newPath)
} }
} }
}) })
}) })
// Moves asset/0xXX...XX.png => assets/blockchains/assets/0xXX...XX/logo.png
getRootDirFilesList().forEach(async file => {
const fileName = getFileName(file)
if(isImage(file) && !rootDirAllowedFiles.includes(file) && isEthereumAddress(fileName)) {
console.log({file})
const checksum = toChecksum(fileName)
const ethreumAssetsPath = getChainAssetsPath("ethereum")
await makeDirIfDoestExist(ethreumAssetsPath, checksum)
fs.renameSync(`./${file}`, `${ethreumAssetsPath}/${checksum}/${logo}`)
}
});

View File

@ -79,6 +79,7 @@ export const getChainBlacklist = (chain: string): string[] => {
} }
return [] return []
} }
export const getRootDirFilesList = (): string[] => readDirSync(root)
export const readDirSync = (path: string): string[] => fs.readdirSync(path) export const readDirSync = (path: string): string[] => fs.readdirSync(path)
export const makeDirSync = (path: string) => fs.mkdirSync(path) export const makeDirSync = (path: string) => fs.mkdirSync(path)
@ -107,6 +108,10 @@ export const isTRC20 = (address: string) => {
isUpperCase(address) == false isUpperCase(address) == false
} }
export const isEthereumAddress = (address: string): boolean => {
return web3.utils.isAddress(address)
}
export const isWavesAddress = (address: string) => { export const isWavesAddress = (address: string) => {
return address.length == 35 && return address.length == 35 &&
address.startsWith("3P") && address.startsWith("3P") &&
@ -258,10 +263,7 @@ export function isAssetInfoHasAllKeys(path: string): [boolean, string] {
return [isKeysCorrentType, `Check keys ${requiredKeys} vs ${infoKeys}`] return [isKeysCorrentType, `Check keys ${requiredKeys} vs ${infoKeys}`]
} }
function getArraysDiff(arr1 :string[], arr2: string[]): string[] { export const getArraysDiff = (arr1 :string[], arr2: string[]): string[] => arr1.filter(d => !arr2.includes(d))
return arr1.filter(d => !arr2.includes(d))
}
export const getFileSizeInKilobyte = (path: string): number => fs.statSync(path).size / 1000 export const getFileSizeInKilobyte = (path: string): number => fs.statSync(path).size / 1000
export const rootDirAllowedFiles = [ export const rootDirAllowedFiles = [