mirror of
				https://github.com/Instadapp/trustwallet-assets.git
				synced 2024-07-29 22:37:31 +00:00 
			
		
		
		
	 88f26b09d1
			
		
	
	
		88f26b09d1
		
			
		
	
	
	
	
		
			
			* Retrieve trading pairs from PancakeSwap. * Retrieve trading pairs from Uniswap. * Add doc link * Lint fix * Include decimals * Move binance tokenlist generation to BinanceAction. * Generate smartChain tokenlist, from base and pancakeswap pairs. * Fix array types in tokenlists.ts * Common writeToFile method, sort. * Type fixes * Revert tokenlist.json to master * Include pairs with allowlisted coins only. * Move assetID functions to common asset.ts * Use common assetID functions. * Use dynamic generation time. * Keep constant generation time; Version in tokenlist. * Count additions * Update tokenlist version and timestamp if needed before save. * No counting is needed in addXxxIfNeeded() functions. * Tokenlist timestamp: take over if previous * Update ethereum tokenlist with pairs from Uniswap. * Increase query limit to 400 pairs. * iDecimals always number, add decimal fields to Eth also. * Include only pairs with primary tokens, add pair info to primary token only. * Update base tokenlist (BSC) to current full list, in order not to remove any coins. * Update base tokenlist (ETH) to current full list, in order not to remove any coins. * Move out pair checks into common code. * Add checks for volume and txCount. * Assets tokenlist: Adjust token names for added tokens. * Move parameters to central config.ts * Nicer query string, compact * Prevent change if subgraph API fails * Reduce max limit in Pancakeswap query, with 400 often times out. * Stricter error handling * Reduce code duplication. * Minor comment * Display number of original tokens * Lint fix Co-authored-by: Catenocrypt <catenocrypt@users.noreply.github.com>
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import axios from "axios";
 | |
| import { TokenType } from "../generic/tokentype";
 | |
| import * as config from "../config";
 | |
| 
 | |
| // Asset ID from coin symbol (diff between native and token coins)
 | |
| export function assetIdSymbol(tokenId: string, nativeCoinId: string, coinType: number): string {
 | |
|     if (tokenId == nativeCoinId) {
 | |
|         return assetID(coinType)
 | |
|     }
 | |
|     return assetID(coinType, tokenId)
 | |
| }
 | |
| 
 | |
| // Asset ID from coin number and ID
 | |
| export function assetID(coinType: number, tokenId = ``): string {
 | |
|     if (tokenId.length > 0) {
 | |
|         return `c${coinType}_t${tokenId}`
 | |
|     } 
 | |
|     return `c${coinType}`
 | |
| }
 | |
| 
 | |
| // Token type from token symbol (diff between native and token coins)
 | |
| export function tokenType(symbol: string, nativeCoinSymbol: string, tokenType: string): string {
 | |
|     if (symbol == nativeCoinSymbol) {
 | |
|         return TokenType.COIN
 | |
|     }
 | |
|     return tokenType;
 | |
| }
 | |
| 
 | |
| // Github logo URL for coin.
 | |
| export function logoURI(id: string, githubChainFolder: string, nativeCoinSymbol: string): string {
 | |
|     if (id == nativeCoinSymbol) {
 | |
|         return `${config.assetsURL}/blockchains/${githubChainFolder}/info/logo.png`
 | |
|     }
 | |
|     return `${config.assetsURL}/blockchains/${githubChainFolder}/assets/${id}/logo.png`
 | |
| }
 | |
| 
 | |
| // Token info from TW api
 | |
| // e.g. {"name":"Binance-Peg Cosmos","symbol":"ATOM","type":"BEP20","decimals":18,"asset_id":"c20000714_t0x0Eb3..."}
 | |
| export class TokenTwInfo {
 | |
|     name: string;
 | |
|     symbol: string;
 | |
|     type: string;
 | |
|     decimals: number;
 | |
|     asset_id: string;
 | |
| }
 | |
| 
 | |
| export async function tokenInfoFromTwApi(assetID: string): Promise<TokenTwInfo> {
 | |
|     try {
 | |
|         const apiUrl = `https://api.trustwallet.com/v1/assets/${assetID}`;
 | |
|         const result = await axios.get(apiUrl).then(r => r.data);
 | |
|         if (!result || !result.asset_id) {
 | |
|             console.log("Unexpected result", result);
 | |
|             return undefined;
 | |
|         }
 | |
|         const info = result as TokenTwInfo;
 | |
|         return info;
 | |
|     } catch (err) {
 | |
|         console.log("Exception:", err);
 | |
|         return undefined;
 | |
|     }
 | |
| }
 |