UNPKG

@bscswap/binance-connector

Version:

A simple, maximally extensible, dependency minimized framework for building modern Binance Smart Chain dApps

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