{"version":3,"sources":["jsdelivr-header.js","/npm/web3-providers@1.0.0-beta.55/dist/web3-providers.umd.js"],"names":[],"mappings":"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","file":"/npm/web3-providers@1.0.0-beta.55/dist/web3-providers.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/web3-providers@1.0.0-beta.55/dist/web3-providers.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass'), require('websocket'), require('xhr2-cookies'), require('url-parse'), require('@babel/runtime/helpers/typeof'), require('lodash/isFunction'), require('lodash/isObject'), require('@babel/runtime/helpers/possibleConstructorReturn'), require('@babel/runtime/helpers/getPrototypeOf'), require('@babel/runtime/helpers/get'), require('@babel/runtime/helpers/inherits'), require('@babel/runtime/regenerator'), require('@babel/runtime/helpers/asyncToGenerator'), require('eventemitter3'), require('lodash/isArray'), require('http'), require('https')) :\n    typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass', 'websocket', 'xhr2-cookies', 'url-parse', '@babel/runtime/helpers/typeof', 'lodash/isFunction', 'lodash/isObject', '@babel/runtime/helpers/possibleConstructorReturn', '@babel/runtime/helpers/getPrototypeOf', '@babel/runtime/helpers/get', '@babel/runtime/helpers/inherits', '@babel/runtime/regenerator', '@babel/runtime/helpers/asyncToGenerator', 'eventemitter3', 'lodash/isArray', 'http', 'https'], factory) :\n    (global = global || self, factory(global.Web3Providers = {}, global._classCallCheck, global._createClass, global.websocket, global.xhr2Cookies, global.URL, global._typeof, global.isFunction, global.isObject, global._possibleConstructorReturn, global._getPrototypeOf, global._get, global._inherits, global._regeneratorRuntime, global._asyncToGenerator, global.EventEmitter, global.isArray, global.http, global.https));\n}(this, function (exports, _classCallCheck, _createClass, websocket, xhr2Cookies, URL, _typeof, isFunction, isObject, _possibleConstructorReturn, _getPrototypeOf, _get, _inherits, _regeneratorRuntime, _asyncToGenerator, EventEmitter, isArray, http, https) { 'use strict';\n\n    _classCallCheck = _classCallCheck && _classCallCheck.hasOwnProperty('default') ? _classCallCheck['default'] : _classCallCheck;\n    _createClass = _createClass && _createClass.hasOwnProperty('default') ? _createClass['default'] : _createClass;\n    URL = URL && URL.hasOwnProperty('default') ? URL['default'] : URL;\n    _typeof = _typeof && _typeof.hasOwnProperty('default') ? _typeof['default'] : _typeof;\n    isFunction = isFunction && isFunction.hasOwnProperty('default') ? isFunction['default'] : isFunction;\n    isObject = isObject && isObject.hasOwnProperty('default') ? isObject['default'] : isObject;\n    _possibleConstructorReturn = _possibleConstructorReturn && _possibleConstructorReturn.hasOwnProperty('default') ? _possibleConstructorReturn['default'] : _possibleConstructorReturn;\n    _getPrototypeOf = _getPrototypeOf && _getPrototypeOf.hasOwnProperty('default') ? _getPrototypeOf['default'] : _getPrototypeOf;\n    _get = _get && _get.hasOwnProperty('default') ? _get['default'] : _get;\n    _inherits = _inherits && _inherits.hasOwnProperty('default') ? _inherits['default'] : _inherits;\n    _regeneratorRuntime = _regeneratorRuntime && _regeneratorRuntime.hasOwnProperty('default') ? _regeneratorRuntime['default'] : _regeneratorRuntime;\n    _asyncToGenerator = _asyncToGenerator && _asyncToGenerator.hasOwnProperty('default') ? _asyncToGenerator['default'] : _asyncToGenerator;\n    EventEmitter = EventEmitter && EventEmitter.hasOwnProperty('default') ? EventEmitter['default'] : EventEmitter;\n    isArray = isArray && isArray.hasOwnProperty('default') ? isArray['default'] : isArray;\n    http = http && http.hasOwnProperty('default') ? http['default'] : http;\n    https = https && https.hasOwnProperty('default') ? https['default'] : https;\n\n    var global = function () {\n      return this || (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object' && self;\n    }() || new Function('return this')();\n    var ProviderResolver =\n    function () {\n      function ProviderResolver(providersModuleFactory) {\n        _classCallCheck(this, ProviderResolver);\n        this.providersModuleFactory = providersModuleFactory;\n      }\n      _createClass(ProviderResolver, [{\n        key: \"resolve\",\n        value: function resolve(provider, net) {\n          if (!provider) {\n            return provider;\n          }\n          if (typeof provider === 'string') {\n            if (/^http(s)?:\\/\\//i.test(provider)) {\n              return this.providersModuleFactory.createHttpProvider(provider);\n            }\n            if (/^ws(s)?:\\/\\//i.test(provider)) {\n              return this.providersModuleFactory.createWebsocketProvider(provider);\n            }\n            if (provider && isObject(net) && isFunction(net.connect)) {\n              return this.providersModuleFactory.createIpcProvider(provider, net);\n            }\n          }\n          if (provider.sendPayload && provider.subscribe) {\n            return provider;\n          }\n          if (typeof global.mist !== 'undefined' && provider.constructor.name === 'EthereumProvider') {\n            return this.providersModuleFactory.createMistEthereumProvider(provider);\n          }\n          if (provider.isEIP1193) {\n            return this.providersModuleFactory.createWeb3EthereumProvider(provider);\n          }\n          if (this.isMetamaskInpageProvider(provider)) {\n            return this.providersModuleFactory.createMetamaskProvider(provider);\n          }\n          return this.providersModuleFactory.createCustomProvider(provider);\n        }\n      }, {\n        key: \"isMetamaskInpageProvider\",\n        value: function isMetamaskInpageProvider(provider) {\n          return provider.constructor.name === 'MetamaskInpageProvider';\n        }\n      }]);\n      return ProviderResolver;\n    }();\n\n    var messageId = 0;\n    var JsonRpcMapper =\n    function () {\n      function JsonRpcMapper() {\n        _classCallCheck(this, JsonRpcMapper);\n      }\n      _createClass(JsonRpcMapper, null, [{\n        key: \"toPayload\",\n        value: function toPayload(method, params) {\n          if (!method) {\n            throw new Error(\"JSONRPC method should be specified for params: \\\"\".concat(JSON.stringify(params), \"\\\"!\"));\n          }\n          var id = messageId;\n          messageId++;\n          return {\n            jsonrpc: '2.0',\n            id: id,\n            method: method,\n            params: params || []\n          };\n        }\n      }]);\n      return JsonRpcMapper;\n    }();\n\n    var JsonRpcResponseValidator =\n    function () {\n      function JsonRpcResponseValidator() {\n        _classCallCheck(this, JsonRpcResponseValidator);\n      }\n      _createClass(JsonRpcResponseValidator, null, [{\n        key: \"validate\",\n        value: function validate(response) {\n          var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n          if (isObject(response)) {\n            if (response.error) {\n              if (response.error instanceof Error) {\n                return new Error(\"Node error: \".concat(response.error.message));\n              }\n              return new Error(\"Node error: \".concat(JSON.stringify(response.error)));\n            }\n            if (payload && response.id !== payload.id) {\n              return new Error(\"Validation error: Invalid JSON-RPC response ID (request: \".concat(payload.id, \" / response: \").concat(response.id, \")\"));\n            }\n            if (response.result === undefined) {\n              return new Error('Validation error: Undefined JSON-RPC result');\n            }\n            return true;\n          }\n          return new Error('Validation error: Response should be of type Object');\n        }\n      }]);\n      return JsonRpcResponseValidator;\n    }();\n\n    var AbstractSocketProvider =\n    function (_EventEmitter) {\n      _inherits(AbstractSocketProvider, _EventEmitter);\n      function AbstractSocketProvider(connection, timeout) {\n        var _this;\n        _classCallCheck(this, AbstractSocketProvider);\n        _this = _possibleConstructorReturn(this, _getPrototypeOf(AbstractSocketProvider).call(this));\n        _this.connection = connection;\n        _this.timeout = timeout;\n        _this.subscriptions = {};\n        _this.registerEventListeners();\n        _this.READY = 'ready';\n        _this.CONNECT = 'connect';\n        _this.ERROR = 'error';\n        _this.CLOSE = 'close';\n        _this.SOCKET_MESSAGE = 'socket_message';\n        _this.SOCKET_READY = 'socket_ready';\n        _this.SOCKET_CLOSE = 'socket_close';\n        _this.SOCKET_ERROR = 'socket_error';\n        _this.SOCKET_CONNECT = 'socket_connect';\n        _this.SOCKET_NETWORK_CHANGED = 'socket_networkChanged';\n        _this.SOCKET_ACCOUNTS_CHANGED = 'socket_accountsChanged';\n        return _this;\n      }\n      _createClass(AbstractSocketProvider, [{\n        key: \"supportsSubscriptions\",\n        value: function supportsSubscriptions() {\n          return true;\n        }\n      }, {\n        key: \"registerEventListeners\",\n        value: function registerEventListeners() {}\n      }, {\n        key: \"removeAllSocketListeners\",\n        value: function removeAllSocketListeners() {\n          this.removeAllListeners(this.SOCKET_MESSAGE);\n          this.removeAllListeners(this.SOCKET_READY);\n          this.removeAllListeners(this.SOCKET_CLOSE);\n          this.removeAllListeners(this.SOCKET_ERROR);\n          this.removeAllListeners(this.SOCKET_CONNECT);\n        }\n      }, {\n        key: \"disconnect\",\n        value: function disconnect(code, reason) {}\n      }, {\n        key: \"send\",\n        value: function () {\n          var _send = _asyncToGenerator(\n          _regeneratorRuntime.mark(function _callee(method, parameters) {\n            var response, validationResult;\n            return _regeneratorRuntime.wrap(function _callee$(_context) {\n              while (1) {\n                switch (_context.prev = _context.next) {\n                  case 0:\n                    _context.next = 2;\n                    return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));\n                  case 2:\n                    response = _context.sent;\n                    validationResult = JsonRpcResponseValidator.validate(response);\n                    if (!(validationResult instanceof Error)) {\n                      _context.next = 6;\n                      break;\n                    }\n                    throw validationResult;\n                  case 6:\n                    return _context.abrupt(\"return\", response.result);\n                  case 7:\n                  case \"end\":\n                    return _context.stop();\n                }\n              }\n            }, _callee, this);\n          }));\n          function send(_x, _x2) {\n            return _send.apply(this, arguments);\n          }\n          return send;\n        }()\n      }, {\n        key: \"sendBatch\",\n        value: function sendBatch(methods, moduleInstance) {\n          var payload = [];\n          methods.forEach(function (method) {\n            method.beforeExecution(moduleInstance);\n            payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));\n          });\n          return this.sendPayload(payload);\n        }\n      }, {\n        key: \"onReady\",\n        value: function onReady(event) {\n          this.emit(this.READY, event);\n          this.emit(this.SOCKET_READY, event);\n        }\n      }, {\n        key: \"onError\",\n        value: function onError(error) {\n          this.emit(this.ERROR, error);\n          this.emit(this.SOCKET_ERROR, error);\n          this.removeAllSocketListeners();\n          this.removeAllListeners();\n        }\n      }, {\n        key: \"onClose\",\n        value: function onClose() {\n          var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n          this.emit(this.CLOSE, error);\n          this.emit(this.SOCKET_CLOSE, error);\n          this.removeAllSocketListeners();\n          this.removeAllListeners();\n        }\n      }, {\n        key: \"onConnect\",\n        value: function () {\n          var _onConnect = _asyncToGenerator(\n          _regeneratorRuntime.mark(function _callee2() {\n            var subscriptionKeys, subscriptionId, _i, _subscriptionKeys, key;\n            return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n              while (1) {\n                switch (_context2.prev = _context2.next) {\n                  case 0:\n                    subscriptionKeys = Object.keys(this.subscriptions);\n                    if (!(subscriptionKeys.length > 0)) {\n                      _context2.next = 13;\n                      break;\n                    }\n                    _i = 0, _subscriptionKeys = subscriptionKeys;\n                  case 3:\n                    if (!(_i < _subscriptionKeys.length)) {\n                      _context2.next = 13;\n                      break;\n                    }\n                    key = _subscriptionKeys[_i];\n                    _context2.next = 7;\n                    return this.subscribe(this.subscriptions[key].subscribeMethod, this.subscriptions[key].parameters[0], this.subscriptions[key].parameters.slice(1));\n                  case 7:\n                    subscriptionId = _context2.sent;\n                    delete this.subscriptions[subscriptionId];\n                    this.subscriptions[key].id = subscriptionId;\n                  case 10:\n                    _i++;\n                    _context2.next = 3;\n                    break;\n                  case 13:\n                    this.emit(this.SOCKET_CONNECT);\n                    this.emit(this.CONNECT);\n                  case 15:\n                  case \"end\":\n                    return _context2.stop();\n                }\n              }\n            }, _callee2, this);\n          }));\n          function onConnect() {\n            return _onConnect.apply(this, arguments);\n          }\n          return onConnect;\n        }()\n      }, {\n        key: \"onMessage\",\n        value: function onMessage(response) {\n          var event;\n          if (!isObject(response)) {\n            response = JSON.parse(response);\n          }\n          if (isArray(response)) {\n            event = response[0].id;\n          } else if (typeof response.id === 'undefined') {\n            event = this.getSubscriptionEvent(response.params.subscription);\n            response = response.params;\n          } else {\n            event = response.id;\n          }\n          this.emit(this.SOCKET_MESSAGE, response);\n          this.emit(event, response);\n        }\n      }, {\n        key: \"reset\",\n        value: function reset() {\n          this.removeAllListeners();\n          this.registerEventListeners();\n        }\n      }, {\n        key: \"subscribe\",\n        value: function subscribe() {\n          var _this2 = this;\n          var subscribeMethod = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'eth_subscribe';\n          var subscriptionMethod = arguments.length > 1 ? arguments[1] : undefined;\n          var parameters = arguments.length > 2 ? arguments[2] : undefined;\n          parameters.unshift(subscriptionMethod);\n          return this.send(subscribeMethod, parameters).then(function (subscriptionId) {\n            _this2.subscriptions[subscriptionId] = {\n              id: subscriptionId,\n              subscribeMethod: subscribeMethod,\n              parameters: parameters\n            };\n            return subscriptionId;\n          }).catch(function (error) {\n            throw new Error(\"Provider error: \".concat(error));\n          });\n        }\n      }, {\n        key: \"unsubscribe\",\n        value: function unsubscribe(subscriptionId) {\n          var _this3 = this;\n          var unsubscribeMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'eth_unsubscribe';\n          if (this.hasSubscription(subscriptionId)) {\n            return this.send(unsubscribeMethod, [subscriptionId]).then(function (response) {\n              if (response) {\n                _this3.removeAllListeners(_this3.getSubscriptionEvent(subscriptionId));\n                delete _this3.subscriptions[subscriptionId];\n              }\n              return response;\n            });\n          }\n          return Promise.reject(new Error(\"Provider error: Subscription with ID \".concat(subscriptionId, \" does not exist.\")));\n        }\n      }, {\n        key: \"clearSubscriptions\",\n        value: function clearSubscriptions() {\n          var _this4 = this;\n          var unsubscribeMethod = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'eth_unsubscribe';\n          var unsubscribePromises = [];\n          Object.keys(this.subscriptions).forEach(function (key) {\n            _this4.removeAllListeners(key);\n            unsubscribePromises.push(_this4.unsubscribe(_this4.subscriptions[key].id, unsubscribeMethod));\n          });\n          return Promise.all(unsubscribePromises).then(function (results) {\n            if (results.includes(false)) {\n              throw new Error(\"Could not unsubscribe all subscriptions: \".concat(JSON.stringify(results)));\n            }\n            return true;\n          });\n        }\n      }, {\n        key: \"hasSubscription\",\n        value: function hasSubscription(subscriptionId) {\n          return typeof this.getSubscriptionEvent(subscriptionId) !== 'undefined';\n        }\n      }, {\n        key: \"getSubscriptionEvent\",\n        value: function getSubscriptionEvent(subscriptionId) {\n          var _this5 = this;\n          if (this.subscriptions[subscriptionId]) {\n            return subscriptionId;\n          }\n          var event;\n          Object.keys(this.subscriptions).forEach(function (key) {\n            if (_this5.subscriptions[key].id === subscriptionId) {\n              event = key;\n            }\n          });\n          return event;\n        }\n      }, {\n        key: \"connected\",\n        get: function get() {}\n      }]);\n      return AbstractSocketProvider;\n    }(EventEmitter);\n\n    var WebsocketProvider =\n    function (_AbstractSocketProvid) {\n      _inherits(WebsocketProvider, _AbstractSocketProvid);\n      function WebsocketProvider(connection, timeout) {\n        var _this;\n        _classCallCheck(this, WebsocketProvider);\n        _this = _possibleConstructorReturn(this, _getPrototypeOf(WebsocketProvider).call(this, connection, timeout));\n        _this.host = _this.connection.url;\n        return _this;\n      }\n      _createClass(WebsocketProvider, [{\n        key: \"onMessage\",\n        value: function onMessage(messageEvent) {\n          _get(_getPrototypeOf(WebsocketProvider.prototype), \"onMessage\", this).call(this, messageEvent.data);\n        }\n      }, {\n        key: \"onError\",\n        value: function onError(event) {\n          if (event.code === 'ECONNREFUSED') {\n            this.reconnect();\n            return;\n          }\n          _get(_getPrototypeOf(WebsocketProvider.prototype), \"onError\", this).call(this, event);\n        }\n      }, {\n        key: \"onClose\",\n        value: function onClose(closeEvent) {\n          if (closeEvent.code !== 1000 || closeEvent.wasClean === false) {\n            this.reconnect();\n            return;\n          }\n          _get(_getPrototypeOf(WebsocketProvider.prototype), \"onClose\", this).call(this);\n        }\n      }, {\n        key: \"reconnect\",\n        value: function reconnect() {\n          var _this2 = this;\n          setTimeout(function () {\n            _this2.removeAllSocketListeners();\n            var connection = [];\n            if (_this2.connection.constructor.name === 'W3CWebsocket') {\n              connection = new _this2.connection.constructor(_this2.host, _this2.connection._client.protocol, null, _this2.connection._client.headers, _this2.connection._client.requestOptions, _this2.connection._client.config);\n            } else {\n              connection = new _this2.connection.constructor(_this2.host, _this2.connection.protocol || undefined);\n            }\n            _this2.connection = connection;\n            _this2.registerEventListeners();\n          }, 5000);\n        }\n      }, {\n        key: \"disconnect\",\n        value: function disconnect() {\n          var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n          var reason = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n          this.connection.close(code, reason);\n        }\n      }, {\n        key: \"registerEventListeners\",\n        value: function registerEventListeners() {\n          this.connection.addEventListener('message', this.onMessage.bind(this));\n          this.connection.addEventListener('open', this.onReady.bind(this));\n          this.connection.addEventListener('open', this.onConnect.bind(this));\n          this.connection.addEventListener('close', this.onClose.bind(this));\n          this.connection.addEventListener('error', this.onError.bind(this));\n        }\n      }, {\n        key: \"removeAllListeners\",\n        value: function removeAllListeners(event) {\n          switch (event) {\n            case this.SOCKET_MESSAGE:\n              this.connection.removeEventListener('message', this.onMessage);\n              break;\n            case this.SOCKET_READY:\n              this.connection.removeEventListener('open', this.onReady);\n              break;\n            case this.SOCKET_CLOSE:\n              this.connection.removeEventListener('close', this.onClose);\n              break;\n            case this.SOCKET_ERROR:\n              this.connection.removeEventListener('error', this.onError);\n              break;\n            case this.SOCKET_CONNECT:\n              this.connection.removeEventListener('connect', this.onConnect);\n              break;\n          }\n          _get(_getPrototypeOf(WebsocketProvider.prototype), \"removeAllListeners\", this).call(this, event);\n        }\n      }, {\n        key: \"isConnecting\",\n        value: function isConnecting() {\n          return this.connection.readyState === this.connection.CONNECTING;\n        }\n      }, {\n        key: \"sendPayload\",\n        value: function sendPayload(payload) {\n          var _this3 = this;\n          return new Promise(function (resolve, reject) {\n            _this3.once('error', reject);\n            if (!_this3.isConnecting()) {\n              var timeout, id;\n              if (_this3.connection.readyState !== _this3.connection.OPEN) {\n                return reject(new Error('Connection error: Connection is not open on send()'));\n              }\n              try {\n                _this3.connection.send(JSON.stringify(payload));\n              } catch (error) {\n                reject(error);\n              }\n              if (_this3.timeout) {\n                timeout = setTimeout(function () {\n                  reject(new Error('Connection error: Timeout exceeded'));\n                }, _this3.timeout);\n              }\n              if (isArray(payload)) {\n                id = payload[0].id;\n              } else {\n                id = payload.id;\n              }\n              _this3.once(id, function (response) {\n                if (timeout) {\n                  clearTimeout(timeout);\n                }\n                return resolve(response);\n              });\n              return;\n            }\n            _this3.once('connect', function () {\n              _this3.sendPayload(payload).then(resolve).catch(reject);\n            });\n          });\n        }\n      }, {\n        key: \"connected\",\n        get: function get() {\n          return this.connection.readyState === this.connection.OPEN;\n        }\n      }]);\n      return WebsocketProvider;\n    }(AbstractSocketProvider);\n\n    var IpcProvider =\n    function (_AbstractSocketProvid) {\n      _inherits(IpcProvider, _AbstractSocketProvid);\n      function IpcProvider(connection, path) {\n        var _this;\n        _classCallCheck(this, IpcProvider);\n        _this = _possibleConstructorReturn(this, _getPrototypeOf(IpcProvider).call(this, connection, null));\n        _this.host = path;\n        _this.lastChunk = '';\n        return _this;\n      }\n      _createClass(IpcProvider, [{\n        key: \"disconnect\",\n        value: function disconnect() {\n          this.connection.destroy();\n        }\n      }, {\n        key: \"reconnect\",\n        value: function reconnect() {\n          this.connection.connect({\n            path: this.path\n          });\n        }\n      }, {\n        key: \"onMessage\",\n        value: function onMessage(message) {\n          var _this2 = this;\n          var result = null;\n          var returnValues = [];\n          var dechunkedData = message.toString().replace(/\\}[\\n\\r]?\\{/g, '}|--|{')\n          .replace(/\\}\\][\\n\\r]?\\[\\{/g, '}]|--|[{')\n          .replace(/\\}[\\n\\r]?\\[\\{/g, '}|--|[{')\n          .replace(/\\}\\][\\n\\r]?\\{/g, '}]|--|{')\n          .split('|--|');\n          dechunkedData.forEach(function (data) {\n            result = null;\n            if (_this2.lastChunk) {\n              data = _this2.lastChunk + data;\n            }\n            try {\n              result = JSON.parse(data);\n            } catch (error) {\n              _this2.lastChunk = data;\n              return;\n            }\n            _this2.lastChunk = null;\n            returnValues.push(result);\n          });\n          returnValues.forEach(function (chunk) {\n            _get(_getPrototypeOf(IpcProvider.prototype), \"onMessage\", _this2).call(_this2, chunk);\n          });\n        }\n      }, {\n        key: \"registerEventListeners\",\n        value: function registerEventListeners() {\n          this.connection.on('data', this.onMessage.bind(this));\n          this.connection.on('connect', this.onConnect.bind(this));\n          this.connection.on('error', this.onError.bind(this));\n          this.connection.on('close', this.onClose.bind(this));\n          this.connection.on('timeout', this.onClose.bind(this));\n          this.connection.on('ready', this.onReady.bind(this));\n        }\n      }, {\n        key: \"removeAllListeners\",\n        value: function removeAllListeners(event) {\n          switch (event) {\n            case this.SOCKET_MESSAGE:\n              this.connection.removeListener('data', this.onMessage);\n              break;\n            case this.SOCKET_READY:\n              this.connection.removeListener('ready', this.onReady);\n              break;\n            case this.SOCKET_CLOSE:\n              this.connection.removeListener('close', this.onClose);\n              break;\n            case this.SOCKET_ERROR:\n              this.connection.removeListener('error', this.onError);\n              break;\n            case this.SOCKET_CONNECT:\n              this.connection.removeListener('connect', this.onConnect);\n              break;\n          }\n          _get(_getPrototypeOf(IpcProvider.prototype), \"removeAllListeners\", this).call(this, event);\n        }\n      }, {\n        key: \"sendPayload\",\n        value: function sendPayload(payload) {\n          var _this3 = this;\n          return new Promise(function (resolve, reject) {\n            _this3.once('error', reject);\n            if (!_this3.connection.writable) {\n              _this3.connection.connect({\n                path: _this3.path\n              });\n            }\n            if (_this3.connection.write(JSON.stringify(payload))) {\n              var id;\n              if (isArray(payload)) {\n                id = payload[0].id;\n              } else {\n                id = payload.id;\n              }\n              _this3.once(id, resolve);\n              return;\n            }\n            return reject(new Error(\"Connection error: Couldn't write on the socket with Socket.write(payload)\"));\n          });\n        }\n      }, {\n        key: \"connected\",\n        get: function get() {\n          return !this.connection.pending;\n        }\n      }]);\n      return IpcProvider;\n    }(AbstractSocketProvider);\n\n    var HttpProvider =\n    function () {\n      function HttpProvider() {\n        var host = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http://localhost:8545';\n        var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n        var providersModuleFactory = arguments.length > 2 ? arguments[2] : undefined;\n        _classCallCheck(this, HttpProvider);\n        this.host = host;\n        this.timeout = options.timeout || 0;\n        this.headers = options.headers;\n        this.withCredentials = options.withCredentials || false;\n        this.connected = true;\n        this.providersModuleFactory = providersModuleFactory;\n        this.agent = {};\n        var keepAlive = false;\n        if (options.keepAlive === true || options.keepAlive !== false) {\n          keepAlive = true;\n        }\n        if (host.substring(0, 5) === 'https') {\n          this.agent['httpsAgent'] = new https.Agent({\n            keepAlive: keepAlive\n          });\n        } else {\n          this.agent['httpAgent'] = new http.Agent({\n            keepAlive: keepAlive\n          });\n        }\n      }\n      _createClass(HttpProvider, [{\n        key: \"supportsSubscriptions\",\n        value: function supportsSubscriptions() {\n          return false;\n        }\n      }, {\n        key: \"subscribe\",\n        value: function subscribe() {\n          throw new Error('Subscriptions are not supported with the HttpProvider.');\n        }\n      }, {\n        key: \"unsubscribe\",\n        value: function unsubscribe() {\n          throw new Error('Subscriptions are not supported with the HttpProvider.');\n        }\n      }, {\n        key: \"disconnect\",\n        value: function disconnect() {\n          return true;\n        }\n      }, {\n        key: \"send\",\n        value: function () {\n          var _send = _asyncToGenerator(\n          _regeneratorRuntime.mark(function _callee(method, parameters) {\n            var response, validationResult;\n            return _regeneratorRuntime.wrap(function _callee$(_context) {\n              while (1) {\n                switch (_context.prev = _context.next) {\n                  case 0:\n                    _context.next = 2;\n                    return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));\n                  case 2:\n                    response = _context.sent;\n                    validationResult = JsonRpcResponseValidator.validate(response);\n                    if (!(validationResult instanceof Error)) {\n                      _context.next = 6;\n                      break;\n                    }\n                    throw validationResult;\n                  case 6:\n                    return _context.abrupt(\"return\", response.result);\n                  case 7:\n                  case \"end\":\n                    return _context.stop();\n                }\n              }\n            }, _callee, this);\n          }));\n          function send(_x, _x2) {\n            return _send.apply(this, arguments);\n          }\n          return send;\n        }()\n      }, {\n        key: \"sendBatch\",\n        value: function sendBatch(methods, moduleInstance) {\n          var payload = [];\n          methods.forEach(function (method) {\n            method.beforeExecution(moduleInstance);\n            payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));\n          });\n          return this.sendPayload(payload);\n        }\n      }, {\n        key: \"sendPayload\",\n        value: function sendPayload(payload) {\n          var _this = this;\n          return new Promise(function (resolve, reject) {\n            var request = _this.providersModuleFactory.createXMLHttpRequest(_this.host, _this.timeout, _this.headers, _this.agent, _this.withCredentials);\n            request.onreadystatechange = function () {\n              if (request.readyState !== 0 && request.readyState !== 1) {\n                _this.connected = true;\n              }\n              if (request.readyState === 4) {\n                if (request.status === 200) {\n                  try {\n                    return resolve(JSON.parse(request.responseText));\n                  } catch (error) {\n                    reject(new Error(\"Invalid JSON as response: \".concat(request.responseText)));\n                  }\n                }\n                if (_this.isInvalidHttpEndpoint(request)) {\n                  reject(new Error(\"Connection refused or URL couldn't be resolved: \".concat(_this.host)));\n                }\n                if (request.status >= 400 && request.status <= 499) {\n                  reject(new Error(\"HttpProvider ERROR: \".concat(request.responseText, \" (code: \").concat(request.status, \")\")));\n                }\n              }\n            };\n            request.ontimeout = function () {\n              _this.connected = false;\n              reject(new Error(\"Connection error: Timeout exceeded after \".concat(_this.timeout, \"ms\")));\n            };\n            try {\n              request.send(JSON.stringify(payload));\n            } catch (error) {\n              _this.connected = false;\n              reject(error);\n            }\n          });\n        }\n      }, {\n        key: \"isInvalidHttpEndpoint\",\n        value: function isInvalidHttpEndpoint(request) {\n          return request.response === null && request.status === 0;\n        }\n      }]);\n      return HttpProvider;\n    }();\n\n    var BatchRequest =\n    function () {\n      function BatchRequest(moduleInstance) {\n        _classCallCheck(this, BatchRequest);\n        this.moduleInstance = moduleInstance;\n        this.methods = [];\n      }\n      _createClass(BatchRequest, [{\n        key: \"add\",\n        value: function add(method) {\n          if (!isObject(method) && method) {\n            throw new Error('Please provide a object of type AbstractMethod.');\n          }\n          this.methods.push(method);\n        }\n      }, {\n        key: \"execute\",\n        value: function execute() {\n          var _this = this;\n          return this.moduleInstance.currentProvider.sendBatch(this.methods, this.moduleInstance).then(function (response) {\n            var errors = [];\n            _this.methods.forEach(function (method, index) {\n              if (!isArray(response)) {\n                method.callback(new Error(\"BatchRequest error: Response should be of type Array but is: \".concat(_typeof(response))), null);\n                errors.push(\"Response should be of type Array but is: \".concat(_typeof(response)));\n                return;\n              }\n              var responseItem = response[index] || null;\n              var validationResult = JsonRpcResponseValidator.validate(responseItem);\n              if (validationResult) {\n                try {\n                  var mappedResult = method.afterExecution(responseItem.result);\n                  response[index] = mappedResult;\n                  method.callback(false, mappedResult);\n                } catch (error) {\n                  errors.push(error);\n                  method.callback(error, null);\n                }\n                return;\n              }\n              errors.push(validationResult);\n              method.callback(validationResult, null);\n            });\n            if (errors.length > 0) {\n              throw new Error(\"BatchRequest error: \".concat(JSON.stringify(errors)));\n            }\n            return {\n              methods: _this.methods,\n              response: response\n            };\n          });\n        }\n      }]);\n      return BatchRequest;\n    }();\n\n    var Web3EthereumProvider =\n    function (_AbstractSocketProvid) {\n      _inherits(Web3EthereumProvider, _AbstractSocketProvid);\n      function Web3EthereumProvider(connection) {\n        var _this;\n        _classCallCheck(this, Web3EthereumProvider);\n        _this = _possibleConstructorReturn(this, _getPrototypeOf(Web3EthereumProvider).call(this, connection, null));\n        _this.host = 'Web3EthereumProvider';\n        return _this;\n      }\n      _createClass(Web3EthereumProvider, [{\n        key: \"registerEventListeners\",\n        value: function registerEventListeners() {\n          this.connection.on('notification', this.onMessage.bind(this));\n          this.connection.on('connect', this.onConnect.bind(this));\n          this.connection.on('connect', this.onReady.bind(this));\n          this.connection.on('close', this.onClose.bind(this));\n          this.connection.on('networkChanged', this.onNetworkChanged.bind(this));\n          this.connection.on('accountsChanged', this.onAccountsChanged.bind(this));\n        }\n      }, {\n        key: \"removeAllListeners\",\n        value: function removeAllListeners(event) {\n          switch (event) {\n            case this.SOCKET_NETWORK_CHANGED:\n              this.connection.removeListener('networkChanged', this.onNetworkChanged);\n              break;\n            case this.SOCKET_ACCOUNTS_CHANGED:\n              this.connection.removeListener('accountsChanged', this.onAccountsChanged);\n              break;\n            case this.SOCKET_MESSAGE:\n              this.connection.removeListener('notification', this.onMessage);\n              break;\n            case this.SOCKET_READY:\n              this.connection.removeListener('connect', this.onReady);\n              break;\n            case this.SOCKET_CLOSE:\n              this.connection.removeListener('close', this.onClose);\n              break;\n            case this.SOCKET_ERROR:\n              this.connection.removeListener('close', this.onError);\n              break;\n            case this.SOCKET_CONNECT:\n              this.connection.removeListener('connect', this.onConnect);\n              break;\n          }\n          _get(_getPrototypeOf(Web3EthereumProvider.prototype), \"removeAllListeners\", this).call(this, event);\n        }\n      }, {\n        key: \"removeAllSocketListeners\",\n        value: function removeAllSocketListeners() {\n          this.connection.removeAllListeners();\n        }\n      }, {\n        key: \"onNetworkChanged\",\n        value: function onNetworkChanged(networkId) {\n          this.emit('networkChanged', networkId);\n        }\n      }, {\n        key: \"onAccountsChanged\",\n        value: function onAccountsChanged(accounts) {\n          this.emit('accountsChanged', accounts);\n        }\n      }, {\n        key: \"onMessage\",\n        value: function onMessage(response) {\n          this.emit(this.getSubscriptionEvent(response.subscription), response);\n        }\n      }, {\n        key: \"send\",\n        value: function () {\n          var _send = _asyncToGenerator(\n          _regeneratorRuntime.mark(function _callee(method, parameters) {\n            var response, validationResult;\n            return _regeneratorRuntime.wrap(function _callee$(_context) {\n              while (1) {\n                switch (_context.prev = _context.next) {\n                  case 0:\n                    response = this.connection.send(method, parameters);\n                    validationResult = JsonRpcResponseValidator.validate(response);\n                    if (!(validationResult instanceof Error)) {\n                      _context.next = 4;\n                      break;\n                    }\n                    throw validationResult;\n                  case 4:\n                    return _context.abrupt(\"return\", response);\n                  case 5:\n                  case \"end\":\n                    return _context.stop();\n                }\n              }\n            }, _callee, this);\n          }));\n          function send(_x, _x2) {\n            return _send.apply(this, arguments);\n          }\n          return send;\n        }()\n      }, {\n        key: \"sendBatch\",\n        value: function sendBatch(methods, moduleInstance) {\n          var _this2 = this;\n          var methodCalls = [];\n          methods.forEach(function (method) {\n            method.beforeExecution(moduleInstance);\n            methodCalls.push(_this2.connection.send(method.rpcMethod, method.parameters));\n          });\n          return Promise.all(methodCalls);\n        }\n      }]);\n      return Web3EthereumProvider;\n    }(AbstractSocketProvider);\n\n    var MetamaskProvider =\n    function (_AbstractSocketProvid) {\n      _inherits(MetamaskProvider, _AbstractSocketProvid);\n      function MetamaskProvider(inpageProvider) {\n        var _this;\n        _classCallCheck(this, MetamaskProvider);\n        _this = _possibleConstructorReturn(this, _getPrototypeOf(MetamaskProvider).call(this, inpageProvider, null));\n        _this.host = 'metamask';\n        return _this;\n      }\n      _createClass(MetamaskProvider, [{\n        key: \"registerEventListeners\",\n        value: function registerEventListeners() {\n          this.connection.on('accountsChanged', this.onAccountsChanged.bind(this));\n          this.connection.on('networkChanged', this.onReady.bind(this));\n          this.connection.on('networkChanged', this.onNetworkChanged.bind(this));\n          this.connection.on('data', this.onMessage.bind(this));\n          this.connection.on('error', this.onError.bind(this));\n        }\n      }, {\n        key: \"onMessage\",\n        value: function onMessage(metamaskParam, payload) {\n          _get(_getPrototypeOf(MetamaskProvider.prototype), \"onMessage\", this).call(this, payload);\n        }\n      }, {\n        key: \"removeAllListeners\",\n        value: function removeAllListeners(event) {\n          switch (event) {\n            case this.SOCKET_NETWORK_CHANGED:\n              this.connection.removeListener('networkChanged', this.onNetworkChanged);\n              break;\n            case this.SOCKET_ACCOUNTS_CHANGED:\n              this.connection.removeListener('accountsChanged', this.onAccountsChanged);\n              break;\n            case this.SOCKET_MESSAGE:\n              this.connection.removeListener('data', this.onMessage);\n              break;\n            case this.SOCKET_ERROR:\n              this.connection.removeListener('error', this.onError);\n              break;\n          }\n          _get(_getPrototypeOf(MetamaskProvider.prototype), \"removeAllListeners\", this).call(this, event);\n        }\n      }, {\n        key: \"removeAllSocketListeners\",\n        value: function removeAllSocketListeners() {\n          this.connection.removeListener(this.SOCKET_NETWORK_CHANGED, this.onNetworkChanged);\n          this.connection.removeListener(this.SOCKET_ACCOUNTS_CHANGED, this.onAccountsChanged);\n          _get(_getPrototypeOf(MetamaskProvider.prototype), \"removeAllSocketListeners\", this).call(this);\n        }\n      }, {\n        key: \"onNetworkChanged\",\n        value: function onNetworkChanged(networkId) {\n          this.emit('networkChanged', networkId);\n        }\n      }, {\n        key: \"onAccountsChanged\",\n        value: function onAccountsChanged(accounts) {\n          this.emit('accountsChanged', accounts);\n        }\n      }, {\n        key: \"disconnect\",\n        value: function disconnect() {\n          return true;\n        }\n      }, {\n        key: \"sendPayload\",\n        value: function sendPayload(payload) {\n          var _this2 = this;\n          return new Promise(function (resolve, reject) {\n            _this2.connection.send(payload, function (error, response) {\n              _this2.removeAllListeners(payload.id);\n              if (!error) {\n                return resolve(response);\n              }\n              reject(error);\n            });\n          });\n        }\n      }, {\n        key: \"connected\",\n        get: function get() {\n          return this.connection.isConnected();\n        }\n      }]);\n      return MetamaskProvider;\n    }(AbstractSocketProvider);\n\n    var MistEthereumProvider =\n    function (_AbstractSocketProvid) {\n      _inherits(MistEthereumProvider, _AbstractSocketProvid);\n      function MistEthereumProvider(connection) {\n        var _this;\n        _classCallCheck(this, MistEthereumProvider);\n        _this = _possibleConstructorReturn(this, _getPrototypeOf(MistEthereumProvider).call(this, connection, null));\n        _this.host = 'mist';\n        return _this;\n      }\n      _createClass(MistEthereumProvider, [{\n        key: \"registerEventListeners\",\n        value: function registerEventListeners() {\n          this.connection.on('data', this.onMessage.bind(this));\n          this.connection.on('error', this.onError.bind(this));\n          this.connection.on('connect', this.onConnect.bind(this));\n          this.connection.on('connect', this.onReady.bind(this));\n          this.connection.on('end', this.onClose.bind(this));\n        }\n      }, {\n        key: \"removeAllListeners\",\n        value: function removeAllListeners(event) {\n          switch (event) {\n            case this.SOCKET_MESSAGE:\n              this.connection.removeListener('data', this.onMessage);\n              break;\n            case this.SOCKET_ERROR:\n              this.connection.removeListener('error', this.onError);\n              break;\n            case this.SOCKET_CONNECT:\n              this.connection.removeListener('connect', this.onConnect);\n              break;\n            case this.SOCKET_READY:\n              this.connection.removeListener('connect', this.onConnect);\n              break;\n            case this.SOCKET_CLOSE:\n              this.connection.removeListener('end', this.onClose);\n              break;\n          }\n          _get(_getPrototypeOf(MistEthereumProvider.prototype), \"removeAllListeners\", this).call(this, event);\n        }\n      }, {\n        key: \"disconnect\",\n        value: function disconnect() {\n          return true;\n        }\n      }, {\n        key: \"sendPayload\",\n        value: function sendPayload(payload) {\n          var _this2 = this;\n          return new Promise(function (resolve, reject) {\n            _this2.connection.send(payload, function (error, response) {\n              _this2.removeAllListeners(payload.id);\n              if (!error) {\n                return resolve(response);\n              }\n              reject(error);\n            });\n          });\n        }\n      }, {\n        key: \"connected\",\n        get: function get() {\n          return this.connection.isConnected();\n        }\n      }]);\n      return MistEthereumProvider;\n    }(AbstractSocketProvider);\n\n    var CustomProvider =\n    function () {\n      function CustomProvider(connection) {\n        _classCallCheck(this, CustomProvider);\n        this.host = 'CustomProvider';\n        this.connection = connection;\n        this.checkConnectionMethods();\n      }\n      _createClass(CustomProvider, [{\n        key: \"supportsSubscriptions\",\n        value: function supportsSubscriptions() {\n          return false;\n        }\n      }, {\n        key: \"checkConnectionMethods\",\n        value: function checkConnectionMethods() {\n          if (this.connection.send || this.connection.sendAsync) {\n            return true;\n          }\n          throw new Error('Invalid provider injected!');\n        }\n      }, {\n        key: \"subscribe\",\n        value: function subscribe() {\n          throw new Error('Subscriptions are not supported with the CustomProvider.');\n        }\n      }, {\n        key: \"unsubscribe\",\n        value: function unsubscribe() {\n          throw new Error('Subscriptions are not supported with the CustomProvider.');\n        }\n      }, {\n        key: \"send\",\n        value: function () {\n          var _send = _asyncToGenerator(\n          _regeneratorRuntime.mark(function _callee(method, parameters) {\n            var response, validationResult;\n            return _regeneratorRuntime.wrap(function _callee$(_context) {\n              while (1) {\n                switch (_context.prev = _context.next) {\n                  case 0:\n                    _context.next = 2;\n                    return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));\n                  case 2:\n                    response = _context.sent;\n                    validationResult = JsonRpcResponseValidator.validate(response);\n                    if (!(validationResult instanceof Error)) {\n                      _context.next = 6;\n                      break;\n                    }\n                    throw validationResult;\n                  case 6:\n                    return _context.abrupt(\"return\", response.result);\n                  case 7:\n                  case \"end\":\n                    return _context.stop();\n                }\n              }\n            }, _callee, this);\n          }));\n          function send(_x, _x2) {\n            return _send.apply(this, arguments);\n          }\n          return send;\n        }()\n      }, {\n        key: \"sendBatch\",\n        value: function sendBatch(methods, moduleInstance) {\n          var payload = [];\n          methods.forEach(function (method) {\n            method.beforeExecution(moduleInstance);\n            payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));\n          });\n          return this.sendPayload(payload);\n        }\n      }, {\n        key: \"sendPayload\",\n        value: function sendPayload(payload) {\n          var _this = this;\n          return new Promise(function (resolve, reject) {\n            if (_this.connection.sendAsync) {\n              _this.connection.sendAsync(payload, function (error, response) {\n                if (!error) {\n                  resolve(response);\n                }\n                reject(error);\n              });\n              return;\n            }\n            _this.connection.send(payload, function (error, response) {\n              if (!error) {\n                resolve(response);\n              }\n              reject(error);\n            });\n          });\n        }\n      }]);\n      return CustomProvider;\n    }();\n\n    var ProvidersModuleFactory =\n    function () {\n      function ProvidersModuleFactory() {\n        _classCallCheck(this, ProvidersModuleFactory);\n      }\n      _createClass(ProvidersModuleFactory, [{\n        key: \"createBatchRequest\",\n        value: function createBatchRequest(moduleInstance) {\n          return new BatchRequest(moduleInstance);\n        }\n      }, {\n        key: \"createProviderResolver\",\n        value: function createProviderResolver() {\n          return new ProviderResolver(this);\n        }\n      }, {\n        key: \"createHttpProvider\",\n        value: function createHttpProvider(url) {\n          var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n          return new HttpProvider(url, options, this);\n        }\n      }, {\n        key: \"createXMLHttpRequest\",\n        value: function createXMLHttpRequest(host, timeout, headers, agent, withCredentials) {\n          var request;\n          if (typeof process !== 'undefined' && process.versions != null && process.versions.node != null) {\n            request = new xhr2Cookies.XMLHttpRequest();\n            request.nodejsSet(agent);\n          } else {\n            request = new XMLHttpRequest();\n          }\n          request.open('POST', host, true);\n          request.setRequestHeader('Content-Type', 'application/json');\n          request.timeout = timeout;\n          request.withCredentials = withCredentials;\n          if (headers) {\n            headers.forEach(function (header) {\n              request.setRequestHeader(header.name, header.value);\n            });\n          }\n          return request;\n        }\n      }, {\n        key: \"createWebsocketProvider\",\n        value: function createWebsocketProvider(url) {\n          var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n          var connection = '';\n          if (typeof process !== 'undefined' && process.versions != null && process.versions.node != null) {\n            var headers = options.headers || {};\n            var urlObject = new URL(url);\n            if (!headers.authorization && urlObject.username && urlObject.password) {\n              var authToken = Buffer.from(\"\".concat(urlObject.username, \":\").concat(urlObject.password)).toString('base64');\n              headers.authorization = \"Basic \".concat(authToken);\n            }\n            connection = new websocket.w3cwebsocket(url, options.protocol, null, headers, null, options.clientConfig);\n          } else {\n            connection = new window.WebSocket(url, options.protocol);\n          }\n          return new WebsocketProvider(connection, options.timeout);\n        }\n      }, {\n        key: \"createIpcProvider\",\n        value: function createIpcProvider(path, net) {\n          return new IpcProvider(net.connect({\n            path: path\n          }), path);\n        }\n      }, {\n        key: \"createWeb3EthereumProvider\",\n        value: function createWeb3EthereumProvider(connection) {\n          return new Web3EthereumProvider(connection);\n        }\n      }, {\n        key: \"createMetamaskProvider\",\n        value: function createMetamaskProvider(inpageProvider) {\n          return new MetamaskProvider(inpageProvider);\n        }\n      }, {\n        key: \"createMistEthereumProvider\",\n        value: function createMistEthereumProvider(mistEthereumProvider) {\n          return new MistEthereumProvider(mistEthereumProvider);\n        }\n      }, {\n        key: \"createCustomProvider\",\n        value: function createCustomProvider(connection) {\n          return new CustomProvider(connection);\n        }\n      }]);\n      return ProvidersModuleFactory;\n    }();\n\n    var global$1 = function () {\n      return this || (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object' && self;\n    }() || new Function('return this')();\n    var ProviderDetector =\n    function () {\n      function ProviderDetector() {\n        _classCallCheck(this, ProviderDetector);\n      }\n      _createClass(ProviderDetector, null, [{\n        key: \"detect\",\n        value: function detect() {\n          if (typeof global$1.ethereumProvider !== 'undefined' && global$1.ethereumProvider.constructor.name === 'EthereumProvider') {\n            return global$1.ethereumProvider;\n          }\n          if (typeof global$1.web3 !== 'undefined' && global$1.web3.currentProvider) {\n            return global$1.web3.currentProvider;\n          }\n          return null;\n        }\n      }]);\n      return ProviderDetector;\n    }();\n\n    function HttpProvider$1(url) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      return new ProvidersModuleFactory().createHttpProvider(url, options);\n    }\n    function WebsocketProvider$1(url) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      return new ProvidersModuleFactory().createWebsocketProvider(url, options);\n    }\n    function IpcProvider$1(path, net) {\n      return new ProvidersModuleFactory().createIpcProvider(path, net);\n    }\n    function BatchRequest$1(moduleInstance) {\n      return new ProvidersModuleFactory().createBatchRequest(moduleInstance);\n    }\n    function ProviderResolver$1() {\n      return new ProvidersModuleFactory().createProviderResolver();\n    }\n\n    exports.BatchRequest = BatchRequest$1;\n    exports.HttpProvider = HttpProvider$1;\n    exports.IpcProvider = IpcProvider$1;\n    exports.ProviderDetector = ProviderDetector;\n    exports.ProviderResolver = ProviderResolver$1;\n    exports.ProvidersModuleFactory = ProvidersModuleFactory;\n    exports.Web3EthereumProvider = Web3EthereumProvider;\n    exports.WebsocketProvider = WebsocketProvider$1;\n\n    Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n"]}