Skip to content

Commit

Permalink
optimize masa loading
Browse files Browse the repository at this point in the history
  • Loading branch information
H34D committed Feb 13, 2023
1 parent a4c8984 commit 810619b
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 35 deletions.
31 changes: 19 additions & 12 deletions src/helpers/masa.ts
Expand Up @@ -55,30 +55,37 @@ export const createRandomWallet = (): Wallet | null => {
}
};

export const createNewMasa = ({
export const createNewMasa = async ({
newWallet,
environment,
environmentName,
arweaveConfig,
verbose,
}: {
newWallet?: any;
environment: string;
newWallet: ethers.Signer | null;
environmentName: string;
arweaveConfig?: ArweaveConfig;
verbose: boolean;
}): Masa | null => {
const signer = newWallet ? newWallet : createRandomWallet();
}): Promise<Masa | null> => {
const signer: ethers.Signer | null = newWallet
? newWallet
: createRandomWallet();

if (!signer) return null;

const env = environments.find((e: Environment) => e.name === environment);
if (!env) return null;
const environment = environments.find(
(environment: Environment) => environment.name === environmentName
);
if (!environment) return null;

const chainId: number = await signer.getChainId();

console.log({ NETWORK: signer?.provider?._network?.chainId ?? 5 });
console.log({ NETWORK: chainId });

return new Masa({
wallet: signer,
apiUrl: env.apiUrl,
defaultNetwork: getChainName(signer?.provider?._network?.chainId ?? 5),
environment: env.environment,
apiUrl: environment.apiUrl,
defaultNetwork: getChainName(chainId),
environment: environment.environment,
arweave: {
host: arweaveConfig?.host || 'arweave.net',
port: parseInt(arweaveConfig?.port || '443'),
Expand Down
38 changes: 15 additions & 23 deletions src/provider/masa-context-provider.tsx
Expand Up @@ -24,7 +24,7 @@ export type EnvironmentNameEx = EnvironmentName & ('local' | 'stage');
export interface MasaContextProviderProps extends MasaShape {
children: React.ReactNode;
company?: string;
environment?: EnvironmentNameEx;
environmentName?: EnvironmentNameEx;
signer?: ethers.Wallet | ethers.Signer;
noWallet?: boolean;
arweaveConfig?: ArweaveConfig;
Expand All @@ -35,7 +35,7 @@ export interface MasaContextProviderProps extends MasaShape {
export const MasaContextProvider = ({
children,
company,
environment = 'dev' as EnvironmentNameEx,
environmentName = 'dev' as EnvironmentNameEx,
verbose = false,
signer: externalSigner,
noWallet,
Expand Down Expand Up @@ -145,32 +145,24 @@ export const MasaContextProvider = ({
}, [modalCallback, setModalOpen, loggedIn, isConnected, network, chain]);

useEffect(() => {
if (noWallet) {
setMasaInstance(
createNewMasa({
environment,
arweaveConfig,
verbose,
})
);
} else if (provider) {
setMasaInstance(
createNewMasa({
newWallet: provider,
environment,
arweaveConfig,
verbose,
})
);
} else {
setMasaInstance(null);
}
const loadMasa = async (): Promise<void> => {
const masa: Masa | null = await createNewMasa({
newWallet: noWallet ? null : provider,
environmentName,
arweaveConfig,
verbose,
});

void setMasaInstance(masa);
};

void loadMasa();
}, [
provider,
noWallet,
walletAddress,
arweaveConfig,
environment,
environmentName,
verbose,
chain,
]);
Expand Down

0 comments on commit 810619b

Please sign in to comment.