{"version":3,"file":"bhayward93-web3modal-angular.mjs","sources":["../../../projects/web3modal/src/lib/web3modal-ts/src/constants/chains.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/constants/events.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/constants/keys.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/controllers/events.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/injected.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/helpers/local.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/helpers/utils.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/walletconnect.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/portis.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/fortmatic.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/torus.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/squarelink.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/arkane.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/authereum.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/burnerconnect.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/unilogin.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/mewconnect.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/dcentwallet.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/bitski.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/connectors/walletlink.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/injected/index.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/providers/providers/index.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/controllers/providers.ts","../../../projects/web3modal/src/lib/web3modal-ts/src/core/service.ts","../../../projects/web3modal/src/lib/web3-modal/web3-modal.service.ts","../../../projects/web3modal/src/lib/modal/modal.component.ts","../../../projects/web3modal/src/lib/modal/modal.component.html","../../../projects/web3modal/src/lib/web3-modal/web3-modal-metamask-logo.component.ts","../../../projects/web3modal/src/lib/web3-modal/web3-modal.component.ts","../../../projects/web3modal/src/lib/web3-modal/web3-modal.component.html","../../../projects/web3modal/src/lib/web3-modal/web3-modal.module.ts","../../../projects/web3modal/src/public-api.ts","../../../projects/web3modal/src/bhayward93-web3modal-angular.ts"],"sourcesContent":["import { ChainDataList } from '../helpers';\n\nexport const CHAIN_DATA_LIST: ChainDataList = {\n  1: {\n    chainId: 1,\n    chain: \"ETH\",\n    network: \"mainnet\",\n    networkId: 1\n  },\n  2: {\n    chainId: 2,\n    chain: \"EXP\",\n    network: \"expanse\",\n    networkId: 1\n  },\n  3: {\n    chainId: 3,\n    chain: \"ETH\",\n    network: \"ropsten\",\n    networkId: 3\n  },\n  4: {\n    chainId: 4,\n    chain: \"ETH\",\n    network: \"rinkeby\",\n    networkId: 4\n  },\n  5: {\n    chainId: 5,\n    chain: \"ETH\",\n    network: \"goerli\",\n    networkId: 5\n  },\n  6: {\n    chainId: 6,\n    chain: \"ETC\",\n    network: \"kotti\",\n    networkId: 6\n  },\n  8: {\n    chainId: 8,\n    chain: \"UBQ\",\n    network: \"ubiq\",\n    networkId: 88\n  },\n  9: {\n    chainId: 9,\n    chain: \"UBQ\",\n    network: \"ubiq-testnet\",\n    networkId: 2\n  },\n  10: {\n    chainId: 10,\n    chain: \"ETH\",\n    network: \"optimism\",\n    networkId: 10\n  },\n  11: {\n    chainId: 11,\n    chain: \"META\",\n    network: \"metadium\",\n    networkId: 11\n  },\n  12: {\n    chainId: 12,\n    chain: \"META\",\n    network: \"metadium-testnet\",\n    networkId: 12\n  },\n  18: {\n    chainId: 18,\n    chain: \"TST\",\n    network: \"thundercore-testnet\",\n    networkId: 18\n  },\n  22: {\n    chainId: 22,\n    chain: \"LYX\",\n    network: \"lukso-l14-testnet\",\n    networkId: 22\n  },\n  23: {\n    chainId: 23,\n    chain: \"LYX\",\n    network: \"lukso-l15-testnet\",\n    networkId: 23\n  },\n  30: {\n    chainId: 30,\n    chain: \"RSK\",\n    network: \"rsk\",\n    networkId: 30\n  },\n  31: {\n    chainId: 31,\n    chain: \"RSK\",\n    network: \"rsk-testnet\",\n    networkId: 31\n  },\n  42: {\n    chainId: 42,\n    chain: \"ETH\",\n    network: \"kovan\",\n    networkId: 42\n  },\n  56: {\n    chainId: 56,\n    chain: \"BSC\",\n    network: \"binance\",\n    networkId: 56\n  },\n  60: {\n    chainId: 60,\n    chain: \"GO\",\n    network: \"gochain\",\n    networkId: 60\n  },\n  61: {\n    chainId: 61,\n    chain: \"ETC\",\n    network: \"etc\",\n    networkId: 1\n  },\n  62: {\n    chainId: 62,\n    chain: \"ETC\",\n    network: \"etc-morden\",\n    networkId: 2\n  },\n  63: {\n    chainId: 63,\n    chain: \"ETC\",\n    network: \"etc-testnet\",\n    networkId: 7\n  },\n  64: {\n    chainId: 64,\n    chain: \"ELLA\",\n    network: \"ellaism\",\n    networkId: 64\n  },\n  69: {\n    chainId: 69,\n    chain: \"ETH\",\n    network: \"optimism-kovan\",\n    networkId: 69\n  },\n  76: {\n    chainId: 76,\n    chain: \"MIX\",\n    network: \"mix\",\n    networkId: 76\n  },\n  77: {\n    chainId: 77,\n    chain: \"POA\",\n    network: \"poa-sokol\",\n    networkId: 77\n  },\n  88: {\n    chainId: 88,\n    chain: \"TOMO\",\n    network: \"tomochain\",\n    networkId: 88\n  },\n  97: {\n    chainId: 97,\n    chain: \"BSC\",\n    network: \"binance-testnet\",\n    networkId: 97\n  },\n  99: {\n    chainId: 99,\n    chain: \"POA\",\n    network: \"poa-core\",\n    networkId: 99\n  },\n  100: {\n    chainId: 100,\n    chain: \"XDAI\",\n    network: \"xdai\",\n    networkId: 100\n  },\n  101: {\n    chainId: 101,\n    chain: \"ETI\",\n    network: \"etherinc\",\n    networkId: 1\n  },\n  108: {\n    chainId: 108,\n    chain: \"TT\",\n    network: \"thundercore\",\n    networkId: 108\n  },\n  162: {\n    chainId: 162,\n    chain: \"PHT\",\n    network: \"sirius\",\n    networkId: 162\n  },\n  163: {\n    chainId: 163,\n    chain: \"PHT\",\n    network: \"lightstreams\",\n    networkId: 163\n  },\n  211: {\n    chainId: 211,\n    chain: \"FTN\",\n    network: \"freight\",\n    networkId: 0\n  },\n  250: {\n    chainId: 250,\n    chain: \"FTM\",\n    network: \"fantom\",\n    networkId: 250\n  },\n  269: {\n    chainId: 269,\n    chain: \"HPB\",\n    network: \"hpb\",\n    networkId: 100\n  },\n  385: {\n    chainId: 385,\n    chain: \"CRO\",\n    network: \"lisinski\",\n    networkId: 385\n  },\n  820: {\n    chainId: 820,\n    chain: \"CLO\",\n    network: \"callisto\",\n    networkId: 1\n  },\n  821: {\n    chainId: 821,\n    chain: \"CLO\",\n    network: \"callisto-testnet\",\n    networkId: 2\n  },\n  137: {\n    chainId: 137,\n    chain: \"MATIC\",\n    network: \"matic\",\n    networkId: 137\n  },\n  42161: {\n    chainId: 42161,\n    chain: \"ETH\",\n    network: \"arbitrum\",\n    networkId: 42161\n  },\n  42220: {\n    chainId: 42220,\n    chain: \"CELO\",\n    network: \"celo\",\n    networkId: 42220\n  },\n  44787: {\n    chainId: 44787,\n    chain: \"CELO\",\n    network: \"celo-alfajores\",\n    networkId: 44787\n  },\n  62320: {\n    chainId: 62320,\n    chain: \"CELO\",\n    network: \"celo-baklava\",\n    networkId: 62320\n  },\n  80001: {\n    chainId: 80001,\n    chain: \"MUMBAI\",\n    network: \"mumbai\",\n    networkId: 80001\n  },\n  43113: {\n    chainId: 43113,\n    chain: \"AVAX\",\n    network: \"avalanche-fuji-testnet\",\n    networkId: 43113\n  },\n  43114: {\n    chainId: 43114,\n    chain: \"AVAX\",\n    network: \"avalanche-fuji-mainnet\",\n    networkId: 43114\n  },\n  246529: {\n    chainId: 246529,\n    chain: \"ARTIS sigma1\",\n    network: \"artis-s1\",\n    networkId: 246529\n  },\n  246785: {\n    chainId: 246785,\n    chain: \"ARTIS tau1\",\n    network: \"artis-t1\",\n    networkId: 246785\n  },\n  1007: {\n    chainId: 1007,\n    chain: \"NewChain TestNet\",\n    network: \"newchain-testnet\",\n    networkId: 1007\n  },\n  1012: {\n    chainId: 1012,\n    chain: \"NewChain MainNet\",\n    network: \"newchain-mainnet\",\n    networkId: 1012\n  },\n  421611: {\n    chainId: 421611,\n    chain: \"ETH\",\n    network: \"arbitrum-rinkeby\",\n    networkId: 421611\n  }\n};\n","export const CONNECT_EVENT = 'connect';\nexport const ERROR_EVENT = 'error';\nexport const CLOSE_EVENT = 'close';\n","export const INJECTED_PROVIDER_ID = 'injected';\nexport const CACHED_PROVIDER_KEY = 'WEB3_CONNECT_CACHED_PROVIDER';\n","import { IEventCallback } from '../helpers';\n\n// -- EventController --------------------------------------------------------- //\n\nexport class EventController {\n  private _eventCallbacks: IEventCallback[];\n\n  constructor() {\n    this._eventCallbacks = [];\n  }\n\n  public on(eventCallback: IEventCallback) {\n    this._eventCallbacks.push(eventCallback);\n  }\n\n  public off(eventObj?: Partial<IEventCallback>) {\n    // remove specific event callback\n    if (eventObj) {\n      if (eventObj.callback) {\n        this._eventCallbacks = this._eventCallbacks.filter(\n          (eventCallback: IEventCallback) =>\n            eventCallback.event !== eventObj.event ||\n            eventCallback.callback !== eventObj.callback\n        );\n      } // No callback to remove, remove entire event\n      else {\n        this._eventCallbacks = this._eventCallbacks.filter(\n          (eventCallback: IEventCallback) =>\n            eventCallback.event !== eventObj.event\n        );\n      }\n    } else {\n      this._eventCallbacks = [];\n    }\n  }\n\n  public trigger(event: string, result?: any): void {\n    let eventCallbacks: IEventCallback[] = this._eventCallbacks.filter(\n      (eventCallback: IEventCallback) => eventCallback.event === event\n    );\n\n    if (eventCallbacks && eventCallbacks.length) {\n      eventCallbacks.forEach((eventCallback: IEventCallback) => {\n        eventCallback.callback(result);\n      });\n    }\n  }\n}\n","const ConnectToInjected = async () => {\n  let provider = null;\n  if ((window as any).ethereum) {\n    provider = (window as any).ethereum;\n    try {\n      await (window as any).ethereum.enable();\n    } catch (error) {\n      throw new Error('User Rejected');\n    }\n  } else if ((window as any).web3) {\n    provider = (window as any).web3.currentProvider;\n  } else {\n    throw new Error('No Web3 Provider found');\n  }\n  return provider;\n};\n\nexport default ConnectToInjected;\n","export let local: Storage;\n\nif (\n  typeof window !== 'undefined' &&\n  typeof (window as any).localStorage !== 'undefined'\n) {\n  local = (window as any).localStorage;\n}\n\nexport const setLocal = (key: string, data: any) => {\n  const jsonData = JSON.stringify(data);\n  if (local) {\n    local.setItem(key, jsonData);\n  }\n};\n\nexport const getLocal = (key: string) => {\n  let data = null;\n  let raw = null;\n  if (local) {\n    raw = local.getItem(key);\n  }\n  if (raw && typeof raw === 'string') {\n    try {\n      data = JSON.parse(raw);\n    } catch (error) {\n      return null;\n    }\n  }\n  return data;\n};\n\nexport const removeLocal = (key: string) => {\n  if (local) {\n    local.removeItem(key);\n  }\n};\n\nexport const updateLocal = (key: string, data: any) => {\n  const localData = getLocal(key) || {};\n  const mergedData = { ...localData, ...data };\n  setLocal(key, mergedData);\n};\n","import * as env from 'detect-browser';\n\nimport { CHAIN_DATA_LIST } from '../constants';\nimport { providers, injected } from '../providers';\nimport {\n  IProviderInfo,\n  IInjectedProvidersMap,\n  ChainData,\n  ThemeColors,\n  RequiredOption,\n} from './types';\n\nexport function checkInjectedProviders(): IInjectedProvidersMap {\n  const result = {\n    injectedAvailable: !!(window as any).ethereum || !!(window as any).web3,\n  };\n  if (result.injectedAvailable) {\n    let fallbackProvider = true;\n    Object.values(injected).forEach(provider => {\n      const isAvailable = verifyInjectedProvider(provider.check);\n      if (isAvailable) {\n        result[provider.check] = true;\n        fallbackProvider = false;\n      }\n    });\n\n    const browser = env.detect();\n\n    if (browser && browser.name === 'opera') {\n      result[injected.OPERA.check] = true;\n      fallbackProvider = false;\n    }\n\n    if (fallbackProvider) {\n      result[injected.FALLBACK.check] = true;\n    }\n  }\n\n  return result;\n}\n\nexport function verifyInjectedProvider(check: string): boolean {\n  return (window as any).ethereum\n    ? (window as any).ethereum[check] || ((window as any).web3 && (window as any).web3.currentProvider)\n      ? (window as any).web3\n        ? (window as any).web3.currentProvider[check]\n        : true\n      : false\n    : (window as any).web3 && (window as any).web3.currentProvider\n    ? (window as any).web3.currentProvider[check]\n    : false;\n}\n\nexport function getInjectedProvider(): IProviderInfo | null {\n  let result = null;\n\n  const injectedProviders = checkInjectedProviders();\n\n  if (injectedProviders.injectedAvailable) {\n    delete injectedProviders.injectedAvailable;\n    const checks = Object.keys(injectedProviders);\n    result = getProviderInfoFromChecksArray(checks);\n  }\n  return result;\n}\n\nexport function getInjectedProviderName(): string | null {\n  const injectedProvider = getInjectedProvider();\n  return injectedProvider ? injectedProvider.name : null;\n}\n\nexport function getProviderInfo(provider: any): IProviderInfo {\n  if (!provider) return providers.FALLBACK;\n  const checks = Object.values(providers)\n    .filter(x => provider[x.check])\n    .map(x => x.check);\n  return getProviderInfoFromChecksArray(checks);\n}\n\nexport function getProviderInfoFromChecksArray(\n  checks: string[]\n): IProviderInfo {\n  const check = filterProviderChecks(checks);\n  return filterProviders('check', check);\n}\n\nexport function getProviderInfoByName(name: string | null): IProviderInfo {\n  return filterProviders('name', name);\n}\n\nexport function getProviderInfoById(id: string | null): IProviderInfo {\n  return filterProviders('id', id);\n}\n\nexport function getProviderInfoByCheck(check: string | null): IProviderInfo {\n  return filterProviders('check', check);\n}\n\nexport function isMobile(): boolean {\n  let mobile: boolean = false;\n\n  function hasTouchEvent(): boolean {\n    try {\n      document.createEvent('TouchEvent');\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n\n  function hasMobileUserAgent(): boolean {\n    if (\n      /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(\n        navigator.userAgent\n      ) ||\n      /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(\n        navigator.userAgent.substr(0, 4)\n      )\n    ) {\n      return true;\n    } else if (hasTouchEvent()) {\n      return true;\n    }\n    return false;\n  }\n\n  mobile = hasMobileUserAgent();\n\n  return mobile;\n}\n\nexport function getProviderDescription(\n  providerInfo: Partial<IProviderInfo>\n): string {\n  if (providerInfo.description) {\n    return providerInfo.description;\n  }\n  let description = '';\n  switch (providerInfo.type) {\n    case 'injected':\n      description = `Connect to your ${providerInfo.name} Wallet`;\n      break;\n    case 'web':\n      description = `Connect with your ${providerInfo.name} account`;\n      break;\n    case 'qrcode':\n      description = `Scan with ${providerInfo.name} to connect`;\n      break;\n    case 'hardware':\n      description = `Connect to your ${providerInfo.name} Hardware Wallet`;\n      break;\n    default:\n      break;\n  }\n  return description;\n}\n\nexport function filterMatches<T>(\n  array: T[],\n  condition: (x: T) => boolean,\n  fallback: T | undefined\n): T | undefined {\n  let result = fallback;\n  const matches = array.filter(condition);\n\n  if (!!matches && matches.length) {\n    result = matches[0];\n  }\n\n  return result;\n}\n\nexport function filterProviders(\n  param: string,\n  value: string | null\n): IProviderInfo {\n  if (!value) return providers.FALLBACK;\n  const match = filterMatches<IProviderInfo>(\n    Object.values(providers),\n    x => x[param] === value,\n    providers.FALLBACK\n  );\n  return match || providers.FALLBACK;\n}\n\nexport function filterProviderChecks(checks: string[]): string {\n  if (!!checks && checks.length) {\n    if (checks.length > 1) {\n      if (\n        checks[0] === injected.METAMASK.check ||\n        checks[0] === injected.CIPHER.check\n      ) {\n        return checks[1];\n      }\n    }\n    return checks[0];\n  }\n  return providers.FALLBACK.check;\n}\n\nexport function getChainId(network: string): number {\n  const chains: ChainData[] = Object.values(CHAIN_DATA_LIST);\n  const match = filterMatches<ChainData>(\n    chains,\n    x => x.network === network,\n    undefined\n  );\n  if (!match) {\n    throw new Error(`No chainId found match ${network}`);\n  }\n  return match.chainId;\n}\n\nexport function findMatchingRequiredOptions(\n  requiredOptions: RequiredOption[],\n  providedOptions: { [key: string]: any }\n): RequiredOption[] {\n  const matches = requiredOptions.filter(requiredOption => {\n    if (typeof requiredOption === 'string') {\n      return requiredOption in providedOptions;\n    }\n    const matches = findMatchingRequiredOptions(\n      requiredOption,\n      providedOptions\n    );\n    return matches && matches.length;\n  });\n  return matches;\n}\n","import { IAbstractConnectorOptions, getChainId } from '../../helpers';\n\nexport interface IWalletConnectConnectorOptions\n  extends IAbstractConnectorOptions {\n  infuraId?: string;\n  rpc?: { [chainId: number]: string };\n  bridge?: string;\n  qrcode?: boolean;\n}\n\nconst ConnectToWalletConnect = (\n  WalletConnectProvider: any,\n  opts: IWalletConnectConnectorOptions\n) => {\n  return new Promise(async (resolve, reject) => {\n    let bridge = 'https://bridge.walletconnect.org';\n    let qrcode = true;\n    let infuraId = '';\n    let rpc = undefined;\n    let chainId = 1;\n    console.log('wallet connect'); // todo remove dev item\n    if (opts) {\n      bridge = opts.bridge || bridge;\n      qrcode = typeof opts.qrcode !== 'undefined' ? opts.qrcode : qrcode;\n      infuraId = opts.infuraId || '';\n      rpc = opts.rpc || undefined;\n      chainId =\n        opts.network && getChainId(opts.network) ? getChainId(opts.network) : 1;\n    }\n\n    const provider = new WalletConnectProvider({\n      bridge,\n      qrcode,\n      infuraId,\n      rpc,\n      chainId,\n    });\n    try {\n      await provider.enable();\n      resolve(provider);\n    } catch (e) {\n      reject(e);\n    }\n  });\n};\n\nexport default ConnectToWalletConnect;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\nexport interface INetwork {\n  nodeUrl: string;\n  chainId?: string;\n  gasRelayHubAddress?: string;\n}\n\nexport type Scope = 'email';\n\nexport interface IOptions {\n  scope?: Scope[];\n  gasRelay?: boolean;\n  registerPageByDefault?: boolean;\n  pocketDevId?: string;\n}\n\nexport interface IPortisConnectorOptions extends IAbstractConnectorOptions {\n  id: string;\n  config?: IOptions;\n}\n\nconst ConnectToPortis = (Portis: any, opts: IPortisConnectorOptions) => {\n  return new Promise(async (resolve, reject) => {\n    if (opts && opts.id) {\n      try {\n        const id = opts.id;\n        const network = opts.network || 'mainnet';\n        const config = opts.config;\n        const pt = new Portis(id, network, config);\n        await pt.provider.enable();\n        pt.provider._portis = pt;\n        resolve(pt.provider);\n      } catch (error) {\n        return reject(error);\n      }\n    } else {\n      return reject(new Error('Missing Portis Id'));\n    }\n  });\n};\n\nexport default ConnectToPortis;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\nexport interface IFortmaticConnectorOptions extends IAbstractConnectorOptions {\n  key: string;\n}\n\nconst ConnectToFortmatic = async (\n  Fortmatic: any,\n  opts: IFortmaticConnectorOptions\n) => {\n  if (opts && opts.key) {\n    try {\n      const key = opts.key;\n      const fm = new Fortmatic(key, opts.network);\n      const provider = await fm.getProvider();\n      provider.fm = fm;\n      await fm.user.login();\n      const isLoggedIn = await fm.user.isLoggedIn();\n      if (isLoggedIn) {\n        return provider;\n      } else {\n        throw new Error('Failed to login to Fortmatic');\n      }\n    } catch (error) {\n      throw error;\n    }\n  } else {\n    throw new Error('Missing Fortmatic key');\n  }\n};\n\nexport default ConnectToFortmatic;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\ntype ETHEREUM_NETWORK_TYPE =\n  | 'ropsten'\n  | 'rinkeby'\n  | 'kovan'\n  | 'mainnet'\n  | 'goerli'\n  | 'localhost'\n  | 'matic'\n  | 'mumbai';\n\ninterface NetworkParams {\n  host: ETHEREUM_NETWORK_TYPE | string;\n  chainId?: number;\n  networkName?: string;\n}\n\ninterface VerifierStatus {\n  google?: boolean;\n  facebook?: boolean;\n  reddit?: boolean;\n  twitch?: boolean;\n  discord?: boolean;\n}\n\ninterface LoginParams {\n  verifier?: 'google' | 'facebook' | 'twitch' | 'reddit' | 'discord' | string;\n}\n\ntype LOGIN_TYPE =\n  | 'google'\n  | 'facebook'\n  | 'reddit'\n  | 'discord'\n  | 'twitch'\n  | 'apple'\n  | 'github'\n  | 'linkedin'\n  | 'twitter'\n  | 'weibo'\n  | 'line'\n  | 'jwt'\n  | 'email-password'\n  | 'passwordless';\n\ninterface BaseLoginOptions {\n  display?: 'page' | 'popup' | 'touch' | 'wap';\n  prompt?: 'none' | 'login' | 'consent' | 'select_account';\n  max_age?: string | number;\n  ui_locales?: string;\n  id_token_hint?: string;\n  login_hint?: string;\n  acr_values?: string;\n  scope?: string;\n  audience?: string;\n  connection?: string;\n  [key: string]: unknown;\n}\n\ninterface JwtParameters extends BaseLoginOptions {\n  domain: string;\n  client_id?: string;\n  redirect_uri?: string;\n  leeway?: number;\n  verifierIdField?: string;\n  isVerifierIdCaseSensitive?: boolean;\n}\n\ninterface IntegrityParams {\n  check: boolean;\n  hash?: string;\n  version?: string;\n}\n\ninterface WhiteLabelParams {\n  theme: ThemeParams;\n  defaultLanguage?: string;\n  logoDark: string;\n  logoLight: string;\n  topupHide?: boolean;\n  featuredBillboardHide?: boolean;\n  disclaimerHide?: boolean;\n  tncLink?: LocaleLinks<string>;\n  privacyPolicy?: LocaleLinks<string>;\n  contactLink?: LocaleLinks<string>;\n  customTranslations?: LocaleLinks<any>;\n}\n\ninterface LocaleLinks<T> {\n  en?: T;\n  ja?: T;\n  ko?: T;\n  de?: T;\n  zh?: T;\n}\n\ninterface ThemeParams {\n  isDark: boolean;\n  colors: any;\n}\n\ninterface LoginConfigItem {\n  name?: string;\n  typeOfLogin: LOGIN_TYPE;\n  description?: string;\n  clientId?: string;\n  logoHover?: string;\n  logoLight?: string;\n  logoDark?: string;\n  showOnModal?: boolean;\n  jwtParameters?: JwtParameters;\n}\n\ninterface LoginConfig {\n  [verifier: string]: LoginConfigItem;\n}\n\nexport interface IOptions {\n  buttonPosition?: 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left';\n  modalZIndex?: number;\n  apiKey?: string;\n  buildEnv?: 'production' | 'development' | 'staging' | 'testing' | 'lrc';\n  enableLogging?: boolean;\n  enabledVerifiers?: VerifierStatus;\n  loginConfig?: LoginConfig;\n  showTorusButton?: boolean;\n  integrity?: IntegrityParams;\n  whiteLabel?: WhiteLabelParams;\n}\n\nexport interface ITorusConnectorOptions extends IAbstractConnectorOptions {\n  config?: IOptions;\n  loginParams?: LoginParams;\n  networkParams?: NetworkParams;\n}\n\n// Supports Torus package versions 0.2.*\nconst ConnectToTorus = async (Torus: any, opts: ITorusConnectorOptions) => {\n  return new Promise(async (resolve, reject) => {\n    try {\n      // defaults\n      let buttonPosition = 'bottom-left';\n      let apiKey = 'torus-default';\n      let modalZIndex = 99999999;\n      let network: NetworkParams = { host: 'mainnet' };\n      let defaultVerifier = undefined;\n\n      // parsing to Torus interfaces\n      network =\n        opts.networkParams || opts.network\n          ? { host: opts.network, ...opts.networkParams }\n          : network;\n\n      const torus = new Torus({\n        buttonPosition: opts.config?.buttonPosition || buttonPosition,\n        apiKey: opts.config?.apiKey || apiKey,\n        modalZIndex: opts.config?.modalZIndex || modalZIndex,\n      });\n      await torus.init({\n        showTorusButton: false,\n        ...opts.config,\n        network,\n      });\n\n      if (opts.loginParams) {\n        defaultVerifier = opts.loginParams.verifier;\n      }\n      await torus.login({ verifier: defaultVerifier });\n      const provider = torus.provider;\n      provider.torus = torus;\n      resolve(provider);\n    } catch (err) {\n      reject(err);\n    }\n  });\n};\n\nexport default ConnectToTorus;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\nexport interface IOptions {\n  scope?: string[];\n}\n\nexport interface ISquarelinkConnectorOptions extends IAbstractConnectorOptions {\n  id: string;\n  config?: IOptions;\n}\n\nconst ConnectToSquarelink = (\n  Squarelink: any,\n  opts: ISquarelinkConnectorOptions\n) => {\n  return new Promise(async (resolve, reject) => {\n    if (opts && opts.id) {\n      try {\n        const id = opts.id;\n        const network = opts.network || 'mainnet';\n        const config = opts.config;\n        const sqlk = new Squarelink(id, network, config);\n        const provider = await sqlk.getProvider();\n        provider.sqlk = sqlk;\n        await provider.enable();\n        return resolve(provider);\n      } catch (error) {\n        return reject(new Error('Failed to login to Squarelink'));\n      }\n    } else {\n      return reject(new Error('Missing Squarelink Id'));\n    }\n  });\n};\n\nexport default ConnectToSquarelink;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\nexport interface IArkaneConnectorOptions extends IAbstractConnectorOptions {\n  clientId: string;\n  nodeUrl?: string;\n  environment?: string;\n}\n\nconst ConnectToArkane = (Arkane: any, opts: IArkaneConnectorOptions) => {\n  return new Promise(async (resolve, reject) => {\n    if (opts && opts.clientId) {\n      try {\n        const options = {\n          clientId: opts.clientId,\n          rpcUrl: opts.nodeUrl,\n          environment: opts.environment,\n          signMethod: 'POPUP',\n        };\n        const provider = await (window as any).Arkane.createArkaneProviderEngine(\n          options\n        );\n        return resolve(provider);\n      } catch (error) {\n        console.error(error);\n        return reject(new Error('Failed to login to Arkane 2'));\n      }\n    } else {\n      return reject(new Error('Please provide an Arkane client id'));\n    }\n  });\n};\n\nexport default ConnectToArkane;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\nexport interface IAuthereumConnectorOptions extends IAbstractConnectorOptions {\n  networkName: string;\n  apiKey: string;\n  rpcUri: string;\n  webUri: string;\n  xsUri: string;\n  blockedPopupRedirect: boolean;\n  forceRedirect: boolean;\n  disableNotifications: boolean;\n  disableGoogleAnalytics: boolean;\n}\n\nconst ConnectToAuthereum = (\n  Authereum: any,\n  opts: Partial<IAuthereumConnectorOptions> = {}\n) => {\n  return new Promise(async (resolve, reject) => {\n    try {\n      const authereum = new Authereum({\n        ...opts,\n        networkName: opts.networkName || opts.network,\n      });\n      const provider = authereum.getProvider();\n      provider.authereum = authereum;\n      await provider.enable();\n      resolve(provider);\n    } catch (error) {\n      return reject(error);\n    }\n  });\n};\n\nexport default ConnectToAuthereum;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\ninterface Wallet {\n  origin: string;\n  name: string;\n}\n\nexport interface IBurnerConnectorOptions extends IAbstractConnectorOptions {\n  hubUrl?: string;\n  defaultNetwork?: string;\n  defaultWallets?: Wallet[];\n}\n\nconst ConnectToBurnerConnect = async (\n  BurnerConnectProvider: any,\n  opts: IBurnerConnectorOptions\n) => {\n  opts.defaultNetwork = opts.defaultNetwork || opts.network;\n  const provider = new BurnerConnectProvider(opts);\n\n  await provider.enable();\n\n  return provider;\n};\n\nexport default ConnectToBurnerConnect;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\nexport interface IUniloginConnectorOptions extends IAbstractConnectorOptions {}\n\nconst ConnectToUniLogin = async (\n  UniLogin: any,\n  options: IUniloginConnectorOptions\n) => {\n  try {\n    const uniloginProvider = new UniLogin.create(options.network || 'mainnet');\n    await uniloginProvider.enable();\n    uniloginProvider.on = () => {};\n    return uniloginProvider;\n  } catch (error) {\n    return error;\n  }\n};\n\nexport default ConnectToUniLogin;\n","import { IAbstractConnectorOptions, getChainId } from '../../helpers';\n\nexport interface IMewConnectConnectorOptions extends IAbstractConnectorOptions {\n  infuraId?: string;\n  rpc?: { [chainId: number]: string };\n}\n\nconst ConnectToMewConnect = (\n  MewConnectProvider: any,\n  opts: IMewConnectConnectorOptions\n) => {\n  return new Promise(async (resolve, reject) => {\n    let infuraId = '';\n    let rpc = undefined;\n    let chainId = 1;\n\n    if (opts) {\n      infuraId = opts.infuraId || '';\n      rpc = opts.rpc || undefined;\n      if (opts.infuraId && !rpc) {\n        rpc = `wss://mainnet.infura.io/ws/v3/${infuraId}`;\n      }\n      chainId =\n        opts.network && getChainId(opts.network) ? getChainId(opts.network) : 1;\n    }\n\n    if (!MewConnectProvider.Provider.isConnected) {\n      const mewConnect = new MewConnectProvider.Provider();\n      const provider = mewConnect.makeWeb3Provider(chainId, rpc, true);\n\n      mewConnect.on('disconnected', () => {});\n      try {\n        const address = await mewConnect.enable();\n        console.log(address); // todo remove dev item\n        resolve(provider);\n      } catch (e) {\n        reject(e);\n      }\n    }\n  });\n};\n\nexport default ConnectToMewConnect;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\nexport interface IDcentConnectorOptions extends IAbstractConnectorOptions {\n  rpcUrl: string;\n  chainId: number;\n}\n\nconst ConnectToDcentWallet = async (\n  DcentProvider: any,\n  opts: IDcentConnectorOptions\n) => {\n  const provider = new DcentProvider(opts);\n\n  await provider.enable();\n\n  return provider;\n};\n\nexport default ConnectToDcentWallet;\n","import { IAbstractConnectorOptions } from '../../helpers';\n\ninterface IBitskiOptions extends IAbstractConnectorOptions {\n  clientId: string;\n  callbackUrl: string;\n  extraBitskiOptions?: any;\n  extraProviderOptions?: any;\n}\n\nconst ConnectToBitski = async (Bitski: any, opts: IBitskiOptions) => {\n  const bitski = new Bitski(\n    opts.clientId,\n    opts.callbackUrl,\n    opts.extraBitskiOptions\n  );\n\n  await bitski.signIn();\n\n  const provider = bitski.getProvider(opts.extraProviderOptions);\n\n  return provider;\n};\n\nexport default ConnectToBitski;\n","import { IAbstractConnectorOptions, getChainId } from '../../helpers';\n\nexport interface IWalletLinkConnectorOptions\n  extends IAbstractConnectorOptions {\n  infuraUrl: string;\n  appName?: string;\n  appLogoUrl?: string;\n  darkMode: boolean;\n}\n\nconst ConnectToWalletLink = (\n  WalletLinkProvider: any,\n  opts: IWalletLinkConnectorOptions\n) => {\n  return new Promise(async (resolve, reject) => {\n    let infuraUrl = '';\n    let appName = \"\"\n    let appLogoUrl = \"\"\n    let darkMode = false\n    let chainId = 1;\n\n    if (opts) {\n      appName = opts.appName || appName;\n      appLogoUrl = opts.appLogoUrl || appLogoUrl;\n      darkMode = opts.darkMode || darkMode;\n      infuraUrl = opts.infuraUrl || '';\n      chainId = opts.network && getChainId(opts.network) ? getChainId(opts.network) : 1;\n    }\n\n    if(!infuraUrl) {\n      throw new Error('Missing Infura URL for WalletLink Provider')\n    }\n\n    const provider = new WalletLinkProvider({\n      appName,\n      appLogoUrl,\n      darkMode\n    }).makeWeb3Provider(infuraUrl, chainId)\n\n    try {\n      await provider.enable();\n      resolve(provider);\n    } catch (e) {\n      reject(e);\n    }\n  });\n};\n\nexport default ConnectToWalletLink;\n","import { IProviderInfo } from '../../helpers';\n\nexport const FALLBACK: IProviderInfo = {\n  id: 'injected',\n  name: 'Web3',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/web3-default.svg',\n  type: 'injected',\n  check: 'isWeb3',\n};\n\nexport const METAMASK: IProviderInfo = {\n  id: 'injected',\n  name: 'MetaMask',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/metamask.svg',\n  type: 'injected',\n  check: 'isMetaMask',\n};\n\nexport const SAFE: IProviderInfo = {\n  id: 'injected',\n  name: 'Safe',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/safe.svg',\n  type: 'injected',\n  check: 'isSafe',\n};\n\nexport const NIFTY: IProviderInfo = {\n  id: 'injected',\n  name: 'Nifty',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/niftyWallet.png',\n  type: 'injected',\n  check: 'isNiftyWallet',\n};\n\nexport const DAPPER: IProviderInfo = {\n  id: 'injected',\n  name: 'Dapper',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/dapper.png',\n  type: 'injected',\n  check: 'isDapper',\n};\n\nexport const OPERA: IProviderInfo = {\n  id: 'injected',\n  name: 'Opera',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/opera.svg',\n  type: 'injected',\n  check: 'isOpera',\n};\n\nexport const TRUST: IProviderInfo = {\n  id: 'injected',\n  name: 'Trust',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/trust.svg',\n  type: 'injected',\n  check: 'isTrust',\n};\n\nexport const COINBASE: IProviderInfo = {\n  id: 'injected',\n  name: 'Coinbase',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/coinbase.svg',\n  type: 'injected',\n  check: 'isToshi',\n};\n\nexport const CIPHER: IProviderInfo = {\n  id: 'injected',\n  name: 'Cipher',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/cipher.svg',\n  type: 'injected',\n  check: 'isCipher',\n};\n\nexport const IMTOKEN: IProviderInfo = {\n  id: 'injected',\n  name: 'imToken',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/imtoken.svg',\n  type: 'injected',\n  check: 'isImToken',\n};\n\nexport const STATUS: IProviderInfo = {\n  id: 'injected',\n  name: 'Status',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/status.svg',\n  type: 'injected',\n  check: 'isStatus',\n};\n\nexport const TOKENARY: IProviderInfo = {\n  id: 'injected',\n  name: 'Tokenary',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/tokenary.png',\n  type: 'injected',\n  check: 'isTokenary',\n};\n","import { IProviderInfo } from '../../helpers';\n\nexport * from '../injected';\n\nexport const WALLETCONNECT: IProviderInfo = {\n  id: 'walletconnect',\n  name: 'WalletConnect',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/walletconnect-circle.svg',\n  type: 'qrcode',\n  check: 'isWalletConnect',\n  package: {\n    required: [['infuraId', 'rpc']],\n  },\n};\n\nexport const WALLETLINK: IProviderInfo = {\n  id: 'walletlink',\n  name: 'Coinbase',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/coinbase.svg',\n  type: 'qrcode',\n  check: 'isWalletLink',\n  package: {\n    required: ['infuraUrl'],\n  },\n};\n\nexport const PORTIS: IProviderInfo = {\n  id: 'portis',\n  name: 'Portis',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/portis.svg',\n  type: 'web',\n  check: 'isPortis',\n  package: {\n    required: ['id'],\n  },\n};\n\nexport const FORTMATIC: IProviderInfo = {\n  id: 'fortmatic',\n  name: 'Fortmatic',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/fortmatic.svg',\n  type: 'web',\n  check: 'isFortmatic',\n  package: {\n    required: ['key'],\n  },\n};\n\nexport const SQUARELINK: IProviderInfo = {\n  id: 'squarelink',\n  name: 'Squarelink',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/squarelink.svg',\n  type: 'web',\n  check: 'isSquarelink',\n  package: {\n    required: ['id'],\n  },\n};\n\nexport const TORUS: IProviderInfo = {\n  id: 'torus',\n  name: 'Torus',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/torus.svg',\n  type: 'web',\n  check: 'isTorus',\n};\n\nexport const ARKANE: IProviderInfo = {\n  id: 'arkane',\n  name: 'Arkane',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/arkane.svg',\n  type: 'web',\n  check: 'isArkane',\n  package: {\n    required: ['clientId'],\n  },\n};\n\nexport const AUTHEREUM: IProviderInfo = {\n  id: 'authereum',\n  name: 'Authereum',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/authereum.svg',\n  type: 'web',\n  check: 'isAuthereum',\n};\n\nexport const BURNERCONNECT: IProviderInfo = {\n  id: 'burnerconnect',\n  name: 'Burner Connect',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/burnerwallet.png',\n  type: 'web',\n  check: 'isBurnerProvider',\n};\n\nexport const UNILOGIN: IProviderInfo = {\n  id: 'unilogin',\n  name: 'UniLogin',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/unilogin.svg',\n  check: 'isUniLogin',\n  type: 'web',\n};\n\nexport const MEWCONNECT: IProviderInfo = {\n  id: 'mewconnect',\n  name: 'MEW wallet',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/mewwallet.png',\n  type: 'qrcode',\n  check: 'isMEWconnect',\n  package: {\n    required: [['infuraId', 'rpc']],\n  },\n};\n\nexport const DCENT: IProviderInfo = {\n  id: 'dcentwallet',\n  name: \"D'CENT\",\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/dcentwallet.png',\n  type: 'hardware',\n  check: 'isDcentWallet',\n  package: {\n    required: ['rpcUrl'],\n  },\n};\n\nexport const BITSKI: IProviderInfo = {\n  id: 'bitski',\n  name: 'Bitski',\n  logo: 'https://cdn-assets.minds.com/web3modal-assets/bitski.svg',\n  type: 'web',\n  check: 'isBitski',\n  package: {\n    required: ['clientId', 'callbackUrl'],\n  },\n};\n","import * as list from '../providers';\nimport { CACHED_PROVIDER_KEY, CONNECT_EVENT, ERROR_EVENT, INJECTED_PROVIDER_ID } from '../constants';\nimport {\n  filterMatches,\n  findMatchingRequiredOptions,\n  getInjectedProvider,\n  getLocal,\n  getProviderDescription,\n  getProviderInfoById,\n  IProviderControllerOptions,\n  IProviderDisplayWithConnector,\n  IProviderInfo,\n  IProviderOptions,\n  IProviderUserOptions,\n  isMobile,\n  removeLocal,\n  setLocal,\n} from '../helpers';\nimport { EventController } from './events';\n\nexport class ProviderController {\n  public cachedProvider: string = '';\n  public shouldCacheProvider: boolean = false;\n  public disableInjectedProvider: boolean = false;\n\n  private eventController: EventController = new EventController();\n  private injectedProvider: IProviderInfo | null = null;\n  private providers: IProviderDisplayWithConnector[] = [];\n  private providerOptions: IProviderOptions;\n  private network: string = '';\n\n  constructor(opts: IProviderControllerOptions) {\n    this.cachedProvider = getLocal(CACHED_PROVIDER_KEY) || '';\n\n    this.disableInjectedProvider = opts.disableInjectedProvider;\n    this.shouldCacheProvider = opts.cacheProvider;\n    this.providerOptions = opts.providerOptions;\n    this.network = opts.network;\n\n    this.injectedProvider = getInjectedProvider();\n\n    this.providers = Object.keys(list.connectors).map((id: string) => {\n      let providerInfo: IProviderInfo;\n      if (id === INJECTED_PROVIDER_ID) {\n        providerInfo = this.injectedProvider || list.providers.FALLBACK;\n      } else {\n        providerInfo = getProviderInfoById(id);\n      }\n      // parse custom display options\n      if (this.providerOptions[id]) {\n        const options = this.providerOptions[id];\n        if (typeof options.display !== 'undefined') {\n          providerInfo = {\n            ...providerInfo,\n            ...this.providerOptions[id].display,\n          };\n        }\n      }\n      return {\n        ...providerInfo,\n        connector: list.connectors[id],\n        package: providerInfo.package,\n      };\n    });\n    // parse custom providers\n    Object.keys(this.providerOptions)\n      .filter(key => key.startsWith('custom-'))\n      .map(id => {\n        if (id && this.providerOptions[id]) {\n          const options = this.providerOptions[id];\n          if (\n            typeof options.display !== 'undefined' &&\n            typeof options.connector !== 'undefined'\n          ) {\n            this.providers.push({\n              ...list.providers.FALLBACK,\n              id,\n              ...options.display,\n              connector: options.connector,\n            });\n          }\n        }\n      });\n  }\n\n  public shouldDisplayProvider(id: string) {\n    const provider = this.getProvider(id);\n    if (typeof provider !== 'undefined') {\n      const providerPackageOptions = this.providerOptions[id];\n      if (providerPackageOptions) {\n        const isProvided = !!providerPackageOptions.package;\n        if (isProvided) {\n          const requiredOptions = provider.package\n            ? provider.package.required\n            : undefined;\n          if (requiredOptions && requiredOptions.length) {\n            const providedOptions = providerPackageOptions.options;\n            if (providedOptions && Object.keys(providedOptions).length) {\n              const matches = findMatchingRequiredOptions(\n                requiredOptions,\n                providedOptions\n              );\n              if (requiredOptions.length === matches.length) {\n                return true;\n              }\n            }\n          } else {\n            return true;\n          }\n        }\n      }\n    }\n    return false;\n  }\n\n  public getUserOptions = () => {\n    const mobile = isMobile();\n    const defaultProviderList = this.providers.map(({ id }) => id);\n\n    const displayInjected =\n      !!this.injectedProvider && !this.disableInjectedProvider;\n    const onlyInjected = displayInjected && mobile;\n\n    const providerList = [];\n\n    if (onlyInjected) {\n      providerList.push(INJECTED_PROVIDER_ID);\n    } else {\n      if (displayInjected) {\n        providerList.push(INJECTED_PROVIDER_ID);\n      }\n\n      defaultProviderList.forEach((id: string) => {\n        if (id !== INJECTED_PROVIDER_ID) {\n          const result = this.shouldDisplayProvider(id);\n          if (result) {\n            providerList.push(id);\n          }\n        }\n      });\n    }\n\n    const userOptions: IProviderUserOptions[] = [];\n\n    providerList.forEach((id: string) => {\n      let provider = this.getProvider(id);\n      if (typeof provider !== 'undefined') {\n        let { id, name, logo, connector } = provider;\n\n        // replace logo with configuration set logo, use default as fallback.\n        logo = this.providerOptions[id]?.logoUrl ?? logo;\n        userOptions.push({\n          name,\n          logo,\n          description: getProviderDescription(provider),\n          onClick: () => this.connectTo(id, connector),\n        });\n      }\n    });\n\n    return userOptions;\n  };\n\n  public getProvider(id: string) {\n    return filterMatches<IProviderDisplayWithConnector>(\n      this.providers,\n      x => x.id === id,\n      undefined\n    );\n  }\n\n  public getProviderOption(id: string, key: string) {\n    return this.providerOptions &&\n      this.providerOptions[id] &&\n      this.providerOptions[id][key]\n      ? this.providerOptions[id][key]\n      : {};\n  }\n\n  public clearCachedProvider() {\n    this.cachedProvider = '';\n    removeLocal(CACHED_PROVIDER_KEY);\n  }\n\n  public setCachedProvider(id: string) {\n    this.cachedProvider = id;\n    setLocal(CACHED_PROVIDER_KEY, id);\n  }\n\n  public connectTo = async (\n    id: string,\n    connector: (providerPackage: any, opts: any) => Promise<any>\n  ) => {\n    try {\n      const providerPackage = this.getProviderOption(id, 'package');\n      const providerOptions = this.getProviderOption(id, 'options');\n      const opts = { network: this.network || undefined, ...providerOptions };\n      const provider = await connector(providerPackage, opts);\n      this.eventController.trigger(CONNECT_EVENT, provider);\n      if (this.shouldCacheProvider && this.cachedProvider !== id) {\n        this.setCachedProvider(id);\n      }\n    } catch (error) {\n      this.eventController.trigger(ERROR_EVENT);\n    }\n  };\n\n  public async connectToCachedProvider() {\n    const provider = this.getProvider(this.cachedProvider);\n    if (typeof provider !== 'undefined') {\n      await this.connectTo(provider.id, provider.connector);\n    }\n  }\n\n  public on(event: string, callback: (result: any) => void): () => void {\n    this.eventController.on({\n      event,\n      callback,\n    });\n\n    return () =>\n      this.eventController.off({\n        event,\n        callback,\n      });\n  }\n\n  public off(event: string, callback?: (result: any) => void): void {\n    this.eventController.off({\n      event,\n      callback,\n    });\n  }\n}\n","import { IProviderControllerOptions, IProviderUserOptions, ProviderController } from '..';\n\nexport class Web3WalletConnector {\n  public providers: IProviderUserOptions[] = [];\n  public providerController: ProviderController;\n\n  constructor(configOptions?: IProviderControllerOptions) {\n    if (!configOptions) {\n      this.providerController = new ProviderController({\n        disableInjectedProvider: false,\n        cacheProvider: false,\n        providerOptions: {},\n        network: \"\",\n      });\n    } else {\n      this.providerController = new ProviderController(configOptions);\n    }\n\n    this.providers = this.providerController.getUserOptions()\n  }\n\n  get cachedProvider(): string {\n    return this.providerController.cachedProvider;\n  }\n\n  setConfiguration = (options: IProviderControllerOptions): void => {\n    this.providerController = new ProviderController(options);\n    this.clearCachedProvider();\n\n    this.providers = this.providerController.getUserOptions();\n  };\n\n  async checkIfCachedProviderOrSingleOption(): Promise<void> {\n    if (this.cachedProvider) {\n      await this.providerController.connectToCachedProvider();\n      return;\n    }\n    if (\n      this.providers &&\n      this.providers.length === 1 &&\n      this.providers[0].name\n    ) {\n      await this.providers[0].onClick();\n      return;\n    }\n  }\n\n  clearCachedProvider(): void {\n    this.providerController.clearCachedProvider();\n  }\n\n  setCachedProvider(id: string): void {\n    this.providerController.setCachedProvider(id);\n  }\n}\n","import { EventEmitter, Injectable, Optional } from '@angular/core';\nimport { CONNECT_EVENT, ERROR_EVENT, IProviderControllerOptions, IProviderUserOptions, Web3WalletConnector } from '../web3modal-ts/src';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class Web3ModalService {\n  private web3WalletConnector: Web3WalletConnector\n\n  public shouldOpen: EventEmitter<boolean> = new EventEmitter();\n  public providers: EventEmitter<IProviderUserOptions[]> = new EventEmitter();\n\n  constructor (@Optional() configOptions?: IProviderControllerOptions) {\n    this.web3WalletConnector = new Web3WalletConnector(configOptions)\n  }\n\n  async open() {\n    this.providers.next(this.web3WalletConnector.providers)\n\n    return await new Promise((resolve, reject) => {\n      this.web3WalletConnector.providerController.on(CONNECT_EVENT, provider => {\n        resolve(provider);\n      });\n\n      this.web3WalletConnector.providerController.on(ERROR_EVENT, error => {\n        reject(error);\n      });\n\n      this.shouldOpen.next(true)\n\n      this.shouldOpen.pipe(take(1)).subscribe({\n        next: (open) => {\n          if (!open) {\n            reject('Dismissed modal');\n          }\n        }\n      })\n    }).finally(() => {\n      this.close()\n    })\n  }\n\n  setConfiguration(options: IProviderControllerOptions) {\n    this.web3WalletConnector.setConfiguration(options)\n  }\n\n  clearCachedProvider(): void {\n    this.web3WalletConnector.providerController.clearCachedProvider();\n  }\n\n  setCachedProvider(id: string): void {\n    this.web3WalletConnector.providerController.setCachedProvider(id);\n  }\n\n  close() {\n    this.shouldOpen.next(false)\n  }\n}\n","import { Component, EventEmitter, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'm-modal',\n  host: {\n    '[hidden]': 'hidden',\n  },\n  inputs: ['open', 'allowClose'],\n  outputs: ['closed'],\n  styleUrls: ['./modal.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  templateUrl: './modal.component.html',\n})\nexport class Modal {\n  allowClose: boolean = true;\n  hidden: boolean = true;\n  closed: EventEmitter<any> = new EventEmitter();\n\n  set _hidden(value: boolean) {\n    this.hidden = value;\n  }\n\n  set open(value: boolean) {\n    this.hidden = !value;\n  }\n\n  close(event) {\n    if (!this.allowClose) return;\n\n    this.hidden = !this.hidden;\n    this.closed.next(true);\n    event.stopPropagation();\n  }\n}\n","<div class=\"m-modal-bg\" (click)=\"close($event)\"></div>\n<div class=\"m-modal-container\">\n  <ng-content></ng-content>\n</div>","import { Component } from '@angular/core';\n\n/**\n * Component wrapper for Metamask logo SVG.\n */\n@Component({\n  selector: 'm-web3-modal-metamask-logo',\n  template: `\n    <svg width=\"345px\" height=\"322px\" viewBox=\"0 0 345 322\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n        <!-- Generator: Sketch 48.2 (47327) - http://www.bohemiancoding.com/sketch -->\n        <title>metamask</title>\n        <desc>Created with Sketch.</desc>\n        <defs></defs>\n        <g id=\"metamask\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n            <g fill-rule=\"nonzero\" id=\"Shape\">\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"125.609336 54.7652595 214.004731 52.4943349 190.464604 99.3115951\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"190.464604 99.3115951 141.18833 100.253458 125.609336 54.7652595\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"141.18833 100.253458 18.3981091 10.6018951 125.609336 54.7652595\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"71.4163573 141.226234 15.4535146 127.296088 12.6090885 114.4584\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"17.187184 142.752141 15.4535146 127.296088 71.4163573 141.226234\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"17.187184 142.752141 71.4163573 141.226234 24.7516021 165.079784\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"24.7516021 165.079784 71.4163573 141.226234 93.8508404 145.045596\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"71.3609734 70.3102307 71.4163573 141.226234 12.6090885 114.4584\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"93.8508404 145.045596 71.4163573 141.226234 71.3609734 70.3102307\"></polygon>\n                <polygon stroke=\"#E2761B\" fill=\"#E2761B\" points=\"118.836084 279.399985 19.5398793 317.895193 92.5830263 289.102142\"></polygon>\n                <polygon stroke=\"#E2761B\" fill=\"#E2761B\" points=\"92.5830263 289.102142 113.53989 279.852373 118.836084 279.399985\"></polygon>\n                <polygon stroke=\"#E2761B\" fill=\"#E2761B\" points=\"315.42735 0.938069582 190.464604 99.3115951 214.004731 52.4943349\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"5.30887973 119.190961 12.6090885 114.4584 15.4535146 127.296088\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"17.187184 142.752141 7.16155177 133.026086 15.4535146 127.296088\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"92.5830263 289.102142 19.5398793 317.895193 0.492086977 239.803694\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"12.6090885 114.4584 2.68213692 60.7724764 71.3609734 70.3102307\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"269.169992 138.581129 328.878431 108.955677 325.724354 122.481291\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"24.7516021 165.079784 10.3994778 147.108352 17.187184 142.752141\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"323.656824 138.68867 269.169992 138.581129 325.724354 122.481291\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"323.656824 138.68867 315.532189 162.174839 269.169992 138.581129\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"315.532189 162.174839 242.896561 143.14059 269.169992 138.581129\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"328.878431 108.955677 269.169992 138.581129 263.485955 65.7680278\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"263.485955 65.7680278 269.169992 138.581129 242.896561 143.14059\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"68.2087529 169.187957 0.492086977 239.803694 24.7516021 165.079784\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"0.492086977 239.803694 56.3767556 230.10087 92.5830263 289.102142\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"56.3767556 230.10087 0.492086977 239.803694 68.2087529 169.187957\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"71.3609734 70.3102307 141.18833 100.253458 93.8508404 145.045596\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"24.7516021 165.079784 93.8508404 145.045596 68.2087529 169.187957\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"242.896561 143.14059 190.464604 99.3115951 263.485955 65.7680278\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"71.3609734 70.3102307 2.68213692 60.7724764 18.3981091 10.6018951\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"18.3981091 10.6018951 141.18833 100.253458 71.3609734 70.3102307\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"140.88318 168.733865 68.2087529 169.187957 93.8508404 145.045596\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"93.8508404 145.045596 141.18833 100.253458 140.88318 168.733865\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"344.727811 240.11481 325.429154 321.655026 238.639247 290.271545\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"336.26476 113.655491 325.724354 122.481291 328.878431 108.955677\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"323.656824 138.68867 325.724354 122.481291 334.094917 128.220305\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"315.532189 162.174839 260.670709 167.391844 242.896561 143.14059\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"263.485955 65.7680278 336.615736 52.3326676 328.878431 108.955677\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"315.532189 162.174839 323.656824 138.68867 330.504654 143.063544\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"181.987685 168.351586 190.464604 99.3115951 242.896561 143.14059\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"242.896561 143.14059 260.670709 167.391844 181.987685 168.351586\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"260.670709 167.391844 315.532189 162.174839 344.727811 240.11481\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"260.670709 167.391844 344.727811 240.11481 272.609651 229.990332\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"238.639247 290.271545 272.609651 229.990332 344.727811 240.11481\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"263.485955 65.7680278 190.464604 99.3115951 315.42735 0.938069582\"></polygon>\n                <polygon stroke=\"#763D16\" fill=\"#763D16\" points=\"315.42735 0.938069582 336.615736 52.3326676 263.485955 65.7680278\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"181.987685 168.351586 140.88318 168.733865 141.18833 100.253458\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"141.18833 100.253458 190.464604 99.3115951 181.987685 168.351586\"></polygon>\n                <polygon stroke=\"#CD6116\" fill=\"#CD6116\" points=\"92.5830263 289.102142 56.3767556 230.10087 96.3807076 227.871326\"></polygon>\n                <polygon stroke=\"#CD6116\" fill=\"#CD6116\" points=\"96.370437 197.713078 68.2087529 169.187957 140.88318 168.733865\"></polygon>\n                <polygon stroke=\"#E4751F\" fill=\"#E4751F\" points=\"68.2087529 169.187957 96.370437 197.713078 96.3807076 227.871326\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"68.2087529 169.187957 96.3807076 227.871326 56.3767556 230.10087\"></polygon>\n                <polygon stroke=\"#CD6116\" fill=\"#CD6116\" points=\"238.639247 290.271545 227.324291 227.762661 272.609651 229.990332\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"104.934637 297.503234 92.5830263 289.102142 124.671835 291.090408\"></polygon>\n                <polygon stroke=\"#CD6116\" fill=\"#CD6116\" points=\"181.987685 168.351586 260.670709 167.391844 228.590352 197.028192\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"272.609651 229.990332 227.324291 227.762661 260.670709 167.391844\"></polygon>\n                <polygon stroke=\"#E4751F\" fill=\"#E4751F\" points=\"260.670709 167.391844 227.324291 227.762661 228.590352 197.028192\"></polygon>\n                <polygon stroke=\"#CD6116\" fill=\"#CD6116\" points=\"140.88318 168.733865 122.978916 184.909564 96.370437 197.713078\"></polygon>\n                <polygon stroke=\"#D7C1B3\" fill=\"#D7C1B3\" points=\"122.23049 273.872494 124.671835 291.090408 92.5830263 289.102142\"></polygon>\n                <polygon stroke=\"#D7C1B3\" fill=\"#D7C1B3\" points=\"92.5830263 289.102142 125.800388 242.170799 122.23049 273.872494\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"125.800388 242.170799 92.5830263 289.102142 96.3807076 227.871326\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"96.3807076 227.871326 96.370437 197.713078 132.872444 206.620434\"></polygon>\n                <polygon stroke=\"#233447\" fill=\"#233447\" points=\"132.872444 206.620434 96.370437 197.713078 122.978916 184.909564\"></polygon>\n                <polygon stroke=\"#CD6116\" fill=\"#CD6116\" points=\"122.978916 184.909564 140.88318 168.733865 132.872444 206.620434\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"183.108489 291.572819 238.639247 290.271545 220.687379 298.568451\"></polygon>\n                <polygon stroke=\"#CD6116\" fill=\"#CD6116\" points=\"228.590352 197.028192 200.763528 184.365085 181.987685 168.351586\"></polygon>\n                <polygon stroke=\"#E4751F\" fill=\"#E4751F\" points=\"132.872444 206.620434 140.88318 168.733865 140.75901 190.323956\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"140.75901 190.323956 140.88318 168.733865 181.987685 168.351586\"></polygon>\n                <polygon stroke=\"#D7C1B3\" fill=\"#D7C1B3\" points=\"181.151849 274.213279 238.639247 290.271545 183.108489 291.572819\"></polygon>\n                <polygon stroke=\"#CD6116\" fill=\"#CD6116\" points=\"200.763528 184.365085 188.435181 206.405145 181.987685 168.351586\"></polygon>\n                <polygon stroke=\"#233447\" fill=\"#233447\" points=\"188.435181 206.405145 200.763528 184.365085 228.590352 197.028192\"></polygon>\n                <polygon stroke=\"#E4761B\" fill=\"#E4761B\" points=\"177.024604 242.233677 227.324291 227.762661 238.639247 290.271545\"></polygon>\n                <polygon stroke=\"#D7C1B3\" fill=\"#D7C1B3\" points=\"238.639247 290.271545 181.151849 274.213279 177.024604 242.233677\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"227.324291 227.762661 188.435181 206.405145 228.590352 197.028192\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"181.987685 168.351586 178.618729 190.089 140.75901 190.323956\"></polygon>\n                <polygon stroke=\"#E2761B\" fill=\"#E2761B\" points=\"188.435181 206.405145 178.618729 190.089 181.987685 168.351586\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"124.671835 291.090408 126.647198 303.896082 104.934637 297.503234\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"220.687379 298.568451 180.02279 304.43475 183.108489 291.572819\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"125.800388 242.170799 96.3807076 227.871326 132.872444 206.620434\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"132.872444 206.620434 132.389686 237.559341 125.800388 242.170799\"></polygon>\n                <polygon stroke=\"#E4751F\" fill=\"#E4751F\" points=\"140.75901 190.323956 132.389686 237.559341 132.872444 206.620434\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"188.435181 206.405145 227.324291 227.762661 177.024604 242.233677\"></polygon>\n                <polygon stroke=\"#E4751F\" fill=\"#E4751F\" points=\"178.618729 190.089 188.435181 206.405145 170.381038 237.580791\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"177.024604 242.233677 170.381038 237.580791 188.435181 206.405145\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"140.75901 190.323956 178.618729 190.089 170.381038 237.580791\"></polygon>\n                <polygon stroke=\"#F6851B\" fill=\"#F6851B\" points=\"170.381038 237.580791 132.389686 237.559341 140.75901 190.323956\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"126.647198 303.896082 124.671835 291.090408 122.23049 273.872494\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"181.151849 274.213279 183.108489 291.572819 180.02279 304.43475\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"122.23049 273.872494 124.598522 268.830707 126.647198 303.896082\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"176.647572 269.09395 180.02279 304.43475 126.647198 303.896082\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"126.647198 303.896082 124.598522 268.830707 176.647572 269.09395\"></polygon>\n                <polygon stroke=\"#C0AD9E\" fill=\"#C0AD9E\" points=\"180.02279 304.43475 176.647572 269.09395 181.151849 274.213279\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"124.598522 268.830707 122.23049 273.872494 125.800388 242.170799\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"125.800388 242.170799 132.389686 237.559341 129.905717 240.180259\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"129.905717 240.180259 125.67841 244.96466 125.800388 242.170799\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"125.800388 242.170799 125.67841 244.96466 124.598522 268.830707\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"129.905717 240.180259 132.389686 237.559341 170.381038 237.580791\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"177.024604 242.233677 181.151849 274.213279 176.647572 269.09395\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"168.611729 240.216686 170.381038 237.580791 177.024604 242.233677\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"170.381038 237.580791 168.611729 240.216686 129.905717 240.180259\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"176.647572 269.09395 172.856575 245.041504 177.024604 242.233677\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"177.024604 242.233677 172.856575 245.041504 168.611729 240.216686\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"176.647572 269.09395 124.598522 268.830707 125.67841 244.96466\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"125.67841 244.96466 172.856575 245.041504 176.647572 269.09395\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"125.67841 244.96466 129.905717 240.180259 168.611729 240.216686\"></polygon>\n                <polygon stroke=\"#161616\" fill=\"#161616\" points=\"168.611729 240.216686 172.856575 245.041504 125.67841 244.96466\"></polygon>\n            </g>\n        </g>\n    </svg>\n  `\n})\nexport class Web3ModalMetamaskLogoComponent { }\n","import { Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IProviderUserOptions } from '../web3modal-ts/src';\nimport { Web3ModalService } from './web3-modal.service';\n\n@Component({\n  selector: 'm-web3-modal',\n  templateUrl: 'web3-modal.component.html',\n  styleUrls: ['./web3-modal.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class Web3ModalComponent implements OnInit, OnDestroy {\n  open = false;\n  providers: IProviderUserOptions[] = [];\n  showMetamaskDownload: boolean;\n\n  private openSubscription: Subscription;\n  private providersSubscription: Subscription;\n  private readonly metamaskShopURL = 'https://metamask.io/download.html';\n\n  @Input() title: string;\n  @Input() description?: string;\n  @Input() descriptionGray?: string;\n  @Input() dismissText?: string;\n  @Input() promptMetamaskIfNotInstalled = false;\n\n  constructor(private service: Web3ModalService) {}\n\n  ngOnInit(): void {\n    this.openSubscription = this.service.shouldOpen.subscribe({\n      next: (open: boolean) => {\n        this.open = open;\n      },\n    });\n\n    this.providersSubscription = this.service.providers.subscribe({\n      next: (providers: IProviderUserOptions[]) => {\n        this.showMetamaskDownload =\n          this.promptMetamaskIfNotInstalled &&\n          !this.isMetamaskInProviders(providers);\n        this.providers = providers;\n      },\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.openSubscription.unsubscribe();\n    this.providersSubscription.unsubscribe();\n  }\n\n  close(): void {\n    this.service.close();\n  }\n\n  private isMetamaskInProviders(providers: IProviderUserOptions[]): boolean {\n    return providers.some((p) => p.name.toLowerCase() === 'metamask');\n  }\n\n  private openMetamaskDownloadPage(): void {\n    window.open(this.metamaskShopURL, '_blank');\n  }\n}\n","<m-modal [open]=\"open\" (closed)=\"close()\">\n  <div class=\"m-web3Modal\">\n    <div class=\"m-web3Modal__header\">\n      <h3 class=\"m-web3ModalHeader__title\">\n        {{ title }}\n      </h3>\n      <div class=\"m-web3ModalHeader__description\">\n        <p class=\"m-web3ModalHeader__text\">\n          {{ description }}\n        </p>\n        <p\n          class=\"m-web3ModalHeader__text--gray m-web3ModalHeader__text\"\n        >\n          {{ descriptionGray }}\n        </p>\n      </div>\n    </div>\n    <div class=\"m-web3Modal__body\">\n      <div class=\"m-web3ModalBody__provider\">\n        <div\n          class=\"m-web3ModalProvider__body\"\n          *ngIf=\"providers && showMetamaskDownload\"\n          (click)=\"openMetamaskDownloadPage()\"\n        >\n          <div class=\"m-web3ModalProviderBody__icon--custom\">\n            <m-web3-modal-metamask-logo></m-web3-modal-metamask-logo>\n          </div>\n          <div class=\"m-web3ModalProviderBody__name\">MetaMask</div>\n        </div>\n        <div\n          class=\"m-web3ModalProvider__body\"\n          *ngFor=\"let provider of providers\"\n          (click)=\"provider.onClick()\"\n        >\n          <div class=\"m-web3ModalProviderBody__icon\">\n            <img [src]=\"provider.logo\" [alt]=\"provider.logo\" />\n          </div>\n          <div class=\"m-web3ModalProviderBody__name\">\n            {{ provider.name }}\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"m-web3Modal__footer\">\n      <div class=\"m-web3ModalFooter__description\">\n        <p class=\"m-web3ModalFooter__text\" (click)=\"close()\">\n          {{ dismissText }}\n        </p>\n      </div>\n    </div>\n  </div>\n</m-modal>\n","import { CommonModule as NgCommonModule } from '@angular/common';\nimport {\n  NgModule,\n} from '@angular/core';\nimport { Modal } from '../modal/modal.component';\nimport { Web3ModalMetamaskLogoComponent } from './web3-modal-metamask-logo.component';\nimport { Web3ModalComponent } from './web3-modal.component';\n\n@NgModule({\n  imports: [NgCommonModule],\n  declarations: [Modal, Web3ModalComponent, Web3ModalMetamaskLogoComponent],\n  exports: [Web3ModalComponent],\n})\nexport class Web3ModalModule { }\n","/*\n * Public API Surface of web3modal\n */\n\nexport * from './lib/web3-modal/web3-modal.service';\nexport * from './lib/web3-modal/web3-modal.component';\nexport * from './lib/web3-modal/web3-modal.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["injected.OPERA","injected.FALLBACK","providers.FALLBACK","injected.METAMASK","injected.CIPHER","list.connectors","list.providers.FALLBACK","i1.Web3ModalService","i3.Modal","i4.Web3ModalMetamaskLogoComponent","NgCommonModule"],"mappings":"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"}