Skip to content

Commit

Permalink
WIP: Network switch
Browse files Browse the repository at this point in the history
  • Loading branch information
hide-on-bush-x committed Feb 1, 2023
1 parent 7746e34 commit a609791
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 1 deletion.
20 changes: 20 additions & 0 deletions src/common/helpers/masa/index.ts
Expand Up @@ -2,6 +2,25 @@ import { environments, Masa } from '@masa-finance/masa-sdk';
import { ethers, Wallet } from 'ethers';
import { ArweaveConfig } from '../provider/masa-context';

const getChainName = (chainId) => {
switch (chainId) {
case 1:
return 'mainnet';
case 5:
return 'goerli';
case 44787:
return 'alfajores';
case 42220:
return 'celo';
case 137:
return 'polygon';
case 80001:
return 'mumbai';

default:
return 'goerli';
}
};
export const createRandomWallet = (): Wallet | null => {
console.info('Creating random wallet!');
const wallet = ethers.Wallet.createRandom();
Expand Down Expand Up @@ -37,6 +56,7 @@ export const createNewMasa = (
cookie: cookie || undefined,
wallet: signer,
apiUrl: environment.apiUrl,
network: getChainName(signer?.provider?._network?.chainId ?? 5),
environment: environment.environment,
arweave: {
host: arweaveConfig?.host || 'arweave.net',
Expand Down
3 changes: 3 additions & 0 deletions src/common/helpers/provider/masa-context.tsx
Expand Up @@ -96,7 +96,9 @@ export const MasaContextProvider = ({
handlePurchaseIdentity,
isLoading: identityLoading,
} = useIdentity(masaInstance, walletAddress);

const { soulnames } = useSoulnames(masaInstance, walletAddress, identity);

const {
creditScores,
isLoading: creditScoreLoading,
Expand Down Expand Up @@ -163,6 +165,7 @@ export const MasaContextProvider = ({
}, [modalCallback, setModalOpen, loggedIn, isConnected]);

useEffect(() => {
console.log('PROVIDER', { provider });
if (noWallet) {
setMasaInstance(
createNewMasa(undefined, environment, arweaveConfig, cookie)
Expand Down
11 changes: 10 additions & 1 deletion src/common/helpers/provider/modules/identity/identity.ts
Expand Up @@ -2,11 +2,20 @@ import { useCallback } from 'react';
import { useQuery } from 'react-query';
import { queryClient } from '../../masa-provider';

const AVAILABLE_NETWORKS = ['goerli', 'eth'];

export const useIdentity = function (masa, walletAddress) {
console.log('NETWORK', masa?.config.network);

const { data, status, isLoading, error } = useQuery(
`identity-${walletAddress}`,
() => masa.identity.load(walletAddress),
{ enabled: !!masa && !!walletAddress }
{
enabled:
!!masa &&
!!walletAddress &&
AVAILABLE_NETWORKS.includes(masa?.config?.network),
}
);

const handlePurchaseIdentity = useCallback(async () => {
Expand Down
16 changes: 16 additions & 0 deletions src/common/helpers/provider/use-metamask.ts
Expand Up @@ -92,6 +92,22 @@ export const useMetamask = ({ disable }: { disable?: boolean }) => {
queryClient.invalidateQueries('wallet');
}
});

//@ts-ignore
window?.ethereum?.on('networkChanged', async (accounts) => {
//@ts-ignore
const newProvider = new ethers.providers.Web3Provider(window?.ethereum);
if (newProvider) {
await newProvider.send('eth_requestAccounts', []);

await accountChangedHandler(newProvider.getSigner(0));
if (newProvider && setProvider) {
setProvider(newProvider.getSigner(0));
onConnect();
}
queryClient.invalidateQueries('wallet');
}
});
}
}, [handleLogout, disconnect, setProvider]);

Expand Down

0 comments on commit a609791

Please sign in to comment.