xylabs/sdk-react

View on GitHub
packages/crypto/src/contexts/Ethers/MetaMask.tsx

Summary

Maintainability
A
0 mins
Test Coverage
/* eslint-disable import/no-deprecated */
import React, { PropsWithChildren } from 'react'

import { useMetaMask } from '../../wallets'
import { EthersContext } from './Context'

export interface Props {
  /** @deprecated - wallet should determine this for you */
  defaultChainId?: number
  enabled?: boolean
}

/** @deprecated - use useMetaMask hook instead */
export const MetaMaskEthersLoader: React.FC<PropsWithChildren<Props>> = ({ children }) => {
  const {
    chainId,
    connectWallet: connect,
    connectRefused,
    connectError,
    currentAccount: currentAddress,
    installed,
    provider,
    providerName,
    signMessage,
    signer,
    signerAddress,
  } = useMetaMask()

  return (
    <EthersContext.Provider
      value={{
        busy: false,
        chainId,
        connect,
        connectRefused,
        error: connectError,
        isConnected: installed,
        localAddress: currentAddress,
        provider,
        providerName,
        signMessage,
        signer,
        signerAddress: signerAddress?.toString(),
        walletProvider: provider,
      }}
    >
      {children}
    </EthersContext.Provider>
  )
}