diff --git a/src/helpers/masa.ts b/src/helpers/masa.ts index b4aeb45b..3cb13001 100644 --- a/src/helpers/masa.ts +++ b/src/helpers/masa.ts @@ -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 => { + 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'), diff --git a/src/provider/masa-context-provider.tsx b/src/provider/masa-context-provider.tsx index a740d3a3..7450264b 100644 --- a/src/provider/masa-context-provider.tsx +++ b/src/provider/masa-context-provider.tsx @@ -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; @@ -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, @@ -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 => { + 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, ]);