autemaliquam
Version:
A simple, maximally extensible, dependency minimized framework for building modern Ethereum dApps
1 lines • 51.7 kB
JSON
{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar _connectorsByName,\n _jsxFileName = \"/home/jsw/code/codeoneline/web3-react/example/pages/index.tsx\",\n _s = $RefreshSig$(),\n _s2 = $RefreshSig$(),\n _s3 = $RefreshSig$(),\n _s4 = $RefreshSig$(),\n _s5 = $RefreshSig$(),\n _s6 = $RefreshSig$();\n\nvar __jsx = React.createElement;\nimport React from 'react';\nimport { Web3ReactProvider, useWeb3React, UnsupportedChainIdError } from '@web3-react-wan/core';\nimport { NoEthereumProviderError, UserRejectedRequestError as UserRejectedRequestErrorInjected } from '@web3-react-wan/injected-connector';\nimport { UserRejectedRequestError as UserRejectedRequestErrorWalletConnect } from '@web3-react-wan/walletconnect-connector';\nimport { UserRejectedRequestError as UserRejectedRequestErrorFrame } from '@web3-react-wan/frame-connector';\nimport { Web3Provider } from '@wansproject/providers';\nimport { formatEther } from '@wansproject/units';\nimport { useEagerConnect, useInactiveListener } from '../hooks';\nimport { injected, network, walletconnect, walletlink, ledger, trezor, frame, authereum, fortmatic, magic, portis, squarelink, torus } from '../connectors';\nimport { Spinner } from '../components/Spinner';\nvar ConnectorNames;\n\n(function (ConnectorNames) {\n ConnectorNames[\"Injected\"] = \"Injected\";\n ConnectorNames[\"Network\"] = \"Network\";\n ConnectorNames[\"WalletConnect\"] = \"WalletConnect\";\n ConnectorNames[\"WalletLink\"] = \"WalletLink\";\n ConnectorNames[\"Ledger\"] = \"Ledger\";\n ConnectorNames[\"Trezor\"] = \"Trezor\";\n ConnectorNames[\"Frame\"] = \"Frame\";\n ConnectorNames[\"Authereum\"] = \"Authereum\";\n ConnectorNames[\"Fortmatic\"] = \"Fortmatic\";\n ConnectorNames[\"Magic\"] = \"Magic\";\n ConnectorNames[\"Portis\"] = \"Portis\";\n ConnectorNames[\"Squarelink\"] = \"Squarelink\";\n ConnectorNames[\"Torus\"] = \"Torus\";\n})(ConnectorNames || (ConnectorNames = {}));\n\nvar connectorsByName = (_connectorsByName = {}, _defineProperty(_connectorsByName, ConnectorNames.Injected, injected), _defineProperty(_connectorsByName, ConnectorNames.Network, network), _defineProperty(_connectorsByName, ConnectorNames.WalletConnect, walletconnect), _defineProperty(_connectorsByName, ConnectorNames.WalletLink, walletlink), _defineProperty(_connectorsByName, ConnectorNames.Ledger, ledger), _defineProperty(_connectorsByName, ConnectorNames.Trezor, trezor), _defineProperty(_connectorsByName, ConnectorNames.Frame, frame), _defineProperty(_connectorsByName, ConnectorNames.Authereum, authereum), _defineProperty(_connectorsByName, ConnectorNames.Fortmatic, fortmatic), _defineProperty(_connectorsByName, ConnectorNames.Magic, magic), _defineProperty(_connectorsByName, ConnectorNames.Portis, portis), _defineProperty(_connectorsByName, ConnectorNames.Squarelink, squarelink), _defineProperty(_connectorsByName, ConnectorNames.Torus, torus), _connectorsByName);\n\nfunction getErrorMessage(error) {\n if (error instanceof NoEthereumProviderError) {\n return 'No Ethereum browser extension detected, install MetaMask on desktop or visit from a dApp browser on mobile.';\n } else if (error instanceof UnsupportedChainIdError) {\n return \"You're connected to an unsupported network.\";\n } else if (error instanceof UserRejectedRequestErrorInjected || error instanceof UserRejectedRequestErrorWalletConnect || error instanceof UserRejectedRequestErrorFrame) {\n return 'Please authorize this website to access your Ethereum account.';\n } else {\n console.error(error);\n return 'An unknown error occurred. Check the console for more details.';\n }\n}\n\nfunction getLibrary(provider) {\n var library = new Web3Provider(provider);\n library.pollingInterval = 12000;\n return library;\n}\n\nexport default function () {\n return __jsx(Web3ReactProvider, {\n getLibrary: getLibrary,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 5\n }\n }, __jsx(App, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 7\n }\n }));\n}\n\nfunction ChainId() {\n _s();\n\n var _useWeb3React = useWeb3React(),\n chainId = _useWeb3React.chainId;\n\n return __jsx(React.Fragment, null, __jsx(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 7\n }\n }, \"Chain Id\"), __jsx(\"span\", {\n role: \"img\",\n \"aria-label\": \"chain\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 7\n }\n }, \"\\u26D3\"), __jsx(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 7\n }\n }, chainId !== null && chainId !== void 0 ? chainId : ''));\n}\n\n_s(ChainId, \"reA9FJLirN6bQm5X4sUUozGx1bA=\", false, function () {\n return [useWeb3React];\n});\n\n_c = ChainId;\n\nfunction BlockNumber() {\n _s2();\n\n var _useWeb3React2 = useWeb3React(),\n chainId = _useWeb3React2.chainId,\n library = _useWeb3React2.library;\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n blockNumber = _React$useState2[0],\n setBlockNumber = _React$useState2[1];\n\n React.useEffect(function () {\n if (!!library) {\n var stale = false;\n library.getBlockNumber().then(function (blockNumber) {\n if (!stale) {\n setBlockNumber(blockNumber);\n }\n })[\"catch\"](function () {\n if (!stale) {\n setBlockNumber(null);\n }\n });\n\n var updateBlockNumber = function updateBlockNumber(blockNumber) {\n setBlockNumber(blockNumber);\n };\n\n library.on('block', updateBlockNumber);\n return function () {\n stale = true;\n library.removeListener('block', updateBlockNumber);\n setBlockNumber(undefined);\n };\n }\n }, [library, chainId]); // ensures refresh if referential identity of library doesn't change across chainIds\n\n return __jsx(React.Fragment, null, __jsx(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 7\n }\n }, \"Block Number\"), __jsx(\"span\", {\n role: \"img\",\n \"aria-label\": \"numbers\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 7\n }\n }, \"\\uD83D\\uDD22\"), __jsx(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 7\n }\n }, blockNumber === null ? 'Error' : blockNumber !== null && blockNumber !== void 0 ? blockNumber : ''));\n}\n\n_s2(BlockNumber, \"0DoBuqyGtF4sYtNebgbnhkk9wTw=\", false, function () {\n return [useWeb3React];\n});\n\n_c2 = BlockNumber;\n\nfunction Account() {\n _s3();\n\n var _useWeb3React3 = useWeb3React(),\n account = _useWeb3React3.account;\n\n return __jsx(React.Fragment, null, __jsx(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\n }\n }, \"Account\"), __jsx(\"span\", {\n role: \"img\",\n \"aria-label\": \"robot\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }\n }, \"\\uD83E\\uDD16\"), __jsx(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 7\n }\n }, account === null ? '-' : account ? \"\".concat(account.substring(0, 6), \"...\").concat(account.substring(account.length - 4)) : ''));\n}\n\n_s3(Account, \"Yw4fkvk9SNw3FxQ8wmZp/p1e7+E=\", false, function () {\n return [useWeb3React];\n});\n\n_c3 = Account;\n\nfunction Balance() {\n _s4();\n\n var _useWeb3React4 = useWeb3React(),\n account = _useWeb3React4.account,\n library = _useWeb3React4.library,\n chainId = _useWeb3React4.chainId;\n\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n balance = _React$useState4[0],\n setBalance = _React$useState4[1];\n\n React.useEffect(function () {\n if (!!account && !!library) {\n var stale = false;\n library.getBalance(account).then(function (balance) {\n if (!stale) {\n setBalance(balance);\n }\n })[\"catch\"](function () {\n if (!stale) {\n setBalance(null);\n }\n });\n return function () {\n stale = true;\n setBalance(undefined);\n };\n }\n }, [account, library, chainId]); // ensures refresh if referential identity of library doesn't change across chainIds\n\n return __jsx(React.Fragment, null, __jsx(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }\n }, \"Balance\"), __jsx(\"span\", {\n role: \"img\",\n \"aria-label\": \"gold\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }\n }, \"\\uD83D\\uDCB0\"), __jsx(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 7\n }\n }, balance === null ? 'Error' : balance ? \"\\u039E\".concat(formatEther(balance)) : ''));\n}\n\n_s4(Balance, \"M1WVM1XYBvl8/UPoZ+Zp2BzPIno=\", false, function () {\n return [useWeb3React];\n});\n\n_c4 = Balance;\n\nfunction Header() {\n _s5();\n\n var _useWeb3React5 = useWeb3React(),\n active = _useWeb3React5.active,\n error = _useWeb3React5.error;\n\n return __jsx(React.Fragment, null, __jsx(\"h1\", {\n style: {\n margin: '1rem',\n textAlign: 'right'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 7\n }\n }, active ? '🟢' : error ? '🔴' : '🟠'), __jsx(\"h3\", {\n style: {\n display: 'grid',\n gridGap: '1rem',\n gridTemplateColumns: '1fr min-content 1fr',\n maxWidth: '20rem',\n lineHeight: '2rem',\n margin: 'auto'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 7\n }\n }, __jsx(ChainId, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 9\n }\n }), __jsx(BlockNumber, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 9\n }\n }), __jsx(Account, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 9\n }\n }), __jsx(Balance, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 9\n }\n })));\n}\n\n_s5(Header, \"5Wc8Z9LF2TZggKnK8RHaXo3D1Z0=\", false, function () {\n return [useWeb3React];\n});\n\n_c5 = Header;\n\nfunction App() {\n _s6();\n\n var _this = this;\n\n var context = useWeb3React();\n var connector = context.connector,\n library = context.library,\n chainId = context.chainId,\n account = context.account,\n activate = context.activate,\n deactivate = context.deactivate,\n active = context.active,\n error = context.error; // handle logic to recognize the connector currently being activated\n\n var _React$useState5 = React.useState(),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activatingConnector = _React$useState6[0],\n setActivatingConnector = _React$useState6[1];\n\n React.useEffect(function () {\n if (activatingConnector && activatingConnector === connector) {\n setActivatingConnector(undefined);\n }\n }, [activatingConnector, connector]); // handle logic to eagerly connect to the injected ethereum provider, if it exists and has granted access already\n\n var triedEager = useEagerConnect(); // handle logic to connect in reaction to certain events on the injected ethereum provider, if it exists\n\n useInactiveListener(!triedEager || !!activatingConnector);\n return __jsx(React.Fragment, null, __jsx(Header, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 7\n }\n }), __jsx(\"hr\", {\n style: {\n margin: '2rem'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 7\n }\n }), __jsx(\"div\", {\n style: {\n display: 'grid',\n gridGap: '1rem',\n gridTemplateColumns: '1fr 1fr',\n maxWidth: '20rem',\n margin: 'auto'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }\n }, Object.keys(connectorsByName).map(function (name) {\n var currentConnector = connectorsByName[name];\n var activating = currentConnector === activatingConnector;\n var connected = currentConnector === connector;\n var disabled = !triedEager || !!activatingConnector || connected || !!error;\n return __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n borderColor: activating ? 'orange' : connected ? 'green' : 'unset',\n cursor: disabled ? 'unset' : 'pointer',\n position: 'relative'\n },\n disabled: disabled,\n key: name,\n onClick: function onClick() {\n setActivatingConnector(currentConnector);\n activate(connectorsByName[name]);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 13\n }\n }, __jsx(\"div\", {\n style: {\n position: 'absolute',\n top: '0',\n left: '0',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n color: 'black',\n margin: '0 0 0 1rem'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 15\n }\n }, activating && __jsx(Spinner, {\n color: 'black',\n style: {\n height: '25%',\n marginLeft: '-1rem'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 301,\n columnNumber: 32\n }\n }), connected && __jsx(\"span\", {\n role: \"img\",\n \"aria-label\": \"check\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 303,\n columnNumber: 19\n }\n }, \"\\u2705\")), name);\n })), __jsx(\"div\", {\n style: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 313,\n columnNumber: 7\n }\n }, (active || error) && __jsx(\"button\", {\n style: {\n height: '3rem',\n marginTop: '2rem',\n borderRadius: '1rem',\n borderColor: 'red',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n deactivate();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 315,\n columnNumber: 11\n }\n }, \"Deactivate\"), !!error && __jsx(\"h4\", {\n style: {\n marginTop: '1rem',\n marginBottom: '0'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 331,\n columnNumber: 21\n }\n }, getErrorMessage(error))), __jsx(\"hr\", {\n style: {\n margin: '2rem'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 7\n }\n }), __jsx(\"div\", {\n style: {\n display: 'grid',\n gridGap: '1rem',\n gridTemplateColumns: 'fit-content',\n maxWidth: '20rem',\n margin: 'auto'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 335,\n columnNumber: 7\n }\n }, !!(library && account) && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n library.getSigner(account).sendTransaction({\n to: \"0xf368ca0ff41caa0f71deac40c05ca05e017d1702\",\n value: \"0x01\"\n }).then(function (signature) {\n window.alert(\"Success!\\n\\n\".concat(signature));\n })[\"catch\"](function (error) {\n window.alert('Failure!' + (error && error.message ? \"\\n\\n\".concat(error.message) : ''));\n });\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 345,\n columnNumber: 11\n }\n }, \"Sign Message\")), __jsx(\"hr\", {\n style: {\n margin: '2rem'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 370,\n columnNumber: 7\n }\n }), __jsx(\"div\", {\n style: {\n display: 'grid',\n gridGap: '1rem',\n gridTemplateColumns: 'fit-content',\n maxWidth: '20rem',\n margin: 'auto'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 372,\n columnNumber: 7\n }\n }, !!(library && account) && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n library.getSigner(account).signMessage('👋').then(function (signature) {\n window.alert(\"Success!\\n\\n\".concat(signature));\n })[\"catch\"](function (error) {\n window.alert('Failure!' + (error && error.message ? \"\\n\\n\".concat(error.message) : ''));\n });\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 11\n }\n }, \"Sign Message\"), !!(connector === connectorsByName[ConnectorNames.Network] && chainId) && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n ;\n connector.changeChainId(chainId === 1 ? 4 : 1);\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 404,\n columnNumber: 11\n }\n }, \"Switch Networks\"), connector === connectorsByName[ConnectorNames.WalletConnect] && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n ;\n connector.close();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 418,\n columnNumber: 11\n }\n }, \"Kill WalletConnect Session\"), connector === connectorsByName[ConnectorNames.WalletLink] && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n ;\n connector.close();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 432,\n columnNumber: 11\n }\n }, \"Kill WalletLink Session\"), connector === connectorsByName[ConnectorNames.Fortmatic] && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n ;\n connector.close();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 11\n }\n }, \"Kill Fortmatic Session\"), connector === connectorsByName[ConnectorNames.Magic] && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n ;\n connector.close();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 11\n }\n }, \"Kill Magic Session\"), connector === connectorsByName[ConnectorNames.Portis] && __jsx(React.Fragment, null, chainId !== undefined && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n ;\n connector.changeNetwork(chainId === 1 ? 100 : 1);\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 476,\n columnNumber: 15\n }\n }, \"Switch Networks\"), __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n ;\n connector.close();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 489,\n columnNumber: 13\n }\n }, \"Kill Portis Session\")), connector === connectorsByName[ConnectorNames.Torus] && __jsx(\"button\", {\n style: {\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n },\n onClick: function onClick() {\n ;\n connector.close();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 504,\n columnNumber: 11\n }\n }, \"Kill Torus Session\")));\n}\n\n_s6(App, \"oVtBozX5lH0j7w1/NhHB2/98yx0=\", false, function () {\n return [useWeb3React, useEagerConnect, useInactiveListener];\n});\n\n_c6 = App;\n\nvar _c, _c2, _c3, _c4, _c5, _c6;\n\n$RefreshReg$(_c, \"ChainId\");\n$RefreshReg$(_c2, \"BlockNumber\");\n$RefreshReg$(_c3, \"Account\");\n$RefreshReg$(_c4, \"Balance\");\n$RefreshReg$(_c5, \"Header\");\n$RefreshReg$(_c6, \"App\");","map":{"version":3,"sources":["/home/jsw/code/codeoneline/web3-react/example/pages/index.tsx"],"names":["React","Web3ReactProvider","useWeb3React","UnsupportedChainIdError","NoEthereumProviderError","UserRejectedRequestError","UserRejectedRequestErrorInjected","UserRejectedRequestErrorWalletConnect","UserRejectedRequestErrorFrame","Web3Provider","formatEther","useEagerConnect","useInactiveListener","injected","network","walletconnect","walletlink","ledger","trezor","frame","authereum","fortmatic","magic","portis","squarelink","torus","Spinner","ConnectorNames","connectorsByName","Injected","Network","WalletConnect","WalletLink","Ledger","Trezor","Frame","Authereum","Fortmatic","Magic","Portis","Squarelink","Torus","getErrorMessage","error","console","getLibrary","provider","library","pollingInterval","ChainId","chainId","BlockNumber","useState","blockNumber","setBlockNumber","useEffect","stale","getBlockNumber","then","updateBlockNumber","on","removeListener","undefined","Account","account","substring","length","Balance","balance","setBalance","getBalance","Header","active","margin","textAlign","display","gridGap","gridTemplateColumns","maxWidth","lineHeight","App","context","connector","activate","deactivate","activatingConnector","setActivatingConnector","triedEager","Object","keys","map","name","currentConnector","activating","connected","disabled","height","borderRadius","borderColor","cursor","position","top","left","alignItems","color","marginLeft","flexDirection","marginTop","marginBottom","getSigner","sendTransaction","to","value","signature","window","alert","message","signMessage","changeChainId","close","changeNetwork"],"mappings":"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","sourcesContent":["import React from 'react'\nimport { Web3ReactProvider, useWeb3React, UnsupportedChainIdError } from '@web3-react-wan/core'\nimport {\n NoEthereumProviderError,\n UserRejectedRequestError as UserRejectedRequestErrorInjected\n} from '@web3-react-wan/injected-connector'\nimport { UserRejectedRequestError as UserRejectedRequestErrorWalletConnect } from '@web3-react-wan/walletconnect-connector'\nimport { UserRejectedRequestError as UserRejectedRequestErrorFrame } from '@web3-react-wan/frame-connector'\nimport { Web3Provider } from '@wansproject/providers'\nimport { formatEther } from '@wansproject/units'\n\nimport { useEagerConnect, useInactiveListener } from '../hooks'\nimport {\n injected,\n network,\n walletconnect,\n walletlink,\n ledger,\n trezor,\n frame,\n authereum,\n fortmatic,\n magic,\n portis,\n squarelink,\n torus\n} from '../connectors'\nimport { Spinner } from '../components/Spinner'\n\nenum ConnectorNames {\n Injected = 'Injected',\n Network = 'Network',\n WalletConnect = 'WalletConnect',\n WalletLink = 'WalletLink',\n Ledger = 'Ledger',\n Trezor = 'Trezor',\n Frame = 'Frame',\n Authereum = 'Authereum',\n Fortmatic = 'Fortmatic',\n Magic = 'Magic',\n Portis = 'Portis',\n Squarelink = 'Squarelink',\n Torus = 'Torus'\n}\n\nconst connectorsByName: { [connectorName in ConnectorNames]: any } = {\n [ConnectorNames.Injected]: injected,\n [ConnectorNames.Network]: network,\n [ConnectorNames.WalletConnect]: walletconnect,\n [ConnectorNames.WalletLink]: walletlink,\n [ConnectorNames.Ledger]: ledger,\n [ConnectorNames.Trezor]: trezor,\n [ConnectorNames.Frame]: frame,\n [ConnectorNames.Authereum]: authereum,\n [ConnectorNames.Fortmatic]: fortmatic,\n [ConnectorNames.Magic]: magic,\n [ConnectorNames.Portis]: portis,\n [ConnectorNames.Squarelink]: squarelink,\n [ConnectorNames.Torus]: torus\n}\n\nfunction getErrorMessage(error: Error) {\n if (error instanceof NoEthereumProviderError) {\n return 'No Ethereum browser extension detected, install MetaMask on desktop or visit from a dApp browser on mobile.'\n } else if (error instanceof UnsupportedChainIdError) {\n return \"You're connected to an unsupported network.\"\n } else if (\n error instanceof UserRejectedRequestErrorInjected ||\n error instanceof UserRejectedRequestErrorWalletConnect ||\n error instanceof UserRejectedRequestErrorFrame\n ) {\n return 'Please authorize this website to access your Ethereum account.'\n } else {\n console.error(error)\n return 'An unknown error occurred. Check the console for more details.'\n }\n}\n\nfunction getLibrary(provider: any): Web3Provider {\n const library = new Web3Provider(provider)\n library.pollingInterval = 12000\n return library\n}\n\nexport default function() {\n return (\n <Web3ReactProvider getLibrary={getLibrary}>\n <App />\n </Web3ReactProvider>\n )\n}\n\nfunction ChainId() {\n const { chainId } = useWeb3React()\n\n return (\n <>\n <span>Chain Id</span>\n <span role=\"img\" aria-label=\"chain\">\n ⛓\n </span>\n <span>{chainId ?? ''}</span>\n </>\n )\n}\n\nfunction BlockNumber() {\n const { chainId, library } = useWeb3React()\n\n const [blockNumber, setBlockNumber] = React.useState<number>()\n React.useEffect((): any => {\n if (!!library) {\n let stale = false\n\n library\n .getBlockNumber()\n .then((blockNumber: number) => {\n if (!stale) {\n setBlockNumber(blockNumber)\n }\n })\n .catch(() => {\n if (!stale) {\n setBlockNumber(null)\n }\n })\n\n const updateBlockNumber = (blockNumber: number) => {\n setBlockNumber(blockNumber)\n }\n library.on('block', updateBlockNumber)\n\n return () => {\n stale = true\n library.removeListener('block', updateBlockNumber)\n setBlockNumber(undefined)\n }\n }\n }, [library, chainId]) // ensures refresh if referential identity of library doesn't change across chainIds\n\n return (\n <>\n <span>Block Number</span>\n <span role=\"img\" aria-label=\"numbers\">\n 🔢\n </span>\n <span>{blockNumber === null ? 'Error' : blockNumber ?? ''}</span>\n </>\n )\n}\n\nfunction Account() {\n const { account } = useWeb3React()\n\n return (\n <>\n <span>Account</span>\n <span role=\"img\" aria-label=\"robot\">\n 🤖\n </span>\n <span>\n {account === null\n ? '-'\n : account\n ? `${account.substring(0, 6)}...${account.substring(account.length - 4)}`\n : ''}\n </span>\n </>\n )\n}\n\nfunction Balance() {\n const { account, library, chainId } = useWeb3React()\n\n const [balance, setBalance] = React.useState()\n React.useEffect((): any => {\n if (!!account && !!library) {\n let stale = false\n\n library\n .getBalance(account)\n .then((balance: any) => {\n if (!stale) {\n setBalance(balance)\n }\n })\n .catch(() => {\n if (!stale) {\n setBalance(null)\n }\n })\n\n return () => {\n stale = true\n setBalance(undefined)\n }\n }\n }, [account, library, chainId]) // ensures refresh if referential identity of library doesn't change across chainIds\n\n return (\n <>\n <span>Balance</span>\n <span role=\"img\" aria-label=\"gold\">\n 💰\n </span>\n <span>{balance === null ? 'Error' : balance ? `Ξ${formatEther(balance)}` : ''}</span>\n </>\n )\n}\n\nfunction Header() {\n const { active, error } = useWeb3React()\n\n return (\n <>\n <h1 style={{ margin: '1rem', textAlign: 'right' }}>{active ? '🟢' : error ? '🔴' : '🟠'}</h1>\n <h3\n style={{\n display: 'grid',\n gridGap: '1rem',\n gridTemplateColumns: '1fr min-content 1fr',\n maxWidth: '20rem',\n lineHeight: '2rem',\n margin: 'auto'\n }}\n >\n <ChainId />\n <BlockNumber />\n <Account />\n <Balance />\n </h3>\n </>\n )\n}\n\nfunction App() {\n const context = useWeb3React<Web3Provider>()\n const { connector, library, chainId, account, activate, deactivate, active, error } = context\n\n // handle logic to recognize the connector currently being activated\n const [activatingConnector, setActivatingConnector] = React.useState<any>()\n React.useEffect(() => {\n if (activatingConnector && activatingConnector === connector) {\n setActivatingConnector(undefined)\n }\n }, [activatingConnector, connector])\n\n // handle logic to eagerly connect to the injected ethereum provider, if it exists and has granted access already\n const triedEager = useEagerConnect()\n\n // handle logic to connect in reaction to certain events on the injected ethereum provider, if it exists\n useInactiveListener(!triedEager || !!activatingConnector)\n\n return (\n <>\n <Header />\n <hr style={{ margin: '2rem' }} />\n <div\n style={{\n display: 'grid',\n gridGap: '1rem',\n gridTemplateColumns: '1fr 1fr',\n maxWidth: '20rem',\n margin: 'auto'\n }}\n >\n {Object.keys(connectorsByName).map(name => {\n const currentConnector = connectorsByName[name]\n const activating = currentConnector === activatingConnector\n const connected = currentConnector === connector\n const disabled = !triedEager || !!activatingConnector || connected || !!error\n\n return (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n borderColor: activating ? 'orange' : connected ? 'green' : 'unset',\n cursor: disabled ? 'unset' : 'pointer',\n position: 'relative'\n }}\n disabled={disabled}\n key={name}\n onClick={() => {\n setActivatingConnector(currentConnector)\n activate(connectorsByName[name])\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: '0',\n left: '0',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n color: 'black',\n margin: '0 0 0 1rem'\n }}\n >\n {activating && <Spinner color={'black'} style={{ height: '25%', marginLeft: '-1rem' }} />}\n {connected && (\n <span role=\"img\" aria-label=\"check\">\n ✅\n </span>\n )}\n </div>\n {name}\n </button>\n )\n })}\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}>\n {(active || error) && (\n <button\n style={{\n height: '3rem',\n marginTop: '2rem',\n borderRadius: '1rem',\n borderColor: 'red',\n cursor: 'pointer'\n }}\n onClick={() => {\n deactivate()\n }}\n >\n Deactivate\n </button>\n )}\n\n {!!error && <h4 style={{ marginTop: '1rem', marginBottom: '0' }}>{getErrorMessage(error)}</h4>}\n </div>\n\n <hr style={{ margin: '2rem' }} />\n <div\n style={{\n display: 'grid',\n gridGap: '1rem',\n gridTemplateColumns: 'fit-content',\n maxWidth: '20rem',\n margin: 'auto'\n }}\n >\n {!!(library && account) && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n library\n .getSigner(account)\n .sendTransaction({\n to: \"0xf368ca0ff41caa0f71deac40c05ca05e017d1702\",\n value: \"0x01\"\n })\n .then((signature: any) => {\n window.alert(`Success!\\n\\n${signature}`)\n })\n .catch((error: any) => {\n window.alert('Failure!' + (error && error.message ? `\\n\\n${error.message}` : ''))\n })\n }}\n >\n Sign Message\n </button>\n )}\n </div>\n <hr style={{ margin: '2rem' }} />\n\n <div\n style={{\n display: 'grid',\n gridGap: '1rem',\n gridTemplateColumns: 'fit-content',\n maxWidth: '20rem',\n margin: 'auto'\n }}\n >\n {!!(library && account) && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n library\n .getSigner(account)\n .signMessage('👋')\n .then((signature: any) => {\n window.alert(`Success!\\n\\n${signature}`)\n })\n .catch((error: any) => {\n window.alert('Failure!' + (error && error.message ? `\\n\\n${error.message}` : ''))\n })\n }}\n >\n Sign Message\n </button>\n )}\n {!!(connector === connectorsByName[ConnectorNames.Network] && chainId) && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n ;(connector as any).changeChainId(chainId === 1 ? 4 : 1)\n }}\n >\n Switch Networks\n </button>\n )}\n {connector === connectorsByName[ConnectorNames.WalletConnect] && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n ;(connector as any).close()\n }}\n >\n Kill WalletConnect Session\n </button>\n )}\n {connector === connectorsByName[ConnectorNames.WalletLink] && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n ;(connector as any).close()\n }}\n >\n Kill WalletLink Session\n </button>\n )}\n {connector === connectorsByName[ConnectorNames.Fortmatic] && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n ;(connector as any).close()\n }}\n >\n Kill Fortmatic Session\n </button>\n )}\n {connector === connectorsByName[ConnectorNames.Magic] && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n ;(connector as any).close()\n }}\n >\n Kill Magic Session\n </button>\n )}\n {connector === connectorsByName[ConnectorNames.Portis] && (\n <>\n {chainId !== undefined && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n ;(connector as any).changeNetwork(chainId === 1 ? 100 : 1)\n }}\n >\n Switch Networks\n </button>\n )}\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n ;(connector as any).close()\n }}\n >\n Kill Portis Session\n </button>\n </>\n )}\n {connector === connectorsByName[ConnectorNames.Torus] && (\n <button\n style={{\n height: '3rem',\n borderRadius: '1rem',\n cursor: 'pointer'\n }}\n onClick={() => {\n ;(connector as any).close()\n }}\n >\n Kill Torus Session\n </button>\n )}\n </div>\n </>\n )\n}\n"]},"metadata":{},"sourceType":"module"}