Skip to content

Commit

Permalink
optimize query key for unknown networks
Browse files Browse the repository at this point in the history
  • Loading branch information
H34D committed Feb 22, 2023
1 parent 973f02d commit fccd61a
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 23 deletions.
14 changes: 6 additions & 8 deletions src/provider/masa-context-provider.tsx
Expand Up @@ -9,7 +9,7 @@ import {
useSoulnames,
useWallet,
} from './modules';
import { ethers } from 'ethers';
import { providers, Signer, utils, Wallet } from 'ethers';
import { MASA_CONTEXT, MasaShape } from './masa-context';

export interface ArweaveConfig {
Expand All @@ -25,7 +25,7 @@ export interface MasaContextProviderProps extends MasaShape {
children: React.ReactNode;
company?: string;
environmentName?: EnvironmentNameEx;
signer?: ethers.Wallet | ethers.Signer;
signer?: Wallet | Signer;
noWallet?: boolean;
arweaveConfig?: ArweaveConfig;
verbose?: boolean;
Expand All @@ -44,9 +44,7 @@ export const MasaContextProvider = ({
}: MasaContextProviderProps): JSX.Element => {
const [masaInstance, setMasaInstance] = useState<Masa | null>(null);

const [provider, setProvider] = useState<
ethers.Wallet | ethers.Signer | null
>(null);
const [provider, setProvider] = useState<Wallet | Signer | null>(null);
const [missingProvider, setMissingProvider] = useState<boolean>();

const [isModalOpen, setModalOpen] = useState(false);
Expand All @@ -62,7 +60,7 @@ export const MasaContextProvider = ({
}: {
walletAddress: string | undefined;
isLoading: boolean;
network: ethers.providers.Network | null;
network: providers.Network | null;
} = useWallet(masaInstance, provider);

const {
Expand Down Expand Up @@ -185,7 +183,7 @@ export const MasaContextProvider = ({
params: [
{
...networkDetails,
chainId: ethers.utils.hexValue(networkDetails.chainId),
chainId: utils.hexValue(networkDetails.chainId),
},
],
});
Expand All @@ -203,7 +201,7 @@ export const MasaContextProvider = ({
if (typeof window !== 'undefined') {
await window?.ethereum?.request({
method: 'wallet_switchEthereumChain',
params: [{ chainId: ethers.utils.hexValue(chainId) }],
params: [{ chainId: utils.hexValue(chainId) }],
});
console.log(`switched to chainId: ${chainId} successfully`);
}
Expand Down
11 changes: 8 additions & 3 deletions src/provider/modules/credit-scores/credit-scores.ts
Expand Up @@ -26,8 +26,8 @@ export const useCreditScores = (
isLoading: boolean;
error: unknown;
} => {
const queryKey: string = useMemo(() => {
return `credit-scores-${walletAddress}-${masa?.config.network}`;
const queryKey: (string | undefined)[] = useMemo(() => {
return ['credit-scores', walletAddress, masa?.config.network];
}, [walletAddress, masa]);

const {
Expand All @@ -36,7 +36,12 @@ export const useCreditScores = (
isLoading,
error,
} = useQuery(queryKey, () => masa?.creditScore.list(), {
enabled: !!masa && !!walletAddress && !!identity?.identityId,
enabled:
!!masa &&
masa.config.network !== 'unknown' &&
!!walletAddress &&
!!identity?.identityId,
retry: false,
});

const handleCreateCreditScore = useCallback(async (): Promise<
Expand Down
3 changes: 2 additions & 1 deletion src/provider/modules/green/green.ts
Expand Up @@ -41,7 +41,8 @@ export const useGreen = (
isLoading,
error,
} = useQuery(queryKey, () => masa?.green.list(), {
enabled: !!masa && !!walletAddress,
enabled: !!masa && masa.config.network !== 'unknown' && !!walletAddress,
retry: false,
onSuccess: (
greens: {
tokenId: BigNumber;
Expand Down
3 changes: 2 additions & 1 deletion src/provider/modules/identity/identity.ts
Expand Up @@ -29,7 +29,8 @@ export const useIdentity = (
isLoading,
error,
} = useQuery(queryKey, () => masa?.identity.load(walletAddress), {
enabled: !!masa && !!walletAddress,
enabled: !!masa && masa.config.network !== 'unknown' && !!walletAddress,
retry: false,
onSuccess: (identity: { identityId?: BigNumber; address?: string }) => {
console.log({ identity });
},
Expand Down
12 changes: 9 additions & 3 deletions src/provider/modules/soulnames/soulnames.ts
Expand Up @@ -18,18 +18,24 @@ export const useSoulnames = (
isLoading: boolean;
error: unknown;
} => {
const queryKey: string = useMemo(() => {
return `soulnames-${walletAddress}-${masa?.config.network}`;
const queryKey: (string | undefined)[] = useMemo(() => {
return ['soulnames', walletAddress, masa?.config.network];
}, [walletAddress, masa]);

console.log(queryKey);

const {
data: soulnames,
status,
isLoading,
error,
} = useQuery(queryKey, () => masa?.soulName.list(), {
enabled: !!masa && !!walletAddress && !!identity?.identityId,
enabled:
!!masa &&
masa.config.network !== 'unknown' &&
!!walletAddress &&
!!identity?.identityId,
retry: false,
});

return { soulnames, status, isLoading, error };
Expand Down
14 changes: 7 additions & 7 deletions src/provider/modules/wallet/wallet.ts
@@ -1,21 +1,21 @@
import { useQuery } from 'react-query';
import { Masa } from '@masa-finance/masa-sdk';
import { ethers } from 'ethers';
import { providers, Signer, Wallet } from 'ethers';
import { useCallback, useEffect, useMemo, useState } from 'react';

export const useWallet = (
masa: Masa | null,
provider: ethers.Wallet | ethers.Signer | null
provider: Wallet | Signer | null
): {
walletAddress: string | undefined;
status: string;
isLoading: boolean;
error: unknown;
network: ethers.providers.Network | null;
network: providers.Network | null;
} => {
const queryKey: (string | undefined)[] = useMemo(() => {
return ['wallet', masa?.config.network];
}, [masa]);
const queryKey: (string | Signer | null)[] = useMemo(() => {
return ['wallet', provider];
}, [provider]);

const {
data: walletAddress,
Expand All @@ -27,7 +27,7 @@ export const useWallet = (
retry: false,
});

const [network, setNetwork] = useState<ethers.providers.Network | null>(null);
const [network, setNetwork] = useState<providers.Network | null>(null);

const loadNetwork = useCallback(async () => {
if (provider) {
Expand Down

0 comments on commit fccd61a

Please sign in to comment.