{"version":3,"file":"web3-connect.mjs","sources":["../../../src/core/src/icons/b-ee-icon.ts","../../../src/core/src/icons/poweredByB-EE.ts","../../../src/core/src/icons/ethereum.ts","../../../src/core/src/icons/polygon.ts","../../../src/core/src/icons/binance.ts","../../../src/core/src/icons/fantom.ts","../../../src/core/src/icons/optimism.ts","../../../src/core/src/icons/avalanche.ts","../../../src/core/src/icons/celo.ts","../../../src/core/src/icons/gnosis.ts","../../../src/core/src/icons/harmony-one.ts","../../../src/core/src/icons/arbitrum.ts","../../../src/core/src/icons/base.ts","../../../src/core/src/icons/hourglass.ts","../../../src/core/src/icons/question.ts","../../../src/core/src/icons/checkmark.ts","../../../src/core/src/icons/error.ts","../../../src/core/src/icons/info.ts","../../../src/core/src/icons/caret.ts","../../../src/core/src/icons/warning.ts","../../../src/core/src/icons/success.ts","../../../src/core/src/icons/pending.ts","../../../src/core/src/icons/plus-circle.ts","../../../src/core/src/icons/arrow-forward.ts","../../../src/core/src/icons/close.ts","../../../src/core/src/icons/close-circle.ts","../../../src/core/src/icons/elipsis.ts","../../../src/core/src/icons/index.ts","../../../src/core/src/utils.ts","../../../src/core/src/configuration.ts","../../../src/common/errors.ts","../../../src/common/eip-1193.ts","../../../src/common/fonts.ts","../../../src/common/utils.ts","../../../src/common/types.ts","../../../src/common/validation.ts","../../../src/core/src/validation.ts","../../../src/core/src/constants.ts","../../../src/core/src/store/constants.ts","../../../src/core/src/store/index.ts","../../../src/core/src/streams.ts","../../../src/core/src/themes.ts","../../../src/core/src/store/actions.ts","../../../src/core/src/provider.ts","../../../src/core/src/update-balances.ts","../../../src/core/src/notify.ts","../../../src/core/src/services.ts","../../../src/core/src/disconnect.ts","../../../src/core/src/destroyable.base.ts","../../../src/core/src/locales.ts","../../../src/core/src/views/connect-components/agreement/agreement.component.ts","../../../src/core/src/views/connect-components/agreement/agreement.component.html","../../../src/core/src/views/shared/web3-connect-svg/web3-connect-svg.component.ts","../../../src/core/src/views/shared/web3-connect-svg/web3-connect-svg.component.html","../../../src/core/src/views/shared/web3-connect-spinner/web3-connect-spinner.component.ts","../../../src/core/src/views/shared/web3-connect-spinner/web3-connect-spinner.component.html","../../../src/core/src/views/shared/web3-connect-badge/web3-connect-badge.component.ts","../../../src/core/src/views/shared/web3-connect-badge/web3-connect-badge.component.html","../../../src/core/src/views/connect-components/wallet-button/wallet-button.component.ts","../../../src/core/src/views/connect-components/wallet-button/wallet-button.component.html","../../../src/core/src/views/connect-components/install-wallet/install-wallet.component.ts","../../../src/core/src/views/connect-components/install-wallet/install-wallet.component.html","../../../src/core/src/views/shared/web3-connect-warning/web3-connect-warning.component.ts","../../../src/core/src/views/shared/web3-connect-warning/web3-connect-warning.component.html","../../../src/core/src/views/connect-components/selecting-wallet/selecting-wallet.component.ts","../../../src/core/src/views/connect-components/selecting-wallet/selecting-wallet.component.html","../../../src/core/src/views/connect-components/connecting-wallet/connecting-wallet.component.ts","../../../src/core/src/views/connect-components/connecting-wallet/connecting-wallet.component.html","../../../src/core/src/views/connect-components/connected-wallet/connected-wallet.component.ts","../../../src/core/src/views/connect-components/connected-wallet/connected-wallet.component.html","../../../src/core/src/views/connect-components/connect/connect.component.ts","../../../src/core/src/views/connect-components/connect/connect.component.html","../../../src/core/src/views/notify-components/notification-content/notification-content.component.ts","../../../src/core/src/views/notify-components/notification-content/notification-content.component.html","../../../src/core/src/views/notify-components/notification-chain/notification-chain.component.ts","../../../src/core/src/views/notify-components/notification-chain/notification-chain.component.html","../../../src/core/src/views/notify-components/notification-status/notification-status.component.ts","../../../src/core/src/views/notify-components/notification-status/notification-status.component.html","../../../src/core/src/views/notify-components/notification/notification.component.ts","../../../src/core/src/views/notify-components/notification/notification.component.html","../../../src/core/src/views/notify-components/notify/notify.component.ts","../../../src/core/src/views/notify-components/notify/notify.component.html","../../../src/core/src/views/notify-components/notification-timer/notification-timer.component.ts","../../../src/core/src/views/notify-components/notification-timer/notification-timer.component.html","../../../src/core/src/chain.ts","../../../src/core/src/views/shared/web3-connect-network-select/web3-connect-network-select.component.ts","../../../src/core/src/views/shared/web3-connect-network-select/web3-connect-network-select.component.html","../../../src/core/src/views/account-center-components/account-center-min/account-center-min.component.ts","../../../src/core/src/views/account-center-components/account-center-min/account-center-min.component.html","../../../src/core/src/connect.ts","../../../src/core/src/views/account-center-components/account-center-wallet/account-center-wallet.component.ts","../../../src/core/src/views/account-center-components/account-center-wallet/account-center-wallet.component.html","../../../src/core/src/views/account-center-components/account-center-max/click-outside.directive.ts","../../../src/core/src/types.ts","../../../src/core/src/timeout-cache.ts","../../../src/core/src/balances-contract.ts","../../../src/core/src/views/token-list/token-list.service.ts","../../../src/core/src/views/token-list/token-list.component.ts","../../../src/core/src/views/token-list/token-list.component.html","../../../src/core/src/views/account-center-components/account-center-max/account-center-max.component.ts","../../../src/core/src/views/account-center-components/account-center-max/account-center-max.component.html","../../../src/core/src/views/account-center-components/account-center/account-center.component.ts","../../../src/core/src/views/account-center-components/account-center/account-center.component.html","../../../src/core/src/views/web3-connect.component.ts","../../../src/core/src/views/web3-connect.component.html","../../../src/core/src/views/web3-connect.module.ts","../../../src/wallets/injected/types.ts","../../../src/wallets/injected/wallets.ts","../../../src/wallets/injected/validation.ts","../../../src/wallets/injected/helpers.ts","../../../src/wallets/injected/index.ts","../../../src/wallets/trust/index.ts","../../../src/wallets/walletconnect/v1.ts","../../../src/wallets/walletconnect/v2.ts","../../../src/wallets/walletconnect/index.ts","../../../src/wallets/coinbase/index.ts","../../../src/wallets/ledger/index.ts","../../../src/wallets/tallyho/index.ts","../../../src/wallets/cede-store/index.ts","../../../src/wallets/xdefi/index.ts","../../../src/wallets/sequence/index.ts","../../../src/wallets/fortmatic/index.ts","../../../src/wallets/portis/index.ts","../../../src/wallets/infinity-wallet/index.ts","../../../src/wallets/index.ts","../../../src/gas/utils.ts","../../../src/gas/validation.ts","../../../src/gas/get.ts","../../../src/gas/stream.ts","../../../src/gas/index.ts","../../../src/core/src/preflight-notifications.ts","../../../src/core/src/index.ts","../../../src/web3-connect.ts"],"sourcesContent":["export default `<svg width=\"78\" height=\"84\" viewBox=\"0 0 78 84\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M39.2885 40.9472L1.61072 20.375L39.2885 0L49.049 5.61059L21.2368 20.375L25.165 22.5682L42.1672 13.2171L52.0926 18.7017L35.0904 28.0526L39.2885 30.1197L66.471 14.7646L76.6514 20.375L39.2885 40.9472ZM0 23.0588V63.8917L37.4408 83.9954V68.8953L32.6773 60.9432L37.4408 58.1733V43.1627L0 23.0588ZM9.7347 43.4715V38.7867L27.7065 48.411V53.0959L9.7347 43.4715ZM9.73487 58.6431V53.9583L27.7066 63.5827V68.2675L9.73487 58.6431ZM40.5418 84L78 63.7662V53.2048L50.499 67.8798V63.0993L68.1613 53.983V43.755L50.499 53.2048V48.4243L78 33.6383V22.8544L40.5418 43.1993V84Z\" fill=\"url(#paint0_linear_211_8)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_211_8\" x1=\"-39.8127\" y1=\"6.97537e-07\" x2=\"47.1035\" y2=\"74.5527\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#13154E\"/>\n<stop offset=\"1\" stop-color=\"#3C6BAC\"/>\n</linearGradient>\n</defs>\n</svg>\n`\n","export default `\n<svg width=\"139\" height=\"19\" viewBox=\"0 0 139 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M94.0202 9.26187L85.3164 4.60864L94.0202 0L96.275 1.26906L89.8502 4.60864L90.7576 5.10472L94.6852 2.98958L96.9781 4.23015L93.0504 6.34524L94.0202 6.81279L100.3 3.3396L102.651 4.60864L94.0202 9.26187ZM84.9443 5.21569V14.4517L93.5934 18.999V15.5835L92.493 13.7848L93.5934 13.1582V9.76298L84.9443 5.21569ZM87.1931 9.83284V8.77318L91.3447 10.9501V12.0098L87.1931 9.83284ZM87.1932 13.2645V12.2049L91.3448 14.3818V15.4415L87.1932 13.2645ZM94.3098 19L102.963 14.4233V12.0344L96.6099 15.3538V14.2725L100.69 12.2104V9.89697L96.6099 12.0344V10.9531L102.963 7.60866V5.16946L94.3098 9.77127V19Z\" fill=\"url(#paint0_linear_208_43)\"/>\n<path d=\"M111.852 14.5291C113.616 14.5291 114.546 13.4567 114.546 12.1162C114.546 10.9901 113.755 10.0652 112.769 9.91773C113.644 9.74346 114.366 8.99278 114.366 7.86675C114.366 6.6737 113.463 5.58789 111.699 5.58789H106.824V14.5291H111.852ZM111.269 9.16704H108.796V7.22331H111.269C111.935 7.22331 112.352 7.63886 112.352 8.20188C112.352 8.76489 111.935 9.16704 111.269 9.16704ZM111.338 12.8802H108.796V10.8025H111.338C112.116 10.8025 112.532 11.285 112.532 11.8481C112.532 12.4915 112.088 12.8802 111.338 12.8802Z\" fill=\"var(--text-color, #000000)\"/>\n<path d=\"M118.407 12.2939V10.0586H115.833V12.2939H118.407Z\" fill=\"var(--text-color, #000000)\"/>\n<path d=\"M128.704 14.5291V12.8534H123.305V10.8293H128.589V9.15364H123.305V7.26352H128.704V5.58789H120.981V14.5291H128.704Z\" fill=\"var(--text-color, #000000)\"/>\n<path d=\"M139 14.5291V12.8534H133.601V10.8293H138.885V9.15364H133.601V7.26352H139V5.58789H131.277V14.5291H139Z\" fill=\"var(--text-color, #000000)\"/>\n<path d=\"M17.2838 7.60907C16.4558 7.60907 15.6155 8.02407 15.2324 8.7114V7.7647H14.1572V16.7648H15.2324V12.8743C15.6155 13.5875 16.4311 13.9766 17.2962 13.9766C18.878 13.9766 20.1756 12.7187 20.1756 10.7993C20.1756 8.89295 18.8656 7.60907 17.2838 7.60907ZM17.1849 12.9132C16.2457 12.9132 15.2324 12.1221 15.2324 10.8123C15.2324 9.51544 16.1592 8.67249 17.1849 8.67249C18.2477 8.67249 19.0881 9.60622 19.0881 10.8123C19.0881 12.0313 18.2477 12.9132 17.1849 12.9132ZM24.2957 13.9766C25.9394 13.9766 27.3234 12.7057 27.3234 10.7864C27.3234 8.86702 25.9394 7.60907 24.2957 7.60907C22.6521 7.60907 21.2804 8.86702 21.2804 10.7864C21.2804 12.7057 22.6521 13.9766 24.2957 13.9766ZM24.2957 12.9132C23.2453 12.9132 22.3679 12.0443 22.3679 10.7864C22.3679 9.54138 23.2453 8.67249 24.2957 8.67249C25.3585 8.67249 26.2483 9.54138 26.2483 10.7864C26.2483 12.0443 25.3585 12.9132 24.2957 12.9132ZM36.0644 7.7647L34.5938 12.0702L33.1108 7.7647H32.0604L30.5898 12.0702L29.1192 7.7647H27.9575L30.1572 13.821H31.047L32.5794 9.32091L34.1736 13.821H35.0757L37.226 7.7647H36.0644ZM43.7077 10.7734C43.7077 8.85405 42.4843 7.60907 40.8407 7.60907C39.197 7.60907 37.8747 8.85405 37.8747 10.7734C37.8747 12.6927 39.197 13.9766 40.8407 13.9766C41.9529 13.9766 42.9909 13.406 43.4853 12.3555L42.5584 11.9665C42.2247 12.576 41.5821 12.9132 40.8777 12.9132C39.8891 12.9132 39.1476 12.3555 38.9869 11.2792H43.683C43.6954 11.1106 43.7077 10.942 43.7077 10.7734ZM38.9993 10.3065C39.1723 9.21717 39.8644 8.67249 40.8407 8.67249C41.7922 8.67249 42.4966 9.26904 42.6326 10.3065H38.9993ZM47.8794 7.60907C47.1132 7.60907 46.5571 8.07594 46.2605 9.13936V7.7647H45.173V13.821H46.2605V11.6034C46.2605 10.0082 46.7177 8.69843 47.867 8.69843C48.0895 8.69843 48.3984 8.7503 48.7074 8.90592L48.8804 7.84251C48.7074 7.72579 48.2872 7.60907 47.8794 7.60907ZM55.2088 10.7734C55.2088 8.85405 53.9854 7.60907 52.3417 7.60907C50.6981 7.60907 49.3758 8.85405 49.3758 10.7734C49.3758 12.6927 50.6981 13.9766 52.3417 13.9766C53.454 13.9766 54.492 13.406 54.9864 12.3555L54.0595 11.9665C53.7258 12.576 53.0832 12.9132 52.3788 12.9132C51.3902 12.9132 50.6487 12.3555 50.488 11.2792H55.1841C55.1964 11.1106 55.2088 10.942 55.2088 10.7734ZM50.5004 10.3065C50.6734 9.21717 51.3655 8.67249 52.3417 8.67249C53.2933 8.67249 53.9977 9.26904 54.1337 10.3065H50.5004ZM61.2343 4.4707V8.7114C60.8512 7.99813 60.0355 7.60907 59.1705 7.60907C57.5886 7.60907 56.2911 8.86702 56.2911 10.7864C56.2911 12.6927 57.601 13.9766 59.1828 13.9766C60.0108 13.9766 60.8512 13.5616 61.2343 12.8743V13.821H62.3094V4.4707H61.2343ZM59.2693 12.9132C58.2189 12.9132 57.3786 11.9795 57.3786 10.7734C57.3786 9.55435 58.2189 8.67249 59.2693 8.67249C60.2209 8.67249 61.2343 9.46357 61.2343 10.7734C61.2343 12.0702 60.3074 12.9132 59.2693 12.9132ZM70.4574 7.60907C69.5923 7.60907 68.7767 7.99813 68.3936 8.7114V4.4707H67.3184V13.821H68.3936V12.8743C68.7767 13.5616 69.617 13.9766 70.445 13.9766C72.0268 13.9766 73.3368 12.6927 73.3368 10.7864C73.3368 8.86702 72.0392 7.60907 70.4574 7.60907ZM70.3461 12.9132C69.3204 12.9132 68.3936 12.0702 68.3936 10.7734C68.3936 9.46357 69.4069 8.67249 70.3461 8.67249C71.4089 8.67249 72.2493 9.55435 72.2493 10.7734C72.2493 11.9795 71.4089 12.9132 70.3461 12.9132ZM78.6345 7.7647L76.8673 12.2259L75.1248 7.7647H73.9631L76.2864 13.6394L75.0754 16.7648H76.2123L79.7961 7.7647H78.6345Z\" fill=\"var(--text-color, #000000)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_208_43\" x1=\"75.7473\" y1=\"1.57776e-07\" x2=\"95.4658\" y2=\"17.2737\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#13154E\"/>\n<stop offset=\"1\" stop-color=\"#3C6BAC\"/>\n</linearGradient>\n</defs>\n</svg>`\n","export default `\n  <svg height=\"100%\" viewBox=\"0 0 10 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M4.99902 0.12619V5.20805L9.58065 7.12736L4.99902 0.12619Z\" fill=\"white\" fill-opacity=\"0.602\"/>\n    <path d=\"M4.99923 0.12619L0.416992 7.12736L4.99923 5.20805V0.12619Z\" fill=\"white\"/>\n    <path d=\"M4.99902 10.4207V13.8737L9.58371 7.92728L4.99902 10.4207Z\" fill=\"white\" fill-opacity=\"0.602\"/>\n    <path d=\"M4.99923 13.8737V10.4201L0.416992 7.92728L4.99923 13.8737Z\" fill=\"white\"/>\n    <path d=\"M4.99902 9.62134L9.58065 7.12739L4.99902 5.20923V9.62134Z\" fill=\"white\" fill-opacity=\"0.2\"/>\n    <path d=\"M0.416992 7.12739L4.99923 9.62134V5.20923L0.416992 7.12739Z\" fill=\"white\" fill-opacity=\"0.602\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 14 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M10.5091 4.05856C10.2585 3.91901 9.9362 3.91901 9.64974 4.05856L7.64453 5.20986L6.28385 5.94251L4.31445 7.09382C4.0638 7.23337 3.74154 7.23337 3.45508 7.09382L1.91536 6.18673C1.66471 6.04718 1.48568 5.76807 1.48568 5.45408V3.70968C1.48568 3.43057 1.62891 3.15147 1.91536 2.97703L3.45508 2.10483C3.70573 1.96527 4.02799 1.96527 4.31445 2.10483L5.85417 3.01192C6.10482 3.15147 6.28385 3.43057 6.28385 3.74457V4.89587L7.64453 4.12833V2.94214C7.64453 2.66304 7.5013 2.38393 7.21484 2.20949L4.35026 0.569752C4.09961 0.4302 3.77734 0.4302 3.49089 0.569752L0.554687 2.24438C0.268229 2.38393 0.125 2.66304 0.125 2.94214V6.22162C0.125 6.50072 0.268229 6.77983 0.554687 6.95427L3.45508 8.59401C3.70573 8.73356 4.02799 8.73356 4.31445 8.59401L6.28385 7.47759L7.64453 6.71005L9.61393 5.59363C9.86458 5.45408 10.1868 5.45408 10.4733 5.59363L12.013 6.46583C12.2637 6.60539 12.4427 6.88449 12.4427 7.19848V8.94289C12.4427 9.22199 12.2995 9.50109 12.013 9.67553L10.5091 10.5477C10.2585 10.6873 9.9362 10.6873 9.64974 10.5477L8.11002 9.67553C7.85937 9.53598 7.68034 9.25688 7.68034 8.94289V7.82647L6.31966 8.59401V9.74531C6.31966 10.0244 6.46289 10.3035 6.74935 10.478L9.64974 12.1177C9.90039 12.2572 10.2227 12.2572 10.5091 12.1177L13.4095 10.478C13.6602 10.3384 13.8392 10.0593 13.8392 9.74531V6.43095C13.8392 6.15184 13.696 5.87274 13.4095 5.6983L10.5091 4.05856Z\" fill=\"white\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M4.32975 5.90275L7 3.2325L9.67163 5.90413L11.2254 4.35038L7 0.125L2.776 4.349L4.32975 5.90275ZM0.125 7L1.67875 5.44625L3.2325 7L1.67875 8.55375L0.125 7ZM4.32975 8.09725L7 10.7675L9.67163 8.09587L11.2254 9.64894L7 13.875L2.776 9.651L2.77394 9.64894L4.32975 8.09725ZM10.7675 7L12.3212 5.44625L13.875 7L12.3212 8.55375L10.7675 7ZM8.57575 6.99863H8.57713V7L7 8.57713L5.42494 7.00275L5.42219 7L5.42494 6.99794L5.70062 6.72156L5.83469 6.5875L7 5.42288L8.57644 6.99931L8.57575 6.99863Z\" fill=\"white\"/>\n  </svg>\n`\n","export default `\n  <svg height=\"100%\" viewBox=\"0 0 12 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M5.26613 0.133876C5.46683 0.0457135 5.68592 0 5.90775 0C6.12958 0 6.34867 0.0457135 6.54938 0.133876L10.2679 1.9598C10.3617 1.99893 10.4437 2.05898 10.5068 2.13465C10.5699 2.21033 10.6121 2.29932 10.6298 2.3938H10.6335V11.5637C10.6245 11.6667 10.5857 11.7654 10.5213 11.8495C10.457 11.9336 10.3694 11.9998 10.2679 12.0411L6.54938 13.8656C6.34867 13.9538 6.12958 13.9995 5.90775 13.9995C5.68592 13.9995 5.46683 13.9538 5.26613 13.8656L1.54762 12.0397C1.44724 11.9979 1.36095 11.9313 1.29799 11.8472C1.23504 11.7631 1.19779 11.6646 1.19025 11.5623C1.19025 11.5465 1.19025 11.5332 1.19025 11.522V2.39205C1.20579 2.29767 1.24673 2.20852 1.30923 2.13292C1.37173 2.05733 1.45375 1.99776 1.54762 1.9598L5.26613 0.133876ZM10.0478 7.50898L6.54938 9.22396C6.34872 9.31229 6.12961 9.35809 5.90775 9.35809C5.68589 9.35809 5.46678 9.31229 5.26613 9.22396L1.77525 7.51283V11.5455L5.26613 13.2493C5.43937 13.3471 5.62982 13.4154 5.82863 13.4512L5.9085 13.4558C6.12668 13.4357 6.3373 13.3704 6.525 13.2647L10.05 11.5301V7.50898H10.0478ZM0.585375 11.3642C0.568078 11.6186 0.612957 11.8734 0.716625 12.1093C0.805331 12.2602 0.936232 12.3857 1.09538 12.4726L1.10662 12.4796C1.1505 12.5069 1.1985 12.5356 1.25663 12.5692L1.32563 12.6081L1.53675 12.7267L1.23375 13.1922L0.9975 13.0592L0.95775 13.0365C0.889125 12.9973 0.8325 12.9637 0.779625 12.9315C0.214875 12.5769 0.004125 12.1912 0 11.3887V11.3642H0.585H0.585375ZM5.61412 5.05096C5.58845 5.05933 5.5634 5.06926 5.53912 5.08071L1.82137 6.90524L1.81013 6.91119H1.80675L1.81275 6.91469L1.82137 6.91889L5.53988 8.74341C5.56405 8.75505 5.58912 8.76499 5.61487 8.77316L5.61412 5.05096ZM6.201 5.05096V8.77456C6.22675 8.76639 6.25182 8.75645 6.276 8.74481L9.9945 6.92029L10.0057 6.91434H10.0091L10.0031 6.91154L9.9945 6.90699L6.276 5.08246C6.25182 5.07083 6.22675 5.06088 6.201 5.05271V5.05096ZM10.0478 3.04479L6.71025 4.68137L10.0478 6.31795V3.04304V3.04479ZM1.77525 3.04864V6.3141L5.103 4.68137L1.77525 3.04864ZM6.27525 0.61617C6.15894 0.569406 6.03364 0.545286 5.907 0.545286C5.78036 0.545286 5.65506 0.569406 5.53875 0.61617L1.821 2.4393L1.80975 2.4449L1.80638 2.44665L1.81238 2.4498L1.821 2.45365L5.5395 4.27817C5.65571 4.32526 5.78106 4.34956 5.90775 4.34956C6.03444 4.34956 6.15979 4.32526 6.276 4.27817L9.9945 2.45365L10.0057 2.4498L10.0091 2.44805L10.0031 2.4449L9.9945 2.4407L6.27525 0.61617ZM10.5968 0.816717L10.833 0.949365L10.875 0.970015C10.9432 1.00921 10.9999 1.04316 11.0528 1.07501C11.6179 1.42851 11.8282 1.81455 11.8328 2.61709V2.64159H11.2459C11.2632 2.38703 11.2183 2.13212 11.1146 1.8961C11.0258 1.74528 10.8948 1.61983 10.7355 1.53316L10.7242 1.52616C10.6807 1.49851 10.6327 1.47016 10.5743 1.43656L10.5056 1.39981L10.2945 1.28151L10.5975 0.816017L10.5968 0.816717Z\" fill=\"white\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 17 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M3.33611 9.25254C2.38341 9.25254 1.60287 9.02834 0.99442 8.58002C0.393974 8.1237 0.09375 7.47526 0.09375 6.63462C0.09375 6.45849 0.113782 6.2423 0.153782 5.9861C0.257909 5.40972 0.406006 4.71718 0.598133 3.9086C1.14252 1.707 2.54757 0.606201 4.81323 0.606201C5.42967 0.606201 5.98206 0.710266 6.47044 0.918394C6.95882 1.11852 7.34308 1.42278 7.62327 1.8311C7.90346 2.23135 8.04362 2.71174 8.04362 3.27212C8.04362 3.44025 8.02359 3.65241 7.98352 3.9086C7.86346 4.62111 7.71933 5.31366 7.55121 5.9861C7.27101 7.08294 6.78666 7.90354 6.09815 8.44793C5.40964 8.98431 4.489 9.25254 3.33611 9.25254ZM3.50424 7.52326C3.95262 7.52326 4.33284 7.39116 4.6451 7.12697C4.96535 6.86278 5.19351 6.45849 5.32958 5.9141C5.51371 5.16153 5.65387 4.50502 5.74993 3.94463C5.78193 3.7765 5.79793 3.60441 5.79793 3.42822C5.79793 2.6997 5.41764 2.33542 4.65713 2.33542C4.20875 2.33542 3.82449 2.46751 3.50424 2.7317C3.19205 2.99596 2.96786 3.40025 2.83179 3.94463C2.68766 4.48102 2.54354 5.13753 2.39947 5.9141C2.36741 6.07417 2.35141 6.2423 2.35141 6.41842C2.35141 7.155 2.73573 7.52326 3.50424 7.52326Z\" fill=\"white\"/>\n    <path d=\"M8.59569 9.13247C8.50762 9.13247 8.43953 9.10443 8.39153 9.04837C8.35146 8.98431 8.33949 8.9123 8.35549 8.83224L10.0127 1.02648C10.0287 0.938417 10.0727 0.866353 10.1448 0.810289C10.2169 0.754289 10.2929 0.726257 10.373 0.726257H13.5673C14.456 0.726257 15.1685 0.910385 15.7049 1.27864C16.2493 1.64696 16.5215 2.17931 16.5215 2.87582C16.5215 3.07595 16.4975 3.28415 16.4495 3.50027C16.2493 4.42098 15.845 5.10149 15.2366 5.54181C14.6361 5.98213 13.8115 6.20229 12.7627 6.20229H11.1415L10.5892 8.83224C10.5731 8.92031 10.5291 8.99231 10.4571 9.04837C10.385 9.10443 10.3089 9.13247 10.2289 9.13247H8.59569ZM12.8468 4.54507C13.183 4.54507 13.4752 4.45298 13.7234 4.26885C13.9796 4.08472 14.1478 3.82053 14.2278 3.47627C14.2518 3.34015 14.2639 3.22008 14.2639 3.11602C14.2639 2.88383 14.1958 2.7077 14.0597 2.58763C13.9236 2.45951 13.6914 2.3955 13.3632 2.3955H11.9221L11.4658 4.54507H12.8468Z\" fill=\"white\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 20 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M19.8682 0.489349H0.110352V18.4468H19.8682V0.489349Z\" fill=\"white\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M19.1511 8.08001C19.1511 4.11201 15.9191 0.880005 11.9511 0.880005C8.94313 0.880005 6.38313 2.70401 5.29513 5.32801C2.73513 6.41601 0.911133 8.976 0.911133 11.952C0.911133 15.92 4.14313 19.152 8.11113 19.152C11.1191 19.152 13.6791 17.328 14.7671 14.704C17.2951 13.616 19.1511 11.056 19.1511 8.08001ZM8.11113 17.36C5.13513 17.36 2.70313 14.928 2.70313 11.952C2.70313 10.256 3.50313 8.72001 4.75113 7.72801C4.75113 7.85601 4.75113 7.98401 4.75113 8.08001C4.75113 12.048 7.98313 15.28 11.9511 15.28C12.1111 15.28 12.2391 15.28 12.3991 15.28C11.3751 16.56 9.83913 17.36 8.11113 17.36ZM13.3591 13.296C12.9111 13.424 12.4311 13.488 11.9511 13.488C8.97513 13.488 6.54313 11.056 6.54313 8.08001C6.54313 7.60001 6.60713 7.15201 6.73513 6.736C7.18313 6.60801 7.66313 6.54401 8.14313 6.54401C11.1191 6.54401 13.5511 8.976 13.5511 11.952C13.5191 12.432 13.4551 12.88 13.3591 13.296ZM15.3111 12.304C15.3111 12.176 15.3111 12.048 15.3111 11.952C15.3111 7.984 12.0791 4.752 8.11113 4.752C7.95113 4.752 7.82313 4.752 7.66313 4.752C8.65513 3.472 10.1911 2.67201 11.9191 2.67201C14.8951 2.67201 17.3271 5.10401 17.3271 8.08001C17.3271 9.80801 16.5271 11.312 15.3111 12.304Z\" fill=\"white\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32C24.8366 32 32 24.8366 32 16Z\" fill=\"#04795B\"/>\n    <path d=\"M11.6529 17.4492C12.2831 17.4492 12.8648 17.2392 13.3334 16.8758L9.4877 13.0316C9.12413 13.4919 8.9141 14.0734 8.9141 14.7114C8.906 16.2216 10.134 17.4492 11.6529 17.4492Z\" fill=\"#EFEFEF\"/>\n    <path d=\"M23.0931 14.7033C23.0931 14.0734 22.8831 13.4919 22.5195 13.0234L18.6738 16.8677C19.1343 17.2311 19.716 17.4411 20.3543 17.4411C21.8651 17.4492 23.0931 16.2216 23.0931 14.7033Z\" fill=\"#EFEFEF\"/>\n    <path d=\"M25.0322 10.528L23.3275 12.2321C23.8931 12.9105 24.2324 13.7666 24.2324 14.7195C24.2324 16.8597 22.4954 18.5961 20.3544 18.5961C19.4092 18.5961 18.5447 18.2569 17.866 17.6915L15.9998 19.5571L14.1335 17.6915C13.4549 18.2569 12.5985 18.5961 11.6451 18.5961C9.50416 18.5961 7.7672 16.8597 7.7672 14.7195C7.7672 13.7746 8.10651 12.9105 8.67206 12.2321L7.79947 11.3599L6.96736 10.528C5.99787 12.1271 5.44043 13.9927 5.44043 15.9956C5.44043 21.8265 10.1667 26.543 15.9917 26.543C21.8167 26.543 26.543 21.8185 26.543 15.9956C26.5591 13.9846 26.0017 12.119 25.0322 10.528Z\" fill=\"#EFEFEF\"/>\n    <path d=\"M23.6338 8.71084C21.7191 6.6999 19.0045 5.44 15.9991 5.44C12.9937 5.44 10.2872 6.6999 8.36435 8.71084C8.10584 8.98545 7.85539 9.27617 7.62109 9.575L15.991 17.9419L24.361 9.56695C24.1509 9.27617 23.9005 8.97734 23.6338 8.71084ZM15.9991 6.81297C18.4713 6.81297 20.7658 7.76593 22.4866 9.50231L15.9991 15.9874L9.5116 9.50231C11.2405 7.76593 13.5269 6.81297 15.9991 6.81297Z\" fill=\"#EFEFEF\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M12.5484 1.04102e-06C11.6346 -0.000708404 10.7578 0.361217 10.1105 1.00633C9.46322 1.65145 9.09835 2.52703 9.096 3.44089V7.256C8.74045 7.28 8.37689 7.29511 8 7.29511C7.62311 7.29511 7.26133 7.31022 6.904 7.33156V3.44089C6.88946 2.53496 6.51938 1.67105 5.87358 1.03553C5.22779 0.400017 4.35805 0.0438409 3.452 0.0438409C2.54595 0.0438409 1.67621 0.400017 1.03042 1.03553C0.384623 1.67105 0.0145378 2.53496 0 3.44089V12.5591C0.0145378 13.465 0.384623 14.329 1.03042 14.9645C1.67621 15.6 2.54595 15.9562 3.452 15.9562C4.35805 15.9562 5.22779 15.6 5.87358 14.9645C6.51938 14.329 6.88946 13.465 6.904 12.5591V8.744C7.25956 8.72 7.62311 8.70489 8 8.70489C8.37689 8.70489 8.73867 8.68978 9.096 8.66845V12.5591C9.11054 13.465 9.48062 14.329 10.1264 14.9645C10.7722 15.6 11.6419 15.9562 12.548 15.9562C13.4541 15.9562 14.3238 15.6 14.9696 14.9645C15.6154 14.329 15.9855 13.465 16 12.5591V3.44089C15.9976 2.52719 15.6329 1.65173 14.9858 1.00665C14.3387 0.361557 13.4622 -0.000472854 12.5484 1.04102e-06ZM3.45156 1.40978C3.99089 1.40954 4.50828 1.62326 4.89023 2.00404C5.27218 2.38482 5.48748 2.90156 5.48889 3.44089V7.48089C4.47892 7.62724 3.49264 7.90609 2.55556 8.31023C2.14954 8.48842 1.76733 8.71655 1.41778 8.98934V3.44089C1.41919 2.90218 1.634 2.38597 2.01518 2.00529C2.39636 1.62462 2.91284 1.41048 3.45156 1.40978ZM5.48889 12.5591C5.48889 13.0994 5.27424 13.6177 4.89217 13.9997C4.51009 14.3818 3.99189 14.5964 3.45156 14.5964C2.91122 14.5964 2.39302 14.3818 2.01094 13.9997C1.62887 13.6177 1.41422 13.0994 1.41422 12.5591V11.6444C1.41422 10.8364 2.05422 10.0711 3.12711 9.59467C3.88309 9.26852 4.6763 9.03656 5.48889 8.904V12.5591ZM12.5484 14.5902C12.0091 14.5905 11.4917 14.3767 11.1098 13.996C10.7278 13.6152 10.5125 13.0984 10.5111 12.5591V8.51911C11.5211 8.37276 12.5074 8.09392 13.4444 7.68978C13.8505 7.51159 14.2327 7.28345 14.5822 7.01067V12.5591C14.5808 13.0978 14.366 13.614 13.9848 13.9947C13.6036 14.3754 13.0872 14.5895 12.5484 14.5902ZM12.8729 6.4C12.1169 6.72615 11.3237 6.95811 10.5111 7.09067V3.44089C10.5111 2.90056 10.7258 2.38235 11.1078 2.00028C11.4899 1.6182 12.0081 1.40356 12.5484 1.40356C13.0888 1.40356 13.607 1.6182 13.9891 2.00028C14.3711 2.38235 14.5858 2.90056 14.5858 3.44089V4.35556C14.5858 5.16 13.9458 5.92534 12.8729 6.4Z\" fill=\"url(#paint0_linear_10254_2422)\"/>\n    <defs>\n      <linearGradient id=\"paint0_linear_10254_2422\" x1=\"1.01333\" y1=\"14.7674\" x2=\"14.8954\" y2=\"0.847434\" gradientUnits=\"userSpaceOnUse\">\n        <stop stop-color=\"#00AEE9\"/>\n        <stop offset=\"1\" stop-color=\"#69FABD\"/>\n      </linearGradient>\n    </defs>\n  </svg>\n`\n","export default `\n  <svg height=\"100%\" viewBox=\"0 0 22 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M13.7827 11.3172L15.5966 8.23933L20.4858 15.8545L20.4881 17.3159L20.4722 7.25942C20.4606 7.0136 20.3301 6.7887 20.1218 6.6561L11.3194 1.5928C11.1135 1.49162 10.8523 1.49269 10.6468 1.59594C10.6191 1.60989 10.593 1.62499 10.568 1.64147L10.5374 1.66079L1.99318 6.6121L1.95999 6.62712C1.91737 6.64674 1.8743 6.67165 1.83382 6.70063C1.67186 6.81683 1.56424 6.98861 1.52944 7.18131C1.52423 7.21052 1.52039 7.24026 1.51855 7.27023L1.53197 15.4653L6.08607 8.40666C6.65942 7.47067 7.90869 7.1692 9.06835 7.1856L10.4295 7.22155L2.40986 20.0827L3.3552 20.627L11.4709 7.23458L15.0581 7.22155L6.96327 20.9519L10.3366 22.8921L10.7396 23.1239C10.9101 23.1932 11.111 23.1967 11.283 23.1347L20.2091 17.9618L18.5026 18.9507L13.7827 11.3172ZM14.4747 21.2849L11.0677 15.9375L13.1474 12.4083L17.622 19.461L14.4747 21.2849Z\" fill=\"#2D374B\"/>\n    <path d=\"M11.0684 15.9375L14.4754 21.2849L17.6228 19.4609L13.1482 12.4083L11.0684 15.9375Z\" fill=\"#28A0F0\"/>\n    <path d=\"M20.4887 17.3159L20.4864 15.8545L15.5972 8.23932L13.7832 11.3172L18.5031 18.9507L20.2097 17.9618C20.3771 17.8259 20.4783 17.6264 20.489 17.4111L20.4887 17.3159Z\" fill=\"#28A0F0\"/>\n    <path d=\"M7.71943e-05 18.694L2.41 20.0826L10.4296 7.22152L9.0685 7.18557C7.90883 7.16916 6.65964 7.47063 6.08621 8.40662L1.53211 15.4652L0 17.8193V18.694H7.71943e-05Z\" fill=\"white\"/>\n    <path d=\"M15.0582 7.22156L11.4712 7.23459L3.35547 20.627L6.19211 22.2603L6.96354 20.9519L15.0582 7.22156Z\" fill=\"white\"/>\n    <path d=\"M21.9999 7.20306C21.97 6.45287 21.5638 5.76608 20.9275 5.36626L12.0097 0.237888C11.3803 -0.079066 10.594 -0.0794494 9.96363 0.237658C9.88913 0.275218 1.2912 5.26171 1.2912 5.26171C1.17223 5.31874 1.05764 5.38673 0.949789 5.46384C0.381801 5.87094 0.0355663 6.50346 0 7.19846V17.8194L1.53211 15.4653L1.5187 7.27029C1.52054 7.24032 1.52429 7.21088 1.52958 7.18175C1.56415 6.9889 1.67185 6.81689 1.83397 6.70069C1.87444 6.67171 10.6192 1.60995 10.647 1.596C10.8526 1.49275 11.1137 1.49168 11.3195 1.59286L20.122 6.65616C20.3302 6.78876 20.4608 7.01366 20.4723 7.25948V17.4111C20.4617 17.6265 20.3766 17.8259 20.2092 17.9619L18.5026 18.9508L17.6221 19.461L14.4748 21.285L11.283 23.1347C11.1111 23.1968 10.9101 23.1933 10.7397 23.124L6.96334 20.952L6.19191 22.2603L9.58559 24.2142C9.6978 24.278 9.79784 24.3345 9.87985 24.3807C10.0069 24.452 10.0935 24.4996 10.1241 24.5144C10.3653 24.6315 10.7123 24.6997 11.025 24.6997C11.3118 24.6997 11.5913 24.647 11.8559 24.5434L21.1266 19.1745C21.6587 18.7623 21.9717 18.1406 21.9999 17.467V7.20306Z\" fill=\"#96BEDC\"/>\n  </svg>\n`\n","export default `\n<svg height=\"100%\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_1607_202)\">\n<mask id=\"mask0_1607_202\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"32\" height=\"32\">\n<path d=\"M32 0H0V32H32V0Z\" fill=\"white\"/>\n</mask>\n<g mask=\"url(#mask0_1607_202)\">\n<path d=\"M16 32C19.1645 32 22.258 31.0616 24.8892 29.3036C27.5204 27.5454 29.571 25.0466 30.782 22.123C31.993 19.1993 32.31 15.9823 31.6926 12.8786C31.0752 9.77486 29.5514 6.92394 27.3138 4.6863C25.076 2.44866 22.2252 0.924806 19.1214 0.307442C16.0177 -0.30992 12.8007 0.0069325 9.87706 1.21793C6.95344 2.42894 4.45458 4.4797 2.69648 7.11088C0.938384 9.74206 0 12.8355 0 16C0 20.2434 1.68571 24.3132 4.6863 27.3138C7.68688 30.3142 11.7565 32 16 32Z\" fill=\"#0052FF\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.9624 27.2676C22.1852 27.2676 27.23 22.223 27.23 16C27.23 9.7771 22.1852 4.73242 15.9624 4.73242C10.0588 4.73242 5.21566 9.2726 4.7341 15.0518H21.4546V16.928H4.73242C5.20432 22.7168 10.0519 27.2676 15.9624 27.2676Z\" fill=\"white\"/>\n</g>\n</g>\n<defs>\n<clipPath id=\"clip0_1607_202\">\n<rect width=\"32\" height=\"32\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`","export default `\n<svg width=\"100%\" height=\"100%\" viewBox=\"0 0 12 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path d=\"M0 0L0.0100002 6L4 10L0.0100002 14.01L0 20H12V14L8 10L12 6.01V0H0ZM10 14.5V18H2V14.5L6 10.5L10 14.5Z\" fill=\"#929BED\"/>\n</svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M11.07 12.85C11.84 11.46 13.32 10.64 14.18 9.41C15.09 8.12 14.58 5.71 12 5.71C10.31 5.71 9.48 6.99 9.13 8.05L6.54 6.96C7.25 4.83 9.18 3 11.99 3C14.34 3 15.95 4.07 16.77 5.41C17.47 6.56 17.88 8.71 16.8 10.31C15.6 12.08 14.45 12.62 13.83 13.76C13.58 14.22 13.48 14.52 13.48 16H10.59C10.58 15.22 10.46 13.95 11.07 12.85ZM14 20C14 21.1 13.1 22 12 22C10.9 22 10 21.1 10 20C10 18.9 10.9 18 12 18C13.1 18 14 18.9 14 20Z\" fill=\"currentColor\"/>\n  </svg>\n`\n","export default `\n<svg width=\"14\" height=\"11\" viewBox=\"0 0 14 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path d=\"M4.48076 8.10881L1.33076 4.95881L0.280762 6.00881L4.48076 10.2088L13.4808 1.20881L12.4308 0.158813L4.48076 8.10881Z\" fill=\"#A4F4C6\"/>\n</svg>\n`\n","export default `<svg width=\"16\" height=\"13\" viewBox=\"0 0 16 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M0.666992 13.0002H15.3337L8.00033 0.333496L0.666992 13.0002ZM8.66699 11.0002H7.33366V9.66683H8.66699V11.0002ZM8.66699 8.3335H7.33366V5.66683H8.66699V8.3335Z\" fill=\"#FFB3B3\"/>\n</svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM13 17H11V11H13V17ZM13 9H11V7H13V9Z\" fill=\"currentColor\"/>\n  </svg>\n`\n","export default `<svg width=\"100%\" height=\"24\" viewBox=\"0 5 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10H7Z\" fill=\"currentColor\"/></svg>`\n","export default `\n  <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M1 21H23L12 2L1 21ZM13 18H11V16H13V18ZM13 14H11V10H13V14Z\" fill=\"currentColor\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M6.74999 12.15L3.59999 9L2.54999 10.05L6.74999 14.25L15.75 5.25L14.7 4.2L6.74999 12.15Z\" fill=\"currentColor\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M6 2L6.01 8L10 12L6.01 16.01L6 22H18V16L14 12L18 8.01V2H6ZM16 16.5V20H8V16.5L12 12.5L16 16.5Z\" fill=\"currenColor\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M13 7H11V11H7V13H11V17H13V13H17V11H13V7ZM12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20Z\" fill=\"currentColor\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M10.09 15.59L11.5 17L16.5 12L11.5 7L10.09 8.41L12.67 11H3V13H12.67L10.09 15.59ZM19 3H5C3.89 3 3 3.9 3 5V9H5V5H19V19H5V15H3V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3Z\" fill=\"currentColor\"/>\n  </svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z\" fill=\"currentColor\"/>\n  </svg>\n`\n","export default `\n<svg width=\"100%\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path d=\"M10 0C4.47 0 0 4.47 0 10C0 15.53 4.47 20 10 20C15.53 20 20 15.53 20 10C20 4.47 15.53 0 10 0ZM15 13.59L13.59 15L10 11.41L6.41 15L5 13.59L8.59 10L5 6.41L6.41 5L10 8.59L13.59 5L15 6.41L11.41 10L15 13.59Z\" fill=\"currentColor\"/>\n</svg>\n`\n","export default `\n  <svg width=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M12 8C13.1 8 14 7.1 14 6C14 4.9 13.1 4 12 4C10.9 4 10 4.9 10 6C10 7.1 10.9 8 12 8ZM12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10ZM12 16C10.9 16 10 16.9 10 18C10 19.1 10.9 20 12 20C13.1 20 14 19.1 14 18C14 16.9 13.1 16 12 16Z\" fill=\"currentColor\"/>\n  </svg>\n`\n","// bn branding\nexport { default as defaultBeeIcon } from './b-ee-icon'\nexport { default as poweredByBee } from './poweredByB-EE'\n// chain icons\nexport { default as ethereumIcon } from './ethereum'\nexport { default as polygonIcon } from './polygon'\nexport { default as binanceIcon } from './binance'\nexport { default as fantomIcon } from './fantom'\nexport { default as optimismIcon } from './optimism'\nexport { default as avalancheIcon } from './avalanche'\nexport { default as celoIcon } from './celo'\nexport { default as gnosisIcon } from './gnosis'\nexport { default as harmonyOneIcon } from './harmony-one'\nexport { default as arbitrumIcon } from './arbitrum'\nexport { default as baseIcon } from './base'\n// other\nexport { default as hourglass } from './hourglass'\nexport { default as questionIcon } from './question'\nexport { default as checkmark } from './checkmark'\nexport { default as errorIcon } from './error'\nexport { default as infoIcon } from './info'\nexport { default as caretIcon } from './caret'\nexport { default as warningIcon } from './warning'\nexport { default as successIcon } from './success'\nexport { default as pendingIcon } from './pending'\nexport { default as plusCircleIcon } from './plus-circle'\nexport { default as arrowForwardIcon } from './arrow-forward'\nexport { default as closeIcon } from './close'\nexport { default as closeCircleIcon } from './close-circle'\nexport { default as elipsisIcon } from './elipsis'\n","import bowser from 'bowser'\nimport Web3 from \"web3\"\n\nimport type {\n  Device,\n  DeviceBrowser,\n  DeviceOS,\n  DeviceType,\n  ChainId,\n  Chain,\n  WalletInit,\n  WalletModule,\n  ChainWithDecimalId\n} from '../../common'\n\nimport {\n  hourglass,\n  gnosisIcon,\n  checkmark,\n  errorIcon,\n  infoIcon,\n  ethereumIcon,\n  polygonIcon,\n  binanceIcon,\n  questionIcon,\n  fantomIcon,\n  optimismIcon,\n  celoIcon,\n  avalancheIcon,\n  harmonyOneIcon,\n  arbitrumIcon,\n  baseIcon\n} from './icons/index'\n\nimport type {\n  ChainStyle,\n  ConnectedChain,\n  DeviceNotBrowser,\n  NotifyEventStyles\n} from './types'\n\nexport function getDevice(): Device | DeviceNotBrowser {\n  if (typeof window !== 'undefined') {\n    const parsed = bowser.getParser(window.navigator.userAgent)\n    const os = parsed.getOS()\n    const browser = parsed.getBrowser()\n    const { type } = parsed.getPlatform()\n\n    return {\n      type: type as DeviceType,\n      os: os as DeviceOS,\n      browser: browser as DeviceBrowser\n    }\n  } else {\n    return {\n      type: null,\n      os: null,\n      browser: null\n    }\n  }\n}\n\nexport const notNullish = <T>(value: T | null | undefined): value is T =>\n  value != null\n\nexport function validEnsChain(chainId: ChainId): boolean {\n  switch (chainId) {\n    case '0x1':\n    case '0x3':\n    case '0x4':\n    case '0x5':\n      return true\n    default:\n      return false\n  }\n}\n\nexport function isSVG(str: string): boolean {\n  return str.includes('<svg')\n}\n\nexport function shortenAddress(add: string): string {\n  return `${add.slice(0, 6)}…${add.slice(-4)}`\n}\n\nexport function shortenDomain(domain: string): string {\n  return domain.length > 11\n    ? `${domain.slice(0, 4)}…${domain.slice(-6)}`\n    : domain\n}\n\nexport async function copyWalletAddress(text: string): Promise<void> {\n  try {\n    const copy = await navigator.clipboard.writeText(text)\n    return copy\n  } catch (err) {\n    console.error('Failed to copy: ', err)\n  }\n}\n\nexport const toHexString = (val: number | string): string =>\n  typeof val === 'number' ? `0x${val.toString(16)}` : val\n\nexport function chainIdToHex(chains: (Chain | ChainWithDecimalId)[]): Chain[] {\n  return chains.map(({ id, ...rest }) => {\n    const hexId = toHexString(id)\n    return { id: hexId, ...rest }\n  })\n}\n\nexport function gweiToWeiHex(gwei: number): string {\n  return `0x${(gwei * 1e9).toString(16)}`\n}\n\nexport const chainIdToLabel: Record<string, string> = {\n  '0x1': 'Ethereum',\n  '0x3': 'Ropsten',\n  '0x4': 'Rinkeby',\n  '0x5': 'Goerli',\n  '0xaa36a7': 'Sepolia',\n  '0x2a': 'Kovan',\n  '0x38': 'Binance',\n  '0x89': 'Polygon',\n  '0xfa': 'Fantom',\n  '0xa': 'Optimism',\n  '0x45': 'Optimism Kovan',\n  '0xa86a': 'Avalanche',\n  '0xa4ec': 'Celo',\n  '0x14a33': 'Base Goerli',\n  '0x64': 'Gnosis',\n  '0x63564C40': 'Harmony One',\n  '0xa4b1': 'Arbitrum'\n}\n\nexport const networkToChainId: Record<string, ChainId> = {\n  main: '0x1',\n  ropsten: '0x3',\n  rinkeby: '0x4',\n  goerli: '0x5',\n  kovan: '0x2a',\n  xdai: '0x64',\n  'bsc-main': '0x38',\n  'matic-main': '0x89',\n  'fantom-main': '0xfa',\n  'matic-mumbai': '0x80001'\n}\n\nexport const chainStyles: Record<string, ChainStyle> = {\n  '0x1': {\n    icon: ethereumIcon,\n    color: '#627EEA'\n  },\n  '0x3': {\n    icon: ethereumIcon,\n    color: '#627EEA'\n  },\n  '0x4': {\n    icon: ethereumIcon,\n    color: '#627EEA'\n  },\n  '0x5': {\n    icon: ethereumIcon,\n    color: '#627EEA'\n  },\n  '0x2a': {\n    icon: ethereumIcon,\n    color: '#627EEA'\n  },\n  '0xaa36a7': {\n    icon: ethereumIcon,\n    color: '#627EEA'\n  },\n  '0x38': {\n    icon: binanceIcon,\n    color: '#F3BA2F'\n  },\n  '0x89': {\n    icon: polygonIcon,\n    color: '#8247E5'\n  },\n  '0xfa': {\n    icon: fantomIcon,\n    color: '#1969FF'\n  },\n  '0xa': {\n    icon: optimismIcon,\n    color: '#FF0420'\n  },\n  '0x45': {\n    icon: optimismIcon,\n    color: '#FF0420'\n  },\n  '0xa86a': {\n    icon: avalancheIcon,\n    color: '#E84142'\n  },\n  '0xa4ec': {\n    icon: celoIcon,\n    color: '#FBCC5C'\n  },\n  '0x64': {\n    icon: gnosisIcon,\n    color: '#04795B'\n  },\n  '0x63564C40': {\n    icon: harmonyOneIcon,\n    color: '#ffffff'\n  },\n  '0xa4b1': {\n    icon: arbitrumIcon,\n    color: '#33394B'\n  },\n  '0x14a33': {\n    icon: baseIcon,\n    color: '#0259F9'\n  }\n}\n\nexport const unrecognizedChainStyle = { icon: questionIcon, color: '#33394B' }\n\nexport function getDefaultChainStyles(chainId: string): ChainStyle | undefined {\n  return chainId ? chainStyles[chainId.toLowerCase()] : undefined\n}\n\nexport function connectedToValidAppChain(\n  walletConnectedChain: ConnectedChain,\n  chains: Chain[]\n): boolean {\n  return !!chains.find(\n    ({ id, namespace }) =>\n      id === walletConnectedChain.id &&\n      namespace === walletConnectedChain.namespace\n  )\n}\n\nexport function initializeWalletModules(\n  modules: WalletInit[],\n  device: Device\n): WalletModule[] {\n  return modules.reduce((acc, walletInit) => {\n    const initialized = walletInit({ device })\n\n    if (initialized) {\n      // injected wallets is an array of wallets\n      acc.push(...(Array.isArray(initialized) ? initialized : [initialized]))\n    }\n\n    return acc\n  }, [] as WalletModule[])\n}\n\nexport const defaultNotifyEventStyles: Record<string, NotifyEventStyles> = {\n  pending: {\n    backgroundColor: 'var(--b-ee-primary-700, var(--primary-700))',\n    borderColor: '#6370E5',\n    eventIcon: hourglass\n  },\n  success: {\n    backgroundColor: '#052E17',\n    borderColor: 'var(--b-ee-success-300, var(--success-300))',\n    eventIcon: checkmark\n  },\n  error: {\n    backgroundColor: '#FDB1B11A',\n    borderColor: 'var(--b-ee-danger-300, var(--danger-300))',\n    eventIcon: errorIcon\n  },\n  hint: {\n    backgroundColor: 'var(--b-ee-gray-500, var(--gray-500))',\n    borderColor: 'var(--b-ee-gray-500, var(--gray-500))',\n    iconColor: 'var(--b-ee-gray-100, var(--gray-100))',\n    eventIcon: infoIcon\n  }\n}\n\nexport const wait = (time: number): Promise<void> =>\n  new Promise(resolve => setTimeout(resolve, time))\n\nexport function getLocalStore(key: string): string | null {\n  try {\n    const result = localStorage.getItem(key)\n    return result\n  } catch (error) {\n    return null\n  }\n}\n\nexport function setLocalStore(key: string, value: string): void {\n  try {\n    localStorage.setItem(key, value)\n  } catch (error) {\n    return\n  }\n}\n\nexport function delLocalStore(key: string): void {\n  try {\n    localStorage.removeItem(key)\n  } catch (error) {\n    return\n  }\n}\n\n\n\n\n\n\n\n\n\n\nconst ETH_WALLET_REGEX = /(0x[a-f0-9]{40})/g;\nconst BTC_WALLET_REGEX = /^([13]{1}[a-km-zA-HJ-NP-Z1-9]{26,33}|bc1[a-z0-9]{39,59})$/;\nconst UNITS = {\n  0: \"wei\",\n  6: \"mwei\",\n  9: \"gwei\",\n  18: \"ether\"\n};\nexport function toChecksumAddress(address) {\n  return Web3.utils.toChecksumAddress(address)\n}\nexport function isValidBTCAddress(wallet) {\n  return BTC_WALLET_REGEX.test(wallet)\n}\nexport function isValidAddress(wallet) {\n  return Web3.utils.isAddress(wallet);\n}\nexport function buildHash(...props) {\n  return Web3.utils.keccak256(props.toString())\n}\nexport function decimalsToUnit(decimals) {\n  return UNITS[decimals] ? UNITS[decimals] : \"ether\";\n}\nexport function formatWei(balance, decimals, fractionDigits) {\n  let number;\n  if(decimals === 8) {\n    // number = Number((Web3.utils.fromWei(balance.toString(), 'gwei') * 10)).toFixed(fractionDigits);\n  } else {\n    number = Number(Web3.utils.fromWei(balance, decimalsToUnit(decimals))).toFixed(fractionDigits);\n  }\n  return numberToCurrency(number, fractionDigits);\n}\nexport function getPriceByRate(balance, rate) {\n  balance = balance ? Number(balance.toString().replace(/[^0-9.-]+/g,\"\")): 0;\n  return numberToCurrency(balance / Number(rate));\n}\nexport function numberToCurrency(number, fractionDigits= 2) {\n  const formatNumber = new Intl.NumberFormat( 'en-US',{minimumFractionDigits:2, maximumFractionDigits: fractionDigits}).format(number);\n  if (isNaN(parseFloat(formatNumber))) {\n    return null;\n  }\n  return formatNumber === '0' ? '0.00' : formatNumber;\n}\nexport async function fetchAsync (url) {\n  let response = await fetch(url);\n  return await response.json();\n}\n","import type { Configuration } from './types'\nimport { getDevice } from './utils'\n\nexport let configuration: Configuration = {\n  appMetadata: null,\n  apiKey: null,\n  device: getDevice(),\n  initialWalletInit: [],\n  gas: null,\n  unstoppableResolution: null\n}\n\nexport function updateConfiguration(update: Partial<Configuration>): void {\n  configuration = { ...configuration, ...update }\n}\n","import type { ProviderRpcErrorCode } from './types'\n\nexport class ProviderRpcError extends Error {\n  message: string\n  code: ProviderRpcErrorCode | number\n  data?: unknown\n\n  constructor(error: Pick<ProviderRpcError, 'message' | 'code' | 'data'>) {\n    super(error.message)\n    this.message = error.message\n    this.code = error.code\n    this.data = error.data\n  }\n}\n","import type {Balance, ChainId, EIP1193Provider, ProviderAccounts, RequestPatch} from './types'\nimport {ProviderRpcError} from \"./errors\";\n\n/**\n * Takes a provider instance along with events\n * and requests to override and returns an EIP1193 provider\n *\n *  ## Example:\n *\n * *Overriding events: *\n * ```typescript\n * ```\n *\n * @param provider The provider to patch\n * @param requestPatch An `object` with the method to patch\n * and the implementation with which to patch\n * @param events Events to patch\n * @returns An EIP1193 Provider\n */\nexport const createEIP1193Provider = (\n  provider: any,\n  requestPatch?: RequestPatch\n): EIP1193Provider => {\n  let baseRequest: any\n  if (provider.request) {\n    // Copy the original request method and bind the provider context to it\n    baseRequest = provider.request.bind(provider)\n  } else if (provider.sendAsync) {\n    baseRequest = createRequest(provider)\n  }\n\n  provider.request = async ({method, params}) => {\n    const key = method as keyof RequestPatch\n\n    // If the request method is set to null\n    // this indicates this method is not supported\n    if (requestPatch && requestPatch[key] === null) {\n      throw new ProviderRpcError({\n        code: 4200,\n        message: `The Provider does not support the requested method: ${method}`\n      })\n    }\n\n    if (requestPatch && requestPatch[key]) {\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore // @TODO - Fix this type error\n      return requestPatch[key]({baseRequest, params})\n    } else if (baseRequest) {\n      return baseRequest({method, params})\n    } else {\n      throw new ProviderRpcError({\n        code: 4200,\n        message: `The Provider does not support the requested method: ${method}`\n      })\n    }\n  }\n\n  return provider\n}\ninterface JsonRpcResponse {\n  id: string | undefined\n  jsonrpc: '2.0'\n  method: string\n  result?: ProviderAccounts | Balance  | ChainId | null\n  error?: string\n}\n\nconst createRequest = (provider: any): EIP1193Provider['request'] =>\n  (({ method, params }) =>\n    new Promise((resolve, reject) => {\n      provider.sendAsync(\n        {\n          id: 0,\n          jsonrpc: '2.0',\n          method,\n          params\n        },\n        (error: string, { result }: JsonRpcResponse) => {\n          if (error) {\n            reject(JSON.parse(error))\n          } else {\n            resolve(result == undefined ? null : (result as any))\n          }\n        }\n      )\n    })) as EIP1193Provider['request']\n","export const InterVar = `\n@font-face {\n  font-family: 'Inter';\n  font-style:  normal;\n  font-weight: 300 600;\n  font-display: swap;\n  src: url(\"https://rsms.me/inter/font-files/Inter-roman.var.woff2?v=3.19\") format(\"woff2\");\n}\n`\n","import Bignumber from 'bignumber.js'\n\nexport function weiToEth(wei: string): string {\n  return new Bignumber(wei).div(1e18).toString(10)\n}\n","import type { ConnectionInfo } from 'ethers/lib/utils'\nimport type { TypedData as EIP712TypedData } from 'eip-712'\nimport type { ethers } from 'ethers'\nimport type EventEmitter from 'eventemitter3'\n\n/**\n * Types for request patching methods. Ethereum RPC request is mapped to\n * the implementation that will replace the original.\n * If a method is not supported set it to `null`\n * and the appropriate error will get called.\n */\nexport type RequestPatch = {\n  eth_accounts?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n  }) => Promise<ProviderAccounts>)\n    | null\n  eth_getBalance?:\n    | ((args: { baseRequest: EIP1193Provider['request'] }) => Promise<Balance>)\n    | null\n  eth_requestAccounts?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n  }) => Promise<ProviderAccounts>)\n    | null\n  eth_selectAccounts?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n  }) => Promise<ProviderAccounts>)\n    | null\n  eth_chainId?:\n    | ((args: { baseRequest: EIP1193Provider['request'] }) => Promise<string>)\n    | null\n  eth_signTransaction?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n    params: EthSignTransactionRequest['params']\n  }) => Promise<string>)\n    | null\n  eth_sendTransaction?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n    params: EthSignTransactionRequest['params']\n  }) => Promise<string>)\n    | null\n  eth_sign?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n    params: EthSignMessageRequest['params']\n  }) => Promise<string>)\n    | null\n  personal_sign?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n    params: PersonalSignMessageRequest['params']\n  }) => Promise<string>)\n    | null\n  eth_signTypedData?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n    params: EIP712Request['params']\n  }) => Promise<string>)\n    | null\n  wallet_switchEthereumChain?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n    params: EIP3326Request['params']\n  }) => Promise<null>)\n    | null\n  wallet_addEthereumChain?:\n    | ((args: {\n    baseRequest: EIP1193Provider['request']\n    params: EIP3085Request['params']\n  }) => Promise<null>)\n    | null\n}\nexport interface AppMetadata {\n  /* App name */\n  name: string\n\n  /* An SVG icon string or image url, with height set to 100%\n    Note: `icon` is displayed on both mobile AND desktop. If `logo`\n    below is provided then `icon` displays on mobile and `logo` on\n    desktop.\n  */\n  icon?: string\n\n  /* SVG logo (icon and text) string or image url, with width set to 100%\n     Note: This will ONLY display on desktop. It is best used with wide\n     format logos. Use `icon` for standard 40x40 icons.\n  */\n  logo?: string\n\n  /* Description of app*/\n  description?: string\n\n  /* Url to a getting started guide for app */\n  gettingStartedGuide?: string\n\n  /* Url that points to more information about app */\n  explore?: string\n\n  /** When no injected wallets detected, recommend the user to install some*/\n  recommendedInjectedWallets?: RecommendedInjectedWallets[]\n\n  agreement?: TermsOfServiceAgreementOptions | null\n}\n\nexport type TermsOfServiceAgreementOptions = {\n  version: string\n  termsUrl?: string\n  privacyUrl?: string\n}\n\nexport type RecommendedInjectedWallets = {\n  name: string\n  url: string\n}\n\n/**\n * A method that takes `WalletHelpers` and\n * returns an initialised `WalletModule` or array of `WalletModule`s.\n */\nexport type WalletInit = (\n  helpers: WalletHelpers\n) => WalletModule | WalletModule[] | null\n\nexport type WalletHelpers = {\n  device: Device\n}\n\nexport interface APIKey {\n  apiKey: string\n}\n\nexport type Device = {\n  os: DeviceOS\n  type: DeviceType\n  browser: DeviceBrowser\n}\n\nexport type Platform = DeviceOSName | DeviceBrowserName | DeviceType | 'all'\n\nexport type DeviceOS = {\n  name: DeviceOSName\n  version: string\n}\n\nexport type DeviceBrowser = {\n  name: DeviceBrowserName\n  version: string\n}\n\nexport type DeviceOSName =\n  | 'Windows Phone'\n  | 'Windows'\n  | 'macOS'\n  | 'iOS'\n  | 'Android'\n  | 'Linux'\n  | 'Chrome OS'\n\nexport type DeviceBrowserName =\n  | 'Android Browser'\n  | 'Chrome'\n  | 'Chromium'\n  | 'Firefox'\n  | 'Microsoft Edge'\n  | 'Opera'\n  | 'Safari'\n\nexport type DeviceType = 'desktop' | 'mobile' | 'tablet'\n\nexport interface WalletModule {\n  // The label of the wallet\n  label: string\n  /**\n   * Gets the icon of the wallet\n   * @returns\n   */\n  getIcon: () => Promise<string>\n  /**\n   * @returns the wallet interface associated with the module\n   */\n  getInterface: (helpers: GetInterfaceHelpers) => Promise<WalletInterface>\n}\n\nexport type GetInterfaceHelpers = {\n  chains: Chain[]\n  appMetadata: AppMetadata | null\n  BigNumber: typeof ethers.BigNumber\n  EventEmitter: typeof EventEmitter\n}\n\nexport type ChainId = string\n\nexport type DecimalChainId = number\n\nexport type RpcUrl = string\n\nexport type WalletInterface = {\n  provider: EIP1193Provider\n  instance?: unknown\n}\n\nexport interface ProviderRpcError extends Error {\n  message: string\n  code: number\n  data?: unknown\n}\n\nexport interface ProviderMessage {\n  type: string\n  data: unknown\n}\n\nexport interface ProviderInfo {\n  chainId: ChainId\n}\n\nexport type AccountAddress = string\n\n/**\n * An array of addresses\n */\nexport type ProviderAccounts = AccountAddress[]\n\nexport type ProviderEvent =\n  | 'connect'\n  | 'disconnect'\n  | 'message'\n  | 'chainChanged'\n  | 'accountsChanged'\n\nexport interface SimpleEventEmitter {\n  on(\n    event: ProviderEvent,\n    listener:\n      | ConnectListener\n      | DisconnectListener\n      | MessageListener\n      | ChainListener\n      | AccountsListener\n  ): void\n  removeListener(\n    event: ProviderEvent,\n    listener:\n      | ConnectListener\n      | DisconnectListener\n      | MessageListener\n      | ChainListener\n      | AccountsListener\n  ): void\n}\n\nexport type ConnectListener = (info: ProviderInfo) => void\nexport type DisconnectListener = (error: ProviderRpcError) => void\nexport type MessageListener = (message: ProviderMessage) => void\nexport type ChainListener = (chainId: ChainId) => void\nexport type AccountsListener = (accounts: ProviderAccounts) => void\n\n/**\n * The hexadecimal representation of the users\n */\nexport type Balance = string\n\nexport interface TransactionObject {\n  data?: string\n  from: string\n  gas?: string\n  gasLimit?: string\n  gasPrice?: string\n  to: string\n  chainId: number\n  value?: string\n  maxFeePerGas?: string\n  maxPriorityFeePerGas?: string\n  nonce?: string\n}\n\ninterface BaseRequest {\n  params?: never\n}\n\nexport interface EthAccountsRequest extends BaseRequest {\n  method: 'eth_accounts'\n}\n\nexport interface EthChainIdRequest extends BaseRequest {\n  method: 'eth_chainId'\n}\n\nexport interface EthSignTransactionRequest {\n  method: 'eth_signTransaction'\n  params: [TransactionObject]\n}\n\ntype Address = string\ntype Message = string\nexport interface EthSignMessageRequest {\n  method: 'eth_sign'\n  params: [Address, Message]\n}\n\n//https://geth.ethereum.org/docs/rpc/ns-personal#personal_sign\nexport interface PersonalSignMessageRequest {\n  method: 'personal_sign'\n  params: [Message, Address]\n}\n\n// request -> signTypedData_v3`\nexport interface EIP712Request {\n  method: 'eth_signTypedData'\n  params: [Address, EIP712TypedData]\n}\n\nexport interface EthBalanceRequest {\n  method: 'eth_getBalance'\n  params: [string, (number | 'latest' | 'earliest' | 'pending')?]\n}\n\nexport interface EIP1102Request extends BaseRequest {\n  method: 'eth_requestAccounts'\n}\n\nexport interface SelectAccountsRequest extends BaseRequest {\n  method: 'eth_selectAccounts'\n}\n\nexport interface EIP3085Request {\n  method: 'wallet_addEthereumChain'\n  params: AddChainParams[]\n}\n\nexport interface EIP3326Request {\n  method: 'wallet_switchEthereumChain'\n  params: [{ chainId: ChainId }]\n}\n\nexport type AddChainParams = {\n  chainId: ChainId\n  chainName?: string\n  nativeCurrency: {\n    name?: string\n    symbol?: string\n    decimals: number\n  }\n  rpcUrls: string[]\n}\n\nexport interface EIP1193Provider extends SimpleEventEmitter {\n  on(event: 'connect', listener: ConnectListener): void\n  on(event: 'disconnect', listener: DisconnectListener): void\n  on(event: 'message', listener: MessageListener): void\n  on(event: 'chainChanged', listener: ChainListener): void\n  on(event: 'accountsChanged', listener: AccountsListener): void\n  request(args: EthAccountsRequest): Promise<ProviderAccounts>\n  request(args: EthBalanceRequest): Promise<Balance>\n  request(args: EIP1102Request): Promise<ProviderAccounts>\n  request(args: SelectAccountsRequest): Promise<ProviderAccounts>\n  request(args: EIP3326Request): Promise<null>\n  request(args: EIP3085Request): Promise<null>\n  request(args: EthChainIdRequest): Promise<ChainId>\n  request(args: EthSignTransactionRequest): Promise<string>\n  request(args: EthSignMessageRequest): Promise<string>\n  request(args: PersonalSignMessageRequest): Promise<string>\n  request(args: EIP712Request): Promise<string>\n  request(args: { method: string; params?: Array<unknown> }): Promise<unknown>\n  disconnect?(): void\n}\n\nexport enum ProviderRpcErrorCode {\n  ACCOUNT_ACCESS_REJECTED = 4001,\n  ACCOUNT_ACCESS_ALREADY_REQUESTED = -32002,\n  UNAUTHORIZED = 4100,\n  INVALID_PARAMS = -32602,\n  UNSUPPORTED_METHOD = 4200,\n  DISCONNECTED = 4900,\n  CHAIN_DISCONNECTED = 4901,\n  CHAIN_NOT_ADDED = 4902,\n  DOES_NOT_EXIST = -32601,\n  UNRECOGNIZED_CHAIN_ID = -32603\n}\n\nexport interface Chain {\n  /**\n   * String indicating chain namespace.\n   * Defaults to 'evm' but will allow other chain namespaces in the future\n   */\n  namespace?: 'evm'\n  /* Hex encoded string, eg '0x1' for Ethereum Mainnet */\n  id: ChainId\n  /**\n   * Recommended to include. Used for network requests\n   * (eg Alchemy or Infura end point).\n   * PLEASE NOTE: Some wallets require an rpcUrl, label,\n   * and token for actions such as adding a new chain.\n   * It is recommended to include rpcUrl, label,\n   * and token for full functionality.\n   */\n  rpcUrl?: string\n  /* Recommended to include. Used for display, eg Ethereum Mainnet */\n  label?: string\n  /* Recommended to include. The native token symbol, eg ETH, BNB, MATIC */\n  token?: TokenSymbol\n  /**\n   * The color used to represent the chain and\n   * will be used as a background for the icon\n   */\n  color?: string\n  /* Svg string. The icon to represent the chain */\n  icon?: string\n  /* Related to ConnectionInfo from 'ethers/lib/utils' */\n  providerConnectionInfo?: ConnectionInfo\n  /* An optional public RPC used when adding a new chain config to the wallet */\n  publicRpcUrl?: string\n  /* Also used when adding a new config to the wallet */\n  blockExplorerUrl?: string\n}\n\nexport type ChainWithDecimalId = Omit<Chain, 'id'> & { id: DecimalChainId }\n\nexport type TokenSymbol = string // eg ETH\n\nexport interface CustomNetwork {\n  networkId: number\n  genesis: GenesisBlock\n  hardforks: Hardfork[]\n  bootstrapNodes: BootstrapNode[]\n}\n\nexport interface GenesisBlock {\n  hash: string\n  timestamp: string | null\n  gasLimit: number\n  difficulty: number\n  nonce: string\n  extraData: string\n  stateRoot: string\n}\nexport interface Hardfork {\n  name: string\n  block: number | null\n}\n\nexport interface BootstrapNode {\n  ip: string\n  port: number | string\n  network?: string\n  chainId?: number\n  id: string\n  location: string\n  comment: string\n}\n\nexport interface RPCResponse {\n  id: number\n  jsonrpc: string\n  error?: { code: number; message: string }\n  result?: any\n}\n","import Joi from 'joi'\nexport type ValidateReturn = Joi.ValidationResult | null\n\nexport function validate(\n  validator: Joi.AnySchema<any>,\n  data: unknown\n): ValidateReturn {\n  const result = validator.validate(data)\n  return result.error ? result : null\n}\n\nexport const chainIdValidation = Joi.alternatives().try(\n  Joi.string().pattern(/^0x[0-9a-fA-F]+$/),\n  Joi.number().positive()\n)\n\nexport const chainNamespaceValidation = Joi.string().valid('evm')\n\n/** Related to ConnectionInfo from 'ethers/lib/utils' */\nexport const providerConnectionInfoValidation = Joi.object({\n  url: Joi.string().required(),\n  headers: Joi.object(),\n  user: Joi.string(),\n  password: Joi.string(),\n  allowInsecureAuthentication: Joi.boolean(),\n  allowGzip: Joi.boolean(),\n  throttleLimit: Joi.number(),\n  throttleSlotInterval: Joi.number(),\n  throttleCallback: Joi.function(),\n  timeout: Joi.number()\n})\n\nexport const chainValidation = Joi.object({\n  namespace: chainNamespaceValidation,\n  id: chainIdValidation.required(),\n  rpcUrl: Joi.string(),\n  label: Joi.string(),\n  token: Joi.string(),\n  icon: Joi.string(),\n  color: Joi.string(),\n  publicRpcUrl: Joi.string(),\n  blockExplorerUrl: Joi.string(),\n  providerConnectionInfoValidation\n})\n","import Joi from 'joi'\nimport {\n  type ChainId,\n  type DecimalChainId,\n  type WalletInit,\n  type WalletModule,\n  type ValidateReturn,\n  chainNamespaceValidation,\n  chainIdValidation,\n  chainValidation,\n  validate\n} from '../../common'\n\nimport type {\n  InitOptions,\n  WalletState,\n  ConnectOptions,\n  DisconnectOptions,\n  ConnectOptionsString,\n  AccountCenter,\n  TransactionHandlerReturn,\n  NotifyOptions,\n  Notification,\n  CustomNotification,\n  CustomNotificationUpdate,\n  Notify,\n  PreflightNotificationsOptions,\n  ConnectModalOptions,\n  Theme\n} from './types'\n\nconst unknownObject = Joi.object().unknown()\n\nconst connectedChain = Joi.object({\n  namespace: chainNamespaceValidation.required(),\n  id: chainIdValidation.required()\n})\n\nconst ens = Joi.any().allow(\n  Joi.object({\n    name: Joi.string().required(),\n    avatar: Joi.string(),\n    contentHash: Joi.any().allow(Joi.string(), null),\n    getText: Joi.function().arity(1).required()\n  }),\n  null\n)\n\nconst uns = Joi.any().allow(\n  Joi.object({\n    name: Joi.string().required()\n  }),\n  null\n)\n\nconst balance = Joi.any().allow(\n  Joi.object({\n    eth: Joi.number()\n  }).unknown(),\n  null\n)\n\nconst account = Joi.object({\n  address: Joi.string().required(),\n  ens,\n  uns,\n  balance\n})\n\nconst chains = Joi.array()\n  .items(chainValidation)\n  .unique((a, b) => a.id === b.id)\n  .error(e => {\n    if (e[0].code === 'array.unique') {\n      return new Error(\n        `There is a duplicate Chain ID in your Web3Connect Chains array: ${e}`\n      )\n    }\n    return new Error(`${e}`)\n  })\n\nconst accounts = Joi.array().items(account)\n\nconst wallet = Joi.object({\n  label: Joi.string(),\n  icon: Joi.string(),\n  provider: unknownObject,\n  instance: unknownObject,\n  accounts,\n  chains: Joi.array().items(connectedChain)\n})\n  .required()\n  .error(new Error('wallet must be defined'))\n\nconst wallets = Joi.array().items(wallet)\n\nconst recommendedWallet = Joi.object({\n  name: Joi.string().required(),\n  url: Joi.string().uri().required()\n})\n\nconst agreement = Joi.object({\n  version: Joi.string().required(),\n  termsUrl: Joi.string().uri(),\n  privacyUrl: Joi.string().uri()\n})\n\nconst appMetadata = Joi.object({\n  name: Joi.string().required(),\n  description: Joi.string().required(),\n  icon: Joi.string(),\n  logo: Joi.string(),\n  gettingStartedGuide: Joi.string(),\n  email: Joi.string(),\n  appUrl: Joi.string(),\n  explore: Joi.string(),\n  recommendedInjectedWallets: Joi.array().items(recommendedWallet),\n  agreement\n})\n\nconst walletModule = Joi.object({\n  label: Joi.string().required(),\n  getInfo: Joi.function().arity(1).required(),\n  getInterface: Joi.function().arity(1).required()\n})\n\nconst walletInit = Joi.array().items(Joi.function()).required()\n\nconst locale = Joi.string()\n\nconst commonPositions = Joi.string().valid(\n  'topRight',\n  'bottomRight',\n  'bottomLeft',\n  'topLeft'\n)\n\nconst gasPriceProbabilities = [70, 80, 90, 95, 99]\n\nconst notify = Joi.object({\n  transactionHandler: Joi.function(),\n  enabled: Joi.boolean(),\n  position: commonPositions,\n  replacement: Joi.object({\n    gasPriceProbability: Joi.object({\n      speedup: Joi.number().valid(...gasPriceProbabilities),\n      cancel: Joi.number().valid(...gasPriceProbabilities)\n    })\n  })\n})\n\nconst notifyOptions = Joi.object({\n  desktop: notify,\n  mobile: notify\n})\n\nconst accountCenterInitOptions = Joi.object({\n  enabled: Joi.boolean(),\n  position: commonPositions,\n  showTokenList: Joi.boolean(),\n})\n\nconst accountCenter = Joi.object({\n  enabled: Joi.boolean(),\n  position: commonPositions,\n  expanded: Joi.boolean(),\n  showTokenList: Joi.boolean(),\n})\n\nconst connectModalOptions = Joi.object({\n  showSidebar: Joi.boolean(),\n  disableClose: Joi.boolean(),\n  autoConnectLastWallet: Joi.boolean(),\n  autoConnectAllPreviousWallet: Joi.boolean(),\n  iDontHaveAWalletLink: Joi.string(),\n  wheresMyWalletLink: Joi.string(),\n  disableUDResolution: Joi.boolean()\n})\n\nconst themeMap = Joi.object({\n  '--be-e-background-color': Joi.string(),\n  '--be-e-font-family': Joi.string(),\n  '--be-e-foreground-color': Joi.string(),\n  '--be-e-text-color': Joi.string(),\n  '--be-e-border-color': Joi.string(),\n  '--be-e-action-color': Joi.string(),\n  '--be-e-border-radius': Joi.string()\n})\n\nconst presetTheme = Joi.string().valid('default', 'dark', 'light', 'system')\n\nconst theme = Joi.alternatives().try(themeMap, presetTheme)\n\nconst initOptions = Joi.object({\n  wallets: walletInit,\n  chains: chains.required(),\n  appMetadata: appMetadata,\n  locale: Joi.string(),\n  apiKey: Joi.string(),\n  accountCenter: Joi.object({\n    desktop: accountCenterInitOptions,\n    mobile: accountCenterInitOptions\n  }),\n  notify: [notifyOptions, notify],\n  gas: Joi.object({\n    get: Joi.function().required(),\n    stream: Joi.function().required()\n  }),\n  connect: connectModalOptions,\n  transactionPreview: Joi.object({\n    patchProvider: Joi.function().required(),\n    init: Joi.function().required(),\n    previewTransaction: Joi.function()\n  }),\n  theme: theme,\n  disableFontDownload: Joi.boolean(),\n  unstoppableResolution: Joi.function()\n})\n\nconst connectOptions = Joi.object({\n  autoSelect: Joi.alternatives()\n    .try(\n      Joi.object({\n        label: Joi.string().required(),\n        disableModals: Joi.boolean()\n      }),\n      Joi.string()\n    )\n    .required()\n})\n\nconst disconnectOptions = Joi.object({\n  label: Joi.string().required()\n}).required()\n\nconst setChainOptions = Joi.object({\n  chainId: chainIdValidation.required(),\n  chainNamespace: chainNamespaceValidation,\n  wallet: Joi.string(),\n  rpcUrl: Joi.string(),\n  label: Joi.string(),\n  token: Joi.string()\n})\n\nconst customNotificationUpdate = Joi.object({\n  key: Joi.string().required(),\n  type: Joi.string().allow('pending', 'error', 'success', 'hint'),\n  eventCode: Joi.string(),\n  message: Joi.string().required(),\n  id: Joi.string().required(),\n  autoDismiss: Joi.number(),\n  onClick: Joi.function(),\n  link: Joi.string()\n})\n\nconst preflightNotifications = Joi.object({\n  sendTransaction: Joi.function(),\n  estimateGas: Joi.function(),\n  gasPrice: Joi.function(),\n  balance: Joi.alternatives(Joi.string(), Joi.number()),\n  txDetails: Joi.object({\n    value: Joi.alternatives(Joi.string(), Joi.number()),\n    to: Joi.string(),\n    from: Joi.string()\n  }),\n  txApproveReminderTimeout: Joi.number()\n})\n\nconst customNotification = Joi.object({\n  key: Joi.string(),\n  type: Joi.string().allow('pending', 'error', 'success', 'hint'),\n  eventCode: Joi.string(),\n  message: Joi.string(),\n  id: Joi.string(),\n  autoDismiss: Joi.number(),\n  onClick: Joi.function(),\n  link: Joi.string()\n})\n\nconst notification = Joi.object({\n  id: Joi.string().required(),\n  key: Joi.string().required(),\n  type: Joi.string().allow('pending', 'error', 'success', 'hint').required(),\n  eventCode: Joi.string().required(),\n  message: Joi.string().required(),\n  autoDismiss: Joi.number().required(),\n  network: Joi.string().required(),\n  startTime: Joi.number(),\n  onClick: Joi.function(),\n  link: Joi.string()\n})\n\nconst transactionHandlerReturn = Joi.any().allow(\n  customNotificationUpdate,\n  Joi.boolean().allow(false)\n)\n\nexport function validateWallet(\n  data: WalletState | Partial<WalletState>\n): ValidateReturn {\n  return validate(wallet, data)\n}\n\nexport function validateInitOptions(data: InitOptions): ValidateReturn {\n  return validate(initOptions, data)\n}\n\nexport function validateWalletModule(data: WalletModule): ValidateReturn {\n  return validate(walletModule, data)\n}\n\nexport function validateConnectOptions(\n  data: ConnectOptions | ConnectOptionsString\n): ValidateReturn {\n  return validate(connectOptions, data)\n}\n\nexport function validateDisconnectOptions(\n  data: DisconnectOptions\n): ValidateReturn {\n  return validate(disconnectOptions, data)\n}\n\nexport function validateString(str: string, label?: string): ValidateReturn {\n  return validate(\n    Joi.string()\n      .required()\n      .label(label || 'value'),\n    str\n  )\n}\n\nexport function validateSetChainOptions(data: {\n  chainId: ChainId | DecimalChainId\n  chainNamespace?: string\n  wallet?: WalletState['label']\n  rpcUrl?: string\n  label?: string\n  token?: string\n}): ValidateReturn {\n  return validate(setChainOptions, data)\n}\n\nexport function validateAccountCenterUpdate(\n  data: AccountCenter | Partial<AccountCenter>\n): ValidateReturn {\n  return validate(accountCenter, data)\n}\n\nexport function validateConnectModalUpdate(\n  data: ConnectModalOptions | Partial<ConnectModalOptions>\n): ValidateReturn {\n  return validate(connectModalOptions, data)\n}\n\nexport function validateWalletInit(data: WalletInit[]): ValidateReturn {\n  return validate(walletInit, data)\n}\n\nexport function validateLocale(data: string): ValidateReturn {\n  return validate(locale, data)\n}\n\nexport function validateNotify(data: Partial<Notify>): ValidateReturn {\n  return validate(notify, data)\n}\n\nexport function validateNotifyOptions(\n  data: Partial<NotifyOptions>\n): ValidateReturn {\n  return validate(notifyOptions, data)\n}\n\nexport function validateTransactionHandlerReturn(\n  data: TransactionHandlerReturn\n): ValidateReturn {\n  return validate(transactionHandlerReturn, data)\n}\n\nexport function validateNotification(data: Notification): ValidateReturn {\n  return validate(notification, data)\n}\nexport function validatePreflightNotifications(\n  data: PreflightNotificationsOptions\n): ValidateReturn {\n  return validate(preflightNotifications, data)\n}\n\nexport function validateCustomNotificationUpdate(\n  data: CustomNotificationUpdate\n): ValidateReturn {\n  return validate(customNotificationUpdate, data)\n}\n\nexport function validateCustomNotification(\n  data: CustomNotification\n): ValidateReturn {\n  return validate(customNotification, data)\n}\n\nexport function validateUpdateBalances(data: WalletState[]): ValidateReturn {\n  return validate(wallets, data)\n}\n\nexport function validateUpdateTheme(data: Theme): ValidateReturn {\n  return validate(theme, data)\n}\n","import { configuration } from './configuration'\nimport type { AppState } from './types'\n\nexport const APP_INITIAL_STATE: AppState = {\n  wallets: [],\n  walletModules: [],\n  chains: [],\n  accountCenter: {\n    enabled: true,\n    position: 'topRight',\n    expanded: false,\n    showTokenList: true\n  },\n  notify: {\n    enabled: true,\n    transactionHandler: () => {},\n  },\n  notifications: [],\n  locale: 'en',\n  connect: {}\n}\n\nexport const STORAGE_KEYS = {\n  TERMS_AGREEMENT: 'b-ee.io:agreement',\n  LAST_CONNECTED_WALLET: 'b-ee.io:last_connected_wallet',\n  BALANCES_SETTING: 'b-ee.io:balances_settings'\n}\n\nexport const MOBILE_WINDOW_WIDTH = 768\n\n\n\n// Balance plugin\n\nexport const ZERO_ADDRESS = \"0x0000000000000000000000000000000000000000\";\nexport const TOKENS_PRICE_RATE_URL = \"https://min-api.cryptocompare.com/data/price?fsym=USD&tsyms=\";\nexport const CRYPTO_CURRENCY_ICONS_URL = \"https://raw.githubusercontent.com/bee-io/b-ee-cryptocurreny-icons/b2e6cf083052ce6dcbb32d7f5b1166cb7ffd5dcc/svg/\";\nexport const DEFAULT_CACHE_TIMEOUT = 15_000;\n\nexport const ETHERSCAN_URL = \"https://etherscan.io/address/\";\nexport const BSCSCAN_URL = \"https://bscscan.com/address/\";\nexport const POLYGON_URL = \"https://polygonscan.com/address/\";\nexport const BALANCE_CONTRACT_LIST = {\n  MAINNET: '0xb1f8e55c7f64d203c1400b9d8555d050f94adf39',\n  BSC: '0x2352c63A83f9Fd126af8676146721Fa00924d7e4',\n  POLYGON: '0x2352c63A83f9Fd126af8676146721Fa00924d7e4',\n}\nexport const NETWORK_LIST = {\n  MAINNET: 'Ethereum Mainnet',\n  BSC: 'Binance Smart Chain',\n  POLYGON: 'Polygon',\n}\nexport const RPC_LIST = {\n  MAINNET: 'https://rpc.ankr.com/eth',\n  BSC: 'https://bsc-dataseed1.ninicoin.io',\n  POLYGON: 'https://polygon-rpc.com',\n}\n\nexport const CHAIN_IDS = {\n  MAINNET: '0x1',\n  BSC: '0x38',\n  POLYGON: '0x89',\n}\n\nexport const DIGITS_PRICE = {\n  \"2\": \"2\",\n  \"3\": \"3\",\n  \"4\": \"4\",\n  \"5\": \"5\",\n  \"6\": \"6\",\n  \"7\": \"7\",\n  \"8\": \"8\",\n  \"9\": \"9\",\n  \"10\": \"10\",\n};\n\nexport const TOGGLE_LIST = {\n  On: \"true\",\n  Off: \"false\",\n};\n\nexport const SUPPORTED_TOKENS = {\n  MAINNET: {\n    included:[\n      {\n        isActive: true,\n        address: ZERO_ADDRESS,\n        name: 'Ethereum',\n        symbol: 'ETH',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599\",\n        name: 'Wrapped Bitcoin',\n        symbol: 'WBTC',\n        decimals: 8,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n        name: 'WETH',\n        symbol: 'WETH',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n        name: 'Tether',\n        symbol: 'USDT',\n        decimals: 6,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n        name: 'USD Coin',\n        symbol: 'USDC',\n        decimals: 6,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xB8c77482e45F1F44dE1745F52C74426C631bDD52\",\n        name: 'BNB',\n        symbol: 'BNB',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x4Fabb145d64652a948d72533023f6E7A623C7C53\",\n        name: 'Binance USD',\n        symbol: 'BUSD',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0\",\n        name: 'Polygon',\n        symbol: 'MATIC',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x6B175474E89094C44Da98b954EedeAC495271d0F\",\n        name: 'Dai',\n        symbol: 'DAI',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE\",\n        name: 'Shiba Inu',\n        symbol: 'SHIB',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x1f9840a85d5af5bf1d1762f925bdaddc4201f984\",\n        name: 'Uniswap',\n        symbol: 'UNI',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3\",\n        name: 'UNUS SED LEO',\n        symbol: 'LEO',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x582d872a1b094fc48f5de31d3b73f2d9be47def1\",\n        name: 'Toncoin',\n        symbol: 'TON',\n        decimals: 9,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x514910771af9ca656af840dff83e8264ecf986ca\",\n        name: 'Chainlink',\n        symbol: 'LINK',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x8D983cb9388EaC77af0474fA441C4815500Cb7BB\",\n        name: 'Cosmos',\n        symbol: 'ATOM',\n        decimals: 6,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xA0b73E1Ff0B80914AB6fe0444E65848C4C34450b\",\n        name: 'Cronos',\n        symbol: 'CRO',\n        decimals: 8,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x75231f58b43240c9718dd58b4967c5114342a86c\",\n        name: 'OKB',\n        symbol: 'OKB',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x4d224452801aced8b2f0aebe155379bb5d594381\",\n        name: 'ApeCoin',\n        symbol: 'APE',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      }\n    ],\n    excluded:[]\n  },\n  BSC: {\n    included:[\n      {\n        isActive: true,\n        address: '0x2170Ed0880ac9A755fd29B2688956BD959F933F8',\n        name: 'Ethereum',\n        symbol: 'ETH',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c\",\n        name: 'Wrapped Bitcoin',\n        symbol: 'WBTC',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x55d398326f99059fF775485246999027B3197955\",\n        name: 'Tether',\n        symbol: 'USDT',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d\",\n        name: 'USD Coin',\n        symbol: 'USDC',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: ZERO_ADDRESS,\n        name: 'BNB',\n        symbol: 'BNB',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56\",\n        name: 'Binance USD',\n        symbol: 'BUSD',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe\",\n        name: 'XRP',\n        symbol: 'XRP',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xbA2aE424d960c26247Dd6c32edC70B295c744C43\",\n        name: 'DOGE',\n        symbol: 'DOGE',\n        decimals: 8,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x3ee2200efb3400fabb9aacf31297cbdd1d435d47\",\n        name: 'Cardano',\n        symbol: 'ADA',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xCC42724C6683B7E57334c4E856f4c9965ED682bD\",\n        name: 'Polygon',\n        symbol: 'MATIC',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3\",\n        name: 'Dai',\n        symbol: 'DAI',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x7083609fCE4d1d8Dc0C979AAb8c869Ea2C873402\",\n        name: 'Polkadot',\n        symbol: 'DOT',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xce7de646e7208a4ef112cb6ed5038fa6cc6b12e3\",\n        name: 'Tron',\n        symbol: 'TRX',\n        decimals: 6,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x4338665CBB7B2485A8855A139b75D5e34AB0DB94\",\n        name: 'Litecoin',\n        symbol: 'LTC',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x2859e4544C4bB03966803b044A93563Bd2D0DD4D\",\n        name: 'Shiba Inu',\n        symbol: 'SHIB',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xBf5140A22578168FD562DCcF235E5D43A02ce9B1\",\n        name: 'Uniswap',\n        symbol: 'UNI',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x1CE0c2827e2eF14D5C4f29a091d735A204794041\",\n        name: 'Avalanche',\n        symbol: 'AVAX',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x76A797A59Ba2C17726896976B7B3747BfD1d220f\",\n        name: 'Toncoin',\n        symbol: 'TON',\n        decimals: 9,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xF8A0BF9cF54Bb92F17374d9e9A321E6a111a51bD\",\n        name: 'Chainlink',\n        symbol: 'LINK',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x0Eb3a705fc54725037CC9e008bDede697f62F335\",\n        name: 'Cosmos',\n        symbol: 'ATOM',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x3d6545b08693dae087e957cb1180ee38b9e3c25e\",\n        name: 'Ethereum Classic',\n        symbol: 'ETC',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x8fF795a6F4D97E7887C79beA79aba5cc76444aDf\",\n        name: 'Bitcoin Cash',\n        symbol: 'BCH',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      }\n\n    ],\n    excluded:[]\n  },\n  POLYGON: {\n    included:[\n      {\n        isActive: true,\n        address: ZERO_ADDRESS,\n        name: 'Polygon',\n        symbol: 'MATIC',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n        name: 'Tether',\n        symbol: 'USDT',\n        decimals: 6,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174\",\n        name: 'USD Coin',\n        symbol: 'USDC',\n        decimals: 6,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619\",\n        name: 'WETH',\n        symbol: 'WETH',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x3BA4c387f786bFEE076A58914F5Bd38d668B42c3\",\n        name: 'BNB',\n        symbol: 'BNB',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6\",\n        name: 'Wrapped Bitcoin',\n        symbol: 'WBTC',\n        decimals: 8,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063\",\n        name: 'Dai',\n        symbol: 'DAI',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xb33EaAd8d922B1083446DC23f610c2567fB5180f\",\n        name: 'Uniswap',\n        symbol: 'UNI',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39\",\n        name: 'Chainlink',\n        symbol: 'LINK',\n        decimals: 18,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      },\n      {\n        isActive: true,\n        address: \"0xac51C4c48Dc3116487eD4BC16542e27B5694Da1b\",\n        name: 'Cosmos',\n        symbol: 'ATOM',\n        decimals: 6,\n        balance:'0',\n        price:'0',\n        rateToUSD:0\n      }\n    ],\n    excluded:[]\n  },\n}\nexport const SUPPORTED_NETWORKS = [\n  {\n    name: NETWORK_LIST.MAINNET,\n    balancesContract: BALANCE_CONTRACT_LIST.MAINNET,\n    rpc: RPC_LIST.MAINNET,\n    chainId: CHAIN_IDS.MAINNET,\n    tokens: SUPPORTED_TOKENS.MAINNET,\n    scanUrl:ETHERSCAN_URL,\n    totalBalance: \"0\",\n  },\n  {\n    name: NETWORK_LIST.BSC,\n    balancesContract:  BALANCE_CONTRACT_LIST.BSC,\n    rpc: RPC_LIST.BSC,\n    chainId: CHAIN_IDS.BSC,\n    tokens: SUPPORTED_TOKENS.BSC,\n    scanUrl:BSCSCAN_URL,\n    totalBalance: \"0\",\n  },\n  {\n    name: NETWORK_LIST.POLYGON,\n    balancesContract:  BALANCE_CONTRACT_LIST.POLYGON,\n    rpc: RPC_LIST.POLYGON,\n    chainId: CHAIN_IDS.POLYGON,\n    tokens: SUPPORTED_TOKENS.POLYGON,\n    scanUrl:POLYGON_URL,\n    totalBalance: \"0\",\n  }\n\n];\n\n\nexport const DEFAULT_SETTING_LIST = {\n  enableTotalByAllTokens: TOGGLE_LIST.On,\n  digitsPrice: DIGITS_PRICE[\"6\"],\n  ethRpc: RPC_LIST.MAINNET,\n  bscRpc: RPC_LIST.BSC,\n  polygonRpc: RPC_LIST.POLYGON,\n  defaultConfig: SUPPORTED_NETWORKS,\n};\n","export const ADD_CHAINS = 'add_chains'\nexport const UPDATE_CHAINS = 'update_chains'\nexport const RESET_STORE = 'reset_store'\nexport const ADD_WALLET = 'add_wallet'\nexport const UPDATE_WALLET = 'update_wallet'\nexport const REMOVE_WALLET = 'remove_wallet'\nexport const UPDATE_ACCOUNT = 'update_account'\nexport const UPDATE_ACCOUNT_CENTER = 'update_account_center'\nexport const UPDATE_CONNECT_MODAL = 'update_connect_modal'\nexport const SET_WALLET_MODULES = 'set_wallet_modules'\nexport const SET_LOCALE = 'set_locale'\nexport const UPDATE_NOTIFY = 'update_notify'\nexport const ADD_NOTIFICATION = 'add_notification'\nexport const REMOVE_NOTIFICATION = 'remove_notification'\nexport const UPDATE_ALL_WALLETS = 'update_balance'\n","import { BehaviorSubject, Subject, Observable } from 'rxjs'\nimport { distinctUntilKeyChanged, pluck, filter } from 'rxjs/operators'\nimport { APP_INITIAL_STATE } from '../constants'\nimport { notNullish } from '../utils'\nimport type { Chain, WalletModule } from '../../../common'\n\nimport type {\n  AppState,\n  WalletState,\n  Action,\n  UpdateWalletAction,\n  AddWalletAction,\n  UpdateAccountAction,\n  UpdateAccountCenterAction,\n  Locale,\n  UpdateNotifyAction,\n  AddNotificationAction,\n  RemoveNotificationAction,\n  UpdateAllWalletsAction,\n  UpdateConnectModalAction,\n  UpdateChainsAction\n} from '../types'\n\nimport {\n  ADD_CHAINS,\n  ADD_WALLET,\n  UPDATE_WALLET,\n  REMOVE_WALLET,\n  RESET_STORE,\n  UPDATE_ACCOUNT,\n  UPDATE_CONNECT_MODAL,\n  UPDATE_ACCOUNT_CENTER,\n  UPDATE_NOTIFY,\n  SET_WALLET_MODULES,\n  SET_LOCALE,\n  ADD_NOTIFICATION,\n  REMOVE_NOTIFICATION,\n  UPDATE_ALL_WALLETS,\n  UPDATE_CHAINS\n} from './constants'\n\nfunction reducer(state: AppState, action: Action): AppState {\n  const { type, payload } = action\n\n  switch (type) {\n    case ADD_CHAINS:\n      return {\n        ...state,\n        chains: [...state.chains, ...(payload as Chain[])]\n      }\n\n    case UPDATE_CHAINS: {\n      const updatedChain = payload as UpdateChainsAction['payload']\n      const chains = state.chains\n      const index = chains.findIndex((chain) => chain.id === updatedChain.id)\n      chains[index] = updatedChain\n      return {\n        ...state,\n        chains\n      }\n    }\n\n    case ADD_WALLET: {\n      const wallet = payload as AddWalletAction['payload']\n      const existingWallet = state.wallets.find(\n        ({ label }) => label === wallet.label\n      )\n\n      return {\n        ...state,\n        wallets: [\n          // add to front of wallets as it is now the primary wallet\n          existingWallet || (payload as WalletState),\n          // filter out wallet if it already existed\n          ...state.wallets.filter(({ label }) => label !== wallet.label)\n        ]\n      }\n    }\n\n    case UPDATE_WALLET: {\n      const update = payload as UpdateWalletAction['payload']\n      const { id, ...walletUpdate } = update\n\n      const updatedWallets = state.wallets.map(wallet =>\n        wallet.label === id ? { ...wallet, ...walletUpdate } : wallet\n      )\n\n      return {\n        ...state,\n        wallets: updatedWallets\n      }\n    }\n\n    case REMOVE_WALLET: {\n      const update = payload as { id: string }\n\n      return {\n        ...state,\n        wallets: state.wallets.filter(({ label }) => label !== update.id)\n      }\n    }\n\n    case UPDATE_ACCOUNT: {\n      const update = payload as UpdateAccountAction['payload']\n      const { id, address, ...accountUpdate } = update\n\n      const updatedWallets = state.wallets.map(wallet => {\n        if (wallet.label === id) {\n          wallet.accounts = wallet.accounts.map(account => {\n            if (account.address === address) {\n              return { ...account, ...accountUpdate }\n            }\n\n            return account\n          })\n        }\n\n        return wallet\n      })\n\n      return {\n        ...state,\n        wallets: updatedWallets\n      }\n    }\n\n    case UPDATE_ALL_WALLETS: {\n      const updatedWallets = payload as UpdateAllWalletsAction['payload']\n      return {\n        ...state,\n        wallets: updatedWallets\n      }\n    }\n\n    case UPDATE_CONNECT_MODAL: {\n      const update = payload as UpdateConnectModalAction['payload']\n\n      return {\n        ...state,\n        connect: {\n          ...state.connect,\n          ...update\n        }\n      }\n    }\n\n    case UPDATE_ACCOUNT_CENTER: {\n      const update = payload as UpdateAccountCenterAction['payload']\n\n      return {\n        ...state,\n        accountCenter: {\n          ...state.accountCenter,\n          ...update\n        }\n      }\n    }\n\n    case UPDATE_NOTIFY: {\n      const update = payload as UpdateNotifyAction['payload']\n\n      return {\n        ...state,\n        notify: {\n          ...state.notify,\n          ...update\n        }\n      }\n    }\n\n    case ADD_NOTIFICATION: {\n      const update = payload as AddNotificationAction['payload']\n      const notificationsUpdate = [...state.notifications]\n\n      const notificationExistsIndex = notificationsUpdate.findIndex(\n        ({ id }) => id === update.id\n      )\n\n      if (notificationExistsIndex !== -1) {\n        // if notification with same id, replace it with update\n        notificationsUpdate[notificationExistsIndex] = update\n      } else {\n        // otherwise add it to the beginning of array as new notification\n        notificationsUpdate.unshift(update)\n      }\n\n      return {\n        ...state,\n        notifications: notificationsUpdate\n      }\n    }\n\n    case REMOVE_NOTIFICATION: {\n      const id = payload as RemoveNotificationAction['payload']\n\n      return {\n        ...state,\n        notifications: state.notifications.filter(\n          notification => notification.id !== id\n        )\n      }\n    }\n\n    case SET_WALLET_MODULES: {\n      return {\n        ...state,\n        walletModules: payload as WalletModule[]\n      }\n    }\n\n    case SET_LOCALE: {\n      // Set the locale in the svelte-i18n internal state\n      // locale.set(payload as Locale)\n      return {\n        ...state,\n        locale: payload as Locale\n      }\n    }\n\n    case RESET_STORE:\n      return APP_INITIAL_STATE\n\n    default:\n      throw new Error(`Unknown type: ${type} in appStore reducer`)\n  }\n}\n\nconst _store = new BehaviorSubject<AppState>(APP_INITIAL_STATE)\nconst _stateUpdates = new Subject<AppState>()\n\n_stateUpdates.subscribe(_store)\n\nexport function dispatch(action: Action): void {\n  const state = _store.getValue()\n  _stateUpdates.next(reducer(state, action))\n}\n\nfunction select(): Observable<AppState>\nfunction select<T extends keyof AppState>(stateKey: T): Observable<AppState[T]>\nfunction select<T extends keyof AppState>(\n  stateKey?: keyof AppState\n): Observable<AppState[T]> | Observable<AppState> {\n  if (!stateKey) return _stateUpdates.asObservable()\n\n  const validStateKeys = Object.keys(_store.getValue())\n\n  if (!validStateKeys.includes(String(stateKey))) {\n    throw new Error(`key: ${stateKey} does not exist on this store`)\n  }\n\n  return _stateUpdates\n    .asObservable()\n    .pipe(\n      distinctUntilKeyChanged(stateKey),\n      pluck(stateKey),\n      filter(notNullish)\n    ) as Observable<AppState[T]>\n}\n\nfunction get(): AppState {\n  return _store.getValue()\n}\n\nexport const state = {\n  select,\n  get\n}\n","import type { Chain } from '../../common'\nimport { Observable, Subject,BehaviorSubject } from 'rxjs'\nimport {\n  withLatestFrom,\n  pluck,\n  shareReplay\n} from 'rxjs/operators'\n\nimport { resetStore } from './store/actions'\nimport { state } from './store/index'\n\nimport type { WalletState, ConnectOptions } from './types'\nimport type { EthereumTransactionData } from 'bnc-sdk'\n\nexport const reset$: Subject<void> = new Subject<void>()\nexport const disconnectWallet$ = new Subject<WalletState['label']>()\n\nexport const connectWallet$ = new BehaviorSubject<{\n  autoSelect?: ConnectOptions['autoSelect']\n  actionRequired?: string\n  inProgress: boolean\n}>({ inProgress: false, actionRequired: '' })\n\nexport const switchChainModal$ = new BehaviorSubject<null | {\n  chain: Chain\n}>(null)\n\nexport const wallets$:Observable<WalletState[]> = (\n  state.select('wallets') as Observable<WalletState[]>\n).pipe(shareReplay(1))\n\n// reset logic\nreset$.pipe(withLatestFrom(wallets$), pluck('1')).subscribe(wallets => {\n  // disconnect all wallets\n  wallets.forEach(({ label }) => {\n    disconnectWallet$.next(label)\n  })\n\n  resetStore()\n})\n\n// keep transactions for all notifications for replacement actions\nexport const transactions$ = new BehaviorSubject<EthereumTransactionData[]>([])\n\nexport function updateTransaction(tx: EthereumTransactionData): void {\n  const currentTransactions = transactions$.getValue()\n\n  const txIndex = currentTransactions.findIndex(({ hash }) => hash === tx.hash)\n\n  if (txIndex !== -1) {\n    const updatedTransactions = currentTransactions.map((val, i) =>\n      i === txIndex ? tx : val\n    )\n\n    transactions$.next(updatedTransactions)\n  } else {\n    transactions$.next([...currentTransactions, tx])\n  }\n}\n\nexport function removeTransaction(hash: string): void {\n  const currentTransactions = transactions$.getValue()\n  transactions$.next(currentTransactions.filter(tx => tx.hash !== hash))\n}\n","import { fromEvent, takeUntil } from 'rxjs'\nimport { reset$ } from './streams'\nimport type { BuiltInThemes, Theme, ThemingMap } from './types'\n\nexport const themes = {\n  light: {\n    '--b-ee-background-color': '#ffffff',\n    '--b-ee-foreground-color': '#EFF1FC',\n    '--b-ee-text-color': '#1a1d26',\n    '--b-ee-border-color': '#d0d4f7',\n    '--b-ee-action-color': '#6370E5',\n    '--b-ee-border-radius': '16px',\n    '--b-ee-font-family': 'inherit'\n  },\n  dark: {\n    '--b-ee-background-color': '#1A1D26',\n    '--b-ee-foreground-color': '#242835',\n    '--b-ee-text-color': '#EFF1FC',\n    '--b-ee-border-color': '#33394B',\n    '--b-ee-action-color': '#929bed',\n    '--b-ee-border-radius': '16px',\n    '--b-ee-font-family': 'inherit'\n  }\n}\n\nexport const returnTheme = (theme: Theme): void | ThemingMap => {\n  if (typeof theme === 'string' && theme === 'system') {\n    return watchForSystemThemeChange()\n  }\n  return returnThemeMap(theme)\n}\n\nexport const returnThemeMap = (theme: Theme): void | ThemingMap => {\n  if (typeof theme === 'string' && theme in themes) {\n    return themes[theme as BuiltInThemes]\n  }\n  if (typeof theme === 'object') {\n    return theme\n  }\n}\n\nexport const handleThemeChange = (update: ThemingMap): void => {\n  Object.keys(update).forEach(targetStyle => {\n    document.documentElement.style.setProperty(\n      targetStyle,\n      update[targetStyle as keyof ThemingMap]\n    )\n  })\n}\n\nexport const watchForSystemThemeChange = (): void => {\n  const systemThemeDark = window.matchMedia('(prefers-color-scheme: dark)')\n  systemThemeDark.matches\n    ? handleThemeChange(themes['dark'])\n    : handleThemeChange(themes['light'])\n\n  fromEvent(systemThemeDark, 'change')\n    .pipe(takeUntil(reset$))\n    .subscribe((changes: Event) => {\n      const themeChange = changes as MediaQueryListEvent\n      themeChange.matches\n        ? handleThemeChange(themes['dark'])\n        : handleThemeChange(themes['light'])\n    })\n}\n","import type { Chain, WalletInit, WalletModule } from '../../../common'\nimport { dispatch } from './index'\nimport { configuration } from '../configuration'\nimport {handleThemeChange, returnTheme, watchForSystemThemeChange} from '../themes'\n\nimport type {\n  Account,\n  AddChainsAction,\n  AddWalletAction,\n  AccountCenter,\n  RemoveWalletAction,\n  ResetStoreAction,\n  SetWalletModulesAction,\n  SetLocaleAction,\n  UpdateAccountAction,\n  UpdateAccountCenterAction,\n  UpdateWalletAction,\n  WalletState,\n  UpdateNotifyAction,\n  Notification,\n  AddNotificationAction,\n  RemoveNotificationAction,\n  UpdateAllWalletsAction,\n  CustomNotification,\n  UpdateNotification,\n  CustomNotificationUpdate,\n  Notify,\n  ConnectModalOptions,\n  UpdateConnectModalAction,\n  Theme,\n  UpdateChainsAction\n} from '../types'\n\nimport {\n  validateAccountCenterUpdate,\n  validateLocale,\n  validateNotification,\n  validateCustomNotification,\n  validateCustomNotificationUpdate,\n  validateString,\n  validateWallet,\n  validateWalletInit,\n  validateUpdateBalances,\n  validateNotify,\n  validateConnectModalUpdate,\n  validateUpdateTheme,\n  validateSetChainOptions\n} from '../validation'\n\nimport {\n  ADD_CHAINS,\n  UPDATE_WALLET,\n  RESET_STORE,\n  ADD_WALLET,\n  REMOVE_WALLET,\n  UPDATE_ACCOUNT,\n  UPDATE_ACCOUNT_CENTER,\n  UPDATE_NOTIFY,\n  SET_WALLET_MODULES,\n  SET_LOCALE,\n  ADD_NOTIFICATION,\n  REMOVE_NOTIFICATION,\n  UPDATE_ALL_WALLETS,\n  UPDATE_CONNECT_MODAL,\n  UPDATE_CHAINS\n} from './constants'\nimport {nanoid} from \"nanoid\";\nimport {Locale} from \"../types\";\n\nexport function addChains(chains: Chain[]): void {\n  // chains are validated on init\n  const action = {\n    type: ADD_CHAINS,\n    payload: chains.map(({ namespace = 'evm', id, rpcUrl, ...rest }) => ({\n      ...rest,\n      namespace,\n      id: id.toLowerCase(),\n      rpcUrl: rpcUrl ? rpcUrl.trim() : null\n    }))\n  }\n\n  dispatch(action as AddChainsAction)\n}\n\nexport function updateChain(updatedChain: Chain): void {\n  const {\n    label,\n    token,\n    rpcUrl,\n    id: chainId,\n    namespace: chainNamespace\n  } = updatedChain\n  const error = validateSetChainOptions(\n    { label, token, rpcUrl, chainId, chainNamespace }\n  )\n\n  if (error) {\n    throw error\n  }\n  const action = {\n    type: UPDATE_CHAINS,\n    payload: updatedChain\n  }\n  dispatch(action as UpdateChainsAction)\n}\n\nexport function addWallet(wallet: WalletState): void {\n  const error = validateWallet(wallet)\n\n  if (error) {\n    console.error(error);\n    throw error\n  }\n\n  const action = {\n    type: ADD_WALLET,\n    payload: wallet\n  }\n\n  dispatch(action as AddWalletAction)\n}\n\nexport function updateWallet(id: string, update: Partial<WalletState>): void {\n  const error = validateWallet(update)\n\n  if (error) {\n    console.error(error)\n    throw error\n  }\n\n  const action = {\n    type: UPDATE_WALLET,\n    payload: {\n      id,\n      ...update\n    }\n  }\n\n  dispatch(action as UpdateWalletAction)\n}\n\nexport function removeWallet(id: string): void {\n  const error = validateString(id, 'wallet id')\n\n  if (error) {\n    throw error\n  }\n\n  const action = {\n    type: REMOVE_WALLET,\n    payload: {\n      id\n    }\n  }\n\n  dispatch(action as RemoveWalletAction)\n}\n\nexport function setPrimaryWallet(wallet: WalletState, address?: string): void {\n  const error =\n    validateWallet(wallet) || (address && validateString(address, 'address'))\n\n  if (error) {\n    throw error\n  }\n\n  // if also setting the primary account\n  if (address) {\n    const account = wallet.accounts.find(ac => ac.address === address)\n\n    if (account) {\n      wallet.accounts = [\n        account,\n        ...wallet.accounts.filter(({ address }) => address !== account.address)\n      ]\n    }\n  }\n\n  // add wallet will set it to first wallet since it already exists\n  addWallet(wallet)\n}\n\nexport function updateAccount(\n  id: string,\n  address: string,\n  update: Partial<Account>\n): void {\n  const action = {\n    type: UPDATE_ACCOUNT,\n    payload: {\n      id,\n      address,\n      ...update\n    }\n  }\n\n  dispatch(action as UpdateAccountAction)\n}\n\nexport function updateAccountCenter(\n  update: AccountCenter | Partial<AccountCenter>\n): void {\n  const error = validateAccountCenterUpdate(update)\n\n  if (error) {\n    throw error\n  }\n\n  const action = {\n    type: UPDATE_ACCOUNT_CENTER,\n    payload: update\n  }\n\n  dispatch(action as UpdateAccountCenterAction)\n}\n\nexport function updateConnectModal(\n  update: ConnectModalOptions | Partial<ConnectModalOptions>\n): void {\n  const error = validateConnectModalUpdate(update)\n\n  if (error) {\n    throw error\n  }\n\n  const action = {\n    type: UPDATE_CONNECT_MODAL,\n    payload: update\n  }\n\n  dispatch(action as UpdateConnectModalAction)\n}\n\nexport function updateNotify(update: Partial<Notify>): void {\n  const error = validateNotify(update)\n\n  if (error) {\n    throw error\n  }\n\n  const action = {\n    type: UPDATE_NOTIFY,\n    payload: update\n  }\n\n  dispatch(action as UpdateNotifyAction)\n}\n\nexport function addNotification(notification: Notification): void {\n  const error = validateNotification(notification)\n\n  if (error) {\n    throw error\n  }\n\n  const action = {\n    type: ADD_NOTIFICATION,\n    payload: notification\n  }\n\n  dispatch(action as AddNotificationAction)\n}\n\nexport function addCustomNotification(\n  notification: CustomNotificationUpdate\n): void {\n  const customNotificationError = validateCustomNotificationUpdate(notification)\n\n  if (customNotificationError) {\n    throw customNotificationError\n  }\n\n  const action = {\n    type: ADD_NOTIFICATION,\n    payload: notification\n  }\n\n  dispatch(action as AddNotificationAction)\n}\n\nexport function customNotification(updatedNotification: CustomNotification): {\n  dismiss: () => void\n  update: UpdateNotification\n} {\n  const customNotificationError =\n    validateCustomNotification(updatedNotification)\n\n  if (customNotificationError) {\n    throw customNotificationError\n  }\n\n  const customIdKey = `customNotification-${nanoid()}`\n  const notification: CustomNotificationUpdate = {\n    ...updatedNotification,\n    id: customIdKey,\n    key: customIdKey\n  }\n  addCustomNotification(notification)\n\n  const dismiss = () => removeNotification(notification.id)\n\n  const update = (\n    notificationUpdate: CustomNotification\n  ): {\n    dismiss: () => void\n    update: UpdateNotification\n  } => {\n    const customNotificationError =\n      validateCustomNotification(updatedNotification)\n\n    if (customNotificationError) {\n      throw customNotificationError\n    }\n\n    const notificationAfterUpdate: CustomNotificationUpdate = {\n      ...notificationUpdate,\n      id: notification.id,\n      key: notification.key\n    }\n    addCustomNotification(notificationAfterUpdate)\n\n    return {\n      dismiss,\n      update\n    }\n  }\n\n  addCustomNotification(notification)\n\n  return {\n    dismiss,\n    update\n  }\n}\n\nexport function removeNotification(id: Notification['id']): void {\n  if (typeof id !== 'string') {\n    throw new Error('Notification id must be of type string')\n  }\n\n  const action = {\n    type: REMOVE_NOTIFICATION,\n    payload: id\n  }\n\n  dispatch(action as RemoveNotificationAction)\n}\n\nexport function resetStore(): void {\n  const action = {\n    type: RESET_STORE\n  }\n\n  dispatch(action as ResetStoreAction)\n}\n\nexport function setWalletModules(wallets: WalletInit[]): void {\n  const error = validateWalletInit(wallets)\n\n  if (error) {\n    throw error\n  }\n\n  const modules = initializeWalletModules(wallets)\n  const dedupedWallets = uniqueWalletsByLabel(modules)\n\n  const action = {\n    type: SET_WALLET_MODULES,\n    payload: dedupedWallets\n  }\n\n  dispatch(action as SetWalletModulesAction)\n}\n\nexport function setLocale(locale: Locale): void {\n  const error = validateLocale(locale)\n\n  if (error) {\n    throw error\n  }\n\n  const action = {\n    type: SET_LOCALE,\n    payload: locale\n  }\n\n  dispatch(action as SetLocaleAction)\n}\n\nexport function updateAllWallets(wallets: WalletState[]): void {\n  const error = validateUpdateBalances(wallets)\n\n  if (error) {\n    throw error\n  }\n\n  const action = {\n    type: UPDATE_ALL_WALLETS,\n    payload: wallets\n  }\n\n  dispatch(action as UpdateAllWalletsAction)\n}\n\n// ==== HELPERS ==== //\nexport function initializeWalletModules(modules: WalletInit[]): WalletModule[] {\n  const { device } = configuration\n  return modules.reduce((acc, walletInit) => {\n    const initialized = walletInit({ device })\n\n    if (initialized) {\n      // injected wallets is an array of wallets\n      acc.push(...(Array.isArray(initialized) ? initialized : [initialized]))\n    }\n\n    return acc\n  }, [] as WalletModule[])\n}\n\nexport function uniqueWalletsByLabel(\n  walletModuleList: WalletModule[]\n): WalletModule[] {\n  return walletModuleList.filter(\n    (wallet, i) =>\n      wallet &&\n      walletModuleList.findIndex(\n        (innerWallet: WalletModule) =>\n          innerWallet && innerWallet.label === wallet.label\n      ) === i\n  )\n}\n\nexport function updateTheme(theme: Theme): void {\n  if (typeof theme === 'string' && theme === 'system') {\n    const error = validateUpdateTheme(theme)\n    if (error) {\n      throw error\n    }\n  }\n\n  const themingObj = returnTheme(theme)\n  themingObj && handleThemeChange(themingObj)\n}\n","import { fromEventPattern, Observable } from 'rxjs'\nimport { filter, takeUntil, take, share, switchMap } from 'rxjs/operators'\nimport partition from 'lodash.partition'\nimport { providers, utils } from 'ethers'\nimport { disconnectWallet$ } from './streams'\nimport { updateAccount, updateWallet } from './store/actions'\nimport { validEnsChain } from './utils'\nimport disconnect from './disconnect'\nimport { getBNMulitChainSdk } from './services'\nimport { configuration } from './configuration'\n\nimport type {\n  ChainId,\n  EIP1102Request,\n  EIP1193Provider,\n  ProviderAccounts,\n  Chain,\n  AccountsListener,\n  ChainListener,\n  SelectAccountsRequest,\n} from '../../common'\n\nimport type {\n  Account,\n  Address,\n  Balances,\n  Ens,\n  WalletPermission,\n  WalletState\n} from './types.js'\n\nimport type { Uns } from '../../wallets/unstoppable-resolution'\nimport { updateSecondaryTokens } from './update-balances'\nimport {state} from \"./store\";\nimport {weiToEth} from \"../../common\";\n\nexport const ethersProviders: {\n  [key: string]: providers.StaticJsonRpcProvider\n} = {}\n\nexport function getProvider(chain: Chain): providers.StaticJsonRpcProvider {\n  if (!chain) return null\n\n  if (!ethersProviders[chain.rpcUrl]) {\n    ethersProviders[chain.rpcUrl] = new providers.StaticJsonRpcProvider(\n      chain.providerConnectionInfo && chain.providerConnectionInfo.url\n        ? chain.providerConnectionInfo\n        : chain.rpcUrl\n    )\n  }\n\n  return ethersProviders[chain.rpcUrl]\n}\n\nexport function requestAccounts(\n  provider: EIP1193Provider\n): Promise<ProviderAccounts> {\n  const args = { method: 'eth_requestAccounts' } as EIP1102Request\n  return provider.request(args)\n}\n\nexport function selectAccounts(\n  provider: EIP1193Provider\n): Promise<ProviderAccounts> {\n  const args = { method: 'eth_selectAccounts' } as SelectAccountsRequest\n  return provider.request(args)\n}\n\nexport function getChainId(provider: EIP1193Provider): Promise<string> {\n  return provider.request({ method: 'eth_chainId' }) as Promise<string>\n}\n\nexport function listenAccountsChanged(args: {\n  provider: EIP1193Provider\n  disconnected$: Observable<string>\n}): Observable<ProviderAccounts> {\n  const { provider, disconnected$ } = args\n\n  const addHandler = (handler: AccountsListener) => {\n    provider.on('accountsChanged', handler)\n  }\n\n  const removeHandler = (handler: AccountsListener) => {\n    provider.removeListener('accountsChanged', handler)\n  }\n\n  return fromEventPattern<ProviderAccounts>(addHandler, removeHandler).pipe(\n    takeUntil(disconnected$)\n  )\n}\n\nexport function listenChainChanged(args: {\n  provider: EIP1193Provider\n  disconnected$: Observable<string>\n}): Observable<ChainId> {\n  const { provider, disconnected$ } = args\n  const addHandler = (handler: ChainListener) => {\n    provider.on('chainChanged', handler)\n  }\n\n  const removeHandler = (handler: ChainListener) => {\n    provider.removeListener('chainChanged', handler)\n  }\n\n  return fromEventPattern<ChainId>(addHandler, removeHandler).pipe(\n    takeUntil(disconnected$)\n  )\n}\n\nexport function trackWallet(\n  provider: EIP1193Provider,\n  label: WalletState['label']\n): void {\n  const disconnected$ = disconnectWallet$.pipe(\n    filter(wallet => wallet === label),\n    take(1)\n  )\n\n  const accountsChanged$ = listenAccountsChanged({\n    provider,\n    disconnected$\n  }).pipe(share())\n\n  // when account changed, set it to first account and subscribe to events\n  accountsChanged$.subscribe(async ([address]) => {\n    // sync accounts with internal state\n    // in the case of an account has been manually disconnected\n    try {\n      await syncWalletConnectedAccounts(label)\n    } catch (error) {\n      console.warn(\n        'Web3Connect: Error whilst trying to sync connected accounts:',\n        error\n      )\n    }\n\n    // no address, then no account connected, so disconnect wallet\n    // this could happen if user locks wallet,\n    // or if disconnects app from wallet\n    if (!address) {\n      disconnect({ label })\n      return\n    }\n\n    const { wallets } = state.get()\n    const { accounts } = wallets.find(wallet => wallet.label === label)\n\n    const [[existingAccount], restAccounts] = partition(\n      accounts,\n      account => account.address === address\n    )\n\n    // update accounts without ens/uns and balance first\n    updateWallet(label, {\n      accounts: [\n        existingAccount || {\n          address: address,\n          ens: null,\n          uns: null,\n          balance: null\n        },\n        ...restAccounts\n      ]\n    })\n\n    // if not existing account and notifications,\n    // then subscribe to transaction events\n    if (state.get().notify.enabled && !existingAccount) {\n      const sdk = await getBNMulitChainSdk()\n\n      if (sdk) {\n        const wallet = state\n          .get()\n          .wallets.find(wallet => wallet.label === label)\n        try {\n          sdk.subscribe({\n            id: address,\n            chainId: wallet.chains[0].id,\n            type: 'account'\n          })\n        } catch (error) {\n          // unsupported network for transaction events\n        }\n      }\n    }\n  })\n\n  // also when accounts change, update Balance and ENS/UNS\n  accountsChanged$\n    .pipe(\n      switchMap(async ([address]) => {\n        if (!address) return\n\n        const { wallets, chains } = state.get()\n\n        const primaryWallet = wallets.find(wallet => wallet.label === label)\n        const { chains: walletChains, accounts } = primaryWallet\n\n        const [connectedWalletChain] = walletChains\n\n        const chain = chains.find(\n          ({ namespace, id }) =>\n            namespace === 'evm' && id === connectedWalletChain.id\n        )\n\n        const balanceProm = getBalance(address, chain)\n        const secondaryTokenBal = updateSecondaryTokens(\n          primaryWallet,\n          address,\n          chain\n        )\n        const account = accounts.find(account => account.address === address)\n\n        const ensProm =\n          account && account.ens\n            ? Promise.resolve(account.ens)\n            : validEnsChain(connectedWalletChain.id)\n              ? getEns(address, chain)\n              : Promise.resolve(null)\n\n        const unsProm =\n          account && account.uns\n            ? Promise.resolve(account.uns)\n            : getUns(address, chain)\n\n        return Promise.all([\n          Promise.resolve(address),\n          balanceProm,\n          ensProm,\n          unsProm,\n          secondaryTokenBal\n        ])\n      })\n    )\n    .subscribe(res => {\n      if (!res) return\n      const [address, balance, ens, uns, secondaryTokens] = res\n      updateAccount(label, address, { balance, ens, uns, secondaryTokens })\n    })\n\n  const chainChanged$ = listenChainChanged({ provider, disconnected$ }).pipe(\n    share()\n  )\n\n  // Update chain on wallet when chainId changed\n  chainChanged$.subscribe(async chainId => {\n    const { wallets } = state.get()\n    const { chains, accounts } = wallets.find(wallet => wallet.label === label)\n    const [connectedWalletChain] = chains\n\n    if (chainId === connectedWalletChain.id) return\n\n    if (state.get().notify.enabled) {\n      const sdk = await getBNMulitChainSdk()\n\n      if (sdk) {\n        const wallet = state\n          .get()\n          .wallets.find(wallet => wallet.label === label)\n\n        // Unsubscribe with timeout of 60 seconds\n        // to allow for any currently inflight transactions\n        wallet.accounts.forEach(({ address }) => {\n          sdk.unsubscribe({\n            id: address,\n            chainId: wallet.chains[0].id,\n            timeout: 60000\n          })\n        })\n\n        // resubscribe for new chainId\n        wallet.accounts.forEach(({ address }) => {\n          try {\n            sdk.subscribe({\n              id: address,\n              chainId: chainId,\n              type: 'account'\n            })\n          } catch (error) {\n            // unsupported network for transaction events\n          }\n        })\n      }\n    }\n\n    const resetAccounts = accounts.map(\n      ({ address }) =>\n        ({\n          address,\n          ens: null,\n          uns: null,\n          balance: null\n        } as Account)\n    )\n\n    updateWallet(label, {\n      chains: [{ namespace: 'evm', id: chainId }],\n      accounts: resetAccounts\n    })\n  })\n\n  // when chain changes get ens/uns and balance for each account for wallet\n  chainChanged$\n    .pipe(\n      switchMap(async chainId => {\n        const { wallets, chains } = state.get()\n        const primaryWallet = wallets.find(wallet => wallet.label === label)\n        const { accounts } = primaryWallet\n\n        const chain = chains.find(\n          ({ namespace, id }) => namespace === 'evm' && id === chainId\n        )\n\n        return Promise.all(\n          accounts.map(async ({ address }) => {\n            const balanceProm = getBalance(address, chain)\n\n            const secondaryTokenBal = updateSecondaryTokens(\n              primaryWallet,\n              address,\n              chain\n            )\n\n            const ensProm = validEnsChain(chainId)\n              ? getEns(address, chain)\n              : Promise.resolve(null)\n\n            const unsProm = validEnsChain(chainId)\n              ? getUns(address, chain)\n              : Promise.resolve(null)\n\n            const [balance, ens, uns, secondaryTokens] = await Promise.all([\n              balanceProm,\n              ensProm,\n              unsProm,\n              secondaryTokenBal\n            ])\n\n            return {\n              address,\n              balance,\n              ens,\n              uns,\n              secondaryTokens\n            }\n          })\n        )\n      })\n    )\n    .subscribe(updatedAccounts => {\n      updatedAccounts && updateWallet(label, { accounts: updatedAccounts })\n    })\n\n  disconnected$.subscribe(() => {\n    provider.disconnect && provider.disconnect()\n  })\n}\n\nexport async function getEns(\n  address: Address,\n  chain: Chain\n): Promise<Ens | null> {\n  // chain we don't recognize and don't have a rpcUrl for requests\n  if (!chain) return null\n\n  const provider = getProvider(chain)\n\n  try {\n    const name = await provider.lookupAddress(address)\n    let ens = null\n\n    if (name) {\n      const resolver = await provider.getResolver(name)\n\n      if (resolver) {\n        const [contentHash, avatar] = await Promise.all([\n          resolver.getContentHash(),\n          resolver.getAvatar()\n        ])\n\n        const getText = resolver.getText.bind(resolver)\n\n        ens = {\n          name,\n          avatar,\n          contentHash,\n          getText\n        }\n      }\n    }\n\n    return ens\n  } catch (error) {\n    console.error(error)\n    return null\n  }\n}\n\nexport async function getUns(\n  address: Address,\n  chain: Chain\n): Promise<Uns | null> {\n  // @ts-ignore\n  const { unstoppableResolution } = configuration\n\n  // check if address is valid ETH address before attempting to resolve\n  // chain we don't recognize and don't have a rpcUrl for requests\n  if (!unstoppableResolution || !utils.isAddress(address) || !chain) return null\n\n  try {\n    return await unstoppableResolution(address)\n  } catch (error) {\n    console.error(error)\n    return null\n  }\n}\n\nexport async function getBalance(\n  address: string,\n  chain: Chain\n): Promise<Balances | null> {\n  // chain we don't recognize and don't have a rpcUrl for requests\n  if (!chain) return null\n\n  const { wallets } = state.get()\n\n  try {\n    const wallet = wallets.find(wallet => !!wallet.provider)\n    const provider = wallet.provider\n    const balanceHex = await provider.request({\n      method: 'eth_getBalance',\n      params: [address, 'latest']\n    })\n\n    return balanceHex ? { [chain.token || 'eth']:  weiToEth(balanceHex) } : null\n  } catch (error) {\n    console.error(error)\n    return null\n  }\n}\n\nexport function switchChain(\n  provider: EIP1193Provider,\n  chainId: ChainId\n): Promise<unknown> {\n  return provider.request({\n    method: 'wallet_switchEthereumChain',\n    params: [{ chainId }]\n  })\n}\n\nexport function addNewChain(\n  provider: EIP1193Provider,\n  chain: Chain\n): Promise<unknown> {\n  return provider.request({\n    method: 'wallet_addEthereumChain',\n    params: [\n      {\n        chainId: chain.id,\n        chainName: chain.label,\n        nativeCurrency: {\n          name: chain.label,\n          symbol: chain.token,\n          decimals: 18\n        },\n        rpcUrls: [chain.publicRpcUrl || chain.rpcUrl],\n        blockExplorerUrls: chain.blockExplorerUrl\n          ? [chain.blockExplorerUrl]\n          : undefined\n      }\n    ]\n  })\n}\n\nexport async function getPermissions(\n  provider: EIP1193Provider\n): Promise<WalletPermission[]> {\n  try {\n    const permissions = (await provider.request({\n      method: 'wallet_getPermissions'\n    })) as WalletPermission[]\n\n    return Array.isArray(permissions) ? permissions : []\n  } catch (error) {\n    return []\n  }\n}\n\nexport async function syncWalletConnectedAccounts(\n  label: WalletState['label']\n): Promise<void> {\n  const wallet = state.get().wallets.find(wallet => wallet.label === label)\n  const permissions = await getPermissions(wallet.provider)\n  const accountsPermissions = permissions.find(\n    ({ parentCapability }) => parentCapability === 'eth_accounts'\n  )\n\n  if (accountsPermissions) {\n    const { value: connectedAccounts } = accountsPermissions.caveats.find(\n      ({ type }) => type === 'restrictReturnedAccounts'\n    ) || { value: null }\n\n    if (connectedAccounts) {\n      const syncedAccounts = wallet.accounts.filter(({ address }) =>\n        connectedAccounts.includes(address)\n      )\n\n      updateWallet(wallet.label, { ...wallet, accounts: syncedAccounts })\n    }\n  }\n}\n","import { getBalance } from './provider'\nimport { updateAllWallets } from './store/actions'\nimport {state} from \"./store\";\nimport {WalletState, SecondaryTokenBalances} from \"./types\";\nimport {AccountAddress, Chain, weiToEth} from \"../../common\";\nimport {ethers} from \"ethers\";\n\nasync function updateBalances(addresses?: string[]): Promise<void> {\n  const { wallets, chains } = state.get()\n  const updatedWallets = await Promise.all(\n    wallets.map(async wallet => {\n      const chain = chains.find(({ id }) => id === wallet.chains[0].id)\n\n      const updatedAccounts = await Promise.all(\n        wallet.accounts.map(async account => {\n          // if no provided addresses, we want to update all balances\n          // otherwise check if address is in addresses array\n          if (\n            !addresses ||\n            addresses.some(\n              address => address.toLowerCase() === account.address.toLowerCase()\n            )\n          ) {\n            const updatedBalance = await getBalance(account.address, chain)\n            return { ...account, balance: updatedBalance }\n          }\n          return account\n        })\n      )\n      return { ...wallet, accounts: updatedAccounts }\n    })\n  )\n\n  updateAllWallets(updatedWallets)\n}\n\n\nexport const updateSecondaryTokens = async (\n  wallet: WalletState,\n  account: AccountAddress,\n  chain: Chain\n): Promise<SecondaryTokenBalances[]> => {\n  const chainRPC = chain.rpcUrl\n  // @ts-ignore\n  if (!chain.secondaryTokens || !chain.secondaryTokens.length || !chainRPC)\n    return\n\n  const ethersProvider = new ethers.providers.Web3Provider(\n    wallet.provider,\n    'any'\n  )\n  const signer = ethersProvider.getSigner()\n\n  const erc20ABISubset = [\n    {\n      inputs: [{ name: 'owner', type: 'address' }],\n      name: 'balanceOf',\n      outputs: [{ name: '', type: 'uint256' }],\n      stateMutability: 'view',\n      type: 'function'\n    },\n    {\n      inputs: [],\n      name: 'symbol',\n      outputs: [{ name: '', type: 'string' }],\n      stateMutability: 'view',\n      type: 'function'\n    }\n  ]\n\n  const tokenBalances = await Promise.all(\n    // @ts-ignore\n    chain.secondaryTokens.map(async token => {\n      try {\n        const swapContract = new ethers.Contract(\n          token.address,\n          erc20ABISubset,\n          signer\n        )\n        const bigNumBalance = await swapContract.balanceOf(account)\n        const tokenName = await swapContract.symbol()\n        return {\n          name: tokenName,\n          balance: weiToEth(bigNumBalance.toHexString()),\n          icon: token.icon\n        }\n      } catch (error) {\n        console.error(\n          `There was an error fetching balance and/or symbol\n          for token contract: ${token.address} - ${error}`\n        )\n      }\n    })\n  )\n  return tokenBalances\n}\n\nexport default updateBalances\n\n\n","import type { EthereumTransactionData } from 'bnc-sdk'\n\nimport type {\n  CustomNotification,\n  Notification,\n  NotificationType\n} from './types'\n\nimport { validateTransactionHandlerReturn } from './validation'\nimport { state } from './store/index'\nimport { addNotification } from './store/actions'\nimport updateBalances from './update-balances'\nimport { updateTransaction } from './streams'\n\nexport function handleTransactionUpdates(\n  transaction: EthereumTransactionData\n): void {\n  const customized = state.get().notify.transactionHandler(transaction)\n  const invalid = validateTransactionHandlerReturn(customized)\n\n  if (invalid) {\n    throw invalid\n  }\n\n  if (transaction.eventCode === 'txConfirmed') {\n    updateBalances([transaction.watchedAddress, transaction.counterparty])\n  }\n\n  const notification = transactionEventToNotification(transaction, customized)\n\n  addNotification(notification)\n  updateTransaction(transaction)\n}\n\nexport function transactionEventToNotification(\n  transaction: EthereumTransactionData,\n  customization: CustomNotification | boolean | void\n): Notification {\n  const {\n    id,\n    hash,\n    startTime,\n    eventCode,\n    direction,\n    counterparty,\n    value,\n    asset,\n    network\n  } = transaction\n\n  const type: NotificationType = eventToType(eventCode)\n\n  const key = `${id || hash}-${\n    (typeof customization === 'object' && customization.eventCode) || eventCode\n  }`\n\n  const counterpartyShortened: string | undefined =\n    counterparty &&\n    counterparty.substring(0, 4) +\n      '...' +\n      counterparty.substring(counterparty.length - 4)\n\n  // const formattedValue = new BigNumber(value || 0)\n  //   .div(new BigNumber('1000000000000000000'))\n  //   .toString(10)\n\n  // const formatterOptions =\n  //   counterparty && value\n  //     ? {\n  //         messageId: `notify.watched['${eventCode}']`,\n  //         values: {\n  //           verb:\n  //             eventCode === 'txConfirmed'\n  //               ? direction === 'incoming'\n  //                 ? 'received'\n  //                 : 'sent'\n  //               : direction === 'incoming'\n  //               ? 'receiving'\n  //               : 'sending',\n  //           preposition: direction === 'incoming' ? 'from' : 'to',\n  //           counterpartyShortened,\n  //           asset\n  //         }\n  //       }\n  //     : {\n  //         messageId: `notify.transaction['${eventCode}']`,\n  //         values: { asset }\n  //       }\n\n  // const formatter = get(_)\n  //\n  // const notificationDefaultMessages = defaultCopy.notify\n\n  // const typeKey: keyof typeof notificationDefaultMessages = counterparty\n  //   ? 'watched'\n  //   : 'transaction'\n  //\n  // const notificationMessageType = notificationDefaultMessages[typeKey]\n  //\n  // const defaultMessage =\n  //   notificationMessageType[eventCode as keyof typeof notificationMessageType]\n  //\n  // const message = formatter(formatterOptions.messageId, {\n  //   values: formatterOptions.values,\n  //   default: defaultMessage\n  // })\n\n  let notification = {\n    id: id || hash,\n    type,\n    key,\n    network,\n    startTime: startTime || Date.now(),\n    eventCode,\n    message:\"message\",\n    autoDismiss: typeToDismissTimeout(\n      (typeof customization === 'object' && customization.type) || type\n    )\n  }\n\n  if (typeof customization === 'object') {\n    notification = { ...notification, ...customization }\n  }\n\n  return notification\n}\n\nexport function eventToType(eventCode: string | undefined): NotificationType {\n\n  console.log('eventCode', eventCode)\n  switch (eventCode) {\n    case 'txSent':\n    case 'txPool':\n    case 'txRequest':\n      return 'pending'\n    case 'txSpeedUp':\n    case 'txCancel':\n    case 'txRepeat':\n    case 'txAwaitingApproval':\n    case 'txConfirmReminder':\n    case 'txStuck':\n      return 'hint'\n    case 'txError':\n    case 'txSendFail':\n    case 'txFailed':\n    case 'txDropped':\n    case 'nsfFail':\n    case 'txUnderpriced':\n      return 'error'\n    case 'txConfirmed':\n      return 'success'\n    default:\n      return 'hint'\n  }\n}\n\nexport function typeToDismissTimeout(type: string): number {\n  switch (type) {\n    case 'success':\n    case 'hint':\n      return 4000\n    default:\n      return 0\n  }\n}\n","import type { MultiChain } from 'bnc-sdk'\nimport type SDK from 'bnc-sdk'\nimport { configuration } from './configuration'\nimport { handleTransactionUpdates } from './notify'\n\nlet blocknativeMultiChainSdk: MultiChain\nlet blocknativeSdk: SDK\n\n/**\n *\n * @returns MultiChain SDK if apiKey\n */\n\nexport async function getBNMulitChainSdk(): Promise<MultiChain | null> {\n  const { apiKey } = configuration\n\n  if (!apiKey) return null\n\n  if (!blocknativeMultiChainSdk) {\n    const { default: Blocknative } = await import('bnc-sdk')\n    blocknativeMultiChainSdk = Blocknative.multichain({\n      apiKey: configuration.apiKey\n    })\n\n    blocknativeMultiChainSdk.transactions$.subscribe(handleTransactionUpdates)\n  }\n\n  return blocknativeMultiChainSdk\n}\n\n/**\n *\n * @returns SDK if apiKey\n */\nexport async function getBlocknativeSdk(): Promise<SDK> {\n  const { apiKey } = configuration\n\n  if (!apiKey) return null\n\n  if (!blocknativeSdk) {\n    const { default: Blocknative } = await import('bnc-sdk')\n    blocknativeSdk = new Blocknative({\n      dappId: configuration.apiKey,\n      networkId: 1\n    })\n    return blocknativeSdk\n  }\n\n  return blocknativeSdk\n}\n","import { getBNMulitChainSdk } from './services'\nimport { removeWallet } from './store/actions'\nimport { disconnectWallet$ } from './streams'\nimport type { DisconnectOptions, WalletState } from './types'\nimport { validateDisconnectOptions } from './validation'\nimport { delLocalStore, getLocalStore, setLocalStore } from './utils'\nimport { STORAGE_KEYS } from './constants'\nimport {state} from \"./store\";\n\nasync function disconnect(options: DisconnectOptions): Promise<WalletState[]> {\n  const error = validateDisconnectOptions(options)\n  if (error) {\n    throw error\n  }\n\n  const { label } = options\n\n  if (state.get().notify.enabled) {\n    // handle unwatching addresses\n    const sdk = await getBNMulitChainSdk()\n\n    if (sdk) {\n      const wallet = state.get().wallets.find(wallet => wallet.label === label)\n\n      wallet.accounts.forEach(({ address }) => {\n        sdk.unsubscribe({\n          id: address,\n          chainId: wallet.chains[0].id,\n          timeout: 60000\n        })\n      })\n    }\n  }\n\n  disconnectWallet$.next(label)\n  removeWallet(label)\n\n  const labels = JSON.parse(getLocalStore(STORAGE_KEYS.LAST_CONNECTED_WALLET))\n\n  if (Array.isArray(labels) && labels.indexOf(label) >= 0) {\n    setLocalStore(\n      STORAGE_KEYS.LAST_CONNECTED_WALLET,\n      JSON.stringify(labels.filter(walletLabel => walletLabel !== label))\n    )\n  }\n  if (typeof labels === 'string' && labels === label) {\n    delLocalStore(STORAGE_KEYS.LAST_CONNECTED_WALLET)\n  }\n\n  return state.get().wallets\n}\n\nexport default disconnect\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\n@Injectable()\nexport abstract class Destroyable implements OnDestroy {\n  private readonly unsubscribe$$ = new Subject<void>();\n  protected readonly unsubscribe$ = this.unsubscribe$$.asObservable();\n\n  protected readonly subscriptions: Subscription[] = [];\n  protected interval: number;\n\n  protected unsubscribeAll(clean = false): void {\n    this.subscriptions.forEach((sub) => sub.unsubscribe());\n\n    if (clean) {\n      this.subscriptions.length = 0;\n    }\n  }\n\n  // don't forget to call super.ngOnDestroy() if you want to use inside your component ngOnDestroy()\n  public ngOnDestroy(): void {\n    this.unsubscribe$$.next();\n    this.unsubscribe$$.complete();\n    this.unsubscribeAll();\n    if (this.interval) {\n      clearTimeout(this.interval);\n    }\n  }\n}\n","import {state} from \"./store\";\n\nexport type Translation = {\n  connect: {\n    selectingWallet: {\n      header: string,\n      recommendedWalletsPart1: string,\n      recommendedWalletsPart2: string,\n      installWallet: string,\n      agreement: {\n        agree: string,\n        terms: string,\n        and: string,\n        privacy: string;\n      }\n    },\n    connectingWallet: {\n      header: string,\n      headerRejected: string,\n      mainText: string,\n      paragraph: string,\n      previousConnection: string,\n      rejectedText: string,\n      rejectedCTA: string,\n      primaryButton: string\n    },\n    connectedWallet: {\n      header:string,\n      mainText: string,\n      dontHaveWalletText: string\n    }\n  },\n  modals: {\n    actionRequired: {\n      heading: string,\n      paragraph: string,\n      linkText: string,\n      buttonText: string,\n    },\n    switchChain: {\n      heading: string,\n      paragraph1: string,\n      paragraph2: string,\n    },\n    confirmDisconnectAll: {\n      heading: string,\n      description:string,\n      confirm:string,\n      cancel: string,\n    }\n  },\n  accountCenter: {\n    connectAnotherWallet: string,\n    disconnectAllWallets: string,\n    currentNetwork:string,\n    tokenListTitle:string,\n    tokenListNoData: string;\n    contactUs: string;\n    tokenListIncluded: string,\n    tokenListMore: string,\n    appInfo: string,\n    learnMore: string,\n    gettingStartedGuide: string,\n    smartContracts:string,\n    explore:string,\n    backToApp:string,\n    poweredBy:string,\n    addAccount:string,\n    setPrimaryAccount:string,\n    disconnectWallet:string,\n    copyAddress:string,\n    changeNetworkProcess:string,\n    save:string,\n  },\n  notify: {\n    transaction: {\n      txRequest: string,\n      nsfFail: string,\n      txUnderpriced: string,\n      txRepeat: string,\n      txAwaitingApproval: string,\n      txConfirmReminder: string,\n      txSendFail:string,\n      txSent: string,\n      txStallPending: string,\n      txStuck: string,\n      txPool: string,\n      txStallConfirmed: string,\n      txSpeedUp: string,\n      txCancel: string,\n      txFailed: string,\n      txConfirmed: string,\n      txError: string,\n      txReplaceError: string,\n    },\n    watched: {\n      txPool:string,\n      txSpeedUp: string,\n      txCancel:string,\n      txConfirmed: string,\n      txFailed:string,\n      txStuck:string,\n    },\n    time: {\n      minutes: string,\n      seconds: string,\n    }\n  }\n}\nexport const beeWeb3ConnectLocales:{en:Translation, ua:Translation} = {\n  en:{\n    connect: {\n      selectingWallet: {\n        header: \"Available Wallets\",\n        recommendedWalletsPart1: \"only supports\",\n        recommendedWalletsPart2: \"on this platform. Please use or install one of the supported wallets to continue\",\n        installWallet: \"You do not have any wallets installed that this app supports, please use a supported wallet\",\n        agreement: {\n          agree: \"I agree to the\",\n          terms: \"Terms & Conditions\",\n          and: \"and\",\n          privacy: \"Privacy Policy\"\n        }\n      },\n      connectingWallet: {\n        header: \"Connecting to\",\n        headerRejected: \"Connection Rejected\",\n        mainText: \"Connecting...\",\n        paragraph: \"Make sure to select all accounts that you want to grant access to.\",\n        previousConnection: \"already has a pending connection request, please open the app to login and connect.\",\n        rejectedText: \"Connection Rejected!\",\n        rejectedCTA: \"Click here to try again\",\n        primaryButton: \"Back to wallets\"\n      },\n      connectedWallet: {\n        header: \"Connection Successful\",\n        mainText: \"Connected\",\n        dontHaveWalletText: \"I don't have a wallet\"\n      }\n    },\n    modals: {\n      actionRequired: {\n        heading: \"Action required in\",\n        paragraph: \"Please switch the active account in your wallet.\",\n        linkText: \"Learn more.\",\n        buttonText: \"Okay\"\n      },\n      switchChain: {\n        heading: \"Switch Chain\",\n        paragraph1: \"{app} requires that you switch your wallet to the {nextNetworkName} network to continue.\",\n        paragraph2: \"*Some wallets may not support changing networks. If you can not change networks in your wallet you may consider switching to a different wallet.\"\n      },\n      confirmDisconnectAll: {\n        heading: \"Disconnect all Wallets\",\n        description: \"Are you sure that you would like to disconnect all your wallets?\",\n        confirm: \"Confirm\",\n        cancel: \"Cancel\"\n      }\n    },\n    accountCenter: {\n      connectAnotherWallet: \"Connect another Wallet\",\n      disconnectAllWallets: \"Disconnect all Wallets\",\n      currentNetwork: \"Current Network\",\n      tokenListTitle: \"total balance\",\n      tokenListIncluded: \"Included tokens\",\n      tokenListMore: \"More tokens\",\n      tokenListNoData: \"Sorry, token balances are not available for the current network, if you want to add,\",\n      contactUs: \"contact us\",\n      appInfo: \"App Info\",\n      learnMore: \"Learn More\",\n      gettingStartedGuide: \"Getting Started Guide\",\n      smartContracts: \"Smart Contract(s)\",\n      explore: \"Explore\",\n      backToApp: \"Back to dapp\",\n      poweredBy: \"powered by\",\n      addAccount: \"Add Account\",\n      setPrimaryAccount: \"Set Primary Account\",\n      disconnectWallet: \"Disconnect Wallet\",\n      copyAddress: \"Copy Wallet address\",\n      changeNetworkProcess: \"switching...\",\n      save:\"Save\"\n    },\n    notify: {\n      transaction: {\n        txRequest: \"Your transaction is waiting for you to confirm\",\n        nsfFail: \"You have insufficient funds for this transaction\",\n        txUnderpriced: \"The gas price for your transaction is too low, try a higher gas price\",\n        txRepeat: \"This could be a repeat transaction\",\n        txAwaitingApproval: \"You have a previous transaction waiting for you to confirm\",\n        txConfirmReminder: \"Please confirm your transaction to continue\",\n        txSendFail: \"You rejected the transaction\",\n        txSent: \"Your transaction has been sent to the network\",\n        txStallPending: \"Your transaction has stalled before it was sent, please try again\",\n        txStuck: \"Your transaction is stuck due to a nonce gap\",\n        txPool: \"Your transaction has started\",\n        txStallConfirmed: \"Your transaction has stalled and hasn't been confirmed\",\n        txSpeedUp: \"Your transaction has been sped up\",\n        txCancel: \"Your transaction is being canceled\",\n        txFailed: \"Your transaction has failed\",\n        txConfirmed: \"Your transaction has succeeded\",\n        txError: \"Oops something went wrong, please try again\",\n        txReplaceError: \"There was an error replacing your transaction, please try again\"\n      },\n      watched: {\n        txPool: \"Your account is {verb} {formattedValue} {asset} {preposition} {counterpartyShortened}\",\n        txSpeedUp: \"Transaction for {formattedValue} {asset} {preposition} {counterpartyShortened} has been sped up\",\n        txCancel: \"Transaction for {formattedValue} {asset} {preposition} {counterpartyShortened} has been canceled\",\n        txConfirmed: \"Your account successfully {verb} {formattedValue} {asset} {preposition} {counterpartyShortened}\",\n        txFailed: \"Your account failed to {verb} {formattedValue} {asset} {preposition} {counterpartyShortened}\",\n        txStuck: \"Your transaction is stuck due to a nonce gap\"\n      },\n      time: {\n        minutes: \"min\",\n        seconds: \"sec\"\n      }\n    }\n  },\n  ua: {\n    connect: {\n      selectingWallet: {\n        header: \"Доступні гаманці\",\n        recommendedWalletsPart1: \"підтримує тільки\",\n        recommendedWalletsPart2: \"на цій платформі. Будь ласка, використовуйте або встановіть один з підтримуваних гаманців, щоб продовжити\",\n        installWallet: \"Ви не маєте жодного гаманця, який підтримує цю програму, будь ласка, використовуйте підтримуваний гаманець\",\n        agreement: {\n          agree: \"Я погоджуюся з\",\n          terms: \"Умовами користування\",\n          and: \"і\",\n          privacy: \"Політикою конфіденційності\"\n        }\n      },\n      connectingWallet: {\n        header: \"Підключення до\",\n        headerRejected: \"Підключення відхилено\",\n        mainText: \"Підключення...\",\n        paragraph: \"Переконайтеся, що ви вибрали всі рахунки, до яких ви хочете надати доступ.\",\n        previousConnection: \"вже має запит на підключення, будь ласка, відкрийте програму, щоб увійти та підключитися.\",\n        rejectedText: \"Підключення відхилено!\",\n        rejectedCTA: \"Натисніть тут, щоб спробувати ще раз\",\n        primaryButton: \"Назад до гаманців\"\n      },\n      connectedWallet: {\n        header: \"Підключення успішне\",\n        mainText: \"Підключено\",\n        dontHaveWalletText: \"У мене немає гаманця\"\n      }\n    },\n    modals: {\n      actionRequired: {\n        heading: \"Потрібна дія у {wallet}\",\n        paragraph: \"Будь ласка, переключіть активний рахунок у своєму гаманці.\",\n        linkText: \"Дізнатися більше.\",\n        buttonText: \"Добре\"\n      },\n      switchChain: {\n        heading: \"Переключити ланцюжок\",\n        paragraph1: \"{app} вимагає переключення гаманця на мережу {nextNetworkName} для продовження роботи.\",\n        paragraph2: \"*Деякі гаманці можуть не підтримувати зміну мережі. Якщо ви не можете змінити мережу в своєму гаманці, ви можете розглянути можливість переходу до іншого гаманця.\"\n      },\n      confirmDisconnectAll: {\n        heading: \"Відключити всі гаманці\",\n        description: \"Ви впевнені, що хочете відключити всі свої гаманці?\",\n        confirm: \"Підтвердити\",\n        cancel: \"Скасувати\"\n      }\n    },\n    accountCenter: {\n      connectAnotherWallet: \"Підключити інший гаманець\",\n      disconnectAllWallets: \"Відключити всі гаманці\",\n      currentNetwork: \"Поточна мережа\",\n      tokenListTitle: \"загальний баланс\",\n      tokenListNoData:'На жаль, баланс токенів недоступний для поточної мережі, якщо ви хочете додати,',\n      contactUs:'зв\\'яжіться з нами',\n      tokenListIncluded: \"Включені токени\",\n      tokenListMore: \"Більше токенів\",\n      appInfo: \"Інформація про додаток\",\n      learnMore: \"Дізнатися більше\",\n      gettingStartedGuide: \"Посібник з початку роботи\",\n      smartContracts: \"Розумні контракти\",\n      explore: \"Досліджувати\",\n      backToApp: \"Назад до додатку\",\n      poweredBy: \"за допомогою\",\n      addAccount: \"Додати обліковий запис\",\n      setPrimaryAccount: \"Встановити основний обліковий запис\",\n      disconnectWallet: \"Відключити гаманець\",\n      copyAddress: \"Скопіювати адресу гаманця\",\n      changeNetworkProcess: \"перемикаємо...\",\n      save:\"Зберегти\"\n    },\n    notify: {\n      transaction: {\n        txRequest: \"Ваша транзакція очікує на підтвердження\",\n        nsfFail: \"У вас недостатньо коштів для цієї транзакції\",\n        txUnderpriced: \"Ціна газу для вашої транзакції занадто низька, спробуйте встановити вищу ціну газу\",\n        txRepeat: \"Це може бути повторною транзакцією\",\n        txAwaitingApproval: \"У вас є попередня транзакція, яку потрібно підтвердити\",\n        txConfirmReminder: \"Будь ласка, підтвердіть вашу транзакцію, щоб продовжити\",\n        txSendFail: \"Ви відхилили транзакцію\",\n        txSent: \"Ваша транзакція була відправлена до мережі\",\n        txStallPending: \"Ваша транзакція зупинилась до того, як була відправлена, будь ласка, спробуйте ще раз\",\n        txStuck: \"Ваша транзакція застрягла через проблему з nonce\",\n        txPool: \"Ваша транзакція розпочалась\",\n        txStallConfirmed: \"Ваша транзакція зупинилась і не була підтверджена\",\n        txSpeedUp: \"Ваша транзакція була прискорена\",\n        txCancel: \"Ваша транзакція скасовується\",\n        txFailed: \"Ваша транзакція не вдалась\",\n        txConfirmed: \"Ваша транзакція успішно виконана\",\n        txError: \"Ой, щось пішло не так, спробуйте ще раз\",\n        txReplaceError: \"Виникла помилка під час заміни вашої транзакції, будь ласка, спробуйте ще раз\"\n      },\n      watched: {\n        txPool: \"Ваш обліковий запис {verb} {formattedValue} {asset} {preposition} {counterpartyShortened}\",\n        txSpeedUp: \"Транзакція на {formattedValue} {asset} {preposition} {counterpartyShortened} була прискорена\",\n        txCancel: \"Транзакцію на {formattedValue} {asset} {preposition} {counterpartyShortened} скасовано\",\n        txConfirmed: \"Ваш обліковий запис успішно {verb} {formattedValue} {asset} {preposition} {counterpartyShortened}\",\n        txFailed: \"Ваш обліковий запис не вдалося {verb} {formattedValue} {asset} {preposition} {counterpartyShortened}\",\n        txStuck: \"Ваша транзакція застрягла через розрив в номері\"\n      },\n      time: {\n        minutes: \"мін.\",\n        seconds: \"сек.\"\n      }\n    }\n  }\n}\n\nexport function getTranslations(): Translation {\n  return beeWeb3ConnectLocales[state.get().locale]\n}\n","import {Component, OnInit, Output, EventEmitter} from '@angular/core';\nimport {STORAGE_KEYS} from \"../../../constants\";\nimport {delLocalStore, getLocalStore, setLocalStore} from \"../../../utils\";\nimport {configuration} from \"../../../configuration\";\nimport {TermsOfServiceAgreementOptions} from \"../../../../../common\";\nimport {getTranslations, Translation} from \"../../../locales\";\n\n@Component({\n  selector: 'agreement',\n  templateUrl: './agreement.component.html',\n  styleUrls: ['./agreement.component.scss'],\n})\n\nexport class AgreementComponent implements OnInit{\n  @Output() public agreedEvent: EventEmitter<any> = new EventEmitter();\n\n  public agreed: boolean;\n  protected readonly translation: Translation =  getTranslations();\n  public localStoreAgreements = JSON.parse(getLocalStore(STORAGE_KEYS.TERMS_AGREEMENT) || '{}');\n  public blankAgreement = { termsUrl: '', privacyUrl: '', version: '' };\n  public agreements: TermsOfServiceAgreementOptions =   (configuration.appMetadata && configuration.appMetadata.agreement) || this.blankAgreement\n  public showTermsOfService: boolean = !!(\n    (this.agreements.termsUrl && !this.localStoreAgreements.terms) ||\n    (this.agreements.privacyUrl && !this.localStoreAgreements.privacy) ||\n    (this.agreements.version && this.agreements.version !== this.localStoreAgreements.version)\n  )\n   constructor()  {\n  }\n  public ngOnInit(): void {\n    this.agreed = !this.showTermsOfService;\n    setTimeout(() => {\n      this.agreedEvent.emit(this.agreed);\n    })\n  }\n  public toggleClick(): void {\n    this.agreed = !this.agreed;\n    this.agreedEvent.emit(this.agreed)\n    if (this.agreed) {\n      setLocalStore(\n        STORAGE_KEYS.TERMS_AGREEMENT,\n        JSON.stringify({\n          version: configuration.appMetadata?.agreement?.version,\n          terms: !!configuration.appMetadata?.agreement?.termsUrl,\n          privacy: !!configuration.appMetadata?.agreement?.privacyUrl\n        })\n      )\n    } else if (this.agreed === false) {\n      delLocalStore(STORAGE_KEYS.TERMS_AGREEMENT);\n    }\n  }\n}\n\n\n","<ng-container *ngIf=\"showTermsOfService\">\n  <label class=\"agreement-box\">\n    <input type=\"checkbox\" [checked]=\"agreed\" (change)=\"toggleClick()\"/>\n    <span>{{translation.connect.selectingWallet.agreement.agree }}  <a *ngIf=\"agreements.termsUrl\" [href]=\"agreements.termsUrl\" target=\"_blank\"> {{translation.connect.selectingWallet.agreement.terms }}</a> <span *ngIf=\"agreements.privacyUrl\">  {{translation.connect.selectingWallet.agreement.and }} </span> <a  *ngIf=\"agreements.privacyUrl\" [href]=\"agreements.privacyUrl\" target=\"_blank\"> {{translation.connect.selectingWallet.agreement.privacy }}</a></span>\n  </label>\n</ng-container>\n\n","import {Component, Input} from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport {DomSanitizer} from \"@angular/platform-browser\";\n@Component({\n  selector: 'web3-connect-svg',\n  templateUrl: './web3-connect-svg.component.html',\n  styleUrls: ['./web3-connect-svg.component.scss'],\n})\n\nexport class Web3ConnectSvgComponent{\n\n  @Input() icon?: string;\n  @Input() iconPromise?: Promise<string>;\n  @Input() iconName: string;\n  @Input() width: string = '20px';\n  @Input() height: string = '20px';\n  public isLoaded: boolean = false;\n\n  constructor( private iconRegistry: MatIconRegistry, private sanitizer: DomSanitizer )  {}\n\n  ngOnInit() {\n    this.init();\n  }\n  private init(): void {\n      this.iconName = this.iconName.replace(/\\s/g, '');\n      if(this.iconPromise) {\n        this.iconPromise.then(res => {\n          this.iconRegistry.addSvgIconLiteral( this.iconName, this.sanitizer.bypassSecurityTrustHtml( res));\n          this.isLoaded = true;\n        });\n      }\n  }\n\n  public registerIconName(): string{\n    this.iconRegistry.addSvgIconLiteral( this.iconName, this.sanitizer.bypassSecurityTrustHtml(this.icon));\n    return this.iconName;\n  }\n\n}\n\n\n","<div class=\"flex justify-center items-center\">\n  <mat-icon *ngIf=\"iconPromise && isLoaded\" [svgIcon]=\"iconName\"\n            [style.width]=\"width\"\n            [style.height]=\"height\"\n            aria-hidden=\"false\" aria-label=\"Example thumbs up SVG icon\"></mat-icon>\n  <mat-icon *ngIf=\"icon\" [svgIcon]=\"registerIconName()\"\n            [style.width]=\"width\"\n            [style.height]=\"height\"\n            aria-hidden=\"false\" aria-label=\"Example thumbs up SVG icon\"></mat-icon>\n</div>\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'web3-connect-spinner',\n  templateUrl: './web3-connect-spinner.component.html',\n  styleUrls: ['./web3-connect-spinner.component.scss'],\n})\n\nexport class Web3ConnectSpinnerComponent {\n\n  @Input() public size?: string = '2rem';\n  @Input() public description?: string = ''\n\n}\n\n\n","<div class=\"loading-container flex flex-column justify-center items-center absolute\">\n  <div class=\"loading relative\" [style.width]=\"size\" [style.height]=\"size\">\n    <div class=\"loading-first\" [style.width]=\"size\" [style.height]=\"size\"></div>\n    <div class=\"loading-second\" [style.width]=\"size\" [style.height]=\"size\"></div>\n    <div class=\"loading-third\" [style.width]=\"size\" [style.height]=\"size\"></div>\n  </div>\n<span *ngIf=\"description\">{{description}}</span>\n</div>\n","import {Component, Input} from '@angular/core';\nimport {pendingIcon} from \"../../../icons\";\n\n@Component({\n  selector: 'web3-connect-badge',\n  templateUrl: './web3-connect-badge.component.html',\n  styleUrls: ['./web3-connect-badge.component.scss'],\n})\n\nexport class Web3ConnectBadgeComponent {\n\n  public pendingIcon: string = pendingIcon;\n  @Input() public icon?: string;\n  @Input() public iconPromise?: Promise<string>;\n  @Input() public iconName: string;\n  @Input() public width: string;\n  @Input() public height: string;\n  @Input() public loading: boolean = false;\n  @Input() public customBackgroundColor?: string = '';\n  @Input() public size?: number = 0;\n  @Input() public color?: string = 'black'\n  @Input() public radius?: number = 12;\n  @Input() public padding?: number = this.size / 6\n  @Input() public border: string;\n  @Input() public background: string;\n\n\n}\n\n\n","<div class=\"wallet-icon-box\"\n    [class.border-custom]=\"border === 'custom'\"\n    [class.border-yellow]=\"border === 'yellow'\"\n    [class.border-gray]=\"border === 'gray'\"\n    [class.border-green]=\"border === 'green'\"\n    [class.border-dark-green]=\"border === 'darkGreen'\"\n    [class.border-blue]=\"border === 'blue'\"\n    [class.border-dark-blue]=\"border === 'darkBlue'\"\n    [class.border-transparent]=\"border === 'transparent'\"\n    [class.border-black]=\"border === 'black'\"\n    [class.background-gray]=\"background === 'gray'\"\n    [class.background-light-gray]=\"background === 'lightGray'\"\n    [class.background-light-blue]=\"background === 'lightBlue'\"\n    [class.background-green]=\"background === 'green'\"\n    [class.background-white]=\"background === 'white'\"\n    [class.background-transparent]=\"background === 'transparent'\"\n    [style.background-color]=\" background === 'custom' ? customBackgroundColor : null\"\n    [style.padding]=\"padding - 1\"\n    [style.width]=\"size+'px'\"\n    [style.height]=\"size+'px'\"\n    [style.border-radius]=\"radius+'px'\"\n    [style.color]=\"color\">\n\n    <div *ngIf=\"loading\" class=\"spinner-container\">\n      <web3-connect-spinner [size]=\"'1.5rem'\"></web3-connect-spinner>\n    </div>\n    <div *ngIf=\"loading\" class=\"status-icon-container\">\n      <div class=\"pending-status-icon\">\n      <web3-connect-svg [icon]=\"pendingIcon\" [width]=\"'20px'\" [height]=\"'20px'\" [iconName]=\"'pendingIcon'\"></web3-connect-svg>\n    </div>\n    </div>\n    <div *ngIf=\"!loading\">\n      <web3-connect-svg *ngIf=\"iconPromise\" [iconPromise]=\"iconPromise\" [width]=\"width\" [height]=\"height\" [iconName]=\"iconName\"></web3-connect-svg>\n      <web3-connect-svg *ngIf=\"icon\" [icon]=\"icon\" [width]=\"width\" [height]=\"height\" [iconName]=\"iconName\"></web3-connect-svg>\n    </div>\n\n</div>\n\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {successIcon} from \"../../../icons\";\n\n@Component({\n  selector: 'wallet-button',\n  templateUrl: './wallet-button.component.html',\n  styleUrls: ['./wallet-button.component.scss'],\n})\n\nexport class WalletButtonComponent {\n\n  public successIcon: string = successIcon;\n  @Input() public connected: boolean;\n  @Input() public connecting: boolean;\n  @Input() public disabled: boolean;\n  @Input() public label: string\n  @Input() public icon: Promise<string>\n  @Output() public onClick: EventEmitter<void> = new EventEmitter();\n}\n\n\n","<div class=\"flex\">\n  <button (click)=\"onClick.emit()\"\n          [disabled]=\"disabled\"\n          [class.connected] ='connected' class=\"wallet-button-styling\">\n    <div class=\"wallet-button-container-inner\">\n      <web3-connect-badge [iconPromise]=\"icon\"\n                          [size]=\"56\"\n                          [width]=\"'40px'\"\n                          [height]=\"'40px'\"\n                          [iconName]=\"label\"\n                          [loading]=\"connecting\"\n                          [border]=\"connected ? 'green' : 'custom'\"\n                          [background]=\"'transparent'\"\n      ></web3-connect-badge>\n      <div class=\"name\">{{label}}</div>\n      <div class=\"status-icon\" *ngIf=\"connected\">\n        <web3-connect-svg [icon]=\"successIcon\" [width]=\"'15px'\" [height]=\"'15px'\" [iconName]=\"'successIcon'\"></web3-connect-svg>\n      </div>\n    </div>\n  </button>\n</div>\n","import {Component} from '@angular/core';\nimport {configuration} from \"../../../configuration\";\nimport {Configuration} from \"../../../types\";\nimport {getTranslations, Translation} from \"../../../locales\";\n\n@Component({\n  selector: 'install-wallet',\n  templateUrl: './install-wallet.component.html',\n  styleUrls: ['./install-wallet.component.scss'],\n})\n\nexport class InstallWalletComponent{\n  protected readonly configuration: Configuration = configuration;\n  protected readonly translation: Translation = getTranslations();\n\n}\n\n\n","<div *ngIf=\"configuration.appMetadata?.recommendedInjectedWallets\">\n<p>{{configuration.appMetadata.name}} {{translation.connect.selectingWallet.recommendedWalletsPart1 }}</p>\n<p>{{configuration.appMetadata.name ||  'This app'}}</p>\n  <ng-container *ngFor=\"let item of configuration.appMetadata.recommendedInjectedWallets; let i = index\">\n    <a [href]='item.url' target=\"_blank\" rel=\"noreferrer noopener\">{{item.name}} {{i < configuration.appMetadata.recommendedInjectedWallets.length - 1 ? ', ' : ''}}</a>\n  </ng-container>\n  <p>{{translation.connect.selectingWallet.recommendedWalletsPart2}}</p>\n  <p>{{translation.connect.selectingWallet.installWallet }}</p>\n  <p>{{configuration.appMetadata.name ||  'This app'}}</p>\n</div>\n\n","import {Component, Input} from '@angular/core';\nimport {infoIcon} from \"../../../icons\";\n\n@Component({\n  selector: 'web3-connect-warning',\n  templateUrl: './web3-connect-warning.component.html',\n  styleUrls: ['./web3-connect-warning.component.scss'],\n})\n\nexport class Web3ConnectWarningComponent {\n  public infoIcon: string = infoIcon;\n\n  @Input() public message?: string;\n  @Input() public linkText?: string\n  @Input() public linkHref?: string\n  @Input() public isInstallWallet?: boolean\n\n}\n\n\n","<div class=\"notice-container\">\n  <div class=\"web3-connect-warning-container\">\n    <div *ngIf=\"message\">\n      <div>{{message}}</div>\n      <a *ngIf=\"linkHref && linkText\" class=\"\" [href]='linkHref' target=\"_blank\">{{linkText}}</a>\n    </div>\n    <ng-container *ngIf=\"isInstallWallet\">\n      <install-wallet></install-wallet>\n    </ng-container>\n    <div class=\"web3-connect-warning-container-icon\">\n      <web3-connect-svg [icon]=\"infoIcon\" [width]=\"'1rem'\" [height]=\"'1rem'\" [iconName]=\"'info'\"></web3-connect-svg>\n    </div>\n  </div>\n</div>\n\n\n\n\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {WalletWithLoadingIcon} from \"../../../types\";\nimport {state} from \"../../../store\";\n@Component({\n  selector: 'selecting-wallet',\n  templateUrl: './selecting-wallet.component.html',\n  styleUrls: ['./selecting-wallet.component.scss'],\n})\n\nexport class SelectingWalletComponent {\n  protected readonly wheresMyWalletDefault = 'https://www.blocknative.com/blog/metamask-wont-connect-web3-wallet-troubleshooting'\n\n  @Input() public wallets: WalletWithLoadingIcon[];\n  @Input() public connectingWalletLabel: string\n  @Input() public connectingErrorMessage: string\n  @Output() public selectWallet:EventEmitter<WalletWithLoadingIcon> = new EventEmitter();\n  constructor()  {}\n  public checkConnected(label: string): boolean {\n    const { wallets } = state.get();\n    return !!wallets.find(wallet => wallet.label === label);\n  }\n\n}\n\n\n","  <web3-connect-warning  *ngIf=\"connectingErrorMessage\" [message]=\"connectingErrorMessage\"></web3-connect-warning>\n  <div class=\"wallets-container\">\n    <ng-container *ngFor=\"let wallet of wallets\">\n      <wallet-button\n      [connected]=\"checkConnected(wallet.label)\"\n      [connecting]=\"connectingWalletLabel === wallet.label\"\n      [label]=\"wallet.label\"\n      [icon]=\"wallet.icon\"\n      (onClick)=\"selectWallet.emit(wallet)\"\n      [disabled]=\"connectingWalletLabel &&connectingWalletLabel !== wallet.label\">\n      </wallet-button>\n    </ng-container>\n    <web3-connect-warning\n      [message]=\"'Why don\\'t I see my Wallet?'\"\n      [linkText]=\"'Click here to learn more'\"\n      [linkHref]=\"wheresMyWalletDefault\">\n    </web3-connect-warning>\n  </div>\n\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport { configuration } from '../../../configuration';\nimport { questionIcon } from '../../../icons';\nimport {Configuration, WalletState} from \"../../../types\";\nimport {getTranslations, Translation} from \"../../../locales\";\n\n@Component({\n  selector: 'connecting-wallet',\n  templateUrl: './connecting-wallet.component.html',\n  styleUrls: ['./connecting-wallet.component.scss'],\n})\n\nexport class ConnectingWalletComponent{\n\n  @Input() public connectionRejected: boolean;\n  @Input() public previousConnectionRequest: boolean;\n  @Input() public selectedWallet: WalletState;\n  @Output() public connectWallet:EventEmitter<void> = new EventEmitter();\n  @Output() public deselectWallet:EventEmitter<string> = new EventEmitter();\n  @Output() public setStep:EventEmitter<any> = new EventEmitter();\n  protected readonly translation: Translation = getTranslations();\n  protected readonly configuration: Configuration = configuration;\n  protected readonly questionIcon: string = questionIcon;\n\n}\n\n\n","<div class=\"container flex flex-column items-center\">\n  <div class=\"connecting-container flex justify-between items-center\"\n    [class.warning]=\"connectionRejected || previousConnectionRequest\">\n    <div class=\"flex\">\n      <div class=\"flex justify-center relative wallet-badges\">\n        <web3-connect-badge [size]=\"40\"\n                            [padding]=\"8\"\n                            [border]=\"connectionRejected || previousConnectionRequest ? 'yellow' : 'blue'\"\n                            [background]=\"'lightGray'\"\n                            [icon]=\"(configuration.appMetadata && configuration.appMetadata.icon) || questionIcon\"\n                            [iconName]=\"'appMetadataIcon'\"\n        ></web3-connect-badge>\n        <div class=\"relative\" style=\"right: 0.5rem\">\n          <web3-connect-badge [size]=\"40\"\n                              [padding]=\"8\"\n                              [border]=\"connectionRejected || previousConnectionRequest ? 'yellow' : 'blue'\"\n                              [background]=\"'white'\"\n                              [icon]=\"selectedWallet.icon\"\n                              [iconName]=\"selectedWallet.label\"\n          ></web3-connect-badge>\n        </div>\n      </div>\n      <div class=\"flex flex-column justify-center ml connecting-wallet-info\">\n        <div class=\"text\" [class.text-rejected]=\"connectionRejected\">\n          {{connectionRejected ? (translation.connect.connectingWallet.rejectedText) : (translation.connect.connectingWallet.mainText)}}\n        </div>\n        <div *ngIf=\"connectionRejected\" class=\"rejected-cta pointer subtext\" (click)=connectWallet.emit()>\n          {{translation.connect.connectingWallet.rejectedCTA }}\n        </div>\n        <div *ngIf=\"!connectionRejected\" class=\"subtext\">\n          <span *ngIf=\"previousConnectionRequest\">{{selectedWallet.label}} {{translation.connect.connectingWallet.previousConnection}}</span>\n          <div  *ngIf=\"!previousConnectionRequest\"> {{translation.connect.connectingWallet.paragraph}}</div>\n        </div>\n        </div>\n      </div>\n  </div>\n  <button class=\"web3-connect-button-primary\" (click)=\"deselectWallet.emit(selectedWallet.label);  setStep.emit('selectingWallet')\">\n    {{translation.connect.connectingWallet.primaryButton}}\n  </button>\n</div>\n\n","import {Component,Input} from '@angular/core';\nimport {Configuration, WalletState} from \"../../../types\";\nimport {configuration} from \"../../../configuration\";\nimport {questionIcon, successIcon} from \"../../../icons\";\nimport {getTranslations, Translation} from \"../../../locales\";\n\n\n@Component({\n  selector: 'connected-wallet',\n  templateUrl: './connected-wallet.component.html',\n  styleUrls: ['./connected-wallet.component.scss'],\n})\n\nexport class ConnectedWalletComponent {\n\n  @Input() public selectedWallet: WalletState;\n  protected readonly translation: Translation = getTranslations();\n  protected readonly configuration:Configuration = configuration;\n  protected readonly questionIcon: string = questionIcon;\n  protected readonly successIcon: string = successIcon;\n\n}\n\n\n","<div class=\"container\">\n  <div class=\"connecting-container flex justify-between items-center\">\n    <div class=\"flex items-center\">\n      <div class=\"flex justify-center relative\">\n        <web3-connect-badge [size]=\"40\"\n                            [padding]=\"8\"\n                            [border]=\"'darkGreen'\"\n                            [background]=\"configuration.appMetadata && configuration.appMetadata.icon ? 'lightBlue' : 'lightGray'\"\n                            [icon]=\"(configuration.appMetadata && configuration.appMetadata.icon) || questionIcon\"\n                            [iconName]=\"'appMetadataIcon'\"\n        ></web3-connect-badge>\n        <div class=\"success-check-box relative\">\n          <web3-connect-svg [iconName]=\"'successIcon'\" [icon]=\"successIcon\" [width]=\"'15px'\" [height]=\"'15px'\"></web3-connect-svg>\n        </div>\n\n        <div class=\"relative\" style=\"right: 1.75rem;\">\n          <web3-connect-badge [size]=\"40\"\n                              [padding]=\"8\"\n                              [border]=\"'darkGreen'\"\n                              [background]=\"'white'\"\n                              [icon]=\"selectedWallet.icon\"\n                              [iconName]=\"selectedWallet.label\"\n          ></web3-connect-badge>\n        </div>\n      </div>\n      <div class=\"text relative\">\n        {{translation.connect.connectedWallet.mainText}}\n      </div>\n    </div>\n    <div class=\"tick flex items-center\">\n        <web3-connect-svg [iconName]=\"'successIcon'\" [icon]=\"successIcon\" [width]=\"'17px'\" [height]=\"'17px'\"></web3-connect-svg>\n    </div>\n  </div>\n</div>\n\n","import {Component, Input, OnInit} from '@angular/core';\nimport {AccountCenter, AppState, ConnectOptions, WalletState, WalletWithLoadingIcon} from \"../../../types\";\nimport {configuration} from \"../../../configuration\";\nimport {state} from \"../../../store\";\nimport {BehaviorSubject, distinctUntilChanged, firstValueFrom, Observable, startWith, Subject} from \"rxjs\";\nimport {STORAGE_KEYS} from \"../../../constants\";\nimport {connectWallet$} from \"../../../streams\";\nimport {filter, mapTo, shareReplay, take, takeUntil} from \"rxjs/operators\";\nimport {addWallet, updateAccount} from \"../../../store/actions\";\nimport {BigNumber} from \"ethers\";\nimport EventEmitter from \"eventemitter3\";\nimport {getBalance, getChainId, listenAccountsChanged, requestAccounts, trackWallet} from \"../../../provider\";\nimport {getLocalStore, setLocalStore} from \"../../../utils\";\nimport {getBNMulitChainSdk} from \"../../../services\";\nimport {ProviderRpcErrorCode, WalletModule} from \"../../../../../common\";\nimport {closeCircleIcon, infoIcon, poweredByBee} from '../../../icons';\nimport {Destroyable} from \"../../../destroyable.base\";\nimport {getTranslations, Translation} from \"../../../locales\";\n\n@Component({\n  selector: 'connect',\n  templateUrl: './connect.component.html',\n  styleUrls: ['./connect.component.scss'],\n})\n\nexport class ConnectComponent extends Destroyable implements OnInit {\n\n  @Input() public autoSelect: ConnectOptions['autoSelect'];\n\n  protected readonly translation: Translation =  getTranslations();\n  protected readonly poweredByBee: string = poweredByBee;\n  protected readonly infoIcon: string = infoIcon;\n  protected readonly closeIcon = closeCircleIcon;\n  public readonly state: AppState = state.get();\n  public step: any;\n  public isAccountCenterConnect: boolean = false;\n  public cancelPreviousConnect$: Subject<void> = new Subject<void>();\n  public connectionRejected: boolean = false;\n  public previousConnectionRequest: boolean = false;\n  public wallets: WalletWithLoadingIcon[] = [];\n  public selectedWallet: WalletState | null;\n  public agreed: boolean;\n  public connectingWalletLabel: string;\n  public connectingErrorMessage: string;\n  public availableWallets: number;\n  public displayConnectingWallet: any;\n\n  protected readonly accountCenter$: Observable<AccountCenter> = state\n    .select('accountCenter')\n    .pipe(startWith(state.get().accountCenter), shareReplay(1));\n\n  public modalStep$ = new BehaviorSubject<any>(\n    'selectingWallet'\n  )\n\n  constructor()  {\n    super();\n  }\n\n  ngOnInit() {\n    this.connectWalletListener();\n    this.modalStepListener();\n  }\n\n  private connectWalletListener(): void {\n    connectWallet$.pipe(distinctUntilChanged(\n        (prev, curr) =>\n          prev.autoSelect &&\n          curr.autoSelect &&\n          prev.autoSelect.disableModals === curr.autoSelect.disableModals),\n          filter(({ autoSelect }) => autoSelect && autoSelect.disableModals === false),\n          takeUntil(this.unsubscribe$))\n          .subscribe((res) => {\n          setTimeout(() => this.isAccountCenterConnect = res.inProgress)\n          this.selectedWallet && this.connectWallet();\n      });\n  }\n  private modalStepListener(): void {\n    this.modalStep$.pipe(\n      takeUntil(this.unsubscribe$)\n    ).subscribe( step => {\n      this.step = step;\n      switch (step) {\n        case 'selectingWallet': {\n          if (this.autoSelect.label) {\n            const walletToAutoSelect = this.state.walletModules.find(\n              ({ label }) =>\n                label.toLowerCase() === this.autoSelect.label.toLowerCase()\n            )\n\n            if (walletToAutoSelect) {\n              this.autoSelectWallet(walletToAutoSelect)\n            } else if (this.autoSelect.disableModals) {\n              connectWallet$.next({ inProgress: false })\n            }\n          } else {\n            this.connectingWalletLabel = ''\n            this.loadWalletsForSelection();\n          }\n          break\n        }\n        case 'connectingWallet': {\n          this.connectWallet();\n          break\n        }\n        case 'connectedWallet': {\n          this.connectingWalletLabel = ''\n          this.updateAccountDetails();\n          break\n        }\n      }\n      this.availableWallets = this.wallets.length - state.get().wallets.length;\n      this.displayConnectingWallet = (step=== 'connectingWallet' && this.selectedWallet) ||\n        (this.connectionRejected && step === 'connectingWallet' && this.selectedWallet)\n\n    })\n  }\n\n  // ==== SELECT WALLET ==== //\n  public async selectWallet({label, icon, getInterface}: WalletWithLoadingIcon): Promise<void> {\n    this.connectingWalletLabel = label;\n\n    try {\n      const existingWallet = state.get()\n        .wallets.find(wallet => wallet.label === label)\n      if (existingWallet) {\n        // set as first wallet\n        addWallet(existingWallet)\n        setTimeout(() => this.setStep('connectedWallet'), 1)\n        this.selectedWallet = existingWallet\n        return\n      }\n      const { chains } = state.get()\n      const { provider, instance } = await getInterface({\n        chains,\n        BigNumber,\n        EventEmitter,\n        appMetadata: configuration.appMetadata\n      })\n      const loadedIcon = await icon;\n      this.selectedWallet = {\n        label,\n        icon: loadedIcon,\n        provider,\n        instance,\n        accounts: [],\n        chains: [{ namespace: 'evm', id: '0x1' }]\n      }\n      this.connectingErrorMessage = '';\n      // change step on next event loop\n      setTimeout(() => this.setStep('connectingWallet'), 200);\n    } catch (error) {\n      const { message } = error as { message: string };\n      this.connectingErrorMessage = message;\n      this.connectingWalletLabel = '';\n    }\n  }\n  public deselectWallet($event: any): void {\n    this.selectedWallet = null;\n  }\n  private updateSelectedWallet(update: Partial<WalletState> | WalletState): void {\n    this.selectedWallet = { ...this.selectedWallet, ...update }\n  }\n  private async autoSelectWallet(wallet: WalletModule): Promise<void> {\n    const { getIcon, getInterface, label } = wallet;\n    const icon = getIcon();\n    await this.selectWallet({ label, icon, getInterface });\n  }\n  private async loadWalletsForSelection(): Promise<void> {\n    this.wallets = this.state.walletModules.map(({ getIcon, getInterface, label }) => {\n      return {\n        label,\n        icon: getIcon(),\n        getInterface\n      }\n    })\n  }\n  public close(): void {\n    this.isAccountCenterConnect = false;\n    setTimeout(() => {connectWallet$.next({ inProgress: false })}, 500);\n  };\n\n  // ==== CONNECT WALLET ==== //\n  public async connectWallet(): Promise<void> {\n    this.connectionRejected = false;\n    const { provider, label } = this.selectedWallet\n    this.cancelPreviousConnect$.next()\n    try {\n      const [address] = await Promise.race([\n        // resolved account\n        requestAccounts(provider),\n        // or connect wallet is called again whilst waiting for response\n        firstValueFrom(this.cancelPreviousConnect$.pipe(mapTo([])))\n      ])\n      // canceled previous request\n      if (!address) {\n        return\n      }\n      // store last connected wallet\n      if (state.get().connect.autoConnectLastWallet || state.get().connect.autoConnectAllPreviousWallet) {\n        let labelsList: string | Array<String> = getLocalStore(\n          STORAGE_KEYS.LAST_CONNECTED_WALLET\n        )\n\n        try {\n          let labelsListParsed: Array<String> = JSON.parse(labelsList)\n          if (labelsListParsed && Array.isArray(labelsListParsed)) {\n            const tempLabels = labelsListParsed\n            labelsList = [...new Set([label, ...tempLabels])]\n          }\n        } catch (err) {\n          if (\n            err instanceof SyntaxError &&\n            labelsList &&\n            typeof labelsList === 'string'\n          ) {\n            const tempLabel = labelsList\n            labelsList = [tempLabel]\n          } else {\n            throw new Error(err as string);\n          }\n        }\n\n        if (!labelsList) labelsList = [label]\n        setLocalStore(\n          STORAGE_KEYS.LAST_CONNECTED_WALLET,\n          JSON.stringify(labelsList)\n        )\n      }\n      const chain = await getChainId(provider)\n      if (state.get().notify.enabled) {\n        const sdk = await getBNMulitChainSdk()\n        if (sdk) {\n          try {\n            sdk.subscribe({\n              id: address,\n              chainId: chain,\n              type: 'account'\n            })\n          } catch (error) {\n            // unsupported network for transaction events\n          }\n        }\n      }\n\n      const update: Pick<WalletState, 'accounts' | 'chains'> = {\n        accounts: [{ address, balance: null }],\n        chains: [{ namespace: 'evm', id: chain }]\n      }\n\n      addWallet({ ...this.selectedWallet, ...update })\n      trackWallet(provider, label)\n      this.updateSelectedWallet(update)\n      this.setStep('connectedWallet')\n    } catch (error) {\n      const { code } = error as { code: number; message: string }\n\n      // user rejected account access\n      if (code === ProviderRpcErrorCode.ACCOUNT_ACCESS_REJECTED) {\n        this.connectionRejected = true\n\n        if (this.autoSelect.disableModals) {\n          connectWallet$.next({ inProgress: false })\n        } else if (this.autoSelect.label) {\n          this.autoSelect.label = ''\n        }\n\n        return\n      }\n\n      // account access has already been requested and is awaiting approval\n      if (code === ProviderRpcErrorCode.ACCOUNT_ACCESS_ALREADY_REQUESTED) {\n        this.previousConnectionRequest = true\n\n        if (this.autoSelect.disableModals) {\n          connectWallet$.next({ inProgress: false })\n          return\n        }\n\n        listenAccountsChanged({\n          provider: this.selectedWallet.provider,\n          disconnected$: connectWallet$.pipe(\n            filter(({ inProgress }) => !inProgress),\n            mapTo('')\n          )\n        })\n          .pipe(take(1))\n          .subscribe(([account]) => {\n            account && this.connectWallet()\n          })\n\n        return\n      }\n    }\n  }\n\n  // ==== CONNECTED WALLET ==== //\n  private async updateAccountDetails(): Promise<void> {\n    const { accounts, chains: selectedWalletChains } = this.selectedWallet\n    const appChains = state.get().chains\n    const [connectedWalletChain] = selectedWalletChains\n\n    const appChain = appChains.find(\n      ({ namespace, id }) =>\n        namespace === connectedWalletChain.namespace &&\n        id === connectedWalletChain.id\n    )\n\n    const { address } = accounts[0]\n    let { balance } = accounts[0]\n    if (balance === null) {\n      getBalance(address, appChain).then(balance => {\n        updateAccount(this.selectedWallet.label, address, {\n          balance\n        })\n      })\n    }\n    setTimeout(() => connectWallet$.next({ inProgress: false }), 1500);\n  }\n\n  public setStep(update: any): void {\n  this.cancelPreviousConnect$.next();\n  this.modalStep$.next(update);\n  }\n\n}\n\n\n","<nav  class=\"web3-connect-menu\" [ngClass]=\"[isAccountCenterConnect ? (accountCenter$ | async).position +'-active': '', (accountCenter$ | async).position ]\">\n  <div class=\"web3-connect-menu__close\" (click)=\"close()\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"sc-3dvm1v-4 jPdqkH\"><polyline points=\"13 17 18 12 13 7\"></polyline><polyline points=\"6 17 11 12 6 7\"></polyline></svg>\n  </div>\n  <ng-container *ngIf=\"(modalStep$| async) as modalStep\">\n    <div class=\"web3-connect-menu-box\" >\n      <div class=\"close-btn\" (click)=\"close()\">\n        <web3-connect-svg [icon]=\"closeIcon\" [width]=\"'25px'\" [height]=\"'25px'\" [iconName]=\"'closeIcon'\"></web3-connect-svg>\n      </div>\n      <h1 class=\"web3-connect-menu-box__title\">\n        <ng-container *ngIf=\"modalStep === 'selectingWallet'\">{{translation.connect.selectingWallet.header}} ({{availableWallets}})</ng-container>\n        <ng-container *ngIf=\"modalStep === 'connectingWallet'\">\n          <ng-container *ngIf=\"!connectionRejected\">\n            {{translation.connect.connectingWallet.header}} {{selectedWallet.label}}\n          </ng-container>\n          <ng-container *ngIf=\"connectionRejected\">\n            {{translation.connect.connectingWallet.headerRejected}}\n          </ng-container>\n        </ng-container>\n        <ng-container *ngIf=\"modalStep === 'connectedWallet'\">\n          {{translation.connect.connectedWallet.header}}\n        </ng-container>\n      </h1>\n      <ng-container *ngIf=\"modalStep === 'selectingWallet'\">\n        <ng-container *ngIf=\"wallets.length\" >\n          <agreement (agreedEvent)=\"agreed = $event\"></agreement>\n          <div [class.disabled]=\"!agreed\">\n            <selecting-wallet\n              [wallets]=\"wallets\"\n              [connectingWalletLabel]=\"connectingWalletLabel\"\n              [connectingErrorMessage]=\"connectingErrorMessage\"\n              (selectWallet)=\"selectWallet($event)\"\n            ></selecting-wallet>\n          </div>\n        </ng-container>\n        <web3-connect-warning *ngIf=\"!wallets.length\" [isInstallWallet]=\"true\" ></web3-connect-warning>\n      </ng-container>\n      <ng-container *ngIf=\"displayConnectingWallet\">\n        <connecting-wallet\n          [connectionRejected]=\"connectionRejected\"\n          [previousConnectionRequest]=\"previousConnectionRequest\"\n          [selectedWallet]=\"selectedWallet\"\n          (connectWallet)=\"connectWallet()\"\n          (setStep)=\"setStep($event)\"\n          (deselectWallet)=\"deselectWallet($event)\">\n        </connecting-wallet>\n      </ng-container>\n      <ng-container *ngIf=\"modalStep === 'connectedWallet' && selectedWallet\">\n        <connected-wallet [selectedWallet]=\"selectedWallet\"></connected-wallet>\n      </ng-container>\n      <div class=\"steps-box\">\n        <div class=\"no-link\">\n          <a [href]=\"state.connect.iDontHaveAWalletLink ||  'https://ethereum.org/en/wallets/find-wallet/#main-content'\"\n             target=\"_blank\" rel=\"noreferrer noopener\">{{translation.connect.connectedWallet.dontHaveWalletText}}</a>\n          <web3-connect-svg [icon]=\"infoIcon\" [width]=\"'1rem'\" [height]=\"'1rem'\" [iconName]=\"'info'\"></web3-connect-svg>\n        </div>\n        <div class=\"inner-container\">\n          <div class=\"indicators flex items-center\">\n            <div class=\"indicator relative on\"></div>\n            <div class=\"join relative\" [class.active]=\"step !== 'selectingWallet'\"\n                 [style.right]=\"'2px'\"\n                 [ngStyle]=\"{'width': step !== 'selectingWallet' ? '78px' : '82px' }\" >\n            </div>\n            <div class=\"indicator relative\"\n                 [style.right]=\"'4px'\"\n                 [class.on]=\"step !== 'selectingWallet'\">\n            </div>\n            <div class=\"join relative\"\n                 [class.active]=\"step === 'connectedWallet'\"\n                 [style.right]=\"'6px'\"\n                 [ngStyle]=\"{'width': step === 'connectedWallet' ? '74px' : '81px' }\">\n            </div>\n            <div class=\"indicator relative\"\n                 [style.right]=\"'8px'\"\n                 [class.on]=\"step === 'connectedWallet'\">\n            </div>\n          </div>\n        </div>\n        <web3-connect-svg [icon]=\"poweredByBee\" [iconName]=\"'poweredByBee'\"  [width]=\"'150px'\" [height]=\"'25px'\"></web3-connect-svg>\n      </div>\n    </div>\n  </ng-container>\n</nav>\n\n","import {Component, Input} from '@angular/core';\nimport {Notification} from \"../../../types\";\n\n@Component({\n  selector: 'notification-content',\n  templateUrl: './notification-content.component.html',\n  styleUrls: ['./notification-content.component.scss'],\n})\n\nexport class NotificationContentComponent {\n\n  @Input() public notification:  Notification;\n\n}\n\n\n","<div class=\"flex flex-column notify-transaction-data\">\n    <span class=\"transaction-status\">{{notification.message}}</span>\n  <ng-container *ngIf=\"notification.link\">\n        <span class=\"hash-link\">\n          <a class=\"address-hash\"\n             [href]='notification.link'\n             target=\"_blank\"\n             rel=\"noreferrer noopener\">{{notification.link}}</a>\n<!--          <notification-timer [startTime]=\"notification.startTime\"></notification-timer>-->\n        </span>\n  </ng-container>\n</div>\n\n\n\n\n\n\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'notification-chain',\n  templateUrl: './notification-chain.component.html',\n  styleUrls: ['./notification-chain.component.scss'],\n})\n\nexport class NotificationChainComponent {\n\n  @Input() public icon: string;\n  @Input() public borderColorVar: string;\n  @Input() public size: number;\n  @Input() public padding: number = 0;\n  @Input() public background: string = 'transparent';\n\n}\n\n\n","<div\n  class=\"border\"\n  [style.width]=\"size - padding * 2+'px'\"\n  [style.height]=\"size - padding * 2+'px'\"\n  [style.border-color]=\"'var('+borderColorVar+')'\"\n  [style.padding]=\"padding+'px'\"\n  [style.background-color]=\"background\">\n  <web3-connect-svg [iconName]=\"'chainIcon'\" [icon]=\"icon\" [width]=\"'17px'\" [height]=\"'17px'\"></web3-connect-svg>\n</div>\n\n","import {Component, Input} from '@angular/core';\nimport {ChainStyle, Notification} from \"../../../types\";\nimport {defaultNotifyEventStyles} from \"../../../utils\";\n\n@Component({\n  selector: 'notification-status',\n  templateUrl: './notification-status.component.html',\n  styleUrls: ['./notification-status.component.scss'],\n})\n\nexport class NotificationStatusComponent {\n  protected readonly defaultNotifyEventStyles = defaultNotifyEventStyles;\n\n  @Input()  notification: Notification;\n  @Input()  chainStyles: ChainStyle;\n\n}\n\n\n","<ng-container *ngIf=\"notification.type\">\n  <div class=\"relative\">\n    <div *ngIf=\"notification.type === 'pending'\" class=\"border-action absolute\"></div>\n    <div class=\"flex items-center justify-center border relative notification-icons-wrapper\"\n    [style.background]=\"defaultNotifyEventStyles[notification.type]['backgroundColor']\"\n    [style.color]=\"defaultNotifyEventStyles[notification.type]['iconColor'] || ''\"\n    [style.border]=\" notification.type !== 'pending' ? '2px solid '+ defaultNotifyEventStyles[notification.type]['borderColor']: null\"\n    [style.height]=\"notification.type === 'pending' ? '28px': null\"\n    [style.width]=\"notification.type === 'pending' ? '28px': null\"\n    [style.margin]=\"notification.type === 'pending' ? '2px': null\">\n      <div class=\"notification-icon flex items-center justify-center\"\n      [ngClass]=\"notification.type === 'pending' ? 'pending-icon' : ''\">\n        <web3-connect-svg [icon]=\"defaultNotifyEventStyles[notification.type]['eventIcon']\" [width]=\"'18px'\" [height]=\"'18px'\" [iconName]=\"'eventIcon'\"></web3-connect-svg>\n      </div>\n    </div>\n    <ng-container *ngIf=\"!notification.id.includes('customNotification') && !notification.id.includes('preflight')\">\n      <div class=\"absolute chain-icon-container\">\n        <notification-chain\n          [icon]=\"chainStyles.icon\"\n          [size]=\"16\"\n          [background]=\"chainStyles.color\"\n          [borderColorVar]=\"'--notify-b-ee-background, var(--b-ee-gray-600, var(--gray-600))'\"\n          [padding]=\"3\">\n        </notification-chain>\n      </div>\n    </ng-container>\n  </div>\n</ng-container>\n\n\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport { configuration } from '../../../configuration';\nimport {Notification} from \"../../../types\";\nimport {removeTransaction, transactions$} from \"../../../streams\";\nimport {removeNotification} from \"../../../store/actions\";\nimport { chainStyles, networkToChainId } from '../../../utils';\nimport {closeCircleIcon} from \"../../../icons\";\n\n@Component({\n  selector: 'notification',\n  templateUrl: './notification.component.html',\n  styleUrls: ['./notification.component.scss'],\n})\n\nexport class NotificationComponent implements OnInit, OnDestroy{\n\n  @Input() public notification: Notification;\n  protected readonly closeIcon = closeCircleIcon;\n  protected readonly configuration = configuration;\n  protected readonly chainStyles = chainStyles;\n  protected readonly networkToChainId = networkToChainId;\n  public timeoutId: NodeJS.Timeout;\n  public hovered: boolean = false;\n  public readonly transaction = transactions$.getValue()\n    .find(({ hash }) => hash === this.notification.id);\n\n  constructor()  {}\n\n  ngOnInit() {\n    if(this.notification.autoDismiss){\n      this.timeoutId = setTimeout(() => {\n        this.removeNotification();\n      }, this.notification.autoDismiss);\n    }\n  }\n\n  public removeNotification(): void {\n    removeNotification(this.notification.id)\n    removeTransaction(this.notification.id)\n  }\n\n  public onClick(event){\n   return this.notification.onClick && this.notification.onClick(event)\n  }\n  ngOnDestroy() {\n    clearTimeout(this.timeoutId);\n  }\n\n}\n\n\n","<div (mouseenter)=\"hovered =true\" (mouseleave)=\"hovered = false\"\n     (click)=\"onClick($event)\"\n     class=\"bn-notify-notification\"\n     [ngClass]=\"'bn-notify-notification-'+notification.type\">\n  <div class=\"flex bn-notify-notification-inner\">\n    <notification-status [notification]=\"notification\" [chainStyles]=\"chainStyles[networkToChainId[notification.network]]\"></notification-status>\n    <notification-content [notification]=\"notification\"></notification-content>\n    <div (click)=\"removeNotification()\"\n         class=\"notify-close-btn flex\"\n         [ngClass]=\"'notify-close-btn-'+configuration.device.type\">\n        <div class=\"flex items-center close-icon\">\n          <web3-connect-svg [icon]=\"closeIcon\" [width]=\"'18px'\" [height]=\"'18px'\" [iconName]=\"'closeIcon'\"></web3-connect-svg>\n        </div>\n     </div>\n  </div>\n</div>\n\n\n","import {Component, Input} from '@angular/core';\nimport {Configuration, Notification} from \"../../../types\";\nimport { configuration } from '../../../configuration';\n\n\n@Component({\n  selector: 'notify',\n  templateUrl: './notify.component.html',\n  styleUrls: ['./notify.component.scss'],\n})\n\nexport class NotifyComponent{\n  protected readonly configuration: Configuration = configuration;\n\n  @Input() public notifications:  Array<Notification>\n  @Input() public position: string;\n\n}\n\n\n","<ng-container *ngIf=\"notifications.length\">\n  <ul class=\"y-scroll\" [class]=\"'bn-notify-'+position\"\n  [style.justify-content]=\"position.includes('top') ? 'flex-start': null\"\n  [style.max-height]=\"'calc(100vh - 82px'\">\n    <li *ngFor=\"let notification of notifications\"\n        [class]=\"'bn-notify-li-'+position\"\n        [ngClass]=\"position.includes('top') ? 'notification-list-top' : 'notification-list-bottom'\">\n         <notification [notification]=\"notification\"></notification>\n    </li>\n  </ul>\n</ng-container>\n\n\n","import {Component, Input, OnDestroy} from '@angular/core';\n\n@Component({\n  selector: 'notification-timer',\n  templateUrl: './notification-timer.component.html',\n  styleUrls: ['./notification-timer.component.scss'],\n})\n\n\nexport class NotificationTimerComponent implements OnDestroy{\n\n  @Input() public startTime: any;\n\n  public currentTime = Date.now()\n\n  public intervalId = setInterval(() => {\n    this.currentTime = Date.now()\n  }, 1000);\n\n  public timeString(time: number): string {\n    const seconds = Math.floor(time / 1000)\n    const formattedSeconds = seconds < 0 ? 0 : seconds\n    return formattedSeconds >= 60 ?\n      `${Math.floor(formattedSeconds / 60).toLocaleString('en')} ${'notify.time.minutes'}` :\n      `${formattedSeconds.toLocaleString('en')} ${'notify.time.seconds'}`\n  }\n\n  ngOnDestroy() {\n    clearInterval(this.intervalId);\n  }\n\n}\n\n\n","<ng-container *ngIf=\"startTime\">\n  -\n  <span>\n     {{timeString(currentTime - startTime)}}\n    </span>\n  ago\n</ng-container>\n\n","import { firstValueFrom, Observable } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\nimport { Chain, ProviderRpcErrorCode } from '../../common'\nimport { addNewChain, switchChain } from './provider'\nimport { state } from './store/index'\nimport { switchChainModal$ } from './streams'\nimport { validateSetChainOptions } from './validation'\nimport type { WalletState } from './types'\nimport { toHexString } from './utils'\nimport { updateChain } from './store/actions'\n\nasync function setChain(options: {\n  chainId: string | number\n  chainNamespace?: string\n  wallet?: WalletState['label']\n  rpcUrl?: string\n  label?: string\n  token?: string\n}): Promise<boolean> {\n  const error = validateSetChainOptions(options)\n\n  if (error) {\n    throw error\n  }\n\n  const { wallets, chains } = state.get()\n  const {\n    chainId,\n    chainNamespace = 'evm',\n    wallet: walletToSet,\n    rpcUrl,\n    label,\n    token\n  } = options\n  const chainIdHex = toHexString(chainId)\n\n  // validate that chainId has been added to chains\n  const chain = chains.find(\n    ({ namespace, id }) => namespace === chainNamespace && id === chainIdHex\n  )\n\n  if (!chain) {\n    throw new Error(\n      `Chain with chainId: ${chainId} and chainNamespace: ${chainNamespace} has not been set and must be added when Web3Connect is initialized.`\n    )\n  }\n\n  const wallet = walletToSet\n    ? wallets.find(({ label }) => label === walletToSet)\n    : wallets[0]\n\n  // validate a wallet is connected\n  if (!wallet) {\n    throw new Error(\n      walletToSet\n        ? `Wallet with label ${walletToSet} is not connected`\n        : 'A wallet must be connected before a chain can be set'\n    )\n  }\n\n  const [walletConnectedChain] = wallet.chains\n\n  // check if wallet is already connected to chainId\n  if (\n    walletConnectedChain.namespace === chainNamespace &&\n    walletConnectedChain.id === chainIdHex\n  ) {\n    return true\n  }\n\n  try {\n    await switchChain(wallet.provider, chainIdHex)\n    return true\n  } catch (error) {\n    const { code } = error as { code: number }\n    const switchChainModalClosed$ = switchChainModal$.pipe(\n      filter(x => x === null),\n      map(() => false)\n    )\n    if (\n      code === ProviderRpcErrorCode.CHAIN_NOT_ADDED ||\n      code === ProviderRpcErrorCode.UNRECOGNIZED_CHAIN_ID\n    ) {\n      // chain has not been added to wallet\n      if (rpcUrl || label || token) {\n        if (rpcUrl) {\n          chain.rpcUrl = rpcUrl\n        }\n\n        if (label) {\n          chain.label = label\n        }\n\n        if (token) {\n          chain.token = token\n        }\n\n        updateChain(chain)\n      }\n\n      // add chain to wallet\n      return chainNotInWallet(\n        wallet,\n        chain,\n        switchChainModalClosed$,\n        chainIdHex\n      )\n    }\n\n    if (code === ProviderRpcErrorCode.UNSUPPORTED_METHOD) {\n      // method not supported\n      switchChainModal$.next({ chain })\n      return firstValueFrom(switchChainModalClosed$)\n    }\n  }\n\n  return false\n}\n\nconst chainNotInWallet = async (\n  wallet: WalletState,\n  chain: Chain,\n  switchChainModalClosed$: Observable<boolean>,\n  chainIdHex: string\n): Promise<boolean> => {\n  try {\n    await addNewChain(wallet.provider, chain)\n    await switchChain(wallet.provider, chainIdHex)\n    return true\n  } catch (error) {\n    const { code } = error as { code: number }\n    if (code === ProviderRpcErrorCode.ACCOUNT_ACCESS_REJECTED) {\n      // add new chain rejected by user\n      return false\n    }\n    // display notification to user to switch chain\n    switchChainModal$.next({ chain })\n    return firstValueFrom(switchChainModalClosed$)\n  }\n}\n\nexport default setChain\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {Chain} from \"../../../../../common\";\nimport {WalletState} from \"../../../types\";\nimport {BehaviorSubject} from \"rxjs\";\nimport setChain from \"../../../chain\";\nimport {chainIdToLabel, connectedToValidAppChain } from '../../../utils';\nimport {takeUntil} from \"rxjs/operators\";\nimport {wallets$} from \"../../../streams\";\nimport {Destroyable} from \"../../../destroyable.base\";\nimport {getTranslations, Translation} from \"../../../locales\";\n\n@Component({\n  selector: 'web3-connect-network-select',\n  templateUrl: './web3-connect-network-select.component.html',\n  styleUrls: ['./web3-connect-network-select.component.scss'],\n})\n\nexport class Web3ConnectNetworkSelectComponent extends Destroyable implements OnInit {\n\n  @Input() public chains?: Chain[];\n  @Input() public wallet?: WalletState;\n  @Input() public color?: string;\n  protected readonly translation: Translation = getTranslations();\n  protected readonly chainIdToLabel: Record<string, string> = chainIdToLabel;\n  protected readonly switching$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n  public selectedValue: string;\n  constructor(public changeDetectorRef: ChangeDetectorRef)  {\n    super();\n  }\n  ngOnInit(): void {\n   this.selectedValue = this.wallet.chains[0].id;\n    wallets$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n      this.selectedValue = this.wallet.chains[0].id;\n      this.changeDetectorRef.detectChanges();\n    })\n  }\n  public async handleSelect(): Promise<void> {\n      const selectedChain = this.selectedValue;\n      if (selectedChain !== this.wallet.chains[0].id) {\n        this.switching$.next(true);\n        await setChain({\n          chainId: selectedChain,\n          chainNamespace: 'evm',\n          wallet: this.wallet.label\n        })\n        this.switching$.next(false);\n      }\n    }\n  public get connectedToValidAppChain(): boolean {\n    return connectedToValidAppChain(this.wallet.chains[0], this.chains);\n  }\n\n}\n\n\n","<ng-container  *ngIf=\"wallet\">\n    <ng-container *ngIf=\"switching$ | async \">\n      <span [style.color]=\"color\">{{translation.accountCenter.changeNetworkProcess}}</span>\n    </ng-container>\n    <ng-container *ngIf=\"!(switching$ | async)\">\n      <ng-container>\n        <select class=\"web3-connect-select\" [style.color]=\"color\" [(ngModel)]=\"selectedValue\" (change)=\"handleSelect()\">\n          <ng-container *ngIf=\"!connectedToValidAppChain\">\n            <option [value]=\"wallet.chains[0].id\"> {{chainIdToLabel[wallet.chains[0].id] || 'unrecognized'}}</option>\n          </ng-container>\n          <option *ngFor=\"let chain of chains\" [value]=\"chain.id\">{{chain.label || chainIdToLabel[chain.id] || chain.id}}</option>\n        </select>\n      </ng-container>\n    </ng-container>\n</ng-container>\n\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport { configuration } from '../../../configuration';\nimport {state} from \"../../../store\";\nimport { wallets$ } from '../../../streams';\nimport {updateAccountCenter} from \"../../../store/actions\";\nimport { questionIcon, successIcon, warningIcon} from \"../../../icons\";\nimport {getDefaultChainStyles, shortenAddress, unrecognizedChainStyle} from '../../../utils';\nimport {Account, ChainStyle, Configuration, ConnectedChain, WalletState} from \"../../../types\";\nimport {Chain} from \"../../../../../common\";\nimport {takeUntil} from \"rxjs/operators\";\nimport {Destroyable} from \"../../../destroyable.base\";\n\n@Component({\n  selector: 'account-center-min',\n  templateUrl: './account-center-min.component.html',\n  styleUrls: ['./account-center-min.component.scss'],\n})\n\nexport class AccountCenterMinComponent extends Destroyable implements OnInit {\n\n  public wallets: WalletState[];\n  protected chains = state.get().chains;\n  protected readonly configuration: Configuration = configuration;\n  protected readonly appIcon: string = (this.configuration.appMetadata && this.configuration.appMetadata.icon) || questionIcon\n  protected readonly successIcon: string = successIcon;\n  protected readonly warningIcon: string = warningIcon;\n  protected readonly unrecognizedChainStyle:  { icon: string, color: string } = unrecognizedChainStyle;\n\n  constructor(public changeDetectorRef: ChangeDetectorRef)  {\n    super();\n  }\n  ngOnInit() {\n   wallets$.pipe(takeUntil(this.unsubscribe$)).subscribe((wallets: WalletState[]) => {\n     this.wallets = wallets;\n     this.changeDetectorRef.detectChanges();\n    })\n  }\n\n  public maximize(): void {\n    updateAccountCenter({ expanded: true })\n  }\n\n  public get primaryChain() : ConnectedChain | null  {\n    return this.wallets[0] && this.wallets[0].chains[0]\n  }\n  public get defaultChainStyles():ChainStyle {\n    return getDefaultChainStyles(this.primaryChain && this.primaryChain.id)\n  }\n\n\n  public get validAppChain(): Chain {\n    return this.chains.find(({ id, namespace }) =>\n      this.primaryChain ? id ===  this.primaryChain.id && namespace ===  this.primaryChain.namespace : false);\n  }\n\n\n  public get primaryWallet(): WalletState | null  {\n    return this.wallets ? this.wallets[0] : null;\n  }\n  public get firstAccount(): Account | null {\n    return this.primaryWallet ? this.primaryWallet.accounts[0] : null;\n  }\n\n  public get shortenedFirstAddress(): string {\n    return this.firstAccount ? shortenAddress(this.firstAccount.address): '';\n  }\n  public get firstAddressAsset(): string {\n    return this.firstAccount && this.firstAccount.balance\n      ? Object.keys(this.firstAccount.balance)[0]\n      : '';\n  }\n  public get firstAddressBalance(): string | null {\n    return this.firstAccount && this.firstAccount.balance\n    ? this.firstAccount.balance[this.firstAddressAsset]\n    : null\n  }\n}\n\n\n","<div class=\"minimized\">\n  <ng-container *ngIf=\"wallets.length\">\n    <div class=\"inner-row\">\n      <div class=\"flex relative\" (click)=\"maximize()\">\n        <div class=\"drop-shadow\">\n          <web3-connect-badge [icon]=\"appIcon\"\n                              [size]=\"32\"\n                              [padding]=\"4\"\n                              [width]=\"'25px'\"\n                              [height]=\"'25px'\"\n                              [iconName]=\"'appIcon'\"\n                              [background]=\"'white'\"\n                              [border]=\"'darkGreen'\"\n                              [radius]=\"8\"\n          ></web3-connect-badge>\n        </div>\n\n        <div style=\"margin-left: -0.5rem;\" class=\"drop-shadow\">\n          <web3-connect-badge [icon]=\"primaryWallet.icon\"\n                              [size]=\"32\"\n                              [padding]=\"4\"\n                              [width]=\"'25px'\"\n                              [height]=\"'25px'\"\n                              [iconName]=\" primaryWallet.label\"\n                              [background]=\"'green'\"\n                              [border]=\"'darkGreen'\"\n                              [radius]=\"8\"\n          ></web3-connect-badge>\n        </div>\n\n        <div class=\"status-icon drop-shadow absolute\">\n          <web3-connect-svg [icon]=\"successIcon\" [width]=\"'10px'\" [height]=\"'16px'\" [iconName]=\"'successIcon'\"></web3-connect-svg>\n        </div>\n      </div>\n\n      <!-- address and balance -->\n      <div class=\"wallet-info\" (click)=\"maximize()\">\n        <div class=\"address\">\n          <ng-container>{{shortenedFirstAddress}}</ng-container>\n        </div>\n\n        <div *ngIf=\"firstAddressBalance\" class=\"balance\">\n          <ng-container>{{firstAddressBalance.length > 8 ? firstAddressBalance.slice(0, 8): firstAddressBalance}}</ng-container>\n          <ng-container> {{firstAddressAsset}}</ng-container>\n        </div>\n\n      </div>\n\n      <!-- network badge -->\n      <div class=\"network\">\n        <div class=\"container flex items-center\"\n             [class.validAppChain-style]=\"validAppChain\"\n             [class.invalidAppChain-style]=\"!validAppChain\">\n          <div class=\"flex items-center\">\n            <div\n              [class.color-yellow]=\"!validAppChain\"\n              [class.color-white]=\"validAppChain && !validAppChain.icon\"\n              [style.background-color]=\"validAppChain\n               ? validAppChain.color || (defaultChainStyles && defaultChainStyles.color) || unrecognizedChainStyle.color\n               : 'var(--b-ee-warning-200, var(--warning-200))'\"\n              class=\"chain-icon flex justify-center items-center\">\n              <web3-connect-svg [icon]=\"validAppChain\n                  ? validAppChain.icon || (defaultChainStyles && defaultChainStyles.icon) || unrecognizedChainStyle.icon\n                  : warningIcon\"\n                                [width]=\"'10px'\"\n                                [height]=\"'18px'\"\n                                [iconName]=\"primaryChain.id\">\n              </web3-connect-svg>\n            </div>\n            <web3-connect-network-select [wallet]=\"primaryWallet\" [chains]=\"chains\"></web3-connect-network-select>\n          </div>\n        </div>\n      </div>\n    </div>\n  </ng-container>\n</div>\n\n\n\n","import { firstValueFrom } from 'rxjs'\nimport { filter, withLatestFrom, pluck } from 'rxjs/operators'\nimport { configuration } from './configuration'\nimport { setWalletModules } from './store/actions'\nimport { connectWallet$, wallets$ } from './streams'\nimport type {\n  ConnectOptions,\n  ConnectOptionsString,\n  WalletState\n} from './types'\nimport { wait } from './utils'\nimport { validateConnectOptions } from './validation'\nimport {state} from \"./store\";\n\nasync function connect(\n  options?: ConnectOptions | ConnectOptionsString\n): Promise<WalletState[]> {\n  if (options) {\n    const error = validateConnectOptions(options)\n    if (error) {\n      throw error\n    }\n  }\n  const { chains } = state.get()\n\n  // Wallets require the chains for initializing providers,\n  // so we must ensure at least one is set\n  if (!chains.length)\n    throw new Error(\n      'At least one chain must be set before attempting to connect a wallet'\n    )\n\n  const { autoSelect } = options || {\n    autoSelect: { label: '', disableModals: false }\n  }\n\n  // if auto selecting, wait until next event loop\n  if (autoSelect && (typeof autoSelect === 'string' || autoSelect.label)) {\n    await wait(50)\n  }\n\n  // first time calling connect, so initialize and set wallet modules\n  if (!state.get().walletModules.length) {\n    setWalletModules(configuration.initialWalletInit);\n  }\n\n  connectWallet$.next({\n    autoSelect:\n      typeof autoSelect === 'string'\n        ? { label: autoSelect, disableModals: false }\n        : autoSelect,\n    inProgress: true\n  })\n\n  const result$ = connectWallet$.pipe(\n    filter(\n      ({ inProgress, actionRequired }) =>\n        inProgress === false && !actionRequired\n    ),\n    withLatestFrom(wallets$),\n    pluck(1)\n  )\n\n  return firstValueFrom(result$)\n}\n\nexport default connect\n","import {\n  AfterContentInit,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  OnInit,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\nimport {connectWallet$} from '../../../streams';\nimport {Account, WalletState} from \"../../../types\";\nimport {selectAccounts} from \"../../../provider\";\nimport {ProviderRpcErrorCode} from \"../../../../../common\";\nimport { setPrimaryWallet } from '../../../store/actions';\nimport {copyWalletAddress, shortenAddress} from \"../../../utils\";\nimport disconnect from '../../../disconnect';\nimport {elipsisIcon, successIcon} from \"../../../icons\";\nimport {getTranslations, Translation} from \"../../../locales\";\n\n@Component({\n  selector: 'account-center-wallet',\n  templateUrl: './account-center-wallet.component.html',\n  styleUrls: ['./account-center-wallet.component.scss'],\n})\n\nexport class AccountCenterWalletComponent implements AfterContentInit{\n  @Input() public primary: boolean;\n  @Input() public wallet: WalletState;\n  protected readonly translation: Translation = getTranslations();\n  protected readonly successIcon: string = successIcon;\n  protected readonly elipsisIcon: string = elipsisIcon;\n  public showMenu: string = '';\n\n  @ViewChild('toggleButton') toggleButton: ElementRef;\n  @ViewChild('menu') menu: ElementRef;\n  constructor(private renderer: Renderer2, private changeDetectorRef: ChangeDetectorRef )  {\n\n  }\n\n  ngAfterContentInit() {\n    this.renderer.listen('window', 'click',(e:Event)=>{\n      if(this.showMenu !='' && !this.menu.nativeElement.contains(e.target)) {\n        this.hideMenuAction();\n      }\n    });\n  }\n\n\n  public toggleMenuAction($event, address: string): void {\n    $event.stopPropagation();\n    this.showMenu = this.showMenu === address ? '' : address;\n    this.changeDetectorRef.detectChanges();\n  }\n\n  public hideMenuAction(): void {\n    this.showMenu = '';\n    this.changeDetectorRef.detectChanges();\n  }\n\n public formatBalance(balance: WalletState['accounts']['0']['balance']): string {\n    if(balance) {\n      const [asset] = Object.keys(balance)\n      return `${\n        balance[asset].length > 7 ? balance[asset].slice(0, 7) : balance[asset]\n      } ${asset}`\n    }\n\n  }\n\n  public setPrimaryWallet(account: Account): void {\n    this.hideMenuAction();\n    setPrimaryWallet(this.wallet, account.address)\n  }\n  public async disconnect(event:Event): Promise<void> {\n    event.stopPropagation();\n    this.hideMenuAction();\n    await disconnect( {label: this.wallet.label });\n  }\n  public async copyWalletAddress(event:Event, account: Account): Promise<void> {\n    event.stopPropagation();\n    this.hideMenuAction();\n    await copyWalletAddress( account.address ? account.address: null);\n  }\n\n  public async selectAnotherAccount(wallet: WalletState): Promise<void> {\n    this.hideMenuAction();\n    try {\n      await selectAccounts(wallet.provider)\n    } catch (error) {\n      const { code } = error as { code: number }\n      if (\n        code === ProviderRpcErrorCode.UNSUPPORTED_METHOD ||\n        code === ProviderRpcErrorCode.DOES_NOT_EXIST\n      ) {\n        connectWallet$.next({\n          inProgress: false,\n          actionRequired: wallet.label\n        })\n      }\n    }\n  }\n\n  public shortenAddress(address: string): string | null {\n    return address ? shortenAddress(address) : null\n  }\n\n\n}\n\n\n","<ng-container *ngIf=\"wallet\">\n  <div *ngFor=\"let account of wallet.accounts; let i = index\">\n    <div class=\"relative\">\n      <div class=\"container\"  (click)=\"setPrimaryWallet(account)\" [class.primary]=\"primary && i === 0\">\n        <div class=\"container-item flex items-center relative\">\n          <!-- WALLET ICON -->\n          <web3-connect-badge [icon]=\"wallet.icon\"\n                              [size]=\"32\"\n                              [padding]=\"4\"\n                              [background]=\"'custom'\"\n                              [color]=\"'#EFF1FC'\"\n                              [customBackgroundColor]=\"primary && i === 0 ? 'rgba(24, 206, 102, 0.2)': 'rgba(235, 235, 237, 0.1)'\"\n                              [width]=\"'25px'\"\n                              [height]=\"'25px'\"\n                              [iconName]=\"wallet.label\"\n                              [border]=\"primary && i === 0 ? 'green' : 'gray'\"\n                              [radius]=\"8\"></web3-connect-badge>\n          <div class=\"status-icon drop-shadow absolute\" *ngIf=\"primary && i === 0\">\n            <web3-connect-svg [icon]=\"successIcon\" [width]=\"'10px'\" [height]=\"'16px'\" [iconName]=\"'successIcon'\"></web3-connect-svg>\n          </div>\n        </div>\n\n        <div class=\"account-details\">\n          <!-- ADDRESS / DOMAIN -->\n          <div class=\"address-domain\">\n            <ng-container *ngIf=\"shortenAddress(account.address)\">\n              {{shortenAddress(account.address)}}\n            </ng-container>\n          </div>\n          <!-- BALANCE -->\n          <ng-container *ngIf=\"account.balance\">\n            {{formatBalance(account.balance)}}\n          </ng-container>\n        </div>\n\n        <!-- ELLIPSIS -->\n        <div class=\"elipsis-container\" [class.active]= \"showMenu === account.address\">\n        <div class=\"elipsis pointer flex items-center justify-center relative\"\n              #toggleButton\n           (click)=\"toggleMenuAction($event, account.address)\">\n          <web3-connect-svg [icon]=\"elipsisIcon\" [width]=\"'25px'\" [height]=\"'25px'\" [iconName]=\"'elipsisIcon'\"></web3-connect-svg>\n        </div>\n        </div>\n      </div>\n      <ng-container *ngIf=\"showMenu === account.address\">\n        <ul #menu class=\"menu absolute\">\n<!--          <li (click)=\" selectAnotherAccount(wallet)\">-->\n<!--             {{translation.accountCenter.addAccount }}-->\n<!--          </li>-->\n          <li *ngIf=\"!(primary && i === 0)\" (click)=\" setPrimaryWallet(account)\">\n            {{translation.accountCenter.setPrimaryAccount }}\n          </li>\n          <li (click)=\"disconnect($event)\">\n            {{translation.accountCenter.disconnectWallet }}\n          </li>\n          <li (click)=\"copyWalletAddress($event, account)\">\n            {{translation.accountCenter.copyAddress }}\n          </li>\n        </ul>\n      </ng-container>\n    </div>\n  </div>\n</ng-container>\n","import {Directive, ElementRef, EventEmitter, HostListener, Output} from \"@angular/core\";\n\n@Directive({\n  selector: '[clickOutside]'\n})\nexport class ClickedOutsideDirective{\n\n  @Output()\n  clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\n\n  @HostListener('document:click', ['$event'])\n  onClick(event) {\n    if(!this.elemRef.nativeElement.contains(event.target)) {\n      // Cliecked Outside\n      this.clickOutside.emit(event);\n    }\n  }\n\n  constructor(private elemRef: ElementRef) {\n  }\n}\n","import type {\n  AppMetadata,\n  Device,\n  WalletInit,\n  EIP1193Provider,\n  WalletModule,\n  Chain,\n  TokenSymbol,\n  ChainWithDecimalId\n} from '../../common'\n\nimport type gas from '../../gas'\nimport type unstoppableResolution from'../../wallets/unstoppable-resolution'\n\nimport type { EthereumTransactionData, Network } from 'bnc-sdk'\n\nexport interface InitOptions {\n  /**\n   * Wallet modules to be initialized and added to wallet selection modal\n   */\n  wallets: WalletInit[]\n  /**\n   * The chains that your app works with\n   */\n  chains: (Chain | ChainWithDecimalId)[]\n  /**\n   * Additional metadata about your app to be displayed in the BeeWeb3Connect UI\n   */\n  appMetadata?: AppMetadata\n  /**\n   * Define custom copy for the 'en' locale\n   */\n  locale?: Locale\n  /**\n   * Customize the connect modal\n   */\n  connect?: ConnectModalOptions\n  /**\n   * Customize the account center UI\n   */\n  accountCenter?: AccountCenterOptions\n  /**\n   * Opt in to BEE value add services (transaction updates) by providing\n   */\n  apiKey?: string\n  /**\n   * Transaction notification options\n   */\n  notify?: Partial<NotifyOptions> | Partial<Notify>\n  /** Gas module */\n  gas?: typeof gas\n  /**\n   * Object mapping for W3C components with the key being the DOM\n   * element to mount the component to, this defines the DOM container\n   *  element for svelte to attach the component\n   */\n  containerElements?: Partial<ContainerElements>\n  /**\n   * Transaction Preview module\n   */\n  /**\n   * Custom or predefined theme for Web3BeeWeb3Connect\n   * BuiltInThemes: ['dark', 'light', 'system']\n   * or customize with a ThemingMap object.\n   */\n  theme?: Theme\n  /**\n   * Defaults to False - use to reduce load time\n   * If set to true the Inter font will not be imported and\n   * instead the default 'sans-serif' font will be used\n   * To define the font used see `--be-e-font-family` prop within\n   * the Theme initialization object or set as css variable\n   */\n  disableFontDownload?: boolean\n  unstoppableResolution?: typeof unstoppableResolution\n}\n\nexport type Theme = ThemingMap | BuiltInThemes | 'system'\n\nexport type BuiltInThemes = 'dark' | 'light'\n\nexport type Locale = 'en' |'ua'\n\nexport type ThemingMap = {\n  '--b-ee-background-color'?: string\n  '--b-ee-font-family'?: string\n  '--b-ee-foreground-color'?: string\n  '--b-ee-text-color'?: string\n  '--b-ee-border-color'?: string\n  '--b-ee-action-color'?: string\n  '--b-ee-border-radius'?: string\n}\nexport interface ConnectOptions {\n  autoSelect?: { label: string; disableModals: boolean }\n}\n\nexport interface ConnectOptionsString {\n  autoSelect?: string\n}\n\nexport interface DisconnectOptions {\n  label: string // wallet name to disconnect\n}\n\nexport interface WalletWithLoadedIcon extends Omit<WalletModule, 'getIcon'> {\n  icon: string\n}\n\nexport interface WalletWithLoadingIcon\n  extends Omit<WalletWithLoadedIcon, 'icon'> {\n  icon: Promise<string>\n}\n\nexport type ConnectedChain = {\n  id: Chain['id']\n  namespace: Chain['namespace']\n}\n\nexport interface ConnectWalletState {\n  autoSelect?: ConnectOptions['autoSelect']\n  actionRequired?: string\n  inProgress: boolean\n}\n\nexport interface WalletState {\n  label: string //  wallet name\n  icon: string // wallet icon svg string\n  provider: EIP1193Provider\n  accounts: Account[]\n  // in future it will be possible that a wallet\n  // is connected to multiple chains at once\n  chains: ConnectedChain[]\n  instance?: unknown\n}\n\nexport interface SecondaryTokenBalances {\n  name: TokenSymbol\n  balance: string\n  icon?: string\n}\n\nexport type Account = {\n  address: Address\n  ens?: Ens | null\n  uns?: Uns | null\n  balance: Balances | null\n  secondaryTokens?: SecondaryTokenBalances[] | null\n}\n\nexport type Balances = Record<TokenSymbol, string> | null\n\nexport interface Ens {\n  name: string\n  avatar: Avatar | null\n  contentHash: string | null\n  getText: (key: string) => Promise<string | undefined>\n}\n\nexport interface Uns {\n  name: string\n}\n\nexport type Avatar = {\n  url: string\n  linkage: Array<{ type: string; content: string }>\n}\n\nexport type Address = string\n\nexport interface AppState {\n  chains: Chain[]\n  walletModules: WalletModule[]\n  wallets: WalletState[]\n  accountCenter: AccountCenter\n  locale: string\n  notify: Notify\n  notifications: Notification[]\n  connect: ConnectModalOptions\n}\n\nexport type Configuration = {\n  device: Device | DeviceNotBrowser\n  initialWalletInit: WalletInit[]\n  appMetadata?: AppMetadata | null\n  apiKey?: string\n  gas?: typeof gas,\n  unstoppableResolution?: typeof unstoppableResolution\n}\n\nexport type ConnectModalOptions = {\n  /**\n   * If set to true, the most recently connected wallet will store in\n   * local storage. Then on init, BeeWeb3Connect will try to reconnect to\n   * that wallet with no modals displayed\n   */\n  autoConnectLastWallet?: boolean\n  /**\n   * If set to true, all previously connected wallets will store in\n   * local storage. Then on init, BeeWeb3Connect will try to reconnect to\n   * each wallet with no modals displayed\n   */\n  autoConnectAllPreviousWallet?: boolean\n  /**\n   * Customize the link for the `I don't have a wallet` flow shown on the\n   * select wallet modal.\n   * Defaults to `https://ethereum.org/en/wallets/find-wallet/#main-content`\n   */\n  iDontHaveAWalletLink?: string\n  /**\n   * Customize the link for the `Where's My Wallet` info pop up shown on the\n   * select wallet modal.\n   * Defaults to `https://www.blocknative.com/blog/\n   * metamask-wont-connect-web3-wallet-troubleshooting`\n   */\n  wheresMyWalletLink?: string\n  /**\n   * @deprecated Has no effect unless `@web3-BeeWeb3Connect/unstoppable-resolution`\n   * package has been added and passed into the web3-BeeWeb3Connect initialization\n   * In this case remove the `@web3-BeeWeb3Connect/unstoppable-resolution` package\n   * to remove unstoppableDomain resolution support\n   */\n  disableUDResolution?: boolean\n}\n\nexport type CommonPositions =\n  | 'topRight'\n  | 'bottomRight'\n  | 'bottomLeft'\n  | 'topLeft'\n\nexport type AccountCenterPosition = CommonPositions\n\nexport type NotificationPosition = CommonPositions\n\nexport type AccountCenter = {\n  enabled: boolean\n  position?: AccountCenterPosition\n  expanded?: boolean\n  showTokenList?: boolean\n}\n\nexport type AccountCenterOptions = {\n  desktop: Omit<AccountCenter, 'expanded'>\n  mobile?: Omit<AccountCenter, 'expanded'>\n}\n\nexport type ContainerElements = {\n  /** When attaching the Connect Modal to a container el be aware that\n   * the modal was styled to be mounted through the app to the html body\n   * and will respond to screen width rather than container width\n   * This is specifically apparent on mobile so please test thoroughly\n   * Also consider that other DOM elements(specifically Notifications and\n   * Account Center) will also append to this DOM el if enabled and their\n   * own containerEl are not defined\n   */\n  connectModal?: string\n  /** when using the accountCenter with a container el the accountCenter\n   * position properties are ignored\n   */\n  accountCenter?: string\n}\n\nexport type Notify = {\n  /**\n   * Defines whether whether to subscribe to transaction events or not\n   * default: true\n   */\n  enabled: boolean\n  /**\n   * Callback that receives all transaction events\n   * Return a custom notification based on the event\n   * Or return false to disable notification for this event\n   * Or return undefined for a default notification\n   */\n  transactionHandler: (\n    event: EthereumTransactionData\n  ) => TransactionHandlerReturn\n}\n\nexport type NotifyOptions = {\n  desktop: Notify\n  mobile: Notify\n}\n\nexport type Notification = {\n  id: string\n  key: string\n  network: Network\n  startTime?: number\n  /**\n   * to completely customize the message shown\n   */\n  message: string\n  /**\n   * handle codes in your own way - see codes here under the notify\n   * prop default en file at ./packages/core/src/i18n/en.json\n   */\n  eventCode: string\n  /**\n   * icon type displayed (see `NotificationType` below for options)\n   */\n  type: NotificationType\n  /**\n   * time (in ms) after which the notification will be dismissed. If set\n   * to `0` the notification will remain on screen until the user dismisses the\n   * notification, refreshes the page or navigates away from the site\n   * with the notifications\n   */\n  autoDismiss: number\n  /**\n   * add link to the transaction hash. For instance, a link to the\n   * transaction on etherscan\n   */\n  link?: string\n  /**\n   * onClick handler for when user clicks the notification element\n   */\n  onClick?: (event: Event) => void\n}\n\nexport type TransactionHandlerReturn = CustomNotification | boolean | void\n\nexport type CustomNotification = Partial<\n  Omit<Notification, 'startTime' | 'network' | 'id' | 'key'>\n>\n\nexport type CustomNotificationUpdate = Partial<\n  Omit<Notification, 'startTime' | 'network'>\n>\n\nexport type NotificationType = 'pending' | 'success' | 'error' | 'hint'\n\nexport interface UpdateNotification {\n  (notificationObject: CustomNotification): {\n    dismiss: () => void\n    update: UpdateNotification\n  }\n}\n\nexport interface PreflightNotificationsOptions {\n  sendTransaction?: () => Promise<string | void>\n  estimateGas?: () => Promise<string>\n  gasPrice?: () => Promise<string>\n  balance?: string | number\n  txDetails?: TxDetails\n  txApproveReminderTimeout?: number\n}\n\nexport interface TxDetails {\n  value: string | number\n  to?: string\n  from?: string\n}\n\n// ==== ACTIONS ==== //\nexport type Action =\n  | AddChainsAction\n  | UpdateChainsAction\n  | AddWalletAction\n  | UpdateWalletAction\n  | RemoveWalletAction\n  | ResetStoreAction\n  | UpdateAccountAction\n  | UpdateAccountCenterAction\n  | SetWalletModulesAction\n  | SetLocaleAction\n  | UpdateNotifyAction\n  | AddNotificationAction\n  | RemoveNotificationAction\n  | UpdateAllWalletsAction\n  | UpdateConnectModalAction\n\nexport type AddChainsAction = { type: 'add_chains'; payload: Chain[] }\nexport type UpdateChainsAction = { type: 'update_chains'; payload: Chain }\nexport type AddWalletAction = { type: 'add_wallet'; payload: WalletState }\n\nexport type UpdateWalletAction = {\n  type: 'update_wallet'\n  payload: { id: string } & Partial<WalletState>\n}\n\nexport type RemoveWalletAction = {\n  type: 'remove_wallet'\n  payload: { id: string }\n}\n\nexport type ResetStoreAction = {\n  type: 'reset_store'\n  payload: unknown\n}\n\nexport type UpdateAccountAction = {\n  type: 'update_account'\n  payload: { id: string; address: string } & Partial<Account>\n}\n\nexport type UpdateAccountCenterAction = {\n  type: 'update_account_center'\n  payload: AccountCenter | Partial<AccountCenter>\n}\n\nexport type UpdateConnectModalAction = {\n  type: 'update_connect_modal'\n  payload: Partial<ConnectModalOptions>\n}\n\nexport type SetWalletModulesAction = {\n  type: 'set_wallet_modules'\n  payload: WalletModule[]\n}\n\nexport type SetLocaleAction = {\n  type: 'set_locale'\n  payload: string\n}\n\nexport type UpdateNotifyAction = {\n  type: 'update_notify'\n  payload: Partial<Notify>\n}\n\nexport type AddNotificationAction = {\n  type: 'add_notification'\n  payload: Notification\n}\n\nexport type RemoveNotificationAction = {\n  type: 'remove_notification'\n  payload: Notification['id']\n}\n\nexport type UpdateAllWalletsAction = {\n  type: 'update_balance'\n  payload: WalletState[]\n}\n\n// ==== MISC ==== //\nexport type ChainStyle = {\n  icon: string\n  color: string\n}\n\nexport type NotifyEventStyles = {\n  backgroundColor: string\n  borderColor: string\n  eventIcon: string\n  iconColor?: string\n}\n\nexport type DeviceNotBrowser = {\n  type: null\n  os: null\n  browser: null\n}\n\nexport type WalletPermission = {\n  id: string\n  parentCapability: string\n  invoker: string\n  caveats: {\n    type: string\n    value: string[]\n  }[]\n\n  date: number\n}\n\n\n// Balances Models\n\nexport class SettingsModel {\n  public balancesContract: string;\n  public bscRpc: string;\n  public defaultConfig:  NetworkModel[];\n  public digitsPrice: string;\n  public enableTotalByAllTokens: string;\n  public ethRpc: string;\n  public polygonRpc: string;\n  constructor(value: SettingsModel) {\n    Object.assign(this, value);\n    if (value != null) {\n      this.defaultConfig = value.defaultConfig.map((item) => new NetworkModel(item));\n    }\n  }\n}\nexport class TokenModel {\n  public address: string;\n  public balance: string;\n  public decimals:number;\n  public isActive:boolean;\n  public name: string;\n  public price: string;\n  public rateToUSD:number;\n  public symbol: string;\n  constructor(value: TokenModel) {\n    Object.assign(this, value);\n  }\n}\nexport class NetworkModel {\n  public balancesContract: string;\n  public chainId: string;\n  public name: string;\n  public rpc: string;\n  public scanUrl: string;\n  public tokens: {\n    excluded: TokenModel[];\n    included: TokenModel[];\n  };\n  public totalBalance: string;\n  constructor(value: NetworkModel) {\n    Object.assign(this, value);\n    if (value != null && value.tokens.included) {\n      this.tokens.included = value.tokens.included.map((item) => new TokenModel(item));\n    }\n    if (value != null && value.tokens.excluded) {\n      this.tokens.excluded = value.tokens.excluded.map((item) => new TokenModel(item));\n    }\n  }\n}\nexport class WalletBalancesModel {\n  public data: NetworkModel[];\n  public totalBalance: string;\n  public wallet: string;\n\n  constructor(value: WalletBalancesModel) {\n    Object.assign(this, value);\n    if (value != null) {\n      this.data = value.data.map((item) => new NetworkModel(item));\n    }\n  }\n}\n","export default class TimeoutCache {\n    timeout;\n    time\n    data\n\n    constructor(timeout) {\n        this.timeout = timeout;\n        this.time = new Map()\n        this.data = new Map()\n    }\n\n   public set(key, value): void{\n        this.time.set(key, Date.now() + this.timeout)\n        this.data.set(key, value)\n    }\n\n   public get(key): any{\n        if(this.data.has(key) && this.time.get(key) > Date.now() ){\n            return this.data.get(key)\n        }\n        return undefined;\n    }\n}\n","import Web3 from \"web3\";\n\nexport default function balances(rpc, contractAddress, wallet, tokens) {\n   const web3 = new Web3(rpc);\n    const contract = new web3.eth.Contract([{\"constant\":true,\"inputs\":[{\"name\":\"user\",\"type\":\"address\"},{\"name\":\"token\",\"type\":\"address\"}],\"name\":\"tokenBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"users\",\"type\":\"address[]\"},{\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"balances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"}], contractAddress);\n    return contract.methods.balances([wallet], tokens).call();\n}\n\n","import { Injectable } from \"@angular/core\";\nimport {SettingsModel, TokenModel, WalletBalancesModel} from \"../../types\";\nimport {\n  buildHash,\n  fetchAsync,\n  formatWei,\n  getLocalStore,\n  getPriceByRate,\n  numberToCurrency,\n  setLocalStore\n} from \"../../utils\";\nimport TimeoutCache from \"../../timeout-cache\";\nimport {\n  DEFAULT_CACHE_TIMEOUT,\n  DEFAULT_SETTING_LIST,\n  NETWORK_LIST,\n  STORAGE_KEYS,\n  TOGGLE_LIST,\n  TOKENS_PRICE_RATE_URL\n} from \"../../constants\";\nimport balances from \"../../balances-contract\";\n\n@Injectable()\nexport class TokenListService {\n    public cache: any;\n    constructor() {\n      this.setSettings();\n      this.cache = new TimeoutCache(DEFAULT_CACHE_TIMEOUT);\n    }\n\n  public setSettings(): void {\n    if (!this.settings) {\n      setLocalStore(STORAGE_KEYS.BALANCES_SETTING,  JSON.stringify(DEFAULT_SETTING_LIST));\n    }\n  }\n\n  public updateSettings(key:string, value: any): void {\n    if (this.settings) {\n      const settings = this.settings;\n      settings[key] = value;\n      setLocalStore(STORAGE_KEYS.BALANCES_SETTING,  JSON.stringify(settings));\n    }\n  }\n\n  public get settings(): SettingsModel  {\n    return JSON.parse(getLocalStore(STORAGE_KEYS.BALANCES_SETTING));\n  }\n\n   public currencySymbols(data): Array<string> {\n        const currencySymbols = []\n        for (const network of data) {\n            network.tokens.included.forEach(token => {\n                if(!currencySymbols.includes(token.symbol)){\n                    currencySymbols.push(token.symbol);\n                }\n            })\n        }\n        return currencySymbols;\n    }\n\n   public buildTokenInfo(token, balance, priceRate, setting) {\n        return new TokenModel({\n            address: token.address,\n            balance: formatWei(balance, token.decimals, Number(setting.digitsPrice)),\n            price: getPriceByRate(formatWei(balance, token.decimals, Number(setting.digitsPrice)), priceRate),\n            rateToUSD: priceRate,\n            name: token.name,\n            symbol: token.symbol,\n            decimals: token.decimals,\n            isActive: token.isActive,\n        })\n    }\n\n   public networkTotalBalances(walletData, setting) {\n        const totalBalance = [];\n        const ethereumMainnetBalance = [];\n        const binanceSmartChainBalance = [];\n        const polygonBalance = [];\n     if(walletData) {\n       walletData.map( network => {\n         const tokens = [...network.tokens.included, ...network.tokens.excluded]\n         tokens.map(item => {\n           if( (setting.enableTotalByAllTokens === TOGGLE_LIST.Off && network.tokens.included.includes(item)) || setting.enableTotalByAllTokens === TOGGLE_LIST.On) {\n             const price = item.price ? Number(item.price.toString().replace(/[^0-9.-]+/g, \"\")): 0;\n             totalBalance.push(price)\n             switch (network.name) {\n               case NETWORK_LIST.MAINNET : {\n                 ethereumMainnetBalance.push(price)\n                 break;\n               }\n               case NETWORK_LIST.BSC : {\n                 binanceSmartChainBalance.push(price)\n                 break;\n               }\n               case NETWORK_LIST.POLYGON : {\n                 polygonBalance.push(price)\n                 break;\n               }\n             }\n           }\n         });\n       });\n     }\n\n        return {\n            totalBalance: numberToCurrency(totalBalance.reduce((partialSum, a) => partialSum + a, 0)),\n            [NETWORK_LIST.MAINNET]: numberToCurrency(ethereumMainnetBalance.reduce((partialSum, a) => partialSum + a, 0)),\n            [NETWORK_LIST.BSC]: numberToCurrency(binanceSmartChainBalance.reduce((partialSum, a) => partialSum + a, 0)),\n            [NETWORK_LIST.POLYGON]: numberToCurrency(polygonBalance.reduce((partialSum, a) => partialSum + a, 0)),\n        };\n\n\n    }\n\n   public async getWalletBalancesAndRate(chainId: string, address: string): Promise<WalletBalancesModel> {\n     const setting: SettingsModel = this.settings;\n     if(setting && setting.defaultConfig.filter((item => item.chainId === chainId )).length > 0) {\n       let updateData = setting.defaultConfig;\n       const currencySymbols = this.currencySymbols(updateData);\n       let rateList;\n       try{\n         const rateUrl = TOKENS_PRICE_RATE_URL + Object.values(currencySymbols).toString();\n         rateList = await this._interactWithCacheAndApi(rateUrl);\n       } catch(e) {\n         console.log(e);\n       }\n       for (const network of updateData) {\n\n         const tokens = [...network.tokens.included, ...network.tokens.excluded];\n         if (network.chainId === chainId && tokens.length) {\n           try {\n             const includedTokensAddress = network.tokens.included.map(t => t.address);\n             let includedBalancesAmount = await this._interactWithCacheAndContract(network.rpc, network.balancesContract, address, includedTokensAddress);\n             network.tokens.included = network.tokens.included.map(( token, index) => {\n               return this.buildTokenInfo( token, includedBalancesAmount[index], rateList[token.symbol], setting);\n             })\n             if(setting.enableTotalByAllTokens === TOGGLE_LIST.On) {\n               let excludedTokensAddress = network.tokens.excluded.map(t => t.address);\n               let excludedBalancesAmount = await this._interactWithCacheAndContract(network.rpc, network.balancesContract, address, excludedTokensAddress);\n               network.tokens.excluded =  network.tokens.excluded.map(( token, index) => {\n                 return this.buildTokenInfo( token, excludedBalancesAmount[index], rateList[token.symbol], setting);\n               })\n             }\n           }\n           catch(e) {\n             console.log(e);\n           }\n         }\n       }\n       const networksBalance = this.networkTotalBalances(updateData, setting);\n       for (const network of updateData) {\n         network.totalBalance = networksBalance[network.name]\n       }\n       return new WalletBalancesModel({wallet: address, data: updateData, totalBalance: networksBalance.totalBalance});\n     } else {\n       return null;\n     }}\n\n   public async _interactWithCacheAndContract(rpc, balancesContract, wallet, tokensAddress) {\n        const hash = buildHash(rpc, balancesContract, wallet, tokensAddress)\n        const cache = this.cache.get(hash)\n        if(cache){\n            return cache;\n        } else {\n            // TODO: Should do all query parallel for speed up show panel\n            const walletsBalances = await balances(rpc, balancesContract, wallet, tokensAddress);\n            this.cache.set(hash, walletsBalances);\n            return walletsBalances;\n        }\n    }\n\n    async _interactWithCacheAndApi(url) {\n        const hash = buildHash(url)\n        const cache = this.cache.get(hash)\n        if(cache) {\n            return cache;\n        } else {\n            // TODO: Should do all query parallel for speed up show panel\n            const response = await fetchAsync(url);\n            this.cache.set(hash, response);\n            return response;\n        }\n\n    }\n}\n\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {CdkDragDrop, moveItemInArray} from \"@angular/cdk/drag-drop\";\nimport {TokenListService} from \"./token-list.service\";\nimport {Account, ConnectedChain, SettingsModel, TokenModel, WalletBalancesModel, WalletState} from \"../../types\";\nimport {CRYPTO_CURRENCY_ICONS_URL} from \"../../constants\";\nimport {wallets$} from \"../../streams\";\nimport {takeUntil} from \"rxjs/operators\";\nimport {Destroyable} from \"../../destroyable.base\";\nimport {chainIdToLabel} from \"../../utils\";\nimport {getTranslations, Translation} from \"../../locales\";\nimport {Observable} from \"rxjs\";\n\n@Component({\n  selector: 'token-list',\n  templateUrl: './token-list.component.html',\n  styleUrls: ['./token-list.component.scss'],\n  providers: [TokenListService]\n})\nexport class TokenListComponent extends Destroyable implements OnInit {\n  @Input() public isSettings: boolean = false;\n  @Input() public changeSettingsEvents: Observable<void>;\n\n  public wallets: WalletState[];\n  protected readonly translation: Translation = getTranslations();\n  protected readonly chainIdToLabel: Record<string, string> = chainIdToLabel;\n  public tokenLoaderList: Array<number>\n  public walletBalancesAndRate: WalletBalancesModel | null;\n  public isLoading: boolean = false;\n  constructor(  private tokenListService: TokenListService, private changeDetectorRef: ChangeDetectorRef) {\n    super()\n  }\n\n  ngOnInit(): void {\n   this.changeSettingsEvents.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n     if(this.walletBalancesAndRate?.data){\n       this.tokenListService.updateSettings('defaultConfig', this.walletBalancesAndRate.data);\n       this.getTokenLostBalances();\n     }\n   });\n    wallets$.pipe(takeUntil(this.unsubscribe$)).subscribe((wallets:WalletState[]) => {\n      this.wallets = wallets;\n      this.getTokenLostBalances();\n      this.changeDetectorRef.detectChanges();\n    })\n     this.tokenLoaderList = new Array(this.settings ? this.settings.defaultConfig[this.indexByCurrentNetwork]?.tokens.included.length : 3);\n  }\n\n  public get settings(): SettingsModel | null  {\n    return this.tokenListService.settings\n  }\n\n  public get indexByCurrentNetwork(): number | null  {\n   return this.settings.defaultConfig.findIndex(x => x.chainId === this.primaryChain.id);\n  }\n\n  public get primaryWallet(): WalletState | null  {\n    return this.wallets ? this.wallets[0] : null;\n  }\n\n  public get primaryChain() : ConnectedChain | null  {\n    return this.primaryWallet && this.primaryWallet.chains[0]\n  }\n\n  public get primaryAccount(): Account | null {\n    return this.primaryWallet ? this.primaryWallet.accounts[0] : null;\n  }\n\n  public get primaryAccountAddress(): string | null {\n    return this.primaryAccount ? this.primaryAccount.address: null;\n  }\n\n\n  private getTokenLostBalances(): void {\n    if(this.primaryChain &&  this.primaryAccount) {\n      this.isLoading = true;\n      this.tokenListService.getWalletBalancesAndRate(this.primaryChain.id, this.primaryAccountAddress).then((result: WalletBalancesModel) => {\n        this.walletBalancesAndRate = result;\n        this.isLoading = false;\n        this.changeDetectorRef.detectChanges();\n      });\n    }\n  }\n\n  public getUrlTokenIcon(token): string {\n    if(token.symbol){\n      const symbol = token.symbol.toLowerCase();\n      return `${CRYPTO_CURRENCY_ICONS_URL}${symbol}.svg`;\n    }\n  }\n\n  public filteredTokenByPrice(array, sortBy): Array<TokenModel> {\n    if(sortBy) {\n      const filtered = [...array].sort(function (a, b) {\n        const prev = a.price ? Number(a.price.replace(/[^0-9.-]+/g,\"\")) : 0;\n        const next = b.price ? Number(b.price.replace(/[^0-9.-]+/g,\"\")) : 0;\n        return prev - next;\n      });\n      return filtered.reverse();\n    } else {\n      return array;\n    }}\n\n  public moveToken(networkIndex, event: CdkDragDrop<Array<TokenModel>>): void {\n    moveItemInArray(this.walletBalancesAndRate.data[networkIndex].tokens.included, event.previousIndex, event.currentIndex);\n  }\n  public addToken(token, networkIndex, tokenIndex): void{\n    this.walletBalancesAndRate.data[networkIndex].tokens.excluded.splice(tokenIndex, 1);\n    this.walletBalancesAndRate.data[networkIndex].tokens.included.push(token);\n  };\n  public removeToken(token,  networkIndex, tokenIndex): void {\n    this.walletBalancesAndRate.data[networkIndex].tokens.included.splice(tokenIndex, 1);\n    this.walletBalancesAndRate.data[networkIndex].tokens.excluded.unshift(token);\n  };\n}\n","<ng-container  *ngIf=\"!isLoading && walletBalancesAndRate\">\n  <div class=\"network-container-box\">\n    <ng-container *ngIf=\"!isSettings\">\n      <div class=\"token-list-label\">\n        {{chainIdToLabel[primaryChain.id]}}: {{translation.accountCenter.tokenListTitle}}: {{walletBalancesAndRate.totalBalance}}$\n      </div>\n      <div class=\"network-container\" *ngFor=\"let network of walletBalancesAndRate.data\">\n        <ng-container *ngIf=\"network.chainId === primaryChain.id && network.tokens.included.length > 0\">\n          <div class=\"network-container__tokens-container\">\n            <div class=\"token-container\" *ngFor=\"let token of filteredTokenByPrice(network.tokens.included, false)\">\n              <div class=\"token-container-left\">\n                <img [src]=\"getUrlTokenIcon(token)\" [alt]=\"token.symbol\" class=\"token-container-logo\"/>\n                <div>\n                  <div class=\"token-container__name\">{{token.name}}</div>\n                  <div>{{token.symbol}}</div>\n                </div>\n              </div>\n              <div class=\"token-container-balance\">\n                <div class=\"token-container-balance-title\" *ngIf=\"token.price\">{{token.price}}$</div>\n                <div class=\"token-container-balance-title\" *ngIf=\"!token.price\">-</div>\n                <div class=\"token-container-balance-amount\">{{ token.balance}} <span>{{ token.symbol}}</span></div>\n              </div>\n            </div>\n          </div>\n        </ng-container>\n      </div>\n    </ng-container>\n\n    <ng-container *ngIf=\"isSettings\">\n      <div class=\"network-container\" *ngFor=\"let network of walletBalancesAndRate.data; let networkIndex = index\">\n        <ng-container *ngIf=\"network.chainId === primaryChain.id\">\n          <div class=\"network-container__tokens-container\">\n            <div class=\"network-container__tokens-container-title\"  *ngIf=\"network.chainId === primaryChain.id && network.tokens.included.length > 0\">{{translation.accountCenter.tokenListIncluded}}</div>\n            <div class=\"network-container__tokens-container\" cdkDropList  (cdkDropListDropped)=\"moveToken(networkIndex, $event)\">\n              <div class=\"token-container\" *ngFor=\"let token of network.tokens.included; let tokenIndex = index\" cdkDrag>\n                <div class=\"token-container-left\">\n                  <div class=\"edit-event-icon icon-color-minus\"  (click)=\"removeToken(token, networkIndex, tokenIndex)\">\n                    <div>&#8722;</div>\n                  </div>\n                  <img [src]=\"getUrlTokenIcon(token)\"  [alt]=\"token.symbol\" class=\"token-container-logo\"/>\n                  <div class=\"token-container__name-box\">\n                    <div class=\"token-container__name\">{{token.name}}</div>\n                    <div class=\"token-container__amount\">{{token.symbol}}</div>\n                  </div>\n                </div>\n                <div class=\"drag-drop-icon\" *ngIf=\"network.tokens.included.length > 1 \" cdkDragHandle>\n                  <div>&#9776;</div>\n                </div>\n              </div>\n            </div>\n          </div>\n          <div class=\"network-container__tokens-container\">\n            <div class=\"network-container__tokens-container-title\" *ngIf=\"network.chainId === primaryChain.id && network.tokens.excluded.length > 0\">{{translation.accountCenter.tokenListMore}}</div>\n            <div class=\"network-container__tokens-container\">\n              <div class=\"token-container\"  *ngFor=\"let token of network.tokens.excluded; let tokenIndex = index\">\n                <div class=\"token-container-left\">\n                  <div class=\"edit-event-icon icon-color-plus\" (click)=\"addToken(token, networkIndex, tokenIndex)\">\n                    &#43;\n                  </div>\n                  <img [src]=\"getUrlTokenIcon(token)\"  [alt]=\"token.symbol\" class=\"token-container-logo\"/>\n                  <div class=\"token-container__name-box\">\n                    <div class=\"token-container__name\">{{token.name}}</div>\n                    <div class=\"token-container__amount\">{{token.symbol}}</div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </ng-container>\n      </div>\n    </ng-container>\n  </div>\n</ng-container>\n<ng-container  *ngIf=\"!isLoading && !walletBalancesAndRate\">\n  <h4 class=\"no-data-label\">\n    {{translation.accountCenter.tokenListNoData}}\n    <a href=\"https://b-ee.io\" target=\"_blank\">{{translation.accountCenter.contactUs}}</a>\n  </h4>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n  <div *ngFor=\"let item of tokenLoaderList\" class=\"token-loader-list-item loading-placeholder\"></div>\n</ng-container>\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport { configuration } from '../../../configuration';\nimport {state} from \"../../../store\";\nimport { wallets$ } from '../../../streams';\nimport {Account, AccountCenter, AppState, ChainStyle, Configuration, ConnectedChain, WalletState} from \"../../../types\";\nimport {Observable, startWith, Subject} from \"rxjs\";\nimport disconnect from \"../../../disconnect\";\nimport connect from '../../../connect';\nimport {\n  poweredByBee,\n  plusCircleIcon,\n  arrowForwardIcon,\n  successIcon,\n  warningIcon,\n  questionIcon\n} from \"../../../icons\";\nimport {updateAccountCenter} from \"../../../store/actions\";\nimport {shareReplay, takeUntil} from \"rxjs/operators\";\nimport {getDefaultChainStyles, shortenAddress, unrecognizedChainStyle} from \"../../../utils\";\nimport {Chain} from \"../../../../../common\";\nimport {getTranslations, Translation} from \"../../../locales\";\nimport {Destroyable} from \"../../../destroyable.base\";\n@Component({\n  selector: 'account-center-max',\n  templateUrl: './account-center-max.component.html',\n  styleUrls: ['./account-center-max.component.scss'],\n})\n\nexport class AccountCenterMaxComponent extends Destroyable implements OnInit {\n\n  public wallets: WalletState[];\n  public isAccountCenterMax: boolean = false;\n  public isSettings: boolean = false;\n  protected chains: Chain[] = state.get().chains;\n  protected readonly questionIcon: string = questionIcon;\n  protected readonly translation: Translation = getTranslations();\n  protected readonly state: AppState = state.get();\n  protected readonly configuration: Configuration = configuration;\n  protected readonly unrecognizedChainStyle: {icon: string, color: string} = unrecognizedChainStyle;\n  protected readonly poweredByBee: string = poweredByBee;\n  protected readonly plusCircleIcon: string = plusCircleIcon;\n  protected readonly arrowForwardIcon: string = arrowForwardIcon;\n  protected readonly successIcon: string = successIcon;\n  protected readonly warningIcon: string = warningIcon;\n  public changeSettingsEventsSubject: Subject<void> = new Subject<void>();\n  protected readonly accountCenter$:Observable<AccountCenter> = state\n    .select('accountCenter')\n    .pipe(startWith(state.get().accountCenter), shareReplay(1))\n  constructor(public changeDetectorRef: ChangeDetectorRef)  {\n    super()\n  }\n\n  ngOnInit() {\n    wallets$.pipe(takeUntil(this.unsubscribe$)).subscribe((wallets: WalletState[]) => {\n      this.wallets = wallets;\n      this.changeDetectorRef.detectChanges();\n    })\n    this.accountCenter$.pipe(takeUntil(this.unsubscribe$)).subscribe((accountCenter: AccountCenter) => {\n      setTimeout(() => {\n        this.isAccountCenterMax = accountCenter.expanded});\n    })\n  }\n\n  public disconnectAllWallets(): void {\n    this.wallets.forEach(({ label }) => disconnect({ label }))\n  }\n  public async connect():Promise<WalletState[]> {\n    return connect();\n  }\n\n\n  public close(event?:any): void {\n    if(event && event.target.id ==='save-btn') {\n      this.isSettings = false;\n      this.changeSettingsEventsSubject.next();\n    } else {\n      if(this.isAccountCenterMax && !this.isSettings){\n        this.isAccountCenterMax = false;\n        setTimeout(() => {\n          updateAccountCenter({ expanded: false })\n        },200);\n      }\n    }\n  }\n\n\n  public get primaryChain() : ConnectedChain | null  {\n    return this.wallets[0] && this.wallets[0].chains[0]\n  }\n  public get defaultChainStyles():ChainStyle {\n    return getDefaultChainStyles(this.primaryChain && this.primaryChain.id)\n  }\n\n\n  public get validAppChain(): Chain {\n    return this.chains.find(({ id, namespace }) =>\n      this.primaryChain ? id ===  this.primaryChain.id && namespace ===  this.primaryChain.namespace : false);\n  }\n\n\n  public get primaryWallet(): WalletState | null  {\n    return this.wallets ? this.wallets[0] : null;\n  }\n  public get firstAccount(): Account | null {\n    return this.primaryWallet ? this.primaryWallet.accounts[0] : null;\n  }\n\n\n  public get shortenedFirstAddress(): string {\n    return this.firstAccount ? shortenAddress(this.firstAccount.address): '';\n  }\n  public get firstAddressAsset(): string {\n    return this.firstAccount && this.firstAccount.balance\n      ? Object.keys(this.firstAccount.balance)[0]\n      : '';\n  }\n  public get firstAddressBalance(): string | null {\n    return this.firstAccount && this.firstAccount.balance\n      ? this.firstAccount.balance[this.firstAddressAsset]\n      : null\n  }\n\n  public toggleSettings(event): void {\n    event.stopPropagation();\n    this.isSettings = !this.isSettings;\n    if(!this.isSettings) {\n      this.changeSettingsEventsSubject.next();\n    }\n  }\n\n\n}\n\n\n","<nav (clickOutside)=\"close($event)\" class=\"web3-connect-menu\" [ngClass]=\"[isAccountCenterMax ? (accountCenter$ | async).position +'-active': '', (accountCenter$ | async).position ]\">\n  <div class=\"web3-connect-menu-box\" *ngIf=\"wallets.length\">\n    <div class=\"outer-container\" >\n      <!-- wallets section -->\n      <div class=\"wallets-section\">\n        <div class=\"wallets-section-top\">\n          <!-- connected accounts -->\n          <div class=\"wallets\" *ngFor=\"let wallet of wallets; let i = index\">\n            <account-center-wallet [wallet]=\"wallet\"  [primary]=\"i === 0\"></account-center-wallet>\n          </div>\n          <!-- actions -->\n          <div class=\"actions flex flex-column items-start\">\n            <!-- connect another wallet -->\n            <div (click)=\"connect()\"  class=\"action-container flex items-center pointer\">\n              <div class=\"plus-icon flex items-center justify-center\">\n                <web3-connect-svg [icon]=\"plusCircleIcon\" [width]=\"'20px'\" [height]=\"'20px'\" [iconName]=\"'plusCircleIcon'\"></web3-connect-svg>\n              </div>\n              <span class=\"action-text\">\n                {{translation.accountCenter.connectAnotherWallet}}\n              </span>\n            </div>\n\n            <div (click)=\"disconnectAllWallets()\"  class=\"action-container flex items-center pointer\">\n              <div class=\"plus-icon flex items-center justify-center\">\n                <web3-connect-svg [icon]=\"arrowForwardIcon\" [width]=\"'20px'\" [height]=\"'20px'\" [iconName]=\"'arrowForwardIcon'\"></web3-connect-svg>\n              </div>\n              <span class=\"action-text\">\n                 {{translation.accountCenter.disconnectAllWallets}}\n               </span>\n            </div>\n          </div>\n\n          <!-- network section -->\n          <div\n            class=\"network-container\"\n            [class.background-blue]=\"validAppChain && validAppChain.icon || defaultChainStyles\"\n            [class.background-yellow]=\"!validAppChain\"\n            [class.background-gray]=\"validAppChain  && !defaultChainStyles\">\n            <div class=\"flex items-center p5-5\">\n              <!-- network icon -->\n              <div class=\"relative flex\">\n                <web3-connect-badge [icon]=\"validAppChain\n                                    ? validAppChain.icon || (defaultChainStyles && defaultChainStyles.icon) || unrecognizedChainStyle.icon\n                                    : warningIcon\"\n                                    [size]=\"32\"\n                                    [padding]=\"4\"\n                                    [background]=\"'custom'\"\n                                    [color]=\"!validAppChain? '#FFAF00': !validAppChain.icon ? '#EFF1FC' : undefined\"\n                                    [customBackgroundColor]=\"validAppChain\n                                    ? validAppChain.color || (defaultChainStyles && defaultChainStyles.color) || unrecognizedChainStyle.color\n                                    : '#FFE7B3'\"\n                                    [border]=\"'transparent'\"\n                                    [radius]=\"8\"\n                                    [width]=\"'25px'\"\n                                    [height]=\"'25px'\"\n                                    [iconName]=\"validAppChain.id\"\n                ></web3-connect-badge>\n                <div *ngIf=\"validAppChain\" class=\"status-icon drop-shadow absolute\">\n                  <web3-connect-svg [icon]=\"successIcon\" [width]=\"'10px'\" [height]=\"'16px'\" [iconName]=\"'successIcon'\"></web3-connect-svg>\n                </div>\n              </div>\n              <!-- network selector -->\n              <div class=\"network-selector-container\">\n                <div>\n                  <div class=\"network-selector-label\">{{translation.accountCenter.currentNetwork}}</div>\n                  <div class=\"flex items-center\" style=\" width: 100%;\">\n                    <web3-connect-network-select [color]=\"'var(--text-color)'\" [wallet]=\"primaryWallet\" [chains]=\"chains\"></web3-connect-network-select>\n                  </div>\n                </div>\n\n                <ng-container *ngIf=\"(accountCenter$ | async).showTokenList\">\n                  <div id=\"settings-button\" class=\"settings-button\" (click)=\"toggleSettings($event)\" >\n                    <svg *ngIf=\"isSettings\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" data-testid=\"wallet-back\" class=\"sc-1xe6nb0-2 ewaNd\"><line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"></line><polyline points=\"12 19 5 12 12 5\"></polyline></svg>\n                    <svg *ngIf=\"!isSettings\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3\"></circle><path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"></path></svg>\n                  </div>\n                </ng-container>\n              </div>\n            </div>\n          </div>\n        </div>\n\n        <!-- token list section -->\n        <ng-container *ngIf=\"(accountCenter$ | async).showTokenList\">\n          <token-list [isSettings]=\"isSettings\" [changeSettingsEvents]=\"changeSettingsEventsSubject.asObservable()\"></token-list>\n        </ng-container>\n\n        <div class=\"wallets-section-bottom\">\n          <!-- app info section -->\n          <div class=\"app-info-container\">\n            <div class=\"flex items-start\">\n              <!-- app icon -->\n              <div class=\"relative flex\">\n                <web3-connect-badge [icon]=\"(configuration.appMetadata && configuration.appMetadata.icon) || questionIcon\"\n                                    [size]=\"32\"\n                                    [padding]=\"4\"\n                                    [background]=\"'white'\"\n                                    [border]=\"'border'\"\n                                    [radius]=\"8\"\n                                    [width]=\"'25px'\"\n                                    [height]=\"'25px'\"\n                                    [iconName]=\"'appMetadataIcon'\"\n                ></web3-connect-badge>\n              </div>\n              <div class=\"ml4\">\n                <div class=\"app-name\">\n                  {{(configuration.appMetadata && configuration.appMetadata.name) || 'App Name'}}\n                </div>\n                <div class=\"app-description\">\n                  {{(configuration.appMetadata && configuration.appMetadata.description) || 'This app has not added a description.'}}\n                </div>\n              </div>\n            </div>\n            <!-- app info -->\n            <ng-container *ngIf=\"configuration.appMetadata && (configuration.appMetadata.gettingStartedGuide || configuration.appMetadata.explore)\">\n              <div class=\"app-info\">\n                <h4 class=\"app-info-heading\">\n                  {{translation.accountCenter.appInfo }}\n\n                </h4>\n\n                <ng-container *ngIf=\"configuration.appMetadata.gettingStartedGuide\">\n                  <div class=\"flex justify-between items-center mt7\">\n                    <div>{{translation.accountCenter.learnMore}}</div>\n                    <a [href]=\"configuration.appMetadata.gettingStartedGuide\"\n                       target=\"_blank\"\n                       rel=\"noreferrer noopener\">\n                      {{translation.accountCenter.gettingStartedGuide}}\n                    </a>\n                  </div>\n                </ng-container>\n                <ng-container *ngIf=\"configuration.appMetadata.explore\">\n                  <div class=\"flex justify-between items-center mt7\">\n                    <div>{{translation.accountCenter.smartContracts}}</div>\n                    <a [href]=\"configuration.appMetadata.explore\"\n                       target=\"_blank\"\n                       rel=\"noreferrer noopener\">\n                      {{translation.accountCenter.explore}}\n                    </a>\n                  </div>\n                </ng-container>\n              </div>\n            </ng-container>\n            <button\n              id=\"save-btn\"\n              class=\"app-button button-neutral-solid\" *ngIf=\"isSettings\" (click)=\"toggleSettings($event)\">\n              {{translation.accountCenter.save}}\n            </button>\n            <button\n              class=\"app-button button-neutral-solid\" *ngIf=\"!isSettings\" (click)=\"close()\">\n              {{translation.accountCenter.backToApp}}\n            </button>\n          </div>\n\n          <!--powered-by-container-->\n          <a href=\"https://b-ee.io\"\n             target=\"_blank\"\n             rel=\"noopener noreferrer\"\n             class=\"flex justify-center items-center powered-by-container\">\n            <web3-connect-svg [icon]=\"poweredByBee\" [iconName]=\"'poweredByBee'\"  [width]=\"'150px'\" [height]=\"'25px'\"></web3-connect-svg>\n          </a>\n        </div>\n\n      </div>\n    </div>\n  </div>\n</nav>\n\n\n\n","import {Component} from '@angular/core';\nimport {state} from \"../../../store\";\nimport {shareReplay} from \"rxjs/operators\";\nimport {Observable, startWith} from \"rxjs\";\nimport { wallets$ } from '../../../streams';\nimport {AccountCenter, WalletState} from \"../../../types\";\n\n@Component({\n  selector: 'account-center',\n  templateUrl: './account-center.component.html',\n  styleUrls: ['./account-center.component.scss'],\n})\n\nexport class AccountCenterComponent {\n\n  protected readonly wallets$:Observable<WalletState[]> = wallets$;\n  protected readonly accountCenter$:Observable<AccountCenter> = state\n    .select('accountCenter')\n    .pipe(startWith(state.get().accountCenter), shareReplay(1));\n\n}\n\n\n","<ng-container *ngIf=\"wallets$ | async as wallets\">\n  <ng-container *ngIf=\"wallets.length\">\n        <ng-container *ngIf= \"!(accountCenter$ | async).expanded\">\n          <account-center-min></account-center-min>\n        </ng-container>\n        <ng-container *ngIf= \"(accountCenter$ | async).expanded\">\n          <account-center-max></account-center-max>\n        </ng-container>\n  </ng-container>\n</ng-container>\n\n\n","import {Component} from '@angular/core';\nimport { connectWallet$, wallets$} from '../streams'\nimport {state} from \"../store\";\nimport {BehaviorSubject, Observable, startWith} from \"rxjs\";\nimport {shareReplay} from \"rxjs/operators\";\nimport {AccountCenter, Configuration, ConnectWalletState, Notification, Notify, WalletState} from \"../types\";\nimport { configuration } from '../configuration';\n@Component({\n  selector: 'web3-connect',\n  templateUrl: './web3-connect.component.html',\n  styleUrls: ['./web3-connect.component.scss'],\n})\n\nexport class Web3ConnectComponent {\n\n  protected readonly wallets$: Observable<WalletState[]> = wallets$;\n  protected readonly connectWallet$:BehaviorSubject<ConnectWalletState> = connectWallet$;\n  protected readonly configuration: Configuration = configuration;\n  protected readonly accountCenterPositioning: string = 'account-center';\n\n  protected accountCenter$: Observable<AccountCenter> = state\n    .select('accountCenter')\n    .pipe(startWith(state.get().accountCenter), shareReplay(1));\n\n  protected readonly notify$: Observable<Notify> = state\n    .select('notify')\n    .pipe(startWith(state.get().notify), shareReplay(1));\n\n  protected readonly notifications$: Observable<Notification[]> = state\n    .select('notifications')\n    .pipe(startWith(state.get().notifications));\n\n\n\n  constructor() {}\n\n  public setPositioningDefaults = (targetComponentVariable: string) => {\n    return {\n      topLeft: `\n        top: var(--${targetComponentVariable}-position-top, 0);\n        left: var(--${targetComponentVariable}-position-left, 0);`,\n      topRight: `\n        top: var(--${targetComponentVariable}-position-top, 0);\n        right: var(--${targetComponentVariable}-position-right, 0);`,\n      bottomRight: `\n        bottom: var(--${targetComponentVariable}-position-bottom, 0);\n        right: var(--${targetComponentVariable}-position-right, 0);`,\n      bottomLeft: `\n        bottom: var(--${targetComponentVariable}-position-bottom, 0);\n        left: var(--${targetComponentVariable}-position-left, 0);`\n    }\n  }\n}\n\n\n","<ng-container *ngIf=\"(connectWallet$| async).inProgress\">\n  <connect [autoSelect]=\"(connectWallet$| async).autoSelect\"></connect>\n</ng-container>\n<ng-container *ngIf=\"!(accountCenter$ | async).enabled && !(notify$  | async).enabled\">\n  <div class=\"account-center-container flex flex-column fixed z-indexed\"></div>\n</ng-container>\n<ng-container *ngIf=\"(accountCenter$ | async) && (accountCenter$ | async).enabled && (wallets$ | async) && (wallets$ | async).length\">\n    <div class=\"account-center-container flex flex-column fixed z-indexed\"\n         [style.padding-bottom]=\"(accountCenter$ | async).position.includes('top') ? '0': null\"\n         [style.padding-top]=\"(accountCenter$ | async).position.includes('bottom') ? '0': null\"\n         [style]=\"setPositioningDefaults(accountCenterPositioning)[(accountCenter$ | async).position]\">\n          <ng-container *ngIf=\"(notify$ | async) && (notify$ | async).enabled && (accountCenter$ | async).position.includes('bottom') \">\n              <ng-container *ngIf=\"(notifications$ | async) as notifications\">\n                <notify [notifications]=\"notifications\" [position]=\"(accountCenter$ | async).position\"></notify>\n              </ng-container>\n          </ng-container>\n          <div [style.margin-left]=\"(!(accountCenter$ | async).position\n              && (accountCenter$ | async).position.includes('Right')) ? 'auto': null\"\n              [style.margin-right]=\"(!(accountCenter$ | async).position\n              && (accountCenter$ | async).position.includes('Left')) ? 'auto': null\">\n            <account-center></account-center>\n          </div>\n          <ng-container *ngIf=\"(notify$ | async) && (notify$ | async).enabled && (accountCenter$ | async).position.includes('top')\">\n            <ng-container *ngIf=\"(notifications$ | async) as notifications\">\n              <notify *ngIf=\"!(accountCenter$ | async).expanded\" [notifications]=\"notifications\" [position]=\"(accountCenter$ | async).position\"></notify>\n            </ng-container>\n          </ng-container>\n     </div>\n</ng-container>\n\n\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ConnectComponent} from \"./connect-components/connect/connect.component\";\nimport {AgreementComponent} from \"./connect-components/agreement/agreement.component\";\nimport {InstallWalletComponent} from \"./connect-components/install-wallet/install-wallet.component\";\nimport {SelectingWalletComponent} from \"./connect-components/selecting-wallet/selecting-wallet.component\";\nimport {WalletButtonComponent} from \"./connect-components/wallet-button/wallet-button.component\";\nimport {ConnectingWalletComponent} from \"./connect-components/connecting-wallet/connecting-wallet.component\";\nimport {ConnectedWalletComponent} from \"./connect-components/connected-wallet/connected-wallet.component\";\nimport {NotifyComponent} from \"./notify-components/notify/notify.component\";\nimport {NotificationComponent} from \"./notify-components/notification/notification.component\";\nimport {NotificationContentComponent} from \"./notify-components/notification-content/notification-content.component\";\nimport {NotificationTimerComponent} from \"./notify-components/notification-timer/notification-timer.component\";\nimport {NotificationStatusComponent} from \"./notify-components/notification-status/notification-status.component\";\nimport {AccountCenterComponent} from \"./account-center-components/account-center/account-center.component\";\nimport {AccountCenterMinComponent} from \"./account-center-components/account-center-min/account-center-min.component\";\nimport {AccountCenterMaxComponent} from \"./account-center-components/account-center-max/account-center-max.component\";\nimport {AccountCenterWalletComponent} from \"./account-center-components/account-center-wallet/account-center-wallet.component\";\nimport {Web3ConnectSvgComponent} from \"./shared/web3-connect-svg/web3-connect-svg.component\";\nimport {Web3ConnectWarningComponent} from \"./shared/web3-connect-warning/web3-connect-warning.component\";\nimport {Web3ConnectBadgeComponent} from \"./shared/web3-connect-badge/web3-connect-badge.component\";\nimport {Web3ConnectSpinnerComponent} from \"./shared/web3-connect-spinner/web3-connect-spinner.component\";\nimport {Web3ConnectNetworkSelectComponent} from \"./shared/web3-connect-network-select/web3-connect-network-select.component\";\nimport {FormsModule} from \"@angular/forms\";\nimport {NotificationChainComponent} from \"./notify-components/notification-chain/notification-chain.component\";\nimport {HttpClientModule} from \"@angular/common/http\";\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {TokenListComponent} from \"./token-list/token-list.component\";\nimport {DragDropModule} from \"@angular/cdk/drag-drop\";\nimport {ClickedOutsideDirective} from \"./account-center-components/account-center-max/click-outside.directive\";\nimport {Web3ConnectComponent} from \"./web3-connect.component\";\n\nexport { Web3ConnectComponent } from \"./web3-connect.component\";\n@NgModule({\n  declarations: [\n    Web3ConnectComponent,\n    AgreementComponent,\n    InstallWalletComponent,\n    SelectingWalletComponent,\n    WalletButtonComponent,\n    ConnectingWalletComponent,\n    ConnectedWalletComponent,\n    ConnectComponent,\n\n    NotifyComponent,\n    NotificationComponent,\n    NotificationContentComponent,\n    NotificationTimerComponent,\n    NotificationStatusComponent,\n    NotificationChainComponent,\n\n    AccountCenterComponent,\n    AccountCenterMinComponent,\n    AccountCenterMaxComponent,\n    AccountCenterWalletComponent,\n    ClickedOutsideDirective,\n\n    Web3ConnectSvgComponent,\n    Web3ConnectWarningComponent,\n    Web3ConnectBadgeComponent,\n    Web3ConnectSpinnerComponent,\n    Web3ConnectNetworkSelectComponent,\n\n    TokenListComponent\n  ],\n  imports: [\n    CommonModule,\n    HttpClientModule,\n    MatIconModule,\n    DragDropModule,\n    FormsModule\n  ],\n  providers: [],\n  exports:[Web3ConnectComponent]\n})\nexport class Web3ConnectModule {\n  // static forRoot(): ModuleWithProviders<BeeWeb3ConnectModule> {\n  //   return {\n  //     ngModule: BeeWeb3ConnectModule,\n  //   };\n  // }\n}\n","import type { ExternalProvider } from '@ethersproject/providers'\nimport {Device, EIP1193Provider, Platform, ProviderAccounts, WalletModule} from \"../../common\";\n\n\n/**\n * The `ProviderIdentityFlag` is a property on an injected provider\n * that uniquely identifies that provider\n */\nexport enum ProviderIdentityFlag {\n  AlphaWallet = 'isAlphaWallet',\n  ApexWallet = 'isApexWallet',\n  AToken = 'isAToken',\n  BifrostWallet = 'isBifrost',\n  Binance = 'bbcSignTx',\n  Bitpie = 'isBitpie',\n  BlockWallet = 'isBlockWallet',\n  Coinbase = 'isToshi',\n  CoinbaseExtension = 'isCoinbaseWallet',\n  Detected = 'request',\n  Dcent = 'isDcentWallet',\n  Exodus = 'isExodus',\n  Frontier = 'isFrontier',\n  Frame = 'isFrame',\n  HuobiWallet = 'isHbWallet',\n  HyperPay = 'isHyperPay',\n  ImToken = 'isImToken',\n  InfinityWallet = 'isInfinityWallet',\n  Liquality = 'isLiquality',\n  MeetOne = 'wallet',\n  MetaMask = 'isMetaMask',\n  MyKey = 'isMYKEY',\n  OwnBit = 'isOwnbit',\n  Status = 'isStatus',\n  Trust = 'isTrust',\n  TokenPocket = 'isTokenPocket',\n  TP = 'isTp',\n  WalletIo = 'isWalletIO',\n  XDEFI = 'isXDEFI',\n  OneInch = 'isOneInchIOSWallet',\n  Tokenary = 'isTokenary',\n  Tally = 'isTally',\n  BraveWallet = 'isBraveWallet',\n  Rabby = 'isRabby',\n  MathWallet = 'isMathWallet',\n  GameStop = 'isGamestop',\n  BitKeep = 'isBitKeep',\n  Sequence = 'isSequence',\n  Core = 'isAvalanche',\n  Opera = 'isOpera',\n  Bitski = 'isBitski',\n  Enkrypt = 'isEnkrypt',\n  Phantom = 'isPhantom',\n  OKXWallet = 'isOkxWallet',\n  Zeal = 'isZeal',\n  Zerion = 'isZerion',\n  Rainbow = 'isRainbow',\n  SafePal = 'isSafePal',\n  DeFiWallet = 'isDeficonnectProvider',\n  Safeheron = 'isSafeheron'\n}\n\nexport enum ProviderLabel {\n  AlphaWallet = 'AlphaWallet',\n  ApexWallet = 'Apex Wallet',\n  AToken = 'AToken',\n  BifrostWallet = 'Bifrost Wallet',\n  Binance = 'Binance Smart Wallet',\n  Bitpie = 'Bitpie',\n  Bitski = 'Bitski',\n  BlockWallet = 'BlockWallet',\n  Brave = 'Brave Wallet',\n  Coinbase = 'Coinbase Wallet',\n  Dcent = `D'CENT`,\n  Detected = 'Detected Wallet',\n  Exodus = 'Exodus',\n  Frame = 'Frame',\n  Frontier = 'Frontier',\n  HuobiWallet = 'Huobi Wallet',\n  HyperPay = 'HyperPay',\n  ImToken = 'imToken',\n  InfinityWallet = 'Infinity Wallet',\n  Liquality = 'Liquality',\n  MeetOne = 'MeetOne',\n  MetaMask = 'MetaMask',\n  MyKey = 'MyKey',\n  Opera = 'Opera Wallet',\n  OwnBit = 'OwnBit',\n  Status = 'Status Wallet',\n  Trust = 'Trust Wallet',\n  TokenPocket = 'TokenPocket',\n  TP = 'TP Wallet',\n  WalletIo = 'Wallet.io',\n  XDEFI = 'XDEFI Wallet',\n  OneInch = '1inch Wallet',\n  Tokenary = 'Tokenary Wallet',\n  Tally = 'Taho',\n  Rabby = 'Rabby',\n  MathWallet = 'MathWallet',\n  GameStop = 'GameStop Wallet',\n  BitKeep = 'BitKeep',\n  Sequence = 'Sequence',\n  Core = 'Core',\n  Enkrypt = 'Enkrypt',\n  Zeal = 'Zeal',\n  Phantom = 'Phantom',\n  OKXWallet = 'OKX Wallet',\n  Zerion = 'Zerion',\n  Rainbow = 'Rainbow',\n  SafePal = 'SafePal',\n  DeFiWallet = 'DeFi Wallet',\n  Safeheron = 'Safeheron'\n}\n\nexport interface MeetOneProvider extends ExternalProvider {\n  wallet?: string\n}\n\nexport interface BinanceProvider extends EIP1193Provider {\n  bbcSignTx: () => void\n  requestAccounts: () => Promise<ProviderAccounts>\n  isUnlocked: boolean\n}\n\nexport enum InjectedNameSpace {\n  Ethereum = 'ethereum',\n  Binance = 'BinanceChain',\n  Tally = 'tally',\n  Web3 = 'web3',\n  Arbitrum = 'arbitrum',\n  XFI = 'xfi',\n  GameStop = 'gamestop',\n  BitKeep = 'bitkeep',\n  Avalanche = 'avalanche',\n  Bitski = 'Bitski',\n  Enkrypt = 'enkrypt',\n  Zeal = 'zeal',\n  Phantom = 'phantom',\n  OKXWallet = 'okxwallet',\n  Trust = 'trustwallet',\n  Frontier = 'frontier',\n  DeFiConnectProvider = 'deficonnectProvider',\n  Safeheron = 'safeheron'\n}\n\n// export interface CustomWindow extends Window {\nexport interface CustomWindow {\n  BinanceChain: BinanceProvider\n  ethereum: InjectedProvider\n  tally: InjectedProvider\n  zeal: InjectedProvider\n  web3: ExternalProvider | MeetOneProvider\n  arbitrum: InjectedProvider\n  xfi: {\n    ethereum: InjectedProvider\n  }\n  gamestop: InjectedProvider\n  bitkeep: {\n    ethereum: InjectedProvider\n  }\n  avalanche: InjectedProvider\n  Bitski: {\n    getProvider(): InjectedProvider\n  }\n  enkrypt: {\n    providers: {\n      ethereum: InjectedProvider\n    }\n  }\n  frontier: {\n    ethereum: InjectedProvider\n  }\n  phantom: {\n    ethereum: InjectedProvider\n  }\n  okxwallet: InjectedProvider\n  trustwallet: InjectedProvider\n  deficonnectProvider: InjectedProvider\n  safeheron: InjectedProvider\n}\n\nexport type InjectedProvider = ExternalProvider &\n  BinanceProvider &\n  MeetOneProvider &\n  Record<string, boolean> &\n  Record<string, InjectedProvider[]>\n\nexport type WalletFilters = {\n  /**A provider label mapped to a list of excluded platforms\n   * or a boolean indicating if it should be included. */\n  [key in ProviderLabel | string]?: Platform[] | boolean | 'unavailable'\n}\n\nexport interface InjectedWalletOptions {\n  /**A list of injected wallets to include that\n   * are not included by default here: ./packages/injected/ */\n  custom?: InjectedWalletModule[]\n  /**A mapping of a provider label to a list of filtered platforms\n   * or a boolean indicating if it should be included or not.\n   * By default all wallets listed in ./packages/injected/\n   * are included add them to here to remove them. */\n  filter?: WalletFilters\n  /**Will display wallets to be selected even if they\n   * are not currently available to the end user.\n   */\n  displayUnavailable?: boolean\n  /**A function that allows for customizing the message to be displayed if the wallet\n   * is unavailable\n   */\n  walletUnavailableMessage?: (wallet: WalletModule) => string\n  /**Function that can be used to sort the order of wallets that are displayed */\n  sort?: (wallets: WalletModule[]) => WalletModule[]\n}\n\nexport interface InjectedWalletModule extends WalletModule {\n  injectedNamespace: InjectedNameSpace\n  checkProviderIdentity: (helpers: { provider: any; device: Device }) => boolean\n  platforms: Platform[]\n}\n","import type {BinanceProvider, CustomWindow, InjectedWalletModule} from './types'\nimport {InjectedNameSpace, ProviderIdentityFlag, ProviderLabel} from './types'\nimport {ChainId, ChainListener, createEIP1193Provider, EIP1193Provider, SimpleEventEmitter} from \"../../common\";\n\ndeclare const window: CustomWindow\n\nconst UNSUPPORTED_METHOD = null\n\nfunction getInjectedInterface(\n  identity: string,\n  checkOtherProviderFlags?: boolean\n): () => Promise<{ provider: EIP1193Provider }> {\n  return async () => ({\n    provider: (window.ethereum.providers &&\n    Array.isArray(window.ethereum.providers)\n      ? getInterfaceFromProvidersArray(identity, checkOtherProviderFlags)\n      : window.ethereum) as EIP1193Provider\n  })\n}\n\nfunction getInterfaceFromProvidersArray(\n  identity: string,\n  checkOtherProviderFlags?: boolean\n) {\n  return window.ethereum.providers.find(provider => {\n    return checkOtherProviderFlags\n      ? !!provider[identity] && !otherProviderFlagsExist(identity, provider)\n      : !!provider[identity]\n  })\n}\n\nfunction otherProviderFlagsExist(identity: string, provider: any): boolean {\n  const otherProviderFlags = Object.values(ProviderIdentityFlag).filter(\n    id => id !== identity && id !== ProviderIdentityFlag.Detected\n  )\n  return otherProviderFlags.some(id => !!provider[id])\n}\n\nconst metamask: InjectedWalletModule = {\n  label: ProviderLabel.MetaMask,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider &&\n    !!provider[ProviderIdentityFlag.MetaMask] &&\n    !otherProviderFlagsExist(ProviderIdentityFlag.MetaMask, provider),\n  getIcon: async () => (await import('./icons/metamask')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.MetaMask, true),\n  platforms: ['all']\n}\n\nconst infinitywallet: InjectedWalletModule = {\n  label: ProviderLabel.InfinityWallet,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.InfinityWallet],\n  getIcon: async () => (await import('./icons/infinitywallet')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.InfinityWallet),\n  platforms: ['desktop']\n}\n\nconst exodus: InjectedWalletModule = {\n  label: ProviderLabel.Exodus,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Exodus],\n  getIcon: async () => (await import('./icons/exodus')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.Exodus),\n  platforms: ['all']\n}\n\nconst frontier: InjectedWalletModule = {\n  label: ProviderLabel.Frontier,\n  injectedNamespace: InjectedNameSpace.Frontier,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider &&\n    !!provider['ethereum'] &&\n    !!provider['ethereum'][ProviderIdentityFlag.Frontier],\n  getIcon: async () => (await import('./icons/frontier')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.frontier.ethereum)\n  }),\n  platforms: ['all']\n}\n\nconst brave: InjectedWalletModule = {\n  label: ProviderLabel.Brave,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.BraveWallet],\n  getIcon: async () => (await import('./icons/brave')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.BraveWallet),\n  platforms: ['all']\n}\n\nconst binance: InjectedWalletModule = {\n  label: ProviderLabel.Binance,\n  injectedNamespace: InjectedNameSpace.Binance,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Binance],\n  getIcon: async () => (await import('./icons/binance')).default,\n  getInterface: async () => {\n    // Replace the provider as the BNB provider is readonly\n    window.BinanceChain = {\n      ...window.BinanceChain\n    }\n\n    const addListener: SimpleEventEmitter['on'] = window.BinanceChain.on.bind(\n      window.BinanceChain\n    )\n\n    window.BinanceChain.on = (event, func) => {\n      // intercept chainChanged event and format string\n      if (event === 'chainChanged') {\n        addListener(event, (chainId: ChainId) => {\n          const cb = func as ChainListener\n          cb(`0x${parseInt(chainId as string).toString(16)}`)\n        })\n      } else {\n        addListener(event, func)\n      }\n    }\n\n    const provider = createEIP1193Provider(window.BinanceChain, {\n      eth_chainId: ({ baseRequest }) =>\n        baseRequest({ method: 'eth_chainId' }).then(\n          id => `0x${parseInt(id as string).toString(16)}`\n        ),\n      // Unsupported method -- will throw error\n      eth_selectAccounts: UNSUPPORTED_METHOD,\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD\n    })\n\n    provider.removeListener = (event, func) => {}\n\n    return {\n      provider\n    }\n  },\n  platforms: ['desktop']\n}\n\nconst coinbase: InjectedWalletModule = {\n  label: ProviderLabel.Coinbase,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    (!!provider && !!provider[ProviderIdentityFlag.Coinbase]) ||\n    (!!provider && !!provider[ProviderIdentityFlag.CoinbaseExtension]),\n  getIcon: async () => (await import('./icons/coinbase')).default,\n  getInterface: async () => {\n    const { provider } = await getInjectedInterface(\n      ProviderIdentityFlag.CoinbaseExtension\n    )()\n\n    const addListener: SimpleEventEmitter['on'] = provider.on.bind(provider)\n    provider.on = (event, func) => {\n      // intercept chainChanged event and format string\n      if (event === 'chainChanged') {\n        addListener(event, (chainId: string) => {\n          const cb = func as ChainListener\n          cb(`0x${parseInt(chainId).toString(16)}`)\n        })\n      } else {\n        addListener(event, func)\n      }\n    }\n\n    return { provider }\n  },\n  platforms: ['all']\n}\n\nconst detected: InjectedWalletModule = {\n  label: ProviderLabel.Detected,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Detected],\n  getIcon: async () => (await import('./icons/detected')).default,\n  getInterface: async () => ({\n    provider: window.ethereum as EIP1193Provider\n  }),\n  platforms: ['all']\n}\n\nconst trust: InjectedWalletModule = {\n  label: ProviderLabel.Trust,\n  injectedNamespace: InjectedNameSpace.Trust,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Trust],\n  getIcon: async () => (await import('./icons/trust')).default,\n  getInterface: async () => {\n    const ethereumInjectionExists = window.hasOwnProperty(\n      InjectedNameSpace.Ethereum\n    )\n\n    let provider: EIP1193Provider\n\n    // check if trust is injected into window.ethereum\n    if (ethereumInjectionExists && window[InjectedNameSpace.Ethereum].isTrust) {\n      provider = window[InjectedNameSpace.Ethereum]\n    } else {\n      // directly use the window.trustwallet injection\n      provider = window[InjectedNameSpace.Trust]\n    }\n\n    return {\n      provider\n    }\n  },\n  platforms: ['all']\n}\n\nconst opera: InjectedWalletModule = {\n  label: ProviderLabel.Opera,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Opera],\n  getIcon: async () => (await import('./icons/opera')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum, {\n      eth_requestAccounts: async ({ baseRequest }) =>\n        baseRequest({ method: 'eth_accounts' }),\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n  }),\n  platforms: ['all']\n}\n\nconst status: InjectedWalletModule = {\n  label: ProviderLabel.Status,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Status],\n  getIcon: async () => (await import('./icons/status')).default,\n  getInterface: async () => {\n    const provider = window.ethereum\n\n    return {\n      provider\n    }\n  },\n  platforms: ['mobile']\n}\n\nconst alphawallet: InjectedWalletModule = {\n  label: ProviderLabel.AlphaWallet,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.AlphaWallet],\n  getIcon: async () => (await import('./icons/alphawallet')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum, {\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD,\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n  }),\n  platforms: ['mobile']\n}\n\nconst apexwallet: InjectedWalletModule = {\n  label: ProviderLabel.ApexWallet,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.ApexWallet],\n  getIcon: async () => (await import('./icons/apexwallet')).default,\n  getInterface: async () => ({\n    provider: window.ethereum\n  }),\n  platforms: ['desktop', 'Chrome', 'Chromium', 'Microsoft Edge']\n}\n\nconst atoken: InjectedWalletModule = {\n  label: ProviderLabel.AToken,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.AToken],\n  getIcon: async () => (await import('./icons/atoken')).default,\n  getInterface: async () => ({\n    provider: window.ethereum\n  }),\n  platforms: ['mobile']\n}\n\nconst bifrostwallet: InjectedWalletModule = {\n  label: ProviderLabel.BifrostWallet,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.BifrostWallet],\n  getIcon: async () => (await import('./icons/bifrostwallet')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.BifrostWallet),\n  platforms: ['all']\n}\n\nconst bitpie: InjectedWalletModule = {\n  label: ProviderLabel.Bitpie,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: () => !!(window as any).Bitpie,\n  getIcon: async () => (await import('./icons/bitpie')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum, {\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD,\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n  }),\n  platforms: ['mobile']\n}\n\nconst blockwallet: InjectedWalletModule = {\n  label: ProviderLabel.BlockWallet,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.BlockWallet],\n  getIcon: async () => (await import('./icons/blockwallet')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.BlockWallet),\n  platforms: ['desktop']\n}\n\nconst frame: InjectedWalletModule = {\n  label: ProviderLabel.Frame,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Frame],\n  getIcon: async () => (await import('./icons/frame')).default,\n  getInterface: async () => ({\n    provider: window.ethereum\n  }),\n  platforms: ['desktop']\n}\n\nconst huobiwallet: InjectedWalletModule = {\n  label: ProviderLabel.HuobiWallet,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.HuobiWallet],\n  getIcon: async () => (await import('./icons/huobiwallet')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum, {\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD,\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n  }),\n  platforms: ['mobile']\n}\n\nconst hyperpay: InjectedWalletModule = {\n  label: ProviderLabel.HyperPay,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  // Note: The property `hiWallet` is as of now the only known way of identifying hyperpay\n  // wallet as it is a direct clone of metamask. `checkProviderIdentity` implementation is subject to\n  // future changes\n  checkProviderIdentity: () => !!(window as any).hiWallet,\n  getIcon: async () => (await import('./icons/hyperpay')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum, {\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD,\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n  }),\n  platforms: ['mobile']\n}\n\nconst imtoken: InjectedWalletModule = {\n  label: ProviderLabel.ImToken,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.ImToken],\n  getIcon: async () => (await import('./icons/imtoken')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum, {\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD,\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n  }),\n  platforms: ['mobile']\n}\n\nconst liquality: InjectedWalletModule = {\n  label: ProviderLabel.Liquality,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Liquality],\n  getIcon: async () => (await import('./icons/liquality')).default,\n  getInterface: async () => {\n    const provider = createEIP1193Provider(window.ethereum, {\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD,\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n\n    provider.removeListener = (event, func) => {}\n\n    return { provider }\n  },\n  platforms: ['desktop']\n}\n\nconst meetone: InjectedWalletModule = {\n  label: ProviderLabel.MeetOne,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && provider[ProviderIdentityFlag.MeetOne] === 'MEETONE',\n  getIcon: async () => (await import('./icons/meetone')).default,\n  getInterface: async () => ({\n    provider: window.ethereum\n  }),\n  platforms: ['mobile']\n}\n\nconst mykey: InjectedWalletModule = {\n  label: ProviderLabel.MyKey,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.MyKey],\n  getIcon: async () => (await import('./icons/mykey')).default,\n  getInterface: async () => ({\n    provider: window.ethereum\n  }),\n  platforms: ['mobile']\n}\n\nconst ownbit: InjectedWalletModule = {\n  label: ProviderLabel.OwnBit,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.OwnBit],\n  getIcon: async () => (await import('./icons/ownbit')).default,\n  getInterface: async () => {\n    const provider = createEIP1193Provider(window.ethereum, {\n      eth_chainId: ({ baseRequest }) =>\n        baseRequest({ method: 'eth_chainId' }).then(\n          id => `0x${parseInt(id).toString(16)}`\n        ),\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD,\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n    provider.removeListener = (event, listener) => {}\n    provider.on = (event, listener) => {}\n    return { provider }\n  },\n  platforms: ['mobile']\n}\n\nconst tokenpocket: InjectedWalletModule = {\n  label: ProviderLabel.TokenPocket,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider &&\n    !!provider[ProviderIdentityFlag.TokenPocket] &&\n    !provider[ProviderIdentityFlag.TP],\n  getIcon: async () => (await import('./icons/tokenpocket')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.TokenPocket),\n  platforms: ['all']\n}\n\nconst tp: InjectedWalletModule = {\n  label: ProviderLabel.TP,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.TP],\n  getIcon: async () => (await import('./icons/tp')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum, {\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD,\n      eth_selectAccounts: UNSUPPORTED_METHOD\n    })\n  }),\n  platforms: ['mobile']\n}\n\nconst xdefi: InjectedWalletModule = {\n  label: ProviderLabel.XDEFI,\n  injectedNamespace: InjectedNameSpace.XFI,\n  checkProviderIdentity: ({ provider }) =>\n    provider &&\n    provider.ethereum &&\n    provider.ethereum[ProviderIdentityFlag.XDEFI],\n  getIcon: async () => (await import('./icons/xdefi')).default,\n  getInterface: async () => ({\n    provider: (window as any).xfi && (window as any).xfi.ethereum\n  }),\n  platforms: ['all']\n}\n\nconst oneInch: InjectedWalletModule = {\n  label: ProviderLabel.OneInch,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.OneInch],\n  getIcon: async () => (await import('./icons/oneInch')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum)\n  }),\n  platforms: ['mobile']\n}\n\nconst tokenary: InjectedWalletModule = {\n  label: ProviderLabel.Tokenary,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Tokenary],\n  getIcon: async () => (await import('./icons/tokenary')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum)\n  }),\n  platforms: ['all']\n}\n\nconst tally: InjectedWalletModule = {\n  label: ProviderLabel.Tally,\n  injectedNamespace: InjectedNameSpace.Tally,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Tally],\n  getIcon: async () => (await import('./icons/tallywallet')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.tally)\n  }),\n  platforms: ['desktop']\n}\n\nconst zeal: InjectedWalletModule = {\n  label: ProviderLabel.Zeal,\n  injectedNamespace: InjectedNameSpace.Zeal,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Zeal],\n  getIcon: async () => (await import('./icons/zeal')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.zeal)\n  }),\n  platforms: ['desktop']\n}\n\nconst rabby: InjectedWalletModule = {\n  label: ProviderLabel.Rabby,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Rabby],\n  getIcon: async () => (await import('./icons/rabby')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum)\n  }),\n  platforms: ['desktop']\n}\n\nconst mathwallet: InjectedWalletModule = {\n  label: ProviderLabel.MathWallet,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.MathWallet],\n  getIcon: async () => (await import('./icons/mathwallet')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.MathWallet),\n  platforms: ['all']\n}\n\nconst gamestop = {\n  label: ProviderLabel.GameStop,\n  injectedNamespace: InjectedNameSpace.GameStop,\n  checkProviderIdentity: ({ provider }) => !!provider && !!provider[ProviderIdentityFlag.GameStop],\n  getIcon: async () => (await import('./icons/gamestop')).default,\n  getInterface: async () => {\n    const provider = createEIP1193Provider(window.gamestop, {\n      eth_chainId: ({ baseRequest }) => baseRequest({ method: 'eth_chainId' }).then(id => `0x${parseInt(id).toString(16)}`),\n      wallet_switchEthereumChain: UNSUPPORTED_METHOD\n    });\n    provider.removeListener = (event, listener) => { };\n    provider.on = (event, listener) => { };\n    return { provider };\n  },\n  platforms: ['desktop']\n};\n\nconst bitkeep: InjectedWalletModule = {\n  label: ProviderLabel.BitKeep,\n  injectedNamespace: InjectedNameSpace.BitKeep,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider['ethereum'][ProviderIdentityFlag.BitKeep],\n  getIcon: async () => (await import('./icons/bitkeep')).default,\n  getInterface: async () => ({\n    provider: window.bitkeep && window.bitkeep.ethereum\n  }),\n  platforms: ['all']\n}\n\nconst sequence: InjectedWalletModule = {\n  label: ProviderLabel.Sequence,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Sequence],\n  getIcon: async () => (await import('./icons/sequence')).default,\n  getInterface: async () => ({\n    provider: window.ethereum\n  }),\n  platforms: ['all']\n}\n\nconst core: InjectedWalletModule = {\n  label: ProviderLabel.Core,\n  injectedNamespace: InjectedNameSpace.Avalanche,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Core],\n  getIcon: async () => (await import('./icons/core')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.Core),\n  // Core wallet is only tested in chrome or chromium browser\n  platforms: ['desktop', 'Chrome', 'Chromium', 'Microsoft Edge']\n}\n\nconst bitski: InjectedWalletModule = {\n  label: ProviderLabel.Bitski,\n  injectedNamespace: InjectedNameSpace.Bitski,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider.getProvider && !!provider.getProvider().isBitski,\n  getIcon: async () => (await import('./icons/bitski')).default,\n  getInterface: async () => ({\n    provider:\n      window.Bitski && window.Bitski.getProvider && window.Bitski.getProvider()\n  }),\n  platforms: ['all']\n}\n\nconst zerion: InjectedWalletModule = {\n  label: ProviderLabel.Zerion,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Zerion],\n  getIcon: async () => (await import('./icons/zerion')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum)\n  }),\n  platforms: ['all']\n}\n\nconst enkrypt: InjectedWalletModule = {\n  label: ProviderLabel.Enkrypt,\n  injectedNamespace: InjectedNameSpace.Enkrypt,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider.providers && !!provider.providers.ethereum,\n  getIcon: async () => (await import('./icons/enkrypt')).default,\n  getInterface: async () => {\n    const addListener: SimpleEventEmitter['on'] =\n      window.enkrypt.providers.ethereum.on.bind(\n        window.enkrypt.providers.ethereum\n      )\n\n    window.enkrypt.providers.ethereum.on = (event, func) => {\n      // intercept chainChanged event and format string\n      if (event === 'chainChanged') {\n        addListener(event, (chainId: ChainId) => {\n          const cb = func as ChainListener\n          cb(`0x${parseInt(chainId as string).toString(16)}`)\n        })\n      } else {\n        addListener(event, func)\n      }\n    }\n\n    const provider = createEIP1193Provider(window.enkrypt.providers.ethereum, {\n      eth_chainId: ({ baseRequest }) =>\n        baseRequest({ method: 'eth_chainId' }).then(\n          id => `0x${parseInt(id as string).toString(16)}`\n        )\n    })\n\n    provider.removeListener = (event, func) => {}\n\n    return {\n      provider\n    }\n  },\n  platforms: ['all']\n}\n\nconst phantom: InjectedWalletModule = {\n  label: ProviderLabel.Phantom,\n  injectedNamespace: InjectedNameSpace.Phantom,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider &&\n    !!provider['ethereum'] &&\n    !!provider['ethereum'][ProviderIdentityFlag.Phantom],\n  getIcon: async () => (await import('./icons/phantom')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.phantom.ethereum)\n  }),\n  platforms: ['all']\n}\n\nconst safepal: InjectedWalletModule = {\n  label: ProviderLabel.SafePal,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.SafePal],\n  getIcon: async () => (await import('./icons/safepal')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.ethereum)\n  }),\n  platforms: ['all']\n}\n\nconst rainbow: InjectedWalletModule = {\n  label: ProviderLabel.Rainbow,\n  injectedNamespace: InjectedNameSpace.Ethereum,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.Rainbow],\n  getIcon: async () => (await import('./icons/rainbow')).default,\n  getInterface: getInjectedInterface(ProviderIdentityFlag.Rainbow),\n  platforms: ['all']\n}\n\nconst okxwallet: InjectedWalletModule = {\n  label: ProviderLabel.OKXWallet,\n  injectedNamespace: InjectedNameSpace.OKXWallet,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.OKXWallet],\n  getIcon: async () => (await import('./icons/okxwallet')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.okxwallet)\n  }),\n  platforms: ['desktop']\n}\n\nconst defiwallet: InjectedWalletModule = {\n  label: ProviderLabel.DeFiWallet,\n  injectedNamespace: InjectedNameSpace.DeFiConnectProvider,\n  checkProviderIdentity: ({ provider }) =>\n    !!provider && !!provider[ProviderIdentityFlag.DeFiWallet],\n  getIcon: async () => (await import('./icons/defiwallet')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.deficonnectProvider)\n  }),\n  platforms: ['all']\n}\n\nconst safeheron: InjectedWalletModule = {\n  label: ProviderLabel.Safeheron,\n  injectedNamespace: InjectedNameSpace.Safeheron,\n  checkProviderIdentity: ({ provider }) => !!provider && !!provider[ProviderIdentityFlag.Safeheron],\n  getIcon: async () => (await import('./icons/safeheron')).default,\n  getInterface: async () => ({\n    provider: createEIP1193Provider(window.safeheron)\n  }),\n  platforms: ['desktop', 'Chrome', 'Chromium', 'Microsoft Edge']\n}\n\nconst wallets = [\n  zeal,\n  exodus,\n  frontier,\n  metamask,\n  bifrostwallet,\n  binance,\n  coinbase,\n  detected,\n  trust,\n  opera,\n  status,\n  alphawallet,\n  apexwallet,\n  atoken,\n  bitpie,\n  blockwallet,\n  brave,\n  frame,\n  huobiwallet,\n  hyperpay,\n  imtoken,\n  liquality,\n  meetone,\n  mykey,\n  ownbit,\n  tokenpocket,\n  tp,\n  xdefi,\n  oneInch,\n  tokenary,\n  tally,\n  rabby,\n  mathwallet,\n  gamestop,\n  bitkeep,\n  sequence,\n  core,\n  bitski,\n  enkrypt,\n  phantom,\n  okxwallet,\n  zerion,\n  rainbow,\n  safepal,\n  defiwallet,\n  infinitywallet,\n  safeheron,\n]\n\nexport default wallets\n","import Joi from 'joi'\nimport { InjectedWalletOptions } from './types'\nimport {validate, ValidateReturn} from \"../../common\";\n\nconst walletModule = Joi.object({\n  label: Joi.string().required(),\n  getIcon: Joi.function().arity(0).required(),\n  getInterface: Joi.function().maxArity(1).required(),\n  injectedNamespace: Joi.string().required(),\n  checkProviderIdentity: Joi.function().arity(1).required(),\n  platforms: Joi.array().items(Joi.string())\n})\n\nconst wallets = Joi.array().items(walletModule)\n\nconst filter = Joi.object().pattern(\n  /\\w+/,\n  Joi.any().allow(Joi.boolean(), Joi.array().items(Joi.string()))\n)\n\nconst walletOptions = Joi.object({\n  custom: wallets,\n  filter,\n  displayUnavailable: Joi.boolean(),\n  walletUnavailableMessage: Joi.function(),\n  sort: Joi.function()\n})\n\nexport const validateWalletOptions = (\n  data: InjectedWalletOptions | Partial<InjectedWalletOptions>\n): ValidateReturn => validate(walletOptions, data);\n","import type { InjectedProvider, InjectedWalletModule } from './types'\nimport {Device, ProviderRpcErrorCode} from \"../../common\";\n\nexport class ProviderRpcError extends Error {\n  message: string\n  code: ProviderRpcErrorCode | number\n  data?: unknown\n\n  constructor(error: Pick<ProviderRpcError, 'message' | 'code' | 'data'>) {\n    super(error.message)\n    this.message = error.message\n    this.code = error.code\n    this.data = error.data\n  }\n}\n\nexport const defaultWalletUnavailableMsg = ( label : InjectedWalletModule) => {\n  return `Please install or enable ${label} to continue`;\n}\n\nexport const isWalletAvailable = (\n  provider: InjectedProvider,\n  checkProviderIdentity: InjectedWalletModule['checkProviderIdentity'],\n  device: Device\n): boolean => {\n  // No injected providers exist.\n  if (!provider) {\n    return false\n  }\n\n  // Many injected providers add their own object into window.\n  if (checkProviderIdentity({ provider, device })) {\n    return true\n  }\n\n  // For multiple injected providers, check providers array\n  // example coinbase inj wallet pushes over-ridden wallets\n  // into a providers array at window.ethereum\n  return !!provider.providers?.some(provider =>\n    checkProviderIdentity({ provider, device })\n  )\n}\n","import uniqBy from 'lodash.uniqby'\nimport { ProviderLabel } from './types'\nimport standardWallets from './wallets'\nimport { validateWalletOptions } from './validation'\nimport { defaultWalletUnavailableMsg, isWalletAvailable } from './helpers'\n\nimport type {\n  InjectedWalletOptions,\n  CustomWindow,\n  InjectedWalletModule\n} from './types'\nimport {WalletInit} from \"../../common\";\n\ndeclare const window: CustomWindow\n\nexport { ProviderIdentityFlag } from './types'\n\nexport  function injectedModule(options?: InjectedWalletOptions): WalletInit {\n  if (typeof window === 'undefined') return () => null\n\n  if (options) {\n    const result = validateWalletOptions(options)\n\n    if (result && result.error) throw result.error\n  }\n\n  return helpers => {\n    const { device } = helpers\n\n    const {\n      custom = [],\n      filter = {},\n      displayUnavailable,\n      sort,\n      walletUnavailableMessage\n    } = options || {}\n\n    // combine custom with standard wallets and dedupe\n    const allWallets = uniqBy(\n      [...custom, ...standardWallets],\n      ({ label }) => label\n    )\n\n    const wallets = allWallets.reduce((acc, wallet) => {\n      const { label, platforms, injectedNamespace, checkProviderIdentity } =\n        wallet\n\n      const walletFilters = filter[label]\n      const filteredWallet = walletFilters === false\n      const provider = window[injectedNamespace] as unknown as CustomWindow['ethereum']\n\n      // const provider = window[injectedNamespace] as CustomWindow['ethereum']\n\n      const walletAvailable = isWalletAvailable(\n        provider,\n        checkProviderIdentity,\n        device\n      )\n\n      let excludedDevice: boolean = false\n\n      // dev specified platform filters\n      if (\n        Array.isArray(walletFilters) &&\n        (walletFilters.includes(device.type) ||\n          walletFilters.includes(device.os.name))\n      ) {\n        excludedDevice = true\n      }\n\n      // unavailable filter\n      if (walletFilters === 'unavailable' && !walletAvailable) {\n        excludedDevice = true\n      }\n\n      // wallet specified platform filters\n      const invalidPlatform =\n        !platforms.includes('all') &&\n        !platforms.includes(device.type) &&\n        !platforms.includes(device.os.name)\n\n      const supportedWallet =\n        !filteredWallet &&\n        !excludedDevice &&\n        !invalidPlatform &&\n        (walletAvailable || displayUnavailable)\n\n      if (supportedWallet) {\n        acc.push(\n          // modify wallet to display error if unavailable but displayUnavailable is set\n          displayUnavailable && !walletAvailable\n            ? {\n                ...wallet,\n                getInterface: async () => {\n                  throw new Error(\n                    walletUnavailableMessage\n                      ? walletUnavailableMessage(wallet)\n                      : defaultWalletUnavailableMsg(wallet)\n                  )\n                }\n              }\n            : // otherwise add wallet to list as is\n              wallet\n        )\n      }\n\n      return acc\n    }, [] as InjectedWalletModule[])\n\n    if (wallets.length) {\n      const moreThanOneWallet = wallets.length > 1\n\n      // if more than one wallet, then remove detected wallet\n      const formattedWallets = wallets\n        .filter(wallet => {\n          const { label } = wallet\n          return !(label === ProviderLabel.Detected && moreThanOneWallet)\n        })\n        // then map to the WalletModule interface\n        .map(({ label, getIcon, getInterface }: InjectedWalletModule) => ({\n          label,\n          getIcon,\n          getInterface\n        }))\n        // default sort by alphabetical\n        .sort((a, b) => (a.label < b.label ? -1 : a.label > b.label ? 1 : 0))\n\n      return sort ? sort(formattedWallets) : formattedWallets\n    }\n\n    return []\n  }\n}\n","import type { WalletInit, EIP1193Provider } from '../../common'\nimport { CustomWindow } from './types'\ndeclare const window: CustomWindow\n\nexport function trustModule(): WalletInit {\n  if (typeof window === 'undefined') return () => null\n\n  return () => {\n    return {\n      label: 'Trust Wallet',\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async () => {\n        const ethereumInjectionExists = window.hasOwnProperty('ethereum')\n\n        let provider: EIP1193Provider\n\n        // check if trust is injected into window.ethereum\n        if (ethereumInjectionExists && window['ethereum'].isTrust) {\n          provider = window['ethereum']\n        } else if (window['trustwallet']) {\n          // directly use the window.trustwallet injection\n          provider = window['trustwallet']\n        } else {\n          // trustwallet extension is not installed\n          // send user to install page\n          window.open('https://trustwallet.com/browser-extension', '_blank')\n          throw new Error('Please Install Trust to use this wallet')\n        }\n\n        return {\n          provider\n        }\n      }\n    }\n  }\n}\n","import type { StaticJsonRpcProvider as StaticJsonRpcProviderType } from '@ethersproject/providers'\nimport type {\n  Chain,\n  ProviderAccounts,\n  WalletInit,\n  EIP1193Provider,\n  ChainId,\n  AccountAddress\n} from '../../common'\nimport { isHexString, WalletConnectOptions } from './index'\n\nfunction walletConnect(\n  options: WalletConnectOptions = { version: 1 }\n): WalletInit {\n  const {\n    bridge = 'https://bridge.walletconnect.org',\n    qrcodeModalOptions,\n    connectFirstChainId,\n    handleUri\n  } = options || {}\n\n  return () => {\n    return {\n      label: 'WalletConnect',\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async ({ chains, EventEmitter }) => {\n        const { StaticJsonRpcProvider } = await import(\n          '@ethersproject/providers'\n        )\n\n        const { ProviderRpcError, ProviderRpcErrorCode } = await import(\n          '../../common'\n        )\n\n        const { default: WalletConnect } = await import('@walletconnect/client')\n\n        // This is a cjs module and therefor depending on build tooling\n        // sometimes it will be nested in the { default } object and\n        // other times it will be the actual import\n        // @ts-ignore - It thinks it is missing properties since it expect it to be nested under default\n        let QRCodeModal: typeof import('@walletconnect/qrcode-modal').default =\n          await import('@walletconnect/qrcode-modal')\n\n        // @ts-ignore - TS thinks that there is no default property on the `QRCodeModal` but sometimes there is\n        QRCodeModal = QRCodeModal.default || QRCodeModal\n\n        const { Subject, fromEvent } = await import('rxjs')\n        const { takeUntil, take } = await import('rxjs/operators')\n\n        const connector = new WalletConnect({\n          bridge\n        })\n\n        if (handleUri) {\n          try {\n            await handleUri(connector.uri || '')\n          } catch (error) {\n            throw `An error occurred when handling the URI. Error: ${error}`\n          }\n        }\n\n        const emitter = new EventEmitter()\n\n        class EthProvider {\n          public request:any;\n          public connector: InstanceType<typeof WalletConnect>\n          public chains: Chain[]\n          public disconnect: EIP1193Provider['disconnect']\n          public emit: any;\n          public on: any;\n          public removeListener:any;\n\n          private disconnected$: InstanceType<typeof Subject>\n          private providers: Record<string, StaticJsonRpcProviderType>\n\n          constructor({\n            connector,\n            chains\n          }: {\n            connector: InstanceType<typeof WalletConnect>\n            chains: Chain[]\n          }) {\n            this.emit = emitter.emit.bind(emitter)\n            this.on = emitter.on.bind(emitter)\n            this.removeListener = emitter.removeListener.bind(emitter)\n\n            this.connector = connector\n            this.chains = chains\n            this.disconnected$ = new Subject()\n            this.providers = {}\n            let activeChain: ChainId\n\n            // listen for session updates\n            fromEvent(this.connector, 'session_update', (error, payload) => {\n              if (error) {\n                throw error\n              }\n              return payload\n            })\n              .pipe(takeUntil(this.disconnected$))\n              .subscribe({\n                next: ({ params }) => {\n                  const [{ accounts, chainId }] = params\n                  const lowerCaseAccounts = accounts.map(\n                    (accountAddress: AccountAddress) =>\n                      accountAddress.toLowerCase()\n                  )\n                  this.emit('accountsChanged', lowerCaseAccounts)\n                  const hexChainId = isHexString(chainId)\n                    ? chainId\n                    : `0x${chainId.toString(16)}`\n                  if (!activeChain || activeChain !== hexChainId) {\n                    this.emit('chainChanged', hexChainId)\n                    activeChain = hexChainId\n                  }\n                },\n                error: console.warn\n              })\n\n            // listen for disconnect event\n            fromEvent(this.connector, 'disconnect', (error, payload) => {\n              if (error) {\n                throw error\n              }\n\n              return payload\n            })\n              .pipe(takeUntil(this.disconnected$))\n              .subscribe({\n                next: () => {\n                  this.emit('accountsChanged', [])\n                  this.disconnected$.next(true)\n                  typeof localStorage !== 'undefined' &&\n                    localStorage.removeItem('walletconnect')\n                },\n                error: console.warn\n              })\n\n            this.disconnect = () => this.connector.killSession()\n\n            this.request = async ({ method, params }) => {\n              if (method === 'eth_chainId') {\n                return isHexString(this.connector.chainId)\n                  ? this.connector.chainId\n                  : `0x${this.connector.chainId.toString(16)}`\n              }\n\n              if (method === 'eth_requestAccounts') {\n                return new Promise<ProviderAccounts>((resolve, reject) => {\n                  // Subscribe to connection events\n                  fromEvent(this.connector, 'connect', (error, payload) => {\n                    if (error) {\n                      throw error\n                    }\n\n                    return payload\n                  })\n                    .pipe(take(1))\n                    .subscribe({\n                      next: ({ params }) => {\n                        const [{ accounts, chainId }] = params\n                        const lowerCaseAccounts = accounts.map(\n                          (accountAddress: AccountAddress) =>\n                            accountAddress.toLowerCase()\n                        )\n                        this.emit('accountsChanged', lowerCaseAccounts)\n                        const hexChainId = isHexString(chainId)\n                          ? chainId\n                          : `0x${chainId.toString(16)}`\n                        if (!activeChain) activeChain = hexChainId\n                        this.emit('chainChanged', hexChainId)\n                        QRCodeModal.close()\n                        resolve(lowerCaseAccounts)\n                      },\n                      error: reject\n                    })\n\n                  // Check if connection is already established\n                  if (!this.connector.connected) {\n                    // create new session\n                    this.connector\n                      .createSession(\n                        connectFirstChainId\n                          ? { chainId: parseInt(chains[0].id, 16) }\n                          : undefined\n                      )\n                      .then(() => {\n                        QRCodeModal.open(\n                          this.connector.uri,\n                          () =>\n                            reject(\n                              new ProviderRpcError({\n                                code: 4001,\n                                message: 'User rejected the request.'\n                              })\n                            ),\n                          qrcodeModalOptions\n                        )\n                      })\n                  } else {\n                    const { accounts, chainId } = this.connector.session\n                    const hexChainId = isHexString(chainId)\n                      ? chainId\n                      : `0x${chainId.toString(16)}`\n\n                    this.emit('chainChanged', hexChainId)\n                    if (!activeChain) activeChain = hexChainId as ChainId\n                    const lowerCaseAccounts = accounts.map(\n                      (accountAddress: AccountAddress) =>\n                        accountAddress.toLowerCase()\n                    )\n                    return resolve(lowerCaseAccounts)\n                  }\n                })\n              }\n\n              if (method === 'eth_selectAccounts') {\n                throw new ProviderRpcError({\n                  code: ProviderRpcErrorCode.UNSUPPORTED_METHOD,\n                  message: `The Provider does not support the requested method: ${method}`\n                })\n              }\n\n              if (method == 'wallet_switchEthereumChain') {\n                if (!params) {\n                  throw new ProviderRpcError({\n                    code: ProviderRpcErrorCode.INVALID_PARAMS,\n                    message: `The Provider requires a chainId to be passed in as an argument`\n                  })\n                }\n                const chainIdObj = params[0] as { chainId?: number }\n                if (\n                  !chainIdObj.hasOwnProperty('chainId') ||\n                  typeof chainIdObj['chainId'] === 'undefined'\n                ) {\n                  throw new ProviderRpcError({\n                    code: ProviderRpcErrorCode.INVALID_PARAMS,\n                    message: `The Provider requires a chainId to be passed in as an argument`\n                  })\n                }\n                return this.connector.sendCustomRequest({\n                  method: 'wallet_switchEthereumChain',\n                  params: [\n                    {\n                      chainId: chainIdObj.chainId\n                    }\n                  ]\n                })\n              }\n\n              // @ts-ignore\n              if (method === 'eth_sendTransaction') {\n                // @ts-ignore\n                return this.connector.sendTransaction(params[0])\n              }\n\n              // @ts-ignore\n              if (method === 'eth_signTransaction') {\n                // @ts-ignore\n                return this.connector.signTransaction(params[0])\n              }\n\n              // @ts-ignore\n              if (method === 'personal_sign') {\n                // @ts-ignore\n                return this.connector.signPersonalMessage(params)\n              }\n\n              // @ts-ignore\n              if (method === 'eth_sign') {\n                // @ts-ignore\n                return this.connector.signMessage(params)\n              }\n\n              // @ts-ignore\n              if (method.includes('eth_signTypedData')) {\n                // @ts-ignore\n                return this.connector.signTypedData(params)\n              }\n\n              if (method === 'eth_accounts') {\n                return this.connector.sendCustomRequest({\n                  id: 1337,\n                  jsonrpc: '2.0',\n                  method,\n                  params\n                })\n              }\n\n              const chainId = await this.request({ method: 'eth_chainId' })\n\n              if (!this.providers[chainId]) {\n                const currentChain = chains.find(({ id }) => id === chainId)\n\n                if (!currentChain) {\n                  throw new ProviderRpcError({\n                    code: ProviderRpcErrorCode.CHAIN_NOT_ADDED,\n                    message: `The Provider does not have a rpcUrl to make a request for the requested method: ${method}`\n                  })\n                }\n\n                this.providers[chainId] = new StaticJsonRpcProvider(\n                  currentChain.rpcUrl\n                )\n              }\n              return this.providers[chainId].send(\n                method,\n                // @ts-ignore\n                params\n              )\n            }\n          }\n        }\n\n        return {\n          provider: new EthProvider({ chains, connector })\n        }\n      }\n    }\n  }\n}\n\nexport default walletConnect\n","// @ts-ignore\nimport type { CoreTypes } from '@walletconnect/types'\nimport type {\n  Chain,\n  ProviderAccounts,\n  WalletInit,\n  EIP1193Provider\n} from '../../common'\nimport { JQueryStyleEventEmitter } from 'rxjs/internal/observable/fromEvent'\nimport { isHexString, WalletConnectOptions } from './index'\n\n// methods that require user interaction\nconst methods = [\n  'eth_sendTransaction',\n  'eth_signTransaction',\n  'personal_sign',\n  'eth_sign',\n  'eth_signTypedData',\n  'eth_signTypedData_v4'\n]\n\nfunction walletConnect(options?: WalletConnectOptions): WalletInit {\n  if (!options || options.version !== 2) {\n    throw new Error(\n      'WalletConnect requires a projectId. Please visit https://cloud.walletconnect.com to get one.'\n    )\n  }\n  const { projectId, handleUri, requiredChains, qrModalOptions } = options\n\n  return () => {\n    return {\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async ({chains, EventEmitter, appMetadata}) => {\n        const {ProviderRpcError, ProviderRpcErrorCode} = await import(\n          '../../common'\n          )\n\n        const {default: EthereumProvider} = await import(\n          '@walletconnect/ethereum-provider'\n          )\n\n        const {Subject, fromEvent} = await import('rxjs')\n        const {takeUntil, take} = await import('rxjs/operators')\n\n        const getMetaData = (): CoreTypes.Metadata | undefined => {\n          if (!appMetadata) return undefined\n          const wcMetaData: CoreTypes.Metadata = {\n            name: appMetadata.name,\n            description: appMetadata.description || '',\n            url: appMetadata.explore || appMetadata.gettingStartedGuide || '',\n            icons: []\n          }\n\n          if (appMetadata.icon !== undefined && appMetadata.icon.length) {\n            wcMetaData.icons = [appMetadata.icon]\n          }\n          if (appMetadata.logo !== undefined && appMetadata.logo.length) {\n            wcMetaData.icons = wcMetaData.icons.length\n              ? [...wcMetaData.icons, appMetadata.logo]\n              : [appMetadata.logo]\n          }\n\n          return wcMetaData\n        }\n\n        // default to mainnet\n        const requiredChainsParsed: number[] =\n          Array.isArray(requiredChains) &&\n          requiredChains.length &&\n          requiredChains.every(num => !isNaN(num))\n            ?\n            // Required as WC package does not support hex numbers\n            requiredChains.map(chainID => parseInt(String(chainID)))\n            : [1]\n\n        const connector = await EthereumProvider.init({\n          projectId,\n          chains: requiredChainsParsed, // default to mainnet\n          optionalChains: chains.map(({id}) => parseInt(id, 16)),\n          optionalMethods: methods,\n          showQrModal: true,\n          rpcMap: chains\n            .map(({id, rpcUrl}) => ({id, rpcUrl}))\n            .reduce((rpcMap: Record<number, string>, {id, rpcUrl}) => {\n              rpcMap[parseInt(id, 16)] = rpcUrl || ''\n              return rpcMap\n            }, {}),\n          metadata: getMetaData(),\n          qrModalOptions: qrModalOptions\n        })\n\n        const emitter = new EventEmitter()\n\n        class EthProvider {\n          public request: EIP1193Provider['request']\n          public connector: InstanceType<typeof EthereumProvider>\n          public chains: Chain[]\n          public disconnect: EIP1193Provider['disconnect']\n          public emit: any;\n          public on: any;\n          public removeListener: any;\n\n          private disconnected$: InstanceType<typeof Subject>\n\n          constructor({\n                        connector,\n                        chains\n                      }: {\n            connector: InstanceType<typeof EthereumProvider>\n            chains: Chain[]\n          }) {\n            this.emit = emitter.emit.bind(emitter)\n            this.on = emitter.on.bind(emitter)\n            this.removeListener = emitter.removeListener.bind(emitter)\n\n            this.connector = connector\n            this.chains = chains\n            this.disconnected$ = new Subject()\n\n            // listen for accountsChanged\n            fromEvent(this.connector, 'accountsChanged', payload => payload)\n              .pipe(takeUntil(this.disconnected$))\n              .subscribe({\n                next: accounts => {\n                  this.emit('accountsChanged', accounts)\n                },\n                error: console.warn\n              })\n\n            // listen for chainChanged\n            fromEvent(\n              this.connector as JQueryStyleEventEmitter<any, number>,\n              'chainChanged',\n              (payload: number) => payload\n            )\n              .pipe(takeUntil(this.disconnected$))\n              .subscribe({\n                next: chainId => {\n                  const hexChainId = isHexString(chainId)\n                    ? chainId\n                    : `0x${chainId.toString(16)}`\n                  this.emit('chainChanged', hexChainId)\n                },\n                error: console.warn\n              })\n\n            // listen for disconnect event\n            fromEvent(\n              this.connector as JQueryStyleEventEmitter<any, string>,\n              'session_delete',\n              (payload: string) => payload\n            )\n              .pipe(takeUntil(this.disconnected$))\n              .subscribe({\n                next: () => {\n                  this.emit('accountsChanged', [])\n                  this.disconnected$.next(true)\n                  typeof localStorage !== 'undefined' &&\n                  localStorage.removeItem('walletconnect')\n                },\n                error: console.warn\n              })\n\n            this.disconnect = () => {\n              if (this.connector.session) this.connector.disconnect()\n            }\n\n            if (options && handleUri) {\n              // listen for uri event\n              fromEvent(\n                this.connector as JQueryStyleEventEmitter<any, string>,\n                'display_uri',\n                (payload: string) => payload\n              )\n                .pipe(takeUntil(this.disconnected$))\n                .subscribe(async uri => {\n                  try {\n                    handleUri && (await handleUri(uri))\n                  } catch (error) {\n                    throw `An error occurred when handling the URI. Error: ${error}`\n                  }\n                })\n            }\n\n            const checkForSession = () => {\n              const session = this.connector.session\n              if (session) {\n                this.emit('accountsChanged', this.connector.accounts)\n                this.emit('chainChanged', this.connector.chainId)\n              }\n            }\n            checkForSession()\n            this.request = async ({method, params}: any) => {\n              if (method === 'eth_chainId') {\n                return isHexString(this.connector.chainId)\n                  ? this.connector.chainId\n                  : `0x${this.connector.chainId.toString(16)}`\n              }\n\n              if (method === 'eth_requestAccounts') {\n                return new Promise<ProviderAccounts>(\n                  async (resolve, reject) => {\n                    // Subscribe to connection events\n                    fromEvent(\n                      this.connector as JQueryStyleEventEmitter<\n                        any,\n                        { chainId: number }\n                      >,\n                      'connect',\n                      (payload: { chainId: number | string }) => payload\n                    )\n                      .pipe(take(1))\n                      .subscribe({\n                        next: ({chainId}) => {\n                          this.emit('accountsChanged', this.connector.accounts)\n                          const hexChainId = isHexString(chainId)\n                            ? chainId\n                            : `0x${chainId.toString(16)}`\n                          this.emit('chainChanged', hexChainId)\n                          resolve(this.connector.accounts)\n                        },\n                        error: reject\n                      })\n\n                    // Check if connection is already established\n                    if (!this.connector.session) {\n                      // create new session\n                      await this.connector.connect().catch(err => {\n                        console.error('err creating new session: ', err)\n                        reject(\n                          new ProviderRpcError({\n                            code: 4001,\n                            message: 'User rejected the request.'\n                          })\n                        )\n                      })\n                    } else {\n                      // update ethereum provider to load accounts & chainId\n                      const accounts = this.connector.accounts\n                      const chainId = this.connector.chainId\n                      const hexChainId = `0x${chainId.toString(16)}`\n                      this.emit('chainChanged', hexChainId)\n                      return resolve(accounts)\n                    }\n                  }\n                )\n              }\n\n              if (method === 'eth_selectAccounts') {\n                throw new ProviderRpcError({\n                  code: ProviderRpcErrorCode.UNSUPPORTED_METHOD,\n                  message: `The Provider does not support the requested method: ${method}`\n                })\n              }\n\n              if (method == 'wallet_switchEthereumChain') {\n                if (!params) {\n                  throw new ProviderRpcError({\n                    code: ProviderRpcErrorCode.INVALID_PARAMS,\n                    message: `The Provider requires a chainId to be passed in as an argument`\n                  })\n                }\n                const chainIdObj = params[0] as { chainId?: number }\n                if (\n                  !chainIdObj.hasOwnProperty('chainId') ||\n                  typeof chainIdObj['chainId'] === 'undefined'\n                ) {\n                  throw new ProviderRpcError({\n                    code: ProviderRpcErrorCode.INVALID_PARAMS,\n                    message: `The Provider requires a chainId to be passed in as an argument`\n                  })\n                }\n                return this.connector.request({\n                  method: 'wallet_switchEthereumChain',\n                  params: [\n                    {\n                      chainId: chainIdObj.chainId\n                    }\n                  ]\n                })\n              }\n\n              return this.connector.request<Promise<any>>({\n                method,\n                params\n              })\n            }\n          }\n        }\n\n        return {\n          provider: new EthProvider({chains, connector})\n        }\n      },\n      label: 'WalletConnect'\n    }\n  }\n}\n\nexport default walletConnect\n","import type { WalletInit } from '../../common'\nimport { EthereumProviderOptions } from '@walletconnect/ethereum-provider/dist/types/EthereumProvider'\nimport v1 from './v1'\nimport v2 from './v2'\n\nexport type WalletConnectOptions = {\n  /**\n   * Optional function to handle WalletConnect URI when it becomes available\n   */\n  handleUri?: (uri: string) => Promise<unknown>\n  connectFirstChainId?: boolean\n  bridge?: string\n  qrcodeModalOptions?: {\n    mobileLinks: string[]\n  }\n} & (\n  | {\n  /**\n   * Defaults to version: 1 - this behavior will be deprecated after the WalletConnect v1 sunset\n   */\n  version?: 1\n}\n  | {\n  /**\n   * Project ID associated with [WalletConnect account](https://cloud.walletconnect.com)\n   */\n  projectId: string\n  /**\n   * Defaults to version: 1 - this behavior will be deprecated after the WalletConnect v1 sunset\n   */\n  version: 2\n  /**\n   * List of Required Chain(s) ID for wallets to support in number format (integer or hex)\n   * Defaults to [1] - Ethereum\n   * The chains defined within the web3-onboard config will define the\n   * optional chains for the WalletConnect module\n   */\n  requiredChains?: number[] | undefined\n  /**\n   * `undefined` by default, see https://docs.walletconnect.com/2.0/web/walletConnectModal/options\n   */\n  qrModalOptions?: EthereumProviderOptions['qrModalOptions']\n}\n  )\n\nexport const isHexString = (value: string | number) => {\n  if (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n    return false\n  }\n\n  return true\n}\n\nexport function walletConnectModule(options?: WalletConnectOptions): WalletInit {\n  const version = (options && options.version) || 1\n  return version === 1 ? v1(options) : v2(options)\n}\n\n","import { WalletInit } from '../../common'\n\nexport function coinbaseModule({\n  darkMode = false\n}: {\n  darkMode?: boolean\n} = {}): WalletInit {\n  return () => {\n    return {\n      label: 'Coinbase Wallet',\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async ({ chains, appMetadata }) => {\n        const [chain] = chains\n        const { name, icon } = appMetadata || {}\n\n        // according to https://github.com/wagmi-dev/wagmi/issues/383\n        // @coinbase/wallet-sdk export double default fields\n        // so we need to detect it to get the real constructor\n        const { default: CoinbaseWalletSDK } = await import(\n          '@coinbase/wallet-sdk'\n        )\n        const CoinbaseWalletSDKConstructor = (\n          (CoinbaseWalletSDK as any).default\n            ? (CoinbaseWalletSDK as any).default\n            : CoinbaseWalletSDK\n        ) as typeof CoinbaseWalletSDK\n\n        const base64 = window.btoa(icon || '')\n        const appLogoUrl = `data:image/svg+xml;base64,${base64}`\n\n        const instance = new CoinbaseWalletSDKConstructor({\n          appName: name || '',\n          appLogoUrl,\n          darkMode\n        })\n\n        const coinbaseWalletProvider = instance.makeWeb3Provider(\n          chain.rpcUrl,\n          parseInt(chain.id)\n        )\n\n        // patch the chainChanged event\n        const on = coinbaseWalletProvider.on.bind(coinbaseWalletProvider)\n        coinbaseWalletProvider.on = (event, listener) => {\n          on(event, val => {\n            if (event === 'chainChanged') {\n              listener(`0x${(val as number).toString(16)}`)\n              return\n            }\n\n            listener(val)\n          })\n\n          return coinbaseWalletProvider\n        }\n\n        return {\n          provider: coinbaseWalletProvider,\n          instance\n        }\n      }\n    }\n  }\n}\n\n","import {\n  Chain,\n  WalletInit,\n  GetInterfaceHelpers,\n  EIP1193Provider,\n  ProviderAccounts\n} from '../../common'\nimport type { EthereumProvider } from '@ledgerhq/connect-kit-loader'\nimport type { StaticJsonRpcProvider as StaticJsonRpcProviderType } from '@ethersproject/providers'\nimport WalletConnect from '@walletconnect/client'\n\nconst isHexString = (value: string | number) => {\n  if (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n    return false\n  }\n\n  return true\n}\n\ninterface LedgerOptions {\n  chainId?: number\n  bridge?: string\n  infuraId?: string\n  rpc?: { [chainId: number]: string }\n}\n\nexport function ledgerModule(options?: LedgerOptions): WalletInit {\n  return () => {\n    return {\n      label: 'Ledger',\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async ({ chains, EventEmitter }: GetInterfaceHelpers) => {\n        const {\n          loadConnectKit,\n          SupportedProviders,\n          SupportedProviderImplementations\n        } = await import('@ledgerhq/connect-kit-loader')\n\n        const connectKit = await loadConnectKit()\n        connectKit.enableDebugLogs()\n        const checkSupportResult = connectKit.checkSupport({\n          providerType: SupportedProviders.Ethereum,\n          chainId: options?.chainId,\n          infuraId: options?.infuraId,\n          rpc: options?.rpc\n        })\n\n        // get the Ledger provider instance, it can be either Ledger Connect\n        // or WalletConnect\n        const instance = (await connectKit.getProvider()) as EthereumProvider\n\n        // return the Ledger Connect provider\n        if (\n          checkSupportResult.providerImplementation ===\n          SupportedProviderImplementations.LedgerConnect\n        ) {\n          return {\n            provider: instance as EIP1193Provider\n          }\n        }\n\n        // fallback to WalletConnect on unsupported platforms\n        const { StaticJsonRpcProvider } = await import(\n          '@ethersproject/providers'\n        )\n        const { ProviderRpcError, ProviderRpcErrorCode } = await import(\n          '../../common'\n        )\n        const { default: WalletConnect } = await import('@walletconnect/client')\n        const { Subject, fromEvent } = await import('rxjs')\n        const { takeUntil, take } = await import('rxjs/operators')\n        const connector = instance.connector as WalletConnect\n        const emitter = new EventEmitter()\n\n        class EthProvider {\n          public request: EIP1193Provider['request']\n          public connector: InstanceType<typeof WalletConnect>\n          public chains: Chain[]\n          public disconnect: EIP1193Provider['disconnect']\n          // @ts-ignore\n          public emit: typeof EventEmitter['emit']\n          // @ts-ignore\n          public on: typeof EventEmitter['on']\n          // @ts-ignore\n          public removeListener: typeof EventEmitter['removeListener']\n\n          private disconnected$: InstanceType<typeof Subject>\n          private providers: Record<string, StaticJsonRpcProviderType>\n\n          constructor({\n            connector,\n            chains\n          }: {\n            connector: InstanceType<typeof WalletConnect>\n            chains: Chain[]\n          }) {\n            this.emit = emitter.emit.bind(emitter)\n            this.on = emitter.on.bind(emitter)\n            this.removeListener = emitter.removeListener.bind(emitter)\n            this.connector = connector\n            this.chains = chains\n            this.disconnected$ = new Subject()\n            this.providers = {}\n\n            // listen for session updates\n            fromEvent(this.connector, 'session_update', (error, payload) => {\n              if (error) {\n                throw error\n              }\n\n              return payload\n            })\n              .pipe(takeUntil(this.disconnected$))\n              .subscribe({\n                next: ({ params }) => {\n                  const [{ accounts, chainId }] = params\n                  this.emit('accountsChanged', accounts)\n                  const hexChainId = isHexString(chainId)\n                    ? chainId\n                    : `0x${chainId.toString(16)}`\n                  this.emit('chainChanged', hexChainId)\n                },\n                error: console.warn\n              })\n\n            // listen for disconnect event\n            fromEvent(this.connector, 'disconnect', (error, payload) => {\n              if (error) {\n                throw error\n              }\n\n              return payload\n            })\n              .pipe(takeUntil(this.disconnected$))\n              .subscribe({\n                next: () => {\n                  this.emit('accountsChanged', [])\n                  this.disconnected$.next(true)\n                  typeof localStorage !== 'undefined' &&\n                    localStorage.removeItem('walletconnect')\n                },\n                error: console.warn\n              })\n\n            this.disconnect = () => this.connector.killSession()\n\n            // @ts-ignore\n            this.request = async ({ method, params }) => {\n              if (method === 'eth_chainId') {\n                return isHexString(this.connector.chainId)\n                  ? this.connector.chainId\n                  : `0x${this.connector.chainId.toString(16)}`\n              }\n\n              if (method === 'eth_requestAccounts') {\n                return new Promise<ProviderAccounts>((resolve, reject) => {\n                  // Check if connection is already established\n                  if (!this.connector.connected) {\n                    resolve((instance as any).request({ method }))\n                  } else {\n                    const { accounts, chainId } = this.connector.session\n\n                    const hexChainId = isHexString(chainId)\n                      ? chainId\n                      : `0x${chainId.toString(16)}`\n\n                    this.emit('chainChanged', hexChainId)\n                    return resolve(accounts)\n                  }\n\n                  // Subscribe to connection events\n                  fromEvent(this.connector, 'connect', (error, payload) => {\n                    if (error) {\n                      throw error\n                    }\n\n                    return payload\n                  })\n                    .pipe(take(1))\n                    .subscribe({\n                      next: ({ params }) => {\n                        const [{ accounts, chainId }] = params\n                        this.emit('accountsChanged', accounts)\n\n                        const hexChainId = isHexString(chainId)\n                          ? chainId\n                          : `0x${chainId.toString(16)}`\n                        this.emit('chainChanged', hexChainId)\n                        resolve(accounts)\n                      },\n                      error: reject\n                    })\n                })\n              }\n\n              if (method === 'eth_selectAccounts') {\n                throw new ProviderRpcError({\n                  code: ProviderRpcErrorCode.UNSUPPORTED_METHOD,\n                  message: `The Provider does not support the requested method: ${method}`\n                })\n              }\n\n              if (method == 'wallet_switchEthereumChain') {\n                throw new ProviderRpcError({\n                  code: ProviderRpcErrorCode.UNSUPPORTED_METHOD,\n                  message: `The Provider does not support the requested method: ${method}`\n                })\n              }\n\n              // @ts-ignore\n              if (method === 'eth_sendTransaction') {\n                // @ts-ignore\n                return this.connector.sendTransaction(params[0])\n              }\n\n              // @ts-ignore\n              if (method === 'eth_signTransaction') {\n                // @ts-ignore\n                return this.connector.signTransaction(params[0])\n              }\n\n              // @ts-ignore\n              if (method === 'personal_sign') {\n                // @ts-ignore\n                return this.connector.signPersonalMessage(params)\n              }\n\n              // @ts-ignore\n              if (method === 'eth_sign') {\n                // @ts-ignore\n                return this.connector.signMessage(params)\n              }\n\n              // @ts-ignore\n              if (method.includes('eth_signTypedData')) {\n                // @ts-ignore\n                return this.connector.signTypedData(params)\n              }\n\n              if (method === 'eth_accounts') {\n                return this.connector.sendCustomRequest({\n                  id: 1337,\n                  jsonrpc: '2.0',\n                  method,\n                  params\n                })\n              }\n\n              const chainId = await this.request({ method: 'eth_chainId' })\n\n              if (!this.providers[chainId]) {\n                const currentChain = chains.find(({ id }) => id === chainId)\n\n                if (!currentChain) {\n                  throw new ProviderRpcError({\n                    code: ProviderRpcErrorCode.CHAIN_NOT_ADDED,\n                    message: `The Provider does not have a rpcUrl to make a request for the requested method: ${method}`\n                  })\n                }\n\n                this.providers[chainId] = new StaticJsonRpcProvider(\n                  currentChain.rpcUrl\n                )\n              }\n\n              return this.providers[chainId].send(\n                method,\n                // @ts-ignore\n                params\n              )\n            }\n          }\n        }\n\n        return {\n          provider: new EthProvider({ chains, connector })\n        }\n      }\n    }\n  }\n}\n","import {WalletInit, createEIP1193Provider } from '../../common'\nimport { CustomWindow } from './types'\nimport detectEthereumProvider from 'tallyho-detect-provider'\nimport TallyHoOnboarding from 'tallyho-onboarding'\ndeclare const window: CustomWindow\n\nexport function tallyHoModule(): WalletInit {\n  if (typeof window === 'undefined') return () => null\n  return () => {\n    return {\n      label: 'Taho',\n      injectedNamespace: 'tally',\n      checkProviderIdentity: ({ provider }: { provider: any }) => {\n        !!provider && !!provider['isTally']\n      },\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async () => {\n        const provider = await detectEthereumProvider({ mustBeTallyHo: true })\n        if (!provider) {\n          const onboarding = new TallyHoOnboarding()\n          onboarding.startOnboarding()\n          throw new Error('Please install Taho to use this wallet')\n        } else {\n          return { provider: createEIP1193Provider(window.tally) }\n        }\n      },\n      platforms: ['desktop']\n    }\n  }\n}\n","import { detectCedeProvider } from '@cedelabs/providers'\nimport type { WalletInit } from '../../common'\nimport { createEIP1193Provider } from '../../common'\nimport { CustomWindow } from './types'\ndeclare const window: CustomWindow\n\nexport function cedeStoreModule(): WalletInit {\n  if (typeof window === 'undefined') return () => null\n  return () => ({\n    label: 'cede.store',\n    injectedNamespace: 'cede',\n    checkProviderIdentity: () => (window as CustomWindow).cede,\n    getIcon: async () => (await import('./icon')).default,\n    getInterface: async () => {\n      const provider: any = await detectCedeProvider()\n      if (!provider) {\n        window.open('https://cede.store', '_blank')\n        throw new Error('Please, install cede.store to use this wallet')\n      }\n\n      // handle disconnect\n      provider.once('lock', () => {\n        provider.emit('accountsChanged', [])\n      })\n\n      return Promise.resolve({\n        provider: createEIP1193Provider(window.cede, {\n          eth_requestAccounts: async ({ baseRequest }) => {\n            const vaults = (await baseRequest({\n              method: 'connect'\n            })) as []\n            return vaults.length > 0\n              ? ['To access cede.store vaults and accounts, use cede provider']\n              : []\n          },\n          eth_chainId: () => Promise.resolve('0x0'), // cede.store doesn't support chains, but we have to provide a value to complete the connection\n          wallet_switchEthereumChain: null,\n          wallet_addEthereumChain: null,\n          eth_getBalance: null,\n          eth_selectAccounts: null\n        })\n      })\n    },\n    platforms: ['desktop']\n  })\n}\n","import {WalletInit, createEIP1193Provider } from '../../common'\nimport { CustomWindow } from './types'\ndeclare const window: CustomWindow\n\nexport function xdefiWalletModule(): WalletInit {\n  if (typeof window === 'undefined') return () => null\n  return () => {\n    return {\n      label: 'XDEFI Wallet',\n      injectedNamespace: 'xfi',\n      checkProviderIdentity: ({ provider }: { provider: any }) => {\n        !!provider && !!provider['isXDEFI']\n      },\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async () => {\n       let provider\n        if (window.xfi && window.xfi.ethereum) {\n          provider = window.xfi.ethereum\n        }\n        if (!provider) {\n          const newWindow = window.open(\n            'https://install.xdefi.io/?utm_source=web3Onboard&utm_medium=organic&utm_campaign=xdefi.io&utm_id=xdefi.io',\n            '_blank',\n            'noopener noreferrer'\n          )\n          if (newWindow) newWindow.opener = null\n          throw new Error('Please install XDEFI Wallet to use this wallet')\n        } else {\n          return { provider: createEIP1193Provider(window.xfi.ethereum) }\n        }\n      },\n      platforms: ['desktop']\n    }\n  }\n}\n\n","import type { WalletInit } from '../../common'\n\ninterface SequenceOptions {\n  appName?: string\n  network?: number | string\n}\n\nexport function sequenceModule(options?: SequenceOptions): WalletInit {\n  const { appName = 'app', network = 137 } = options || {}\n\n  return () => {\n    // @ts-ignore\n    return window?.ethereum && window.ethereum?.isSequence\n      ? []\n      : {\n          label: 'Sequence',\n          getIcon: async () => (await import('./icon')).default,\n          getInterface: async () => {\n            const { sequence } = await import('0xsequence')\n            const { createEIP1193Provider } = await import(\n              '../../common'\n            )\n\n            const instance = await sequence.initWallet(network)\n\n            if (!instance.isConnected()) {\n              const connectDetails = await instance.connect({\n                app: appName,\n                authorize: true\n              })\n\n              if (!connectDetails.connected) {\n                throw new Error('Failed to connect to the wallet')\n              }\n            }\n\n            // The check for connection is necessary in case the user closes the popup or cancels\n            if (instance.isConnected()) {\n              const sequenceProvider = instance.getProvider()\n              const provider = createEIP1193Provider(sequenceProvider, {\n                eth_requestAccounts: async () => {\n                  const address = await instance.getAddress()\n                  return [address]\n                },\n                eth_chainId: async () => {\n                  const chainId = await instance.getChainId()\n\n                  return `0x${chainId.toString(16)}`\n                }\n              })\n\n              return {\n                provider,\n                instance\n              }\n            }\n\n            throw new Error('Failed to connect wallet')\n          }\n        }\n  }\n}\n\n","import type { WalletInit, APIKey, EIP1193Provider } from '../../common'\n\nexport function fortmaticModule(options: APIKey): WalletInit {\n  const { apiKey } = options\n\n  return () => {\n    return {\n      label: 'Fortmatic',\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async ({ EventEmitter, BigNumber, chains }) => {\n        const { default: Fortmatic } = await import('fortmatic')\n        const {\n          createEIP1193Provider,\n          ProviderRpcErrorCode,\n          ProviderRpcError\n        } = await import('../../common')\n\n        const emitter = new EventEmitter()\n\n        let instance = new Fortmatic(apiKey, {\n          chainId: parseInt(chains[0].id),\n          rpcUrl: chains[0].rpcUrl || ''\n        })\n\n        let fortmaticProvider = instance.getProvider()\n        let provider: EIP1193Provider\n\n        function patchProvider(): EIP1193Provider {\n          const patchedProvider = createEIP1193Provider(fortmaticProvider, {\n            eth_requestAccounts: async () => {\n              try {\n                const accounts = await instance.user.login()\n                return accounts\n              } catch (error) {\n                const { code } = error as { code: number }\n                if (code === -32603) {\n                  throw new ProviderRpcError({\n                    code: ProviderRpcErrorCode.ACCOUNT_ACCESS_REJECTED,\n                    message: 'Account access rejected'\n                  })\n                }\n\n                return []\n              }\n            },\n            eth_selectAccounts: null,\n            eth_getBalance: async () => {\n              const [balance] = await instance.user.getBalances()\n              return balance\n                ? BigNumber.from(balance.crypto_amount)\n                    .mul('1000000000000000000')\n                    .toString()\n                : '0'\n            },\n            wallet_switchEthereumChain: async ({ params }) => {\n              const chain = chains.find(({ id }) => id === params[0].chainId)\n              if (!chain) throw new Error('chain must be set before switching')\n\n              // re-instantiate instance with new network\n              instance = new Fortmatic(apiKey, {\n                chainId: parseInt(chain.id),\n                rpcUrl: chain.rpcUrl || ''\n              })\n\n              // get the provider again\n              fortmaticProvider = instance.getProvider()\n\n              emitter.emit('chainChanged', chain.id)\n\n              // patch the provider\n              patchProvider()\n\n              return null\n            }\n          })\n\n          if (!provider) {\n            patchedProvider.on = emitter.on.bind(emitter)\n            patchedProvider.disconnect = () => () => instance.user.logout()\n\n            return patchedProvider\n          } else {\n            provider.request = patchedProvider.request.bind(patchedProvider)\n\n            // @ts-ignore - bind old methods for backwards compat\n            provider.send = patchedProvider.send.bind(patchedProvider)\n\n            // @ts-ignore - bind old methods for backwards compat\n            provider.sendAsync = patchedProvider.sendAsync.bind(patchedProvider)\n\n            return provider\n          }\n        }\n\n        provider = patchProvider()\n\n        return {\n          provider,\n          instance\n        }\n      }\n    }\n  }\n}\n\n","import type { WalletInit, APIKey } from '../../common'\n\nexport function portisModule(options: APIKey): WalletInit {\n  const { apiKey } = options\n\n  return () => {\n    return {\n      label: 'Portis',\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async ({ chains }) => {\n        const { default: Portis } = await import('@portis/web3')\n        const { createEIP1193Provider } = await import('../../common')\n\n        const instance = new Portis(apiKey, {\n          nodeUrl: chains[0].rpcUrl || '',\n          chainId: chains[0].id\n        })\n\n        const portisProvider = instance.provider\n\n        const provider = createEIP1193Provider(portisProvider, {\n          eth_requestAccounts: portisProvider.enable,\n          eth_selectAccounts: null,\n          wallet_switchEthereumChain: async ({ params }) => {\n            const chain = chains.find(({ id }) => id === params[0].chainId)\n            if (!chain) throw new Error('chain must be set before switching')\n\n            instance.changeNetwork({\n              nodeUrl: chain.rpcUrl || '',\n              chainId: chain.id\n            })\n\n            //@ts-ignore\n            provider.emit('chainChanged', chain.id)\n\n            return null\n          }\n        })\n\n        return {\n          provider,\n          instance\n        }\n      }\n    }\n  }\n}\n","import type { WalletInit, EIP1193Provider } from '../../common'\nimport { openInfinityWallet } from '@infinitywallet/infinity-connector'\nimport { CustomWindow } from './types'\ndeclare const window: CustomWindow\n\ninterface InfinityWalletOptions {\n  chainId?: number\n}\n\nexport function infinityWalletModule(options?: InfinityWalletOptions): WalletInit {\n  if (typeof window === 'undefined') return () => null\n\n  return () => {\n    return {\n      label: 'Infinity Wallet',\n      getIcon: async () => (await import('./icon')).default,\n      getInterface: async () => {\n        const ethereumInjectionExists = window.hasOwnProperty('ethereum')\n\n        let provider: EIP1193Provider\n\n        // check if Infinity Wallet is injected into window.ethereum\n        if (ethereumInjectionExists && window['ethereum'].isInfinityWallet) {\n          provider = window['ethereum']\n        } else {\n          openInfinityWallet(window.location.href, options?.chainId)\n          throw new Error(\n            'Opening Infinity Wallet! If not installed first download to use Infinity Wallet'\n          )\n        }\n\n        return {\n          provider\n        }\n      }\n    }\n  }\n}\n\n","export { injectedModule } from './injected';\nexport { trustModule } from './trust';\nexport { walletConnectModule } from './walletconnect';\nexport { coinbaseModule } from './coinbase';\n\nexport {ledgerModule} from './ledger';\nexport {tallyHoModule} from './tallyho';\nexport {cedeStoreModule} from './cede-store';\nexport {xdefiWalletModule} from './xdefi';\nexport {sequenceModule} from './sequence';\nexport {fortmaticModule} from './fortmatic';\nexport {portisModule} from './portis';\nexport {infinityWalletModule} from './infinity-wallet';\n// export {torusModule} from './torus';\n\n\n\n","import { ChainId, RequestEndpoint } from './types'\n\nexport function getRequestUrl({\n  chainId,\n  endpoint,\n  apiKey\n}: {\n  chainId: ChainId\n  endpoint: RequestEndpoint\n  apiKey?: string\n}): { url: string; headers: { authorization?: string } } {\n  switch (endpoint) {\n    case 'blockPrices':\n      return {\n        url: `https://api.blocknative.com/gasprices/blockprices?chainid=${parseInt(\n          chainId,\n          16\n        )}`,\n        headers: apiKey\n          ? {\n              authorization: apiKey\n            }\n          : {}\n      }\n    default:\n      throw new Error(`Unrecognized request endpoint: ${endpoint}`)\n  }\n}\n","import Joi from 'joi'\nimport { RequestOptions, StreamOptions } from './types'\nimport { validate, type ValidateReturn } from '../common'\n\nconst requestOptions = Joi.object({\n  endpoint: Joi.string().valid('blockPrices').required(),\n  chains: Joi.array().items(Joi.string().valid('0x1', '0x89')).required(),\n  apiKey: Joi.string(),\n  poll: Joi.number().min(1000).max(5000)\n})\n\nexport const validateRequest = (\n  request: RequestOptions | StreamOptions\n): ValidateReturn => validate(requestOptions, request)\n","import { firstValueFrom, zip } from 'rxjs'\nimport { ajax } from 'rxjs/ajax'\nimport { getRequestUrl } from './utils'\nimport { RequestOptions, GasPlatformResponse } from './types'\nimport { validateRequest } from './validation'\n\nfunction get(options: RequestOptions): Promise<GasPlatformResponse[]> {\n  const invalid = validateRequest(options)\n\n  if (invalid) {\n    throw invalid\n  }\n\n  const { chains, endpoint, apiKey } = options\n\n  const requestUrls = chains.map(chainId =>\n    getRequestUrl({ chainId, apiKey, endpoint })\n  )\n\n  return firstValueFrom(\n    // get data\n    zip(\n      requestUrls.map(({ url, headers }) =>\n        ajax.getJSON<GasPlatformResponse>(url, headers)\n      )\n    )\n  )\n}\n\nexport default get\n","import { Observable, timer, zip } from 'rxjs'\nimport { switchMap } from 'rxjs/operators'\nimport { ajax } from 'rxjs/ajax'\nimport { getRequestUrl } from './utils'\nimport { StreamOptions, GasPlatformResponse } from './types'\nimport { validateRequest } from './validation'\n\nfunction stream(options: StreamOptions): Observable<GasPlatformResponse[]> {\n  const invalid = validateRequest(options)\n\n  if (invalid) {\n    throw invalid\n  }\n\n  const { chains, endpoint, apiKey, poll = 5000 } = options\n\n  const requestUrls = chains.map(chainId =>\n    getRequestUrl({ chainId, apiKey, endpoint })\n  )\n\n  // start polling\n  return timer(0, poll).pipe(\n    switchMap(() =>\n      // combine results of all chains request in to one stream emission\n      zip(\n        requestUrls.map(({ url, headers }) =>\n          ajax.getJSON<GasPlatformResponse>(url, headers)\n        )\n      )\n    )\n  )\n}\n\nexport default stream\n","import get from './get'\nimport stream from './stream'\n\nexport * from './types'\n\nexport default {\n  get,\n  stream\n}\n","import BigNumber from 'bignumber.js'\nimport type { Network } from 'bnc-sdk'\nimport type { Notification, PreflightNotificationsOptions } from './types'\nimport { addNotification, removeNotification } from './store/actions'\nimport { eventToType } from './notify'\nimport { networkToChainId } from './utils'\nimport { validatePreflightNotifications } from './validation'\nimport {nanoid} from \"nanoid\";\nimport {getTranslations} from \"./locales\";\nimport {state} from \"./store\";\n\nlet notificationsArr: Notification[]\nstate.select('notifications').subscribe(notifications => {\n  notificationsArr = notifications\n})\n\nexport async function preflightNotifications(\n  options: PreflightNotificationsOptions\n): Promise<string | void> {\n  const invalid = validatePreflightNotifications(options)\n\n  if (invalid) {\n    throw invalid\n  }\n\n  const {\n    sendTransaction,\n    estimateGas,\n    gasPrice,\n    balance,\n    txDetails,\n    txApproveReminderTimeout\n  } = options\n\n  // Check for reminder timeout and confirm its greater than 3 seconds\n  const reminderTimeout: number =\n    txApproveReminderTimeout && txApproveReminderTimeout > 3000\n      ? txApproveReminderTimeout\n      : 15000\n\n  // if `balance` or `estimateGas` or `gasPrice` is not provided,\n  // then sufficient funds check is disabled\n  // if `txDetails` is not provided,\n  // then duplicate transaction check is disabled\n  // if dev doesn't want notify to initiate the transaction\n  // and `sendTransaction` is not provided, then transaction\n  // rejected notification is disabled\n  // to disable hints for `txAwaitingApproval`, `txConfirmReminder`\n  // or any other notification, then return false from listener functions\n\n  const [gas, price] = await gasEstimates(estimateGas, gasPrice)\n  const id = createId(nanoid())\n  const value = new BigNumber((txDetails && txDetails.value) || 0)\n\n  // check sufficient balance if required parameters are available\n  if (balance && gas && price) {\n    const transactionCost = gas.times(price).plus(value)\n\n    // if transaction cost is greater than the current balance\n    if (transactionCost.gt(new BigNumber(balance))) {\n      const eventCode = 'nsfFail'\n\n      addNotification(buildNotification(eventCode, id))\n    }\n  }\n\n  // check previous transactions awaiting approval\n  const txRequested = notificationsArr.find(tx => tx.eventCode === 'txRequest')\n\n  if (txRequested) {\n    const eventCode = 'txAwaitingApproval'\n\n    const newNotification = buildNotification(eventCode, txRequested.id)\n    addNotification(newNotification)\n  }\n\n  // confirm reminder timeout defaults to 20 seconds\n  setTimeout(() => {\n    const awaitingApproval = notificationsArr.find(\n      tx => tx.id === id && tx.eventCode === 'txRequest'\n    )\n\n    if (awaitingApproval) {\n      const eventCode = 'txConfirmReminder'\n\n      const newNotification = buildNotification(eventCode, awaitingApproval.id)\n      addNotification(newNotification)\n    }\n  }, reminderTimeout)\n\n  const eventCode = 'txRequest'\n  addNotification(buildNotification(eventCode, id))\n\n  // if not provided with sendTransaction function,\n  // resolve with transaction hash(or void) so dev can initiate transaction\n  if (!sendTransaction) {\n    return id\n  }\n  // get result and handle errors\n  let hash\n  try {\n    hash = await sendTransaction()\n  } catch (error) {\n    type CatchError = {\n      message: string\n      stack: string\n    }\n    const { eventCode, errorMsg } = extractMessageFromError(error as CatchError)\n\n    addNotification(buildNotification(eventCode, id))\n    console.error(errorMsg)\n    return\n  }\n\n  // Remove preflight notification if a resolves to hash\n  // and let the SDK take over\n  removeNotification(id)\n  if (hash) {\n    return hash\n  }\n  return\n}\n\nconst buildNotification = (eventCode: string, id: string): Notification => {\n  return {\n    eventCode,\n    type: eventToType(eventCode),\n    id,\n    key: createKey(id, eventCode),\n    message: createMessageText(eventCode),\n    startTime: Date.now(),\n    network: Object.keys(networkToChainId).find(\n      key => networkToChainId[key] === state.get().chains[0].id\n    ) as Network,\n    autoDismiss: 0\n  }\n}\n\nconst createKey = (id: string, eventCode: string): string => {\n  return `${id}-${eventCode}`\n}\n\nconst createId = (id: string): string => {\n  return `${id}-preflight`\n}\n\nconst createMessageText = (eventCode: string): string => {\n  const notificationDefaultMessages = getTranslations().notify\n\n  const notificationMessageType = notificationDefaultMessages.transaction\n\n  return notificationDefaultMessages.transaction[\n    eventCode as keyof typeof notificationMessageType\n  ]\n}\n\nexport function extractMessageFromError(error: {\n  message: string\n  stack: string\n}): { eventCode: string; errorMsg: string } {\n  if (!error.stack || !error.message) {\n    return {\n      eventCode: 'txError',\n      errorMsg: 'An unknown error occured'\n    }\n  }\n\n  const message = error.stack || error.message\n\n  if (message.includes('User denied transaction signature')) {\n    return {\n      eventCode: 'txSendFail',\n      errorMsg: 'User denied transaction signature'\n    }\n  }\n\n  if (message.includes('transaction underpriced')) {\n    return {\n      eventCode: 'txUnderpriced',\n      errorMsg: 'Transaction is under priced'\n    }\n  }\n\n  return {\n    eventCode: 'txError',\n    errorMsg: message\n  }\n}\n\nconst gasEstimates = async (\n  gasFunc: () => Promise<string>,\n  gasPriceFunc: () => Promise<string>\n) => {\n  if (!gasFunc || !gasPriceFunc) {\n    return Promise.resolve([])\n  }\n\n  const gasProm = gasFunc()\n  if (!gasProm.then) {\n    throw new Error('The `estimateGas` function must return a Promise')\n  }\n\n  const gasPriceProm = gasPriceFunc()\n  if (!gasPriceProm.then) {\n    throw new Error('The `gasPrice` function must return a Promise')\n  }\n\n  return Promise.all([gasProm, gasPriceProm])\n    .then(([gasResult, gasPriceResult]) => {\n      if (typeof gasResult !== 'string') {\n        throw new Error(\n          `The Promise returned from calling 'estimateGas' must resolve with a value of type 'string'. Received a value of: ${gasResult} with a type: ${typeof gasResult}`\n        )\n      }\n\n      if (typeof gasPriceResult !== 'string') {\n        throw new Error(\n          `The Promise returned from calling 'gasPrice' must resolve with a value of type 'string'. Received a value of: ${gasPriceResult} with a type: ${typeof gasPriceResult}`\n        )\n      }\n\n      return [new BigNumber(gasResult), new BigNumber(gasPriceResult)]\n    })\n    .catch(error => {\n      throw new Error(`There was an error getting gas estimates: ${error}`)\n    })\n}\n","import connectWallet from './connect'\nimport disconnectWallet from './disconnect'\nimport setChain from './chain'\nimport type { ConnectModalOptions, InitOptions, Notify, Theme } from './types'\nimport { APP_INITIAL_STATE, STORAGE_KEYS } from './constants'\nimport { configuration, updateConfiguration } from './configuration'\nimport updateBalances from './update-balances'\nimport { chainIdToHex, getLocalStore, setLocalStore } from './utils'\nimport { preflightNotifications } from './preflight-notifications'\n\nimport {\n  validateInitOptions,\n  validateNotify,\n  validateNotifyOptions\n} from './validation'\n\nimport {\n  addChains,\n  updateAccountCenter,\n  updateNotify,\n  customNotification,\n  setLocale,\n  setPrimaryWallet,\n  setWalletModules,\n  updateConnectModal,\n  updateTheme\n} from './store/actions'\nimport {beeWeb3ConnectLocales} from \"./locales\";\nimport {state} from \"./store\";\n\nconst API = {\n  connectWallet,\n  disconnectWallet,\n  setChain,\n  state: {\n    get: state.get,\n    select: state.select,\n    actions: {\n      setWalletModules,\n      setLocale,\n      updateNotify,\n      customNotification,\n      preflightNotifications,\n      updateBalances,\n      updateAccountCenter,\n      setPrimaryWallet,\n      updateTheme\n    }\n  }\n}\n\nexport type BeeWeb3ConnectAPI = typeof API\n\nexport type {\n  InitOptions,\n  ConnectOptions,\n  DisconnectOptions,\n  WalletState,\n  ConnectedChain,\n  AccountCenter,\n  AppState,\n  CustomNotification,\n  Notification,\n  Notify,\n  UpdateNotification,\n  PreflightNotificationsOptions,\n  Theme,\n  AccountCenterPosition,\n  Locale,\n} from './types'\n\nexport type { EIP1193Provider } from '../../common'\n\nexport function Init(options: InitOptions): BeeWeb3ConnectAPI {\n  if (typeof window === 'undefined') return API\n\n  if (options) {\n    const error = validateInitOptions(options)\n\n    if (error) {\n      throw error\n    }\n  }\n\n  const {\n    wallets,\n    chains,\n    appMetadata = null,\n    locale ,\n    accountCenter,\n    apiKey,\n    notify,\n    gas,\n    connect,\n    // transactionPreview,\n    theme,\n    disableFontDownload,\n    unstoppableResolution\n  } = options\n\n\n\n\n  const { device } = configuration\n\n  addChains(chainIdToHex(chains))\n\n  if (typeof connect !== undefined) {\n    updateConnectModal(connect)\n  }\n\n  // update locale\n  if (typeof locale !== 'undefined' && Object.keys(beeWeb3ConnectLocales).includes(locale)) {\n    setLocale(locale);\n  } else {\n    setLocale('en');\n  }\n\n  // update accountCenter\n  if (typeof accountCenter !== 'undefined') {\n    let accountCenterUpdate\n\n    if (device.type === 'mobile') {\n      accountCenterUpdate = {\n        ...APP_INITIAL_STATE.accountCenter,\n        ...(accountCenter.mobile ? accountCenter.mobile : {})\n      }\n    } else if (accountCenter.desktop) {\n      accountCenterUpdate = {\n        ...APP_INITIAL_STATE.accountCenter,\n        ...accountCenter.desktop\n      }\n    }\n    updateAccountCenter(accountCenterUpdate)\n  }\n\n  // update notify\n  if (typeof notify !== 'undefined') {\n    if ('desktop' in notify || 'mobile' in notify) {\n      const error = validateNotifyOptions(notify)\n\n      if (error) {\n        throw error\n      }\n\n      let notifyUpdate: Partial<Notify>\n\n      if (device.type === 'mobile' && notify.mobile) {\n        notifyUpdate = {\n          ...APP_INITIAL_STATE.notify,\n          ...notify.mobile\n        }\n      } else if (notify.desktop) {\n        notifyUpdate = {\n          ...APP_INITIAL_STATE.notify,\n          ...notify.desktop\n        }\n      }\n\n      updateNotify(notifyUpdate)\n    } else {\n      const error = validateNotify(notify as Notify)\n\n      if (error) {\n        throw error\n      }\n\n      const notifyUpdate: Partial<Notify> = {\n        ...APP_INITIAL_STATE.notify,\n        ...notify\n      }\n\n      updateNotify(notifyUpdate)\n    }\n  } else {\n    const notifyUpdate: Partial<Notify> = APP_INITIAL_STATE.notify\n\n    updateNotify(notifyUpdate)\n  }\n\n  updateConfiguration({\n    appMetadata,\n    apiKey,\n    initialWalletInit: wallets,\n    gas,\n    unstoppableResolution\n  })\n\n\n\n  theme && updateTheme(theme)\n\n  // handle auto connection of last wallet\n  if (\n    connect &&\n    (connect.autoConnectLastWallet || connect.autoConnectAllPreviousWallet)\n  ) {\n    const lastConnectedWallets = getLocalStore(\n      STORAGE_KEYS.LAST_CONNECTED_WALLET\n    )\n    try {\n      const lastConnectedWalletsParsed = JSON.parse(lastConnectedWallets)\n      if (\n        lastConnectedWalletsParsed &&\n        Array.isArray(lastConnectedWalletsParsed) &&\n        lastConnectedWalletsParsed.length\n      ) {\n        connectAllPreviousWallets(lastConnectedWalletsParsed, connect)\n      }\n    } catch (err) {\n      // Handle for legacy single wallet approach\n      // Above try will throw syntax error is local storage is not json\n      if (err instanceof SyntaxError && lastConnectedWallets) {\n        API.connectWallet({\n          autoSelect: {\n            label: lastConnectedWallets,\n            disableModals: true\n          }\n        })\n      }\n    }\n  }\n\n  return API\n}\n\n\nconst connectAllPreviousWallets = async (\n  lastConnectedWallets: Array<string>,\n  connect: ConnectModalOptions\n): Promise<void> => {\n  const activeWalletsList = []\n  const parsedWalletList = lastConnectedWallets\n\n  if (!connect.autoConnectAllPreviousWallet) {\n    API.connectWallet({\n      autoSelect: { label: parsedWalletList[0], disableModals: true }\n    })\n    activeWalletsList.push(parsedWalletList[0])\n  } else {\n    // Loop in reverse to maintain wallet order\n    for (let i = parsedWalletList.length; i--; ) {\n      const walletConnectionPromise = await API.connectWallet({\n        autoSelect: { label: parsedWalletList[i], disableModals: true }\n      })\n      // Update localStorage list for available wallets\n      if (walletConnectionPromise.some(r => r.label === parsedWalletList[i])) {\n        activeWalletsList.unshift(parsedWalletList[i])\n      }\n    }\n  }\n  setLocalStore(\n    STORAGE_KEYS.LAST_CONNECTED_WALLET,\n    JSON.stringify(activeWalletsList)\n  )\n}\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["initializeWalletModules","ProviderRpcError","Bignumber","wallets","walletModule","preflightNotifications","customNotification","filter","get","takeUntil","i1","i3","i2.Web3ConnectSvgComponent","i3.Web3ConnectSpinnerComponent","i3.Web3ConnectBadgeComponent","i2.InstallWalletComponent","i3.Web3ConnectSvgComponent","i2.WalletButtonComponent","i3.Web3ConnectWarningComponent","i2.Web3ConnectBadgeComponent","i1.Web3ConnectSvgComponent","BigNumber","EventEmitter","i2.AgreementComponent","i3.SelectingWalletComponent","i4.ConnectingWalletComponent","i5.ConnectedWalletComponent","i6.Web3ConnectSvgComponent","i7.Web3ConnectWarningComponent","i2.NotificationChainComponent","i2.NotificationContentComponent","i3.NotificationStatusComponent","i4.Web3ConnectSvgComponent","i2.NotificationComponent","i2","i4.Web3ConnectNetworkSelectComponent","i1.TokenListService","i2.AccountCenterWalletComponent","i3.ClickedOutsideDirective","i5.Web3ConnectBadgeComponent","i6.Web3ConnectNetworkSelectComponent","i7.TokenListComponent","i2.AccountCenterMinComponent","i3.AccountCenterMaxComponent","i2.ConnectComponent","i3.NotifyComponent","i4.AccountCenterComponent","standardWallets","walletConnect","isHexString","v1","v2","connectWallet","disconnectWallet"],"mappings":"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"}