UNPKG

@web3-wallets-kit/core

Version:
3 lines (2 loc) 4.83 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("@web3-wallets-kit/types"),t=require("rxjs"),e=require("web3-providers-ws"),i=require("web3-providers-http");function r(){return(r=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n}).apply(this,arguments)}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var o=e,c=i,s=function(){function n(n){this.txWeb3=new t.BehaviorSubject(null),this.account=new t.BehaviorSubject(null),this.chainId=new t.BehaviorSubject(null),this.status=new t.BehaviorSubject("disconnected"),this.activeConnector=null,this.accountSubscription=null,this.chainIdSubscription=null,this.disconnectSubscription=null,this.options=r({},n,{defaultProvider:r({network:"mainnet"},n.defaultProvider)}),this.checkOptions(),this.web3=n.makeWeb3(this.getDefaultProvider()),this.connect=this.connect.bind(this),this.disconnect=this.disconnect.bind(this),this.handleAccountChange=this.handleAccountChange.bind(this),this.handleChainIdChange=this.handleChainIdChange.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this)}var e=n.prototype;return e.connect=function(n){try{var t=this;return Promise.resolve(t.disconnect()).then((function(){t.activeConnector=n;var e=t.options.makeWeb3;return function(i,r){try{var o=(t.status.next("pending"),Promise.resolve(n.connect()).then((function(i){var r=i.provider,o=e(r);return t.txWeb3.next(o),Promise.resolve(function(n){try{return Promise.resolve(n.getAccount()).then((function(n){if(!n)throw new Error("No Ethereum accounts found, you need to create an account in your wallet");return n}))}catch(n){return Promise.reject(n)}}(n)).then((function(e){return t.account.next(e),Promise.resolve(function(n){try{return Promise.resolve(n.getChainId()).then((function(n){if(!n)throw new Error("ChainID is not found, you need to choose a network in your wallet");return n}))}catch(n){return Promise.reject(n)}}(n)).then((function(i){return t.chainId.next(i),t.accountSubscription=n.subscribeConnectAccount(t.handleAccountChange),t.chainIdSubscription=n.subscribeChainId(t.handleChainIdChange),t.disconnectSubscription=n.subscribeDisconnect(t.handleDisconnect),t.status.next("connected"),{provider:r,account:e,chainId:i}}))}))})))}catch(n){return r(n)}return o&&o.then?o.then(void 0,r):o}(0,(function(n){throw t.disconnect(),n}))}))}catch(n){return Promise.reject(n)}},e.disconnect=function(){try{var n=this,t=function(t,e){try{var i=(n.accountSubscription&&n.accountSubscription.unsubscribe(),n.chainIdSubscription&&n.chainIdSubscription.unsubscribe(),n.disconnectSubscription&&n.disconnectSubscription.unsubscribe(),n.activeConnector?Promise.resolve(n.activeConnector.disconnect()).then((function(n){})):void 0)}catch(n){return e(!0,n)}return i&&i.then?i.then(e.bind(null,!1),e.bind(null,!0)):e(!1,i)}(0,(function(t,e){if(n.resetState(),t)throw e;return e}));return Promise.resolve(t&&t.then?t.then((function(){})):void 0)}catch(n){return Promise.reject(n)}},e.resetState=function(){this.activeConnector=null,this.accountSubscription=null,this.chainIdSubscription=null,this.disconnectSubscription=null,this.txWeb3.next(null),this.account.next(null),this.chainId.next(null),this.status.next("disconnected")},e.checkOptions=function(){"httpRpcUrl"in this.options.defaultProvider||"wsRpcUrl"in this.options.defaultProvider||"infuraAccessToken"in this.options.defaultProvider||console.error('You need to configure one of these parameters: "httpRpcUrl", "wsRpcUrl" or "infuraAccessToken".')},e.getDefaultProvider=function(){if("httpRpcUrl"in this.options.defaultProvider){var n=this.options.defaultProvider;return new c(n.httpRpcUrl,n.options)}var t={auto:!0,delay:5e3};if("wsRpcUrl"in this.options.defaultProvider){var e=this.options.defaultProvider,i=e.options;return new o(e.wsRpcUrl,r({},i,{reconnect:r({},t,null==i?void 0:i.reconnect)}))}if("infuraAccessToken"in this.options.defaultProvider){var s=this.options.defaultProvider,a=s.network,h=s.options;return new o("wss://"+(void 0===a?"mainnet":a)+".infura.io/ws/v3/"+s.infuraAccessToken,r({},h,{reconnect:r({},t,null==h?void 0:h.reconnect)}))}return u(this.options.defaultProvider)},e.handleAccountChange=function(n){this.account.next(n)},e.handleChainIdChange=function(n){this.chainId.next(n)},e.handleDisconnect=function(){this.disconnect()},n}();function u(n){throw new Error("Unexpected value: "+n)}Object.keys(n).forEach((function(t){"default"!==t&&Object.defineProperty(exports,t,{enumerable:!0,get:function(){return n[t]}})})),exports.Web3WalletsManager=s,exports.assertNever=u; //# sourceMappingURL=core.cjs.production.min.js.map