@web3-react/injected-connector
Version:
A simple, maximally extensible, dependency minimized framework for building modern Ethereum dApps
3 lines (2 loc) • 6.29 kB
JavaScript
var e=require("@web3-react/abstract-connector");function n(){return(n=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}function t(e,n){e.prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n}function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function o(e,n){return(o=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}function i(e,n,t){return(i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,n,t){var r=[null];r.push.apply(r,n);var i=new(Function.bind.apply(e,r));return t&&o(i,t.prototype),i}).apply(null,arguments)}function u(e){var n="function"==typeof Map?new Map:void 0;return(u=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return i(e,arguments,r(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),o(t,e)})(e)}function c(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}function a(e){return e.hasOwnProperty("result")?e.result:e}require("tiny-warning"),"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var s=function(e){function n(){var n;return(n=e.call(this)||this).name=n.constructor.name,n.message="No Ethereum provider was found on window.ethereum.",n}return t(n,e),n}(u(Error)),d=function(e){function n(){var n;return(n=e.call(this)||this).name=n.constructor.name,n.message="The user rejected the request.",n}return t(n,e),n}(u(Error));exports.InjectedConnector=function(e){function r(n){var t;return(t=e.call(this,n)||this).handleNetworkChanged=t.handleNetworkChanged.bind(c(t)),t.handleChainChanged=t.handleChainChanged.bind(c(t)),t.handleAccountsChanged=t.handleAccountsChanged.bind(c(t)),t.handleClose=t.handleClose.bind(c(t)),t}t(r,e);var o=r.prototype;return o.handleChainChanged=function(e){this.emitUpdate({chainId:e,provider:window.ethereum})},o.handleAccountsChanged=function(e){0===e.length?this.emitDeactivate():this.emitUpdate({account:e[0]})},o.handleClose=function(e,n){this.emitDeactivate()},o.handleNetworkChanged=function(e){this.emitUpdate({chainId:e,provider:window.ethereum})},o.activate=function(){try{var e,t=function(t){if(r)return t;function o(){return n({provider:window.ethereum},e?{account:e}:{})}var i=function(){if(!e)return Promise.resolve(window.ethereum.enable().then((function(e){return e&&a(e)[0]}))).then((function(n){e=n}))}();return i&&i.then?i.then(o):o()},r=!1;if(!window.ethereum)throw new s;window.ethereum.on&&(window.ethereum.on("chainChanged",this.handleChainChanged),window.ethereum.on("accountsChanged",this.handleAccountsChanged),window.ethereum.on("close",this.handleClose),window.ethereum.on("networkChanged",this.handleNetworkChanged)),window.ethereum.isMetaMask&&(window.ethereum.autoRefreshOnNetworkChange=!1);var o=h((function(){return Promise.resolve(window.ethereum.send("eth_requestAccounts").then((function(e){return a(e)[0]}))).then((function(n){e=n}))}),(function(e){if(4001===e.code)throw new d}));return Promise.resolve(o&&o.then?o.then(t):t(o))}catch(e){return Promise.reject(e)}},o.getProvider=function(){try{return Promise.resolve(window.ethereum)}catch(e){return Promise.reject(e)}},o.getChainId=function(){try{var e,n=function(){function n(){if(!e)try{e=a(window.ethereum.send({method:"net_version"}))}catch(e){}return e||(e=window.ethereum.isDapper?a(window.ethereum.cachedResults.net_version):window.ethereum.chainId||window.ethereum.netVersion||window.ethereum.networkVersion||window.ethereum._chainId),e}var t=function(){if(!e){var n=h((function(){return Promise.resolve(window.ethereum.send("net_version").then(a)).then((function(n){e=n}))}),(function(){}));if(n&&n.then)return n.then((function(){}))}}();return t&&t.then?t.then(n):n()};if(!window.ethereum)throw new s;var t=h((function(){return Promise.resolve(window.ethereum.send("eth_chainId").then(a)).then((function(n){e=n}))}),(function(){}));return Promise.resolve(t&&t.then?t.then(n):n())}catch(e){return Promise.reject(e)}},o.getAccount=function(){try{var e,n=function(){function n(){return e||(e=a(window.ethereum.send({method:"eth_accounts"}))[0]),e}var t=function(){if(!e){var n=h((function(){return Promise.resolve(window.ethereum.enable().then((function(e){return a(e)[0]}))).then((function(n){e=n}))}),(function(){}));if(n&&n.then)return n.then((function(){}))}}();return t&&t.then?t.then(n):n()};if(!window.ethereum)throw new s;var t=h((function(){return Promise.resolve(window.ethereum.send("eth_accounts").then((function(e){return a(e)[0]}))).then((function(n){e=n}))}),(function(){}));return Promise.resolve(t&&t.then?t.then(n):n())}catch(e){return Promise.reject(e)}},o.deactivate=function(){window.ethereum&&window.ethereum.removeListener&&(window.ethereum.removeListener("chainChanged",this.handleChainChanged),window.ethereum.removeListener("accountsChanged",this.handleAccountsChanged),window.ethereum.removeListener("close",this.handleClose),window.ethereum.removeListener("networkChanged",this.handleNetworkChanged))},o.isAuthorized=function(){try{return window.ethereum?Promise.resolve(h((function(){return Promise.resolve(window.ethereum.send("eth_accounts").then((function(e){return a(e).length>0})))}),(function(){return!1}))):Promise.resolve(!1)}catch(e){return Promise.reject(e)}},r}(e.AbstractConnector),exports.NoEthereumProviderError=s,exports.UserRejectedRequestError=d;
//# sourceMappingURL=injected-connector.cjs.production.min.js.map
;