diff --git a/components/WithdrawForm.tsx b/components/WithdrawForm.tsx index b0500edd..5ae36a86 100644 --- a/components/WithdrawForm.tsx +++ b/components/WithdrawForm.tsx @@ -323,6 +323,11 @@ function WithdrawForm({ onSuccess, token }: WithdrawFormProps) { )} + {bank ? ( +
+ +
+ ) : null} ) diff --git a/components/settings/RpcSettings.tsx b/components/settings/RpcSettings.tsx index 31171e0a..162f9260 100644 --- a/components/settings/RpcSettings.tsx +++ b/components/settings/RpcSettings.tsx @@ -4,7 +4,7 @@ import Button from '@components/shared/Button' import mangoStore from '@store/mangoStore' import useLocalStorageState from 'hooks/useLocalStorageState' import { useTranslation } from 'next-i18next' -import { ChangeEvent, useEffect, useState } from 'react' +import { ChangeEvent, useEffect, useMemo, useState } from 'react' import { RPC_PROVIDER_KEY } from 'utils/constants' const RPC_URLS = [ @@ -12,10 +12,10 @@ const RPC_URLS = [ label: 'Triton', value: 'https://mango.rpcpool.com/0f9acc0d45173b51bf7d7e09c1e5', }, - // { - // label: 'Genesys Go', - // value: 'https://mango.genesysgo.net', - // }, + { + label: 'Genesys Go', + value: 'https://mango.genesysgo.net', + }, { label: 'Custom', value: '' }, ] @@ -28,13 +28,20 @@ const RpcSettings = () => { RPC_PROVIDER_KEY, RPC_URLS[0].value ) - const rpcEndpoint = - RPC_URLS.find((node) => node.label === rpcEndpointProvider.label) || - RPC_URLS[0] + + const rpcEndpoint = useMemo(() => { + return ( + RPC_URLS.find((node) => node.value === rpcEndpointProvider) || { + label: 'Custom', + value: rpcEndpointProvider, + } + ) + }, [rpcEndpointProvider]) const handleSetEndpointProvider = (provider: string) => { - const endpointProvider = - RPC_URLS.find((node) => node.label === provider) || RPC_URLS[0] + const endpointProvider = RPC_URLS.find( + (node) => node.label === provider + ) || { label: 'Custom', value: rpcEndpointProvider } setRpcEndpointProvider(endpointProvider.value) if (provider !== 'Custom') { setShowCustomForm(false) @@ -43,16 +50,15 @@ const RpcSettings = () => { } useEffect(() => { - if (rpcEndpointProvider.label === 'Custom') { + if (rpcEndpoint.label === 'Custom') { setShowCustomForm(true) - setCustomUrl(rpcEndpointProvider.value) + setCustomUrl(rpcEndpoint.value) } - }, [rpcEndpointProvider]) + }, [rpcEndpoint]) const handleSaveCustomEndpoint = () => { if (!customUrl) return - const provider = { label: 'Custom', value: customUrl } - setRpcEndpointProvider(provider) + setRpcEndpointProvider(customUrl) actions.updateConnection(customUrl) } diff --git a/store/mangoStore.ts b/store/mangoStore.ts index 41753071..afab803e 100644 --- a/store/mangoStore.ts +++ b/store/mangoStore.ts @@ -325,16 +325,21 @@ export type MangoStore = { const mangoStore = create()( subscribeWithSelector((_set, get) => { - let rpcUrl = ENDPOINT?.url + let rpcUrl = ENDPOINT.url if (typeof window !== 'undefined' && CLUSTER === 'mainnet-beta') { const urlFromLocalStorage = localStorage.getItem(RPC_PROVIDER_KEY) rpcUrl = urlFromLocalStorage ? JSON.parse(urlFromLocalStorage).value - : ENDPOINT?.url + : ENDPOINT.url } - const connection = new web3.Connection(rpcUrl, 'processed') + let connection: Connection + try { + connection = new web3.Connection(rpcUrl, 'processed') + } catch { + connection = new web3.Connection(ENDPOINT.url, 'processed') + } const provider = new AnchorProvider(connection, emptyWallet, options) provider.opts.skipPreflight = true const client = initMangoClient(provider) @@ -971,6 +976,7 @@ const mangoStore = create()( ) newProvider.opts.skipPreflight = true const newClient = initMangoClient(newProvider) + console.log('here') set((state) => { state.connection = newConnection diff --git a/utils/constants.ts b/utils/constants.ts index 5362f7db..b9a88b45 100644 --- a/utils/constants.ts +++ b/utils/constants.ts @@ -39,6 +39,8 @@ export const FAVORITE_MARKETS_KEY = 'favoriteMarkets-0.2' export const THEME_KEY = 'theme-0.1' +export const RPC_PROVIDER_KEY = 'rpcProviderKey-0.3' + // Unused export const PROFILE_CATEGORIES = [ 'borrower', @@ -58,8 +60,6 @@ export const DEFAULT_MARKET_NAME = 'SOL/USDC' export const MIN_SOL_BALANCE = 0.04 -export const RPC_PROVIDER_KEY = 'rpcProviderKey' - export const ACCOUNT_ACTION_MODAL_HEIGHT = '478px' export const ACCOUNT_ACTION_MODAL_INNER_HEIGHT = '416px'