From 3876862de477918d2d347bd609f956b0313e00d0 Mon Sep 17 00:00:00 2001 From: Adam R <13562139+catenocrypt@users.noreply.github.com> Date: Mon, 7 Dec 2020 11:56:44 +0100 Subject: [PATCH] [internal] Add Solana token infrastructure, Serum token. (#5000) * Add Solana token infrastructure, Serum token. * Use CoinType constants for chains Co-authored-by: Catenocrypt --- blockchains/solana/allowlist.json | 3 +++ .../info.json | 6 +++++ .../logo.png | Bin 0 -> 22594 bytes blockchains/solana/denylist.json | 2 ++ script/generic/asset-infos.ts | 22 +++++++++++------- script/generic/blockchains.ts | 3 ++- 6 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 blockchains/solana/allowlist.json create mode 100644 blockchains/solana/assets/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt/info.json create mode 100644 blockchains/solana/assets/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt/logo.png create mode 100644 blockchains/solana/denylist.json diff --git a/blockchains/solana/allowlist.json b/blockchains/solana/allowlist.json new file mode 100644 index 000000000..46e0f8ee2 --- /dev/null +++ b/blockchains/solana/allowlist.json @@ -0,0 +1,3 @@ +[ + "SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt" +] \ No newline at end of file diff --git a/blockchains/solana/assets/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt/info.json b/blockchains/solana/assets/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt/info.json new file mode 100644 index 000000000..e4a867e1a --- /dev/null +++ b/blockchains/solana/assets/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt/info.json @@ -0,0 +1,6 @@ +{ + "name": "Serum", + "website": "https://projectserum.com/", + "short_description": "Serum is a decentralized exchange (DEX) and ecosystem that brings unprecedented speed and low transaction costs to decentralized finance. It is built on Solana and is completely permissionless.", + "explorer": "https://explorer.solana.com/address/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt" +} diff --git a/blockchains/solana/assets/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt/logo.png b/blockchains/solana/assets/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bc7b770c38b8a38e347260a04342e6666a750096 GIT binary patch literal 22594 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 Ef{o^nb^rhX literal 0 HcmV?d00001 diff --git a/blockchains/solana/denylist.json b/blockchains/solana/denylist.json new file mode 100644 index 000000000..32960f8ce --- /dev/null +++ b/blockchains/solana/denylist.json @@ -0,0 +1,2 @@ +[ +] \ No newline at end of file diff --git a/script/generic/asset-infos.ts b/script/generic/asset-infos.ts index d819717bc..c1b1255c4 100644 --- a/script/generic/asset-infos.ts +++ b/script/generic/asset-infos.ts @@ -11,6 +11,7 @@ import { import { arrayDiff } from "./types"; import { isValidJSON } from "../generic/json"; import { ActionInterface, CheckStepInterface } from "../generic/interface"; +import { CoinType } from "@trustwallet/wallet-core"; import * as bluebird from "bluebird"; const requiredKeys = ["explorer", "name", "website", "short_description"]; @@ -36,10 +37,10 @@ function isAssetInfoHasAllKeys(info: unknown, path: string): [boolean, string] { function explorerUrl(chain: string, contract: string): string { if (contract) { switch (chain.toLowerCase()) { - case "ethereum": + case CoinType.name(CoinType.ethereum): return `https://etherscan.io/token/${contract}`; - case "tron": + case CoinType.name(CoinType.tron): if (contract.startsWith("10")) { // trc10 return `https://tronscan.io/#/token/${contract}`; @@ -47,20 +48,23 @@ function explorerUrl(chain: string, contract: string): string { // trc20 return `https://tronscan.io/#/token20/${contract}`; - case "binance": + case CoinType.name(CoinType.binance): return `https://explorer.binance.org/asset/${contract}`; - case "smartchain": + case CoinType.name(CoinType.smartchain): return `https://bscscan.com/token/${contract}`; - case "neo": + case CoinType.name(CoinType.neo): return `https://neo.tokenview.com/en/token/0x${contract}`; - case "nuls": + case CoinType.name(CoinType.nuls): return `https://nulscan.io/token/info?contractAddress=${contract}`; - case "wanchain": + case CoinType.name(CoinType.wanchain): return `https://www.wanscan.org/token/${contract}`; + + case CoinType.name(CoinType.solana): + return `https://explorer.solana.com/address/${contract}`; } } return ""; @@ -70,7 +74,7 @@ function explorerUrlAlternatives(chain: string, contract: string, name: string): const altUrls: string[] = []; if (name) { const nameNorm = name.toLowerCase().replace(' ', '').replace(')', '').replace('(', ''); - if (chain.toLowerCase() == "ethereum") { + if (chain.toLowerCase() == CoinType.name(CoinType.ethereum)) { altUrls.push(`https://etherscan.io/token/${nameNorm}`); } altUrls.push(`https://explorer.${nameNorm}.io`); @@ -114,7 +118,7 @@ function isAssetInfoOK(chain: string, address: string, errors: string[], warning explorersAlt.forEach(exp => { if (exp.toLowerCase() == explorerActualLower) { ++matchCount; }}); if (matchCount == 0) { // none matches, this is warning/error - if (chain.toLowerCase() == "ethereum" || chain.toLowerCase() == "smartchain") { + if (chain.toLowerCase() == CoinType.name(CoinType.ethereum) || chain.toLowerCase() == CoinType.name(CoinType.smartchain)) { errors.push(`Incorrect explorer, ${explorerActual} instead of ${explorerExpected} (${explorersAlt.join(', ')})`); } else { warnings.push(`Unexpected explorer, ${explorerActual} instead of ${explorerExpected} (${explorersAlt.join(', ')})`); diff --git a/script/generic/blockchains.ts b/script/generic/blockchains.ts index 3759934c7..d1daf6d0f 100644 --- a/script/generic/blockchains.ts +++ b/script/generic/blockchains.ts @@ -55,5 +55,6 @@ export const chainsWithDenylist = ethForkChains.concat( Vechain, Ontology, Theta, - EOS + EOS, + Solana, );