diff --git a/packages/mask/src/components/shared/ApplicationBoard.tsx b/packages/mask/src/components/shared/ApplicationBoard.tsx index aa4ffb7f5b37..1c6e1a11934f 100644 --- a/packages/mask/src/components/shared/ApplicationBoard.tsx +++ b/packages/mask/src/components/shared/ApplicationBoard.tsx @@ -266,7 +266,7 @@ export function ApplicationBoard({ secondEntries, secondEntryChainTabs }: MaskAp new URL('./assets/savings.png', import.meta.url).toString(), onSavingsDialogOpen, undefined, - false, + isNotEvm, ), createEntry( 'Swap', diff --git a/packages/plugins/Solana/src/UI/components/ProviderIconClickBait.tsx b/packages/plugins/Solana/src/UI/components/ProviderIconClickBait.tsx index 0032cf33354c..00c93d047acc 100644 --- a/packages/plugins/Solana/src/UI/components/ProviderIconClickBait.tsx +++ b/packages/plugins/Solana/src/UI/components/ProviderIconClickBait.tsx @@ -17,7 +17,7 @@ export function ProviderIconClickBait({ onClick?.(network, provider) const rsp = await bridgedSolanaProvider.connect() if (rsp?.publicKey) { - const base58Key = hexToBase58(rsp.publicKey._bn) + const base58Key = typeof rsp.publicKey === 'string' ? rsp.publicKey : hexToBase58(rsp.publicKey._bn) const storage = getStorage() await storage.publicKey.setValue(base58Key) await storage.network.setValue(network.chainId) diff --git a/packages/plugins/Solana/src/apis/getFungibleAssets.ts b/packages/plugins/Solana/src/apis/getFungibleAssets.ts index f04b4e1c328c..be04dd6f7ff3 100644 --- a/packages/plugins/Solana/src/apis/getFungibleAssets.ts +++ b/packages/plugins/Solana/src/apis/getFungibleAssets.ts @@ -2,7 +2,7 @@ import { Pagination, Web3Plugin, CurrencyType } from '@masknet/plugin-infra' import { ChainId, getTokenConstants } from '@masknet/web3-shared-solana' import { CoinGecko } from '@masknet/web3-providers' import { createFungibleAsset, createFungibleToken } from '../helpers' -import { TokenListProvider, TokenInfo } from '@solana/spl-token-registry' +import { TokenListProvider } from '@solana/spl-token-registry' import { GetAccountInfoResponse, GetProgramAccountsResponse, requestRPC, SPL_TOKEN_PROGRAM_ID } from './shared' async function getSolanaBalance(chainId: ChainId, account: string) { @@ -45,19 +45,22 @@ async function getSplTokenList(chainId: ChainId, account: string) { const tokenListProvider = new TokenListProvider() const provider = await tokenListProvider.resolve() const tokenList = provider.filterByChainId(chainId).getList() - return data.result - .filter((x) => x.account.data.parsed.info.tokenAmount.decimals !== 0) // Filter out non fun. - .map((x) => { - const info = x.account.data.parsed.info - const token = tokenList.find((y) => y.address === info.mint) ?? ({} as TokenInfo) - const name = token.name || 'Unknown Token' - const symbol = token.symbol || 'Unknown Token' - return createFungibleAsset( - createFungibleToken(chainId, info.mint, name, symbol, info.tokenAmount.decimals), - info.tokenAmount.amount, - token.logoURI, - ) - }) + const splTokens: Web3Plugin.Asset[] = [] + data.result.forEach((x) => { + const info = x.account.data.parsed.info + const token = tokenList.find((y) => y.address === info.mint) + const isSafe = info.tokenAmount.decimals !== 0 && token !== undefined + if (!isSafe) return + const name = token.name || 'Unknown Token' + const symbol = token.symbol || 'Unknown Token' + const splToken = createFungibleAsset( + createFungibleToken(chainId, info.mint, name, symbol, info.tokenAmount.decimals), + info.tokenAmount.amount, + token.logoURI, + ) + splTokens.push(splToken) + }) + return splTokens } export async function getFungibleAssets(