Fix solana icon not showing up on buy with ramp (#13445)

This commit is contained in:
William Muli
2022-05-25 16:44:40 +03:00
committed by GitHub
parent 7626cd70e0
commit 70197d8182
5 changed files with 52 additions and 15 deletions
@@ -75,7 +75,7 @@ const std::vector<mojom::BlockchainToken>& GetRampBuyTokens() {
{"", "Avalanche", "", false, false, "AVAX", 18, true, "", "",
mojom::kAvalancheMainnetChainId, mojom::CoinType::ETH},
{"0x82030cdbd9e4b7c5bb0b811a61da6360d69449cc", "RealFevr", "", true,
false, "BSC_FEVR", 18, true, "", "",
false, "FEVR", 18, true, "", "",
mojom::kBinanceSmartChainMainnetChainId, mojom::CoinType::ETH},
{"", "Celo", "", false, false, "CELO", 18, true, "", "",
mojom::kCeloMainnetChainId, mojom::CoinType::ETH},
@@ -91,21 +91,21 @@ const std::vector<mojom::BlockchainToken>& GetRampBuyTokens() {
{"", "Polygon", "", false, false, "MATIC", 18, true, "", "",
mojom::kPolygonMainnetChainId, mojom::CoinType::ETH},
{"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063", "DAI Stablecoin",
"dai.png", true, false, "MATIC_DAI", 18, true, "", "",
"dai.png", true, false, "DAI", 18, true, "", "",
mojom::kPolygonMainnetChainId, mojom::CoinType::ETH},
{"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619", "Ethereum", "eth.png",
true, false, "MATIC_ETH", 18, true, "", "",
mojom::kPolygonMainnetChainId, mojom::CoinType::ETH},
true, false, "ETH", 18, true, "", "", mojom::kPolygonMainnetChainId,
mojom::CoinType::ETH},
{"0xbbba073c31bf03b8acf7c28ef0738decf3695683", "Sandbox", "sand.png",
true, false, "MATIC_SAND", 18, true, "", "",
mojom::kPolygonMainnetChainId, mojom::CoinType::ETH},
true, false, "SAND", 18, true, "", "", mojom::kPolygonMainnetChainId,
mojom::CoinType::ETH},
{"0x2791bca1f2de4661ed88a30c99a7a9449aa84174", "USD Coin", "usdc.png",
true, false, "MATIC_USDC", 6, true, "", "",
mojom::kPolygonMainnetChainId, mojom::CoinType::ETH},
{"", "Solana", "", false, false, "SOLANA_SOL", 9, true, "", "",
true, false, "USDC", 6, true, "", "", mojom::kPolygonMainnetChainId,
mojom::CoinType::ETH},
{"", "Solana", "", false, false, "SOL", 9, true, "", "",
mojom::kSolanaMainnet, mojom::CoinType::SOL},
{"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", "Tether", "usdt.png",
false, false, "SOLANA_USDT", 6, true, "", "", mojom::kSolanaMainnet,
false, false, "USDT", 6, true, "", "", mojom::kSolanaMainnet,
mojom::CoinType::SOL},
{"0xdac17f958d2ee523a2206206994597c13d831ec7", "Tether", "usdt.png",
true, false, "USDT", 6, true, "", "", mojom::kMainnetChainId,
@@ -114,8 +114,8 @@ const std::vector<mojom::BlockchainToken>& GetRampBuyTokens() {
true, false, "USDC", 6, true, "", "", mojom::kMainnetChainId,
mojom::CoinType::ETH},
{"0x0d8775f648430679a709e98d2b0cb6250d2887ef", "Basic Attention Token",
"bat.png", true, false, "ETH_BAT", 18, true, "", "",
mojom::kMainnetChainId, mojom::CoinType::ETH}});
"bat.png", true, false, "BAT", 18, true, "", "", mojom::kMainnetChainId,
mojom::CoinType::ETH}});
return *tokens;
}
@@ -40,6 +40,9 @@ import { Skeleton } from '../components/shared/loading-skeleton/styles'
import { useAssets, useLib } from '../common/hooks'
import ProtectedRoute from '../components/shared/protected-routing/protected-route'
// Utils
import { getRampAssetSymbol } from '../utils/asset-utils'
export const Container = () => {
// routing
let history = useHistory()
@@ -123,8 +126,9 @@ export const Container = () => {
}, [hasIncorrectPassword])
const onSubmitBuy = React.useCallback((asset: BraveWallet.BlockchainToken) => {
const buyAsset = selectedBuyOption === BraveWallet.OnRampProvider.kRamp ? { ...asset, symbol: getRampAssetSymbol(asset) } : asset
getBuyAssetUrl({
asset,
asset: buyAsset,
onRampProvider: selectedBuyOption,
chainId: selectedNetwork.chainId,
address: selectedAccount.address,
@@ -66,7 +66,7 @@ import LockPanel from '../components/extension/lock-panel'
import { getNetworkInfo } from '../utils/network-utils'
import { isHardwareAccount } from '../utils/address-utils'
import { useAssets, useSwap, useSend, useHasAccount, usePrevNetwork } from '../common/hooks'
import { getUniqueAssets } from '../utils/asset-utils'
import { getRampAssetSymbol, getUniqueAssets } from '../utils/asset-utils'
import { getBuyAssetUrl } from '../common/async/lib'
type Props = {
@@ -187,8 +187,11 @@ function Container (props: Props) {
}
const onSubmitBuy = () => {
const asset = selectedBuyOption === BraveWallet.OnRampProvider.kRamp
? { ...selectedBuyAsset, symbol: getRampAssetSymbol(selectedBuyAsset) }
: selectedBuyAsset
getBuyAssetUrl({
asset: selectedBuyAsset,
asset,
onRampProvider: selectedBuyOption,
chainId: selectedNetwork.chainId,
address: selectedAccount.address,
@@ -4,6 +4,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
import * as BraveWallet from 'gen/brave/components/brave_wallet/common/brave_wallet.mojom.m.js'
import { getRampNetworkPrefix } from './string-utils'
export const getUniqueAssets = (assets: BraveWallet.BlockchainToken[]) => {
return assets.filter((asset, index) => {
@@ -20,3 +21,13 @@ export const isSelectedAssetInAssetOptions = (selectedAsset: BraveWallet.Blockch
asset.symbol.toLowerCase() === selectedAsset.symbol.toLowerCase()
}) !== -1
}
export const getRampAssetSymbol = (asset: BraveWallet.BlockchainToken) => {
if (asset.symbol.toUpperCase() === 'BAT') {
// BAT is the only token on Ethereum Mainnet with a prefix on Ramp.Network
return 'ETH_BAT'
}
const rampNetworkPrefix = getRampNetworkPrefix(asset.chainId)
return rampNetworkPrefix !== '' ? `${rampNetworkPrefix}_${asset.symbol.toUpperCase()}` : asset.symbol
}
@@ -1,3 +1,5 @@
import { BraveWallet } from '../constants/types'
export const stripERC20TokenImageURL = (url?: string) =>
url?.replace('chrome://erc-token-images/', '')
@@ -10,3 +12,20 @@ export const isRemoteImageURL = (url?: string) =>
export const isValidIconExtension = (url?: string) =>
url?.endsWith('.jpg') || url?.endsWith('.jpeg') || url?.endsWith('.png') || url?.endsWith('.svg')
export const getRampNetworkPrefix = (chainId: string) => {
switch (chainId) {
case BraveWallet.MAINNET_CHAIN_ID:
case BraveWallet.AVALANCHE_MAINNET_CHAIN_ID:
case BraveWallet.CELO_MAINNET_CHAIN_ID:
return ''
case BraveWallet.BINANCE_SMART_CHAIN_MAINNET_CHAIN_ID:
return 'BSC'
case BraveWallet.POLYGON_MAINNET_CHAIN_ID:
return 'MATIC'
case BraveWallet.SOLANA_MAINNET:
return 'SOLANA'
default:
return ''
}
}