mirror of
				https://github.com/Instadapp/trustwallet-assets.git
				synced 2024-07-29 22:37:31 +00:00 
			
		
		
		
	add logo in hashthereum (#1508)
* add files via upload * STK Coin (STK) * Checksum test * Add wrong asset naming * Add script checking logo extension Co-authored-by: Mykola <kolya182@gmail.com>
This commit is contained in:
		
							parent
							
								
									4d91cb645c
								
							
						
					
					
						commit
						5892457e09
					
				
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 30 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 2.4 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 4.2 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.0 KiB  | 
| 
						 | 
				
			
			@ -9,6 +9,7 @@
 | 
			
		|||
    "cleanup": "find ./.. -iname '.DS_Store' -type f -delete",
 | 
			
		||||
    "update:bep2": "npm run cleanup && node ./script/updateBEP2",
 | 
			
		||||
    "checksum:erc20": "npm run cleanup && ts-node ./script/erc20_to_checksum",
 | 
			
		||||
    "format:all": "npm run cleanup && ts-node ./script/format_files_name",
 | 
			
		||||
    "gen:list": "npm run cleanup && ts-node ./script/gen_list",
 | 
			
		||||
    "gen:info": "npm run cleanup && ts-node ./script/gen_info",
 | 
			
		||||
    "resize": "npm run cleanup && ts-node ./script/resize_images",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,22 +1,10 @@
 | 
			
		|||
const { execSync } = require('child_process');
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const Web3 = require('web3')
 | 
			
		||||
const web3 = new Web3('ws://localhost:8546');
 | 
			
		||||
import { ethSidechains, readDirSync } from "../src/test/helpers"
 | 
			
		||||
import { ethSidechains, readDirSync, getChainAssetsPath } from "../src/test/helpers"
 | 
			
		||||
import { checksumAssetsFolder } from './format_files_name'
 | 
			
		||||
 | 
			
		||||
ethSidechains.forEach(chain => {
 | 
			
		||||
    const assetsPath = path.resolve(`${__dirname}/../blockchains/${chain}/assets`) 
 | 
			
		||||
    const chainAddresses = readDirSync(assetsPath)
 | 
			
		||||
    const assetsPath = getChainAssetsPath(chain) 
 | 
			
		||||
 | 
			
		||||
    chainAddresses.forEach(addr => {
 | 
			
		||||
        const isChecksum = web3.utils.checkAddressChecksum(addr)
 | 
			
		||||
 | 
			
		||||
        if (!isChecksum) {
 | 
			
		||||
            console.log(`Renaming non checksum ${addr} ...`)
 | 
			
		||||
            const checksum = web3.utils.toChecksumAddress(addr)
 | 
			
		||||
            const moveToChecksum = `git mv ${addr} ${checksum}-temp && git mv ${checksum}-temp ${checksum}`
 | 
			
		||||
            const renamed = execSync(`cd ${assetsPath} && ${moveToChecksum}`, {encoding: "utf-8"})
 | 
			
		||||
            console.log(`   Result renaming ${addr} : ${renamed}`)
 | 
			
		||||
        }
 | 
			
		||||
    readDirSync(assetsPath).forEach(addr => {
 | 
			
		||||
        checksumAssetsFolder(assetsPath, addr)
 | 
			
		||||
    })
 | 
			
		||||
});
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										46
									
								
								script/format_files_name.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								script/format_files_name.ts
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,46 @@
 | 
			
		|||
import {
 | 
			
		||||
    ethSidechains,
 | 
			
		||||
    readDirSync,
 | 
			
		||||
    getChainAssetsPath,
 | 
			
		||||
    getChainAssetFilesList,
 | 
			
		||||
    isChecksum,
 | 
			
		||||
    toChecksum,
 | 
			
		||||
    getFileName,
 | 
			
		||||
    getFileExt,
 | 
			
		||||
    getMoveCommandFromTo,
 | 
			
		||||
    execRename,
 | 
			
		||||
    logoName,
 | 
			
		||||
    logoExtension,
 | 
			
		||||
    logo,
 | 
			
		||||
    getChainAssetPath
 | 
			
		||||
} from "../src/test/helpers"
 | 
			
		||||
 | 
			
		||||
ethSidechains.forEach(chain => {
 | 
			
		||||
    const assetsPath = getChainAssetsPath(chain)
 | 
			
		||||
    const chainAddresses = readDirSync(assetsPath)
 | 
			
		||||
 | 
			
		||||
    chainAddresses.forEach(address => {
 | 
			
		||||
        checksumAssetsFolder(assetsPath, address)
 | 
			
		||||
 | 
			
		||||
        getChainAssetFilesList(chain, address).forEach(file => {
 | 
			
		||||
            if (getFileName(file) == logoName && getFileExt(file) !== logoExtension) {
 | 
			
		||||
                console.log(`Renaming incorrect asset logo extension ${file} ...`)
 | 
			
		||||
                renameAndMove(getChainAssetPath(chain, address), file, logo)
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
    })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
export function checksumAssetsFolder(assetsFolderPath: string, addr: string) {
 | 
			
		||||
    if (!isChecksum(addr)) {
 | 
			
		||||
        const checksumAddr = toChecksum(addr)
 | 
			
		||||
        renameAndMove(assetsFolderPath, addr, checksumAddr)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function renameAndMove(path: string, oldName: string, newName: string) {
 | 
			
		||||
    console.log(`   Renaming file or folder at path ${path}: ${oldName} => ${newName} ...`)
 | 
			
		||||
    const renamed = execRename(path, getMoveCommandFromTo(oldName, newName))
 | 
			
		||||
    console.log(`       Result renaming: ${renamed}`)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -6,6 +6,7 @@ const Web3 = require('web3')
 | 
			
		|||
const web3 = new Web3('ws://localhost:8546');
 | 
			
		||||
import { CoinTypeUtils, CoinType } from "@trustwallet/types";
 | 
			
		||||
const sizeOf = require("image-size");
 | 
			
		||||
const { execSync } = require('child_process');
 | 
			
		||||
 | 
			
		||||
export const getChainName = (id: CoinType): string =>  CoinTypeUtils.id(id) // 60 => ethereum
 | 
			
		||||
export const Binance = getChainName(CoinType.binance)
 | 
			
		||||
| 
						 | 
				
			
			@ -25,11 +26,18 @@ export const Waves = getChainName(CoinType.waves)
 | 
			
		|||
 | 
			
		||||
export const ethSidechains = [Ethereum, Classic, POA, TomoChain, GoChain, Wanchain, ThunderCore]
 | 
			
		||||
 | 
			
		||||
const whiteList = 'whitelist.json'
 | 
			
		||||
const blackList = 'blacklist.json'
 | 
			
		||||
export const logoName = `logo`
 | 
			
		||||
export const infoName = `info`
 | 
			
		||||
 | 
			
		||||
export const logoExtension = "png"
 | 
			
		||||
export const jsonExtension = "json"
 | 
			
		||||
 | 
			
		||||
const whiteList = `whitelist.${jsonExtension}`
 | 
			
		||||
const blackList = `blacklist.${jsonExtension}`
 | 
			
		||||
 | 
			
		||||
export const logo = `${logoName}.${logoExtension}`
 | 
			
		||||
export const info = `${infoName}.${jsonExtension}`
 | 
			
		||||
 | 
			
		||||
export const logo = `logo.png`
 | 
			
		||||
export const info = `info.json`
 | 
			
		||||
export const root = './'
 | 
			
		||||
export const chainsFolderPath = './blockchains'
 | 
			
		||||
export const pricingFolderPath = './pricing'
 | 
			
		||||
| 
						 | 
				
			
			@ -44,9 +52,10 @@ export const maxLogoHeight = 512
 | 
			
		|||
 | 
			
		||||
export const getChainAssetPath = (chain: string, address: string) => `${getChainAssetsPath(chain)}/${address}`
 | 
			
		||||
export const getChainAssetLogoPath = (chain: string, address: string) => `${getChainAssetsPath(chain)}/${address}/${logo}`
 | 
			
		||||
export const getChainAssetFilesList = (chain: string, address: string) => readDirSync(getChainAssetPath(chain, address))
 | 
			
		||||
export const getChainValidatorsPath = (chain: string): string => `${chainsFolderPath}/${chain}/validators`
 | 
			
		||||
export const getChainValidatorsAssets = (chain: string): string[] => readDirSync(getChainValidatorsAssetsPath(chain))
 | 
			
		||||
export const getChainValidatorsListPath = (chain: string): string => `${(getChainValidatorsPath(chain))}/list.json`
 | 
			
		||||
export const getChainValidatorsListPath = (chain: string): string => `${(getChainValidatorsPath(chain))}/list.${jsonExtension}`
 | 
			
		||||
export const getChainValidatorsAssetsPath = (chain: string): string => `${getChainValidatorsPath(chain)}/assets`
 | 
			
		||||
export const getChainValidatorAssetLogoPath = (chain: string, asset: string): string => `${getChainValidatorsAssetsPath(chain)}/${asset}/${logo}`
 | 
			
		||||
export const getChainWhitelistPath = (chain: string): string => `${chainsFolderPath}/${chain}/${whiteList}`
 | 
			
		||||
| 
						 | 
				
			
			@ -79,6 +88,9 @@ export const isChecksum = (address: string): boolean => web3.utils.checkAddressC
 | 
			
		|||
export const toChecksum = (address: string): string => web3.utils.toChecksumAddress(address)
 | 
			
		||||
export const getBinanceBEP2Symbols = async () => axios.get(`https://dex-atlantic.binance.org/api/v1/tokens?limit=1000`).then(res => res.data.map(({symbol}) => symbol))
 | 
			
		||||
 | 
			
		||||
export const getFileName = (fileName: string): string => path.basename(fileName, path.extname(fileName))
 | 
			
		||||
export const getFileExt = (name: string): string => name.slice((Math.max(0, name.lastIndexOf(".")) || Infinity) + 1)
 | 
			
		||||
 | 
			
		||||
export const isTRC10 = (string: string): boolean => (/^\d+$/.test(string))
 | 
			
		||||
export const isTRC20 = address => {
 | 
			
		||||
    return address.length == 34 &&
 | 
			
		||||
| 
						 | 
				
			
			@ -141,6 +153,14 @@ export const calculateAspectRatioFit = (srcWidth: number, srcHeight: number, max
 | 
			
		|||
    }
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
export function getMoveCommandFromTo(oldName: string, newName: string): string {
 | 
			
		||||
    return `git mv ${oldName} ${newName}-temp && git mv ${newName}-temp ${newName}`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function execRename(path: string, command: string) {
 | 
			
		||||
    execSync(`cd ${path} && ${command}`, {encoding: "utf-8"})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const isValidatorHasAllKeys = (val: ValidatorModel): boolean => {
 | 
			
		||||
    return typeof val.id === "string"
 | 
			
		||||
        && typeof val.name === "string"
 | 
			
		||||
| 
						 | 
				
			
			@ -168,6 +188,6 @@ export const rootDirAllowedFiles = [
 | 
			
		|||
]
 | 
			
		||||
 | 
			
		||||
export const assetFolderAllowedFiles = [
 | 
			
		||||
    "logo.png",
 | 
			
		||||
    "info.json"
 | 
			
		||||
    logo,
 | 
			
		||||
    info
 | 
			
		||||
]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,7 +72,7 @@ describe(`Test "blockchains" folder`, () => {
 | 
			
		|||
                readDirSync(assetsPath).forEach(address => {
 | 
			
		||||
                    const assetFiles = getChainAssetPath(chain, address)
 | 
			
		||||
                    readDirSync(assetFiles).forEach(assetFolderFile => {
 | 
			
		||||
                        expect(assetFolderAllowedFiles.indexOf(assetFolderFile),`File "${assetFolderFile}" not allowed at this path`).not.toBe(-1)
 | 
			
		||||
                        expect(assetFolderAllowedFiles.indexOf(assetFolderFile),`File "${assetFolderFile}" not allowed at this path: ${assetsPath}`).not.toBe(-1)
 | 
			
		||||
                    })
 | 
			
		||||
                }) 
 | 
			
		||||
            })
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user