UNPKG

web3react-v8-ian

Version:
1 lines 17.6 kB
{"version":3,"sources":["../src/index.ts","../src/context/WalletProvider.tsx","../src/connectors/metaMask.ts","../src/connectors/network.ts","../src/chains.ts","../src/connectors/walletConnect.ts","../src/hooks/useWallets.ts","../src/types/index.ts"],"sourcesContent":["import WalletProvider, { SUPPORTED_WALLETS } from './context/WalletProvider'\nimport { useWeb3React } from '@web3-react/core'\nimport { useWallets } from './hooks/useWallets'\nimport { Wallet } from './types'\nimport { getAddChainParametersfromNetworkName, getAddChainParameters } from './chains'\n\nexport {\n WalletProvider,\n SUPPORTED_WALLETS,\n useWeb3React,\n Wallet,\n useWallets,\n getAddChainParametersfromNetworkName,\n getAddChainParameters,\n}\n","import { Web3ReactHooks, Web3ReactProvider } from '@web3-react/core'\nimport { MetaMask } from '@web3-react/metamask'\nimport { Network } from '@web3-react/network'\nimport { WalletConnect } from '@web3-react/walletconnect'\nimport React, { useMemo, useEffect, useState } from 'react'\nimport { Wallet } from '..'\nimport { hooks as metaMaskHooks, metaMask } from '../connectors/metaMask'\nimport { hooks as networkHooks, network } from '../connectors/network'\nimport { hooks as walletConnectHooks, walletConnect } from '../connectors/walletConnect'\nimport { WalletInfo } from '../types'\n\nexport const initialConnectors: [MetaMask | WalletConnect | Network, Web3ReactHooks][] = [\n [network, networkHooks],\n [metaMask, metaMaskHooks],\n [walletConnect, walletConnectHooks],\n]\n\nexport const SUPPORTED_WALLETS: { [key: string]: WalletInfo } = {\n METAMASK: {\n connector: metaMask,\n hooks: metaMaskHooks,\n wallet: Wallet.METAMASK,\n name: 'MetaMask',\n },\n WALLET_CONNECT: {\n connector: walletConnect,\n hooks: walletConnectHooks,\n wallet: Wallet.WALLET_CONNECT,\n name: 'WalletConnect',\n mobile: true,\n },\n}\nexport interface IWalletContext {\n setSelectedWallet: (Wallet: Wallet) => void\n selectedWallet: Wallet | undefined\n}\n\nexport const WalletContext = React.createContext<IWalletContext>({\n setSelectedWallet: () => {},\n selectedWallet: undefined,\n})\n\nexport default function ProviderExample({ children }: any) {\n const [selectedWallet, setSelectedWallet] = useState<Wallet>()\n const connectors = useMemo(() => {\n if (!selectedWallet) return initialConnectors\n\n const connectorList: [MetaMask | WalletConnect | Network, Web3ReactHooks][] = []\n if (selectedWallet) {\n const wallet = SUPPORTED_WALLETS[selectedWallet]\n connectorList.push([wallet.connector, wallet.hooks])\n }\n Object.keys(SUPPORTED_WALLETS)\n .filter((wallet) => wallet !== selectedWallet)\n .forEach((ele) => {\n const wallet = SUPPORTED_WALLETS[ele]\n connectorList.push([wallet.connector, wallet.hooks])\n })\n connectorList.push([network, networkHooks])\n return connectorList\n }, [selectedWallet])\n\n useEffect(() => {\n network.activate()\n }, [])\n\n return (\n <WalletContext.Provider value={{ selectedWallet, setSelectedWallet }}>\n <Web3ReactProvider connectors={connectors}>{children}</Web3ReactProvider>\n </WalletContext.Provider>\n )\n}\n","import { initializeConnector } from '@web3-react/core'\nimport { MetaMask } from '@web3-react/metamask'\n\nexport const [metaMask, hooks] = initializeConnector<MetaMask>((actions) => new MetaMask({ actions }))\n","import { initializeConnector } from '@web3-react/core'\nimport { Network } from '@web3-react/network'\nimport { URLS } from '../chains'\n\nexport const [network, hooks] = initializeConnector<Network>((actions) => new Network({ actions, urlMap: URLS }))\n","import type { AddEthereumChainParameter } from '@web3-react/types'\n\nconst INFURA_KEY = process.env.REACT_APP_INFURA_KEY ? process.env.REACT_APP_INFURA_KEY : process.env.INFURA_KEY\n\nconst ALCHEMY_KEY = process.env.REACT_APP_ALCHEMY_KEY ? process.env.REACT_APP_ALCHEMY_KEY : process.env.ALCHEMY_KEY\n\nconst ETH: AddEthereumChainParameter['nativeCurrency'] = {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n}\n\nconst MATIC: AddEthereumChainParameter['nativeCurrency'] = {\n name: 'Matic',\n symbol: 'MATIC',\n decimals: 18,\n}\nconst AVAX: AddEthereumChainParameter['nativeCurrency'] = {\n name: 'Avax',\n symbol: 'AVAX',\n decimals: 18,\n}\nconst BNB: AddEthereumChainParameter['nativeCurrency'] = {\n name: 'Binance Coin',\n symbol: 'BNB',\n decimals: 18,\n}\n\nconst GLMR: AddEthereumChainParameter['nativeCurrency'] = {\n name: 'Glimmer',\n symbol: 'GLMR',\n decimals: 18,\n}\nconst MOVR: AddEthereumChainParameter['nativeCurrency'] = {\n name: 'Moonriver',\n symbol: 'MOVR',\n decimals: 18,\n}\nconst METIS: AddEthereumChainParameter['nativeCurrency'] = {\n name: 'Metis',\n symbol: 'METIS',\n decimals: 18,\n}\ninterface BasicChainInformation {\n urls: (string | undefined)[]\n name: string\n}\n\nexport enum NetworkName {\n ETHEREUM = 'ethereum',\n AVALANCHE = 'avalanche',\n BINANCE = 'bsc',\n MOONBEAM = 'moonbeam',\n MOONRIVER = 'moonriver',\n METIS = 'metis',\n OPTIMISM = 'optimism',\n POLYGON = 'polygon',\n}\n\ninterface ExtendedChainInformation extends BasicChainInformation {\n nativeCurrency: AddEthereumChainParameter['nativeCurrency']\n blockExplorerUrls: AddEthereumChainParameter['blockExplorerUrls']\n}\n\nfunction isExtendedChainInformation(\n chainInformation: BasicChainInformation | ExtendedChainInformation,\n): chainInformation is ExtendedChainInformation {\n return !!(chainInformation as ExtendedChainInformation).nativeCurrency\n}\n\nexport function getAddChainParameters(chainId: number): AddEthereumChainParameter | number {\n const chainInformation = CHAINS[chainId]\n if (isExtendedChainInformation(chainInformation)) {\n return {\n chainId,\n chainName: chainInformation.name,\n nativeCurrency: chainInformation.nativeCurrency,\n rpcUrls: chainInformation.urls as any,\n blockExplorerUrls: chainInformation.blockExplorerUrls,\n }\n } else {\n return chainId\n }\n}\n\nconst NetworkChainMap: { [key in NetworkName]: number } = {\n ethereum: 1,\n avalanche: 43114,\n bsc: 56,\n moonbeam: 1284,\n moonriver: 1285,\n metis: 1088,\n optimism: 10,\n polygon: 137,\n}\n\nexport const CHAINS: { [chainId: number]: BasicChainInformation | ExtendedChainInformation } = {\n 1: {\n urls: [\n INFURA_KEY ? `https://mainnet.infura.io/v3/${INFURA_KEY}` : undefined,\n ALCHEMY_KEY ? `https://eth-mainnet.alchemyapi.io/v2/${ALCHEMY_KEY}` : undefined,\n 'https://cloudflare-eth.com',\n ].filter((url) => url !== undefined),\n name: 'Mainnet',\n },\n 3: {\n urls: [INFURA_KEY ? `https://ropsten.infura.io/v3/${INFURA_KEY}` : undefined].filter((url) => url !== undefined),\n name: 'Ropsten',\n },\n 4: {\n urls: [INFURA_KEY ? `https://rinkeby.infura.io/v3/${INFURA_KEY}` : undefined].filter((url) => url !== undefined),\n name: 'Rinkeby',\n },\n 5: {\n urls: [INFURA_KEY ? `https://goerli.infura.io/v3/${INFURA_KEY}` : undefined].filter((url) => url !== undefined),\n name: 'Görli',\n },\n 42: {\n urls: [INFURA_KEY ? `https://kovan.infura.io/v3/${INFURA_KEY}` : undefined].filter((url) => url !== undefined),\n name: 'Kovan',\n },\n // Optimism\n 10: {\n urls: [\n INFURA_KEY ? `https://optimism-mainnet.infura.io/v3/${INFURA_KEY}` : undefined,\n 'https://mainnet.optimism.io',\n ].filter((url) => url !== undefined),\n name: 'Optimism',\n nativeCurrency: ETH,\n blockExplorerUrls: ['https://optimistic.etherscan.io'],\n },\n 69: {\n urls: [\n INFURA_KEY ? `https://optimism-kovan.infura.io/v3/${INFURA_KEY}` : undefined,\n 'https://kovan.optimism.io',\n ].filter((url) => url !== undefined),\n name: 'Optimism Kovan',\n nativeCurrency: ETH,\n blockExplorerUrls: ['https://kovan-optimistic.etherscan.io'],\n },\n // Arbitrum\n 42161: {\n urls: [\n INFURA_KEY ? `https://arbitrum-mainnet.infura.io/v3/${INFURA_KEY}` : undefined,\n 'https://arb1.arbitrum.io/rpc',\n ].filter((url) => url !== undefined),\n name: 'Arbitrum One',\n nativeCurrency: ETH,\n blockExplorerUrls: ['https://arbiscan.io'],\n },\n 421611: {\n urls: [\n INFURA_KEY ? `https://arbitrum-rinkeby.infura.io/v3/${INFURA_KEY}` : undefined,\n 'https://rinkeby.arbitrum.io/rpc',\n ].filter((url) => url !== undefined),\n name: 'Arbitrum Testnet',\n nativeCurrency: ETH,\n blockExplorerUrls: ['https://testnet.arbiscan.io'],\n },\n // Polygon\n 137: {\n urls: [\n INFURA_KEY ? `https://polygon-mainnet.infura.io/v3/${INFURA_KEY}` : undefined,\n 'https://polygon-rpc.com',\n ].filter((url) => url !== undefined),\n name: 'Polygon Mainnet',\n nativeCurrency: MATIC,\n blockExplorerUrls: ['https://polygonscan.com'],\n },\n 80001: {\n urls: [INFURA_KEY ? `https://polygon-mumbai.infura.io/v3/${INFURA_KEY}` : undefined].filter(\n (url) => url !== undefined,\n ),\n name: 'Polygon Mumbai',\n nativeCurrency: MATIC,\n blockExplorerUrls: ['https://mumbai.polygonscan.com'],\n },\n 43114: {\n urls: ['https://api.avax.network/ext/bc/C/rpc'].filter((url) => url !== undefined),\n name: 'Avalanche',\n nativeCurrency: AVAX,\n blockExplorerUrls: ['https://snowtrace.io'],\n },\n\n 56: {\n urls: ['https://bsc-dataseed.binance.org'].filter((url) => url !== undefined),\n name: 'Binance',\n nativeCurrency: BNB,\n blockExplorerUrls: ['https://bscscan.com'],\n },\n 1284: {\n urls: ['https://rpc.api.moonbeam.network'].filter((url) => url !== undefined),\n name: 'Glimmer',\n nativeCurrency: GLMR,\n blockExplorerUrls: ['https://moonbeam.moonscan.io'],\n },\n 1285: {\n urls: ['https://rpc.moonriver.moonbeam.network'].filter((url) => url !== undefined),\n name: 'Moonriver',\n nativeCurrency: MOVR,\n blockExplorerUrls: ['https://moonriver.moonscan.io'],\n },\n 1088: {\n urls: ['https://andromeda.metis.io/?owner=1088'].filter((url) => url !== undefined),\n name: 'Metis',\n nativeCurrency: METIS,\n blockExplorerUrls: ['https://andromeda-explorer.metis.io'],\n },\n}\n\nexport const URLS: { [chainId: number]: string[] } = Object.keys(CHAINS).reduce<{ [chainId: number]: string[] }>(\n (accumulator, chainId) => {\n const validURLs: string[] = CHAINS[Number(chainId)].urls as any\n\n if (validURLs.length) {\n accumulator[Number(chainId)] = validURLs\n }\n\n return accumulator\n },\n {},\n)\nexport const getAddChainParametersfromNetworkName = (network: NetworkName): AddEthereumChainParameter | number => {\n const chainId = NetworkChainMap[network]\n return getAddChainParameters(chainId)\n}\n","import { initializeConnector } from '@web3-react/core'\nimport { WalletConnect } from '@web3-react/walletconnect'\nimport { URLS } from '../chains'\n\nexport const [walletConnect, hooks] = initializeConnector<WalletConnect>(\n (actions) =>\n new WalletConnect({\n actions,\n options: {\n rpc: URLS,\n },\n }),\n)\n","import { useContext } from 'react'\nimport { WalletContext } from '../context/WalletProvider'\n\nexport function useWallets() {\n const context = useContext(WalletContext)\n if (context === undefined) {\n throw new Error('useWallet must be used within a useWalletsProvider')\n }\n return context\n}\n","import { Web3ReactHooks } from '@web3-react/core'\nimport { MetaMask } from '@web3-react/metamask'\nimport { Network } from '@web3-react/network'\nimport { WalletConnect } from '@web3-react/walletconnect'\n\nexport enum Wallet {\n INJECTED = 'INJECTED',\n METAMASK = 'METAMASK',\n COINBASE_WALLET = 'COINBASE_WALLET',\n WALLET_CONNECT = 'WALLET_CONNECT',\n FORTMATIC = 'FORTMATIC',\n NETWORK = 'NETWORK',\n GNOSIS_SAFE = 'GNOSIS_SAFE',\n}\n\nexport interface WalletInfo {\n connector: MetaMask | WalletConnect | Network\n hooks: Web3ReactHooks\n wallet: Wallet\n name: string\n mobile?: true\n}\n"],"mappings":"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","names":[]}