Socket
Socket
Sign inDemoInstall

web3-providers

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

web3-providers - npm Package Compare versions

Comparing version 1.0.0-beta.48 to 1.0.0-beta.49

LICENSE

483

dist/web3-providers.cjs.js

@@ -11,9 +11,5 @@ 'use strict';

var isFunction = _interopDefault(require('lodash/isFunction'));
var _regeneratorRuntime = _interopDefault(require('@babel/runtime/regenerator'));
var _asyncToGenerator = _interopDefault(require('@babel/runtime/helpers/asyncToGenerator'));
var EventEmitter = _interopDefault(require('eventemitter3'));
var oboe = _interopDefault(require('oboe'));
var http = _interopDefault(require('http'));
var https = _interopDefault(require('https'));
var _typeof = _interopDefault(require('@babel/runtime/helpers/typeof'));
var isArray = _interopDefault(require('lodash/isArray'));

@@ -25,4 +21,7 @@ var isObject = _interopDefault(require('lodash/isObject'));

var _inherits = _interopDefault(require('@babel/runtime/helpers/inherits'));
var _regeneratorRuntime = _interopDefault(require('@babel/runtime/regenerator'));
var _asyncToGenerator = _interopDefault(require('@babel/runtime/helpers/asyncToGenerator'));
var _classCallCheck = _interopDefault(require('@babel/runtime/helpers/classCallCheck'));
var _createClass = _interopDefault(require('@babel/runtime/helpers/createClass'));
var _typeof = _interopDefault(require('@babel/runtime/helpers/typeof'));

@@ -52,3 +51,3 @@ var global = function () {

}
if (this.isWeb3Provider(provider)) {
if (provider.sendPayload && provider.subscribe) {
return provider;

@@ -68,16 +67,2 @@ }

}, {
key: "isWeb3Provider",
value: function isWeb3Provider(provider) {
switch (provider.constructor.name) {
case 'HttpProvider':
case 'IpcProvider':
case 'WebsocketProvider':
case 'CustomProvider':
case 'MetamaskProvider':
case 'MistEthereumProvider':
case 'Web3EthereumProvider':
return true;
}
}
}, {
key: "isMetamaskInpageProvider",

@@ -91,25 +76,2 @@ value: function isMetamaskInpageProvider(provider) {

var global$1 = function () {
return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === 'object' && self;
}() || new Function('return this')();
var ProviderDetector =
function () {
function ProviderDetector() {
_classCallCheck(this, ProviderDetector);
}
_createClass(ProviderDetector, [{
key: "detect",
value: function detect() {
if (typeof global$1.ethereumProvider !== 'undefined' && global$1.ethereumProvider.constructor.name === 'EthereumProvider') {
return global$1.ethereumProvider;
}
if (typeof global$1.web3 !== 'undefined' && global$1.web3.currentProvider) {
return global$1.web3.currentProvider;
}
return null;
}
}]);
return ProviderDetector;
}();
var messageId = 0;

@@ -140,2 +102,32 @@ var JsonRpcMapper =

var JsonRpcResponseValidator =
function () {
function JsonRpcResponseValidator() {
_classCallCheck(this, JsonRpcResponseValidator);
}
_createClass(JsonRpcResponseValidator, null, [{
key: "validate",
value: function validate(response) {
var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (isObject(response)) {
if (response.error) {
if (response.error instanceof Error) {
return new Error("Node error: ".concat(response.error.message));
}
return new Error("Node error: ".concat(JSON.stringify(response.error)));
}
if (payload && response.id !== payload.id) {
return new Error("Validation error: Invalid JSON-RPC response ID (request: ".concat(payload.id, " / response: ").concat(response.id, ")"));
}
if (response.result === undefined) {
return new Error('Validation error: Undefined JSON-RPC result');
}
return true;
}
return new Error('Validation error: Response should be of type Object');
}
}]);
return JsonRpcResponseValidator;
}();
var AbstractSocketProvider =

@@ -182,6 +174,44 @@ function (_EventEmitter) {

key: "send",
value: function send(method, parameters) {}
value: function () {
var _send = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee(method, parameters) {
var response, validationResult;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
case 2:
response = _context.sent;
validationResult = JsonRpcResponseValidator.validate(response);
if (!(validationResult instanceof Error)) {
_context.next = 6;
break;
}
throw validationResult;
case 6:
return _context.abrupt("return", response.result);
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function send(_x, _x2) {
return _send.apply(this, arguments);
}
return send;
}()
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {}
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {

@@ -214,11 +244,11 @@ key: "onReady",

var _onConnect = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee() {
_regeneratorRuntime.mark(function _callee2() {
var subscriptionKeys, subscriptionId, _i, key;
return _regeneratorRuntime.wrap(function _callee$(_context) {
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context.prev = _context.next) {
switch (_context2.prev = _context2.next) {
case 0:
subscriptionKeys = Object.keys(this.subscriptions);
if (!(subscriptionKeys.length > 0)) {
_context.next = 13;
_context2.next = 13;
break;

@@ -229,10 +259,10 @@ }

if (!(_i < subscriptionKeys.length)) {
_context.next = 13;
_context2.next = 13;
break;
}
key = subscriptionKeys[_i];
_context.next = 7;
_context2.next = 7;
return this.subscribe(this.subscriptions[key].subscribeMethod, this.subscriptions[key].parameters[0], this.subscriptions[key].parameters.slice(1));
case 7:
subscriptionId = _context.sent;
subscriptionId = _context2.sent;
delete this.subscriptions[subscriptionId];

@@ -242,16 +272,18 @@ this.subscriptions[this.getSubscriptionEvent(this.subscriptions[key].id)].id = subscriptionId;

_i++;
_context.next = 3;
_context2.next = 3;
break;
case 13:
this.emit(this.SOCKET_CONNECT);
this.emit(this.CONNECT);
case 14:
case 15:
case "end":
return _context.stop();
return _context2.stop();
}
}
}, _callee, this);
}, _callee2, this);
}));
return function onConnect() {
function onConnect() {
return _onConnect.apply(this, arguments);
};
}
return onConnect;
}()

@@ -361,32 +393,2 @@ }, {

var JsonRpcResponseValidator =
function () {
function JsonRpcResponseValidator() {
_classCallCheck(this, JsonRpcResponseValidator);
}
_createClass(JsonRpcResponseValidator, null, [{
key: "validate",
value: function validate(response) {
var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (isObject(response)) {
if (response.error) {
if (response.error instanceof Error) {
return new Error("Node error: ".concat(response.error.message));
}
return new Error("Node error: ".concat(JSON.stringify(response.error)));
}
if (payload && response.id !== payload.id) {
return new Error("Validation error: Invalid JSON-RPC response ID (request: ".concat(payload.id, " / response: ").concat(response.id, ")"));
}
if (response.result === undefined) {
return new Error('Validation error: Undefined JSON-RPC result');
}
return true;
}
return new Error('Validation error: Response should be of type Object');
}
}]);
return JsonRpcResponseValidator;
}();
var WebsocketProvider =

@@ -486,23 +488,2 @@ function (_AbstractSocketProvid) {

}, {
key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {
key: "sendPayload",

@@ -559,2 +540,3 @@ value: function sendPayload(payload) {

_this.host = path;
_this.chunks = '';
return _this;

@@ -577,3 +559,9 @@ }

value: function onMessage(message) {
_get(_getPrototypeOf(IpcProvider.prototype), "onMessage", this).call(this, message.toString());
var chunk = message.toString('utf8');
if (chunk.indexOf('\n') < 0) {
this.chunks += chunk;
return;
}
_get(_getPrototypeOf(IpcProvider.prototype), "onMessage", this).call(this, this.chunks + chunk.substring(0, chunk.indexOf('\n')));
this.chunks = chunk.substring(chunk.indexOf('\n') + 1);
}

@@ -583,13 +571,8 @@ }, {

value: function registerEventListeners() {
if (this.connection.constructor.name === 'Socket') {
oboe(this.connection).done(this.onMessage);
} else {
this.connection.addListener('data', this.onMessage.bind(this));
}
this.connection.addListener('connect', this.onConnect.bind(this));
this.connection.addListener('error', this.onError.bind(this));
this.connection.addListener('end', this.onError.bind(this));
this.connection.addListener('close', this.onClose.bind(this));
this.connection.addListener('timeout', this.onClose.bind(this));
this.connection.addListener('ready', this.onReady.bind(this));
this.connection.on('data', this.onMessage.bind(this));
this.connection.on('connect', this.onConnect.bind(this));
this.connection.on('error', this.onError.bind(this));
this.connection.on('close', this.onClose.bind(this));
this.connection.on('timeout', this.onClose.bind(this));
this.connection.on('ready', this.onReady.bind(this));
}

@@ -601,15 +584,15 @@ }, {

case this.SOCKET_MESSAGE:
this.connection.removeEventListener('data', this.onMessage);
this.connection.removeListener('data', this.onMessage);
break;
case this.SOCKET_READY:
this.connection.removeEventListener('ready', this.onReady);
this.connection.removeListener('ready', this.onReady);
break;
case this.SOCKET_CLOSE:
this.connection.removeEventListener('close', this.onClose);
this.connection.removeListener('close', this.onClose);
break;
case this.SOCKET_ERROR:
this.connection.removeEventListener('error', this.onError);
this.connection.removeListener('error', this.onError);
break;
case this.SOCKET_CONNECT:
this.connection.removeEventListener('connect', this.onConnect);
this.connection.removeListener('connect', this.onConnect);
break;

@@ -620,23 +603,2 @@ }

}, {
key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {
key: "sendPayload",

@@ -646,5 +608,2 @@ value: function sendPayload(payload) {

return new Promise(function (resolve, reject) {
if (_this2.connection.pending) {
return reject(new Error('Connection error: The socket is still trying to connect'));
}
if (!_this2.connection.writable) {

@@ -662,6 +621,3 @@ _this2.connection.connect({

}
_this2.on(id, function (response) {
resolve(response);
_this2.removeAllListeners(id);
});
_this2.once(id, resolve);
return;

@@ -725,11 +681,34 @@ }

key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
value: function () {
var _send = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee(method, parameters) {
var response, validationResult;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
case 2:
response = _context.sent;
validationResult = JsonRpcResponseValidator.validate(response);
if (!(validationResult instanceof Error)) {
_context.next = 6;
break;
}
throw validationResult;
case 6:
return _context.abrupt("return", response.result);
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function send(_x, _x2) {
return _send.apply(this, arguments);
}
return send;
}()
}, {

@@ -775,5 +754,3 @@ key: "sendBatch",

} catch (error) {
if (error.constructor.name === 'NetworkError') {
_this.connected = false;
}
_this.connected = false;
reject(error);

@@ -918,11 +895,31 @@ }

key: "send",
value: function send(method, parameters) {
return this.connection.send(method, parameters).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response;
});
}
value: function () {
var _send = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee(method, parameters) {
var response, validationResult;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
response = this.connection.send(method, parameters);
validationResult = JsonRpcResponseValidator.validate(response);
if (!(validationResult instanceof Error)) {
_context.next = 4;
break;
}
throw validationResult;
case 4:
return _context.abrupt("return", response);
case 5:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function send(_x, _x2) {
return _send.apply(this, arguments);
}
return send;
}()
}, {

@@ -1009,23 +1006,2 @@ key: "sendBatch",

}, {
key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {
key: "sendPayload",

@@ -1100,23 +1076,2 @@ value: function sendPayload(payload) {

}, {
key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {
key: "sendPayload",

@@ -1172,11 +1127,34 @@ value: function sendPayload(payload) {

key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
value: function () {
var _send = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee(method, parameters) {
var response, validationResult;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
case 2:
response = _context.sent;
validationResult = JsonRpcResponseValidator.validate(response);
if (!(validationResult instanceof Error)) {
_context.next = 6;
break;
}
throw validationResult;
case 6:
return _context.abrupt("return", response.result);
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function send(_x, _x2) {
return _send.apply(this, arguments);
}
return send;
}()
}, {

@@ -1234,7 +1212,2 @@ key: "sendBatch",

}, {
key: "createProviderDetector",
value: function createProviderDetector() {
return new ProviderDetector();
}
}, {
key: "createHttpProvider",

@@ -1317,21 +1290,44 @@ value: function createHttpProvider(url) {

var HttpProvider$1 = function HttpProvider(url, options) {
var global$1 = function () {
return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === 'object' && self;
}() || new Function('return this')();
var ProviderDetector =
function () {
function ProviderDetector() {
_classCallCheck(this, ProviderDetector);
}
_createClass(ProviderDetector, null, [{
key: "detect",
value: function detect() {
if (typeof global$1.ethereumProvider !== 'undefined' && global$1.ethereumProvider.constructor.name === 'EthereumProvider') {
return global$1.ethereumProvider;
}
if (typeof global$1.web3 !== 'undefined' && global$1.web3.currentProvider) {
return global$1.web3.currentProvider;
}
return null;
}
}]);
return ProviderDetector;
}();
function HttpProvider$1(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new ProvidersModuleFactory().createHttpProvider(url, options);
};
var WebsocketProvider$1 = function WebsocketProvider(url, options) {
}
function WebsocketProvider$1(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new ProvidersModuleFactory().createWebsocketProvider(url, options);
};
var IpcProvider$1 = function IpcProvider(path, net) {
}
function IpcProvider$1(path, net) {
return new ProvidersModuleFactory().createIpcProvider(path, net);
};
var BatchRequest$1 = function BatchRequest(moduleInstance) {
}
function BatchRequest$1(moduleInstance) {
return new ProvidersModuleFactory().createBatchRequest(moduleInstance);
};
var ProviderResolver$1 = function ProviderResolver() {
}
function ProviderResolver$1() {
return new ProvidersModuleFactory().createProviderResolver();
};
var ProviderDetector$1 = function ProviderDetector() {
return new ProvidersModuleFactory().createProviderDetector();
};
}
exports.ProviderDetector = ProviderDetector;
exports.HttpProvider = HttpProvider$1;

@@ -1342,4 +1338,3 @@ exports.WebsocketProvider = WebsocketProvider$1;

exports.ProviderResolver = ProviderResolver$1;
exports.ProviderDetector = ProviderDetector$1;
exports.ProvidersModuleFactory = ProvidersModuleFactory;
exports.Web3EthereumProvider = Web3EthereumProvider;

@@ -6,3 +6,2 @@ import { w3cwebsocket } from 'websocket';

import EventEmitter from 'eventemitter3';
import oboe from 'oboe';
import http from 'http';

@@ -32,3 +31,3 @@ import https from 'https';

}
if (this.isWeb3Provider(provider)) {
if (provider.sendPayload && provider.subscribe) {
return provider;

@@ -47,14 +46,2 @@ }

}
isWeb3Provider(provider) {
switch (provider.constructor.name) {
case 'HttpProvider':
case 'IpcProvider':
case 'WebsocketProvider':
case 'CustomProvider':
case 'MetamaskProvider':
case 'MistEthereumProvider':
case 'Web3EthereumProvider':
return true;
}
}
isMetamaskInpageProvider(provider) {

@@ -65,17 +52,2 @@ return provider.constructor.name === 'MetamaskInpageProvider';

const global$1 = function () {
return this || typeof self === 'object' && self;
}() || new Function('return this')();
class ProviderDetector {
detect() {
if (typeof global$1.ethereumProvider !== 'undefined' && global$1.ethereumProvider.constructor.name === 'EthereumProvider') {
return global$1.ethereumProvider;
}
if (typeof global$1.web3 !== 'undefined' && global$1.web3.currentProvider) {
return global$1.web3.currentProvider;
}
return null;
}
}
let messageId = 0;

@@ -98,2 +70,23 @@ class JsonRpcMapper {

class JsonRpcResponseValidator {
static validate(response, payload = false) {
if (isObject(response)) {
if (response.error) {
if (response.error instanceof Error) {
return new Error(`Node error: ${response.error.message}`);
}
return new Error(`Node error: ${JSON.stringify(response.error)}`);
}
if (payload && response.id !== payload.id) {
return new Error(`Validation error: Invalid JSON-RPC response ID (request: ${payload.id} / response: ${response.id})`);
}
if (response.result === undefined) {
return new Error('Validation error: Undefined JSON-RPC result');
}
return true;
}
return new Error('Validation error: Response should be of type Object');
}
}
class AbstractSocketProvider extends EventEmitter {

@@ -128,4 +121,18 @@ constructor(connection, timeout) {

get connected() {}
send(method, parameters) {}
sendBatch(methods, moduleInstance) {}
async send(method, parameters) {
const response = await this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
}
sendBatch(methods, moduleInstance) {
let payload = [];
methods.forEach(method => {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
onReady(event) {

@@ -157,2 +164,3 @@ this.emit(this.READY, event);

}
this.emit(this.SOCKET_CONNECT);
this.emit(this.CONNECT);

@@ -235,23 +243,2 @@ }

class JsonRpcResponseValidator {
static validate(response, payload = false) {
if (isObject(response)) {
if (response.error) {
if (response.error instanceof Error) {
return new Error(`Node error: ${response.error.message}`);
}
return new Error(`Node error: ${JSON.stringify(response.error)}`);
}
if (payload && response.id !== payload.id) {
return new Error(`Validation error: Invalid JSON-RPC response ID (request: ${payload.id} / response: ${response.id})`);
}
if (response.result === undefined) {
return new Error('Validation error: Undefined JSON-RPC result');
}
return true;
}
return new Error('Validation error: Response should be of type Object');
}
}
class WebsocketProvider extends AbstractSocketProvider {

@@ -329,19 +316,2 @@ constructor(connection, timeout) {

}
send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(response => {
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
sendBatch(methods, moduleInstance) {
let payload = [];
methods.forEach(method => {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
sendPayload(payload) {

@@ -385,2 +355,3 @@ return new Promise((resolve, reject) => {

this.host = path;
this.chunks = '';
}

@@ -399,16 +370,17 @@ disconnect() {

onMessage(message) {
super.onMessage(message.toString());
const chunk = message.toString('utf8');
if (chunk.indexOf('\n') < 0) {
this.chunks += chunk;
return;
}
super.onMessage(this.chunks + chunk.substring(0, chunk.indexOf('\n')));
this.chunks = chunk.substring(chunk.indexOf('\n') + 1);
}
registerEventListeners() {
if (this.connection.constructor.name === 'Socket') {
oboe(this.connection).done(this.onMessage);
} else {
this.connection.addListener('data', this.onMessage.bind(this));
}
this.connection.addListener('connect', this.onConnect.bind(this));
this.connection.addListener('error', this.onError.bind(this));
this.connection.addListener('end', this.onError.bind(this));
this.connection.addListener('close', this.onClose.bind(this));
this.connection.addListener('timeout', this.onClose.bind(this));
this.connection.addListener('ready', this.onReady.bind(this));
this.connection.on('data', this.onMessage.bind(this));
this.connection.on('connect', this.onConnect.bind(this));
this.connection.on('error', this.onError.bind(this));
this.connection.on('close', this.onClose.bind(this));
this.connection.on('timeout', this.onClose.bind(this));
this.connection.on('ready', this.onReady.bind(this));
}

@@ -418,15 +390,15 @@ removeAllListeners(event) {

case this.SOCKET_MESSAGE:
this.connection.removeEventListener('data', this.onMessage);
this.connection.removeListener('data', this.onMessage);
break;
case this.SOCKET_READY:
this.connection.removeEventListener('ready', this.onReady);
this.connection.removeListener('ready', this.onReady);
break;
case this.SOCKET_CLOSE:
this.connection.removeEventListener('close', this.onClose);
this.connection.removeListener('close', this.onClose);
break;
case this.SOCKET_ERROR:
this.connection.removeEventListener('error', this.onError);
this.connection.removeListener('error', this.onError);
break;
case this.SOCKET_CONNECT:
this.connection.removeEventListener('connect', this.onConnect);
this.connection.removeListener('connect', this.onConnect);
break;

@@ -436,24 +408,4 @@ }

}
send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(response => {
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
sendBatch(methods, moduleInstance) {
let payload = [];
methods.forEach(method => {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
sendPayload(payload) {
return new Promise((resolve, reject) => {
if (this.connection.pending) {
return reject(new Error('Connection error: The socket is still trying to connect'));
}
if (!this.connection.writable) {

@@ -471,6 +423,3 @@ this.connection.connect({

}
this.on(id, response => {
resolve(response);
this.removeAllListeners(id);
});
this.once(id, resolve);
return;

@@ -514,10 +463,9 @@ }

}
send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(response => {
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
async send(method, parameters) {
const response = await this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
}

@@ -559,5 +507,3 @@ sendBatch(methods, moduleInstance) {

} catch (error) {
if (error.constructor.name === 'NetworkError') {
this.connected = false;
}
this.connected = false;
reject(error);

@@ -670,10 +616,9 @@ }

}
send(method, parameters) {
return this.connection.send(method, parameters).then(response => {
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response;
});
async send(method, parameters) {
const response = this.connection.send(method, parameters);
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response;
}

@@ -739,19 +684,2 @@ sendBatch(methods, moduleInstance) {

}
send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(response => {
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
sendBatch(methods, moduleInstance) {
let payload = [];
methods.forEach(method => {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
sendPayload(payload) {

@@ -808,19 +736,2 @@ return new Promise((resolve, reject) => {

}
send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(response => {
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
sendBatch(methods, moduleInstance) {
let payload = [];
methods.forEach(method => {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
sendPayload(payload) {

@@ -857,10 +768,9 @@ return new Promise((resolve, reject) => {

}
send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(response => {
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
async send(method, parameters) {
const response = await this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
const validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
}

@@ -903,5 +813,2 @@ sendBatch(methods, moduleInstance) {

}
createProviderDetector() {
return new ProviderDetector();
}
createHttpProvider(url, options = {}) {

@@ -962,21 +869,33 @@ return new HttpProvider(url, options, this);

const HttpProvider$1 = (url, options) => {
const global$1 = function () {
return this || typeof self === 'object' && self;
}() || new Function('return this')();
class ProviderDetector {
static detect() {
if (typeof global$1.ethereumProvider !== 'undefined' && global$1.ethereumProvider.constructor.name === 'EthereumProvider') {
return global$1.ethereumProvider;
}
if (typeof global$1.web3 !== 'undefined' && global$1.web3.currentProvider) {
return global$1.web3.currentProvider;
}
return null;
}
}
function HttpProvider$1(url, options = {}) {
return new ProvidersModuleFactory().createHttpProvider(url, options);
};
const WebsocketProvider$1 = (url, options) => {
}
function WebsocketProvider$1(url, options = {}) {
return new ProvidersModuleFactory().createWebsocketProvider(url, options);
};
const IpcProvider$1 = (path, net) => {
}
function IpcProvider$1(path, net) {
return new ProvidersModuleFactory().createIpcProvider(path, net);
};
const BatchRequest$1 = moduleInstance => {
}
function BatchRequest$1(moduleInstance) {
return new ProvidersModuleFactory().createBatchRequest(moduleInstance);
};
const ProviderResolver$1 = () => {
}
function ProviderResolver$1() {
return new ProvidersModuleFactory().createProviderResolver();
};
const ProviderDetector$1 = () => {
return new ProvidersModuleFactory().createProviderDetector();
};
}
export { HttpProvider$1 as HttpProvider, WebsocketProvider$1 as WebsocketProvider, IpcProvider$1 as IpcProvider, BatchRequest$1 as BatchRequest, ProviderResolver$1 as ProviderResolver, ProviderDetector$1 as ProviderDetector, ProvidersModuleFactory, Web3EthereumProvider };
export { ProviderDetector, HttpProvider$1 as HttpProvider, WebsocketProvider$1 as WebsocketProvider, IpcProvider$1 as IpcProvider, BatchRequest$1 as BatchRequest, ProviderResolver$1 as ProviderResolver, ProvidersModuleFactory, Web3EthereumProvider };
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('websocket'), require('xhr2-cookies'), require('url-parse'), require('lodash/isFunction'), require('@babel/runtime/regenerator'), require('@babel/runtime/helpers/asyncToGenerator'), require('eventemitter3'), require('oboe'), require('http'), require('https'), require('@babel/runtime/helpers/typeof'), require('lodash/isArray'), 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/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass')) :
typeof define === 'function' && define.amd ? define(['exports', 'websocket', 'xhr2-cookies', 'url-parse', 'lodash/isFunction', '@babel/runtime/regenerator', '@babel/runtime/helpers/asyncToGenerator', 'eventemitter3', 'oboe', 'http', 'https', '@babel/runtime/helpers/typeof', 'lodash/isArray', 'lodash/isObject', '@babel/runtime/helpers/possibleConstructorReturn', '@babel/runtime/helpers/getPrototypeOf', '@babel/runtime/helpers/get', '@babel/runtime/helpers/inherits', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass'], factory) :
(factory((global.Web3Providers = {}),global.websocket,global.xhr2Cookies,global.URL,global.isFunction,global._regeneratorRuntime,global._asyncToGenerator,global.EventEmitter,global.oboe,global.http,global.https,global._typeof,global.isArray,global.isObject,global._possibleConstructorReturn,global._getPrototypeOf,global._get,global._inherits,global._classCallCheck,global._createClass));
}(this, (function (exports,websocket,xhr2Cookies,URL,isFunction,_regeneratorRuntime,_asyncToGenerator,EventEmitter,oboe,http,https,_typeof,isArray,isObject,_possibleConstructorReturn,_getPrototypeOf,_get,_inherits,_classCallCheck,_createClass) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('websocket'), require('xhr2-cookies'), require('url-parse'), require('lodash/isFunction'), require('eventemitter3'), require('http'), require('https'), require('lodash/isArray'), 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('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass'), require('@babel/runtime/helpers/typeof')) :
typeof define === 'function' && define.amd ? define(['exports', 'websocket', 'xhr2-cookies', 'url-parse', 'lodash/isFunction', 'eventemitter3', 'http', 'https', 'lodash/isArray', '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', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass', '@babel/runtime/helpers/typeof'], factory) :
(factory((global.Web3Providers = {}),global.websocket,global.xhr2Cookies,global.URL,global.isFunction,global.EventEmitter,global.http,global.https,global.isArray,global.isObject,global._possibleConstructorReturn,global._getPrototypeOf,global._get,global._inherits,global._regeneratorRuntime,global._asyncToGenerator,global._classCallCheck,global._createClass,global._typeof));
}(this, (function (exports,websocket,xhr2Cookies,URL,isFunction,EventEmitter,http,https,isArray,isObject,_possibleConstructorReturn,_getPrototypeOf,_get,_inherits,_regeneratorRuntime,_asyncToGenerator,_classCallCheck,_createClass,_typeof) { 'use strict';
URL = URL && URL.hasOwnProperty('default') ? URL['default'] : URL;
isFunction = isFunction && isFunction.hasOwnProperty('default') ? isFunction['default'] : isFunction;
_regeneratorRuntime = _regeneratorRuntime && _regeneratorRuntime.hasOwnProperty('default') ? _regeneratorRuntime['default'] : _regeneratorRuntime;
_asyncToGenerator = _asyncToGenerator && _asyncToGenerator.hasOwnProperty('default') ? _asyncToGenerator['default'] : _asyncToGenerator;
EventEmitter = EventEmitter && EventEmitter.hasOwnProperty('default') ? EventEmitter['default'] : EventEmitter;
oboe = oboe && oboe.hasOwnProperty('default') ? oboe['default'] : oboe;
http = http && http.hasOwnProperty('default') ? http['default'] : http;
https = https && https.hasOwnProperty('default') ? https['default'] : https;
_typeof = _typeof && _typeof.hasOwnProperty('default') ? _typeof['default'] : _typeof;
isArray = isArray && isArray.hasOwnProperty('default') ? isArray['default'] : isArray;

@@ -22,4 +18,7 @@ isObject = isObject && isObject.hasOwnProperty('default') ? isObject['default'] : isObject;

_inherits = _inherits && _inherits.hasOwnProperty('default') ? _inherits['default'] : _inherits;
_regeneratorRuntime = _regeneratorRuntime && _regeneratorRuntime.hasOwnProperty('default') ? _regeneratorRuntime['default'] : _regeneratorRuntime;
_asyncToGenerator = _asyncToGenerator && _asyncToGenerator.hasOwnProperty('default') ? _asyncToGenerator['default'] : _asyncToGenerator;
_classCallCheck = _classCallCheck && _classCallCheck.hasOwnProperty('default') ? _classCallCheck['default'] : _classCallCheck;
_createClass = _createClass && _createClass.hasOwnProperty('default') ? _createClass['default'] : _createClass;
_typeof = _typeof && _typeof.hasOwnProperty('default') ? _typeof['default'] : _typeof;

@@ -49,3 +48,3 @@ var global = function () {

}
if (this.isWeb3Provider(provider)) {
if (provider.sendPayload && provider.subscribe) {
return provider;

@@ -65,16 +64,2 @@ }

}, {
key: "isWeb3Provider",
value: function isWeb3Provider(provider) {
switch (provider.constructor.name) {
case 'HttpProvider':
case 'IpcProvider':
case 'WebsocketProvider':
case 'CustomProvider':
case 'MetamaskProvider':
case 'MistEthereumProvider':
case 'Web3EthereumProvider':
return true;
}
}
}, {
key: "isMetamaskInpageProvider",

@@ -88,25 +73,2 @@ value: function isMetamaskInpageProvider(provider) {

var global$1 = function () {
return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === 'object' && self;
}() || new Function('return this')();
var ProviderDetector =
function () {
function ProviderDetector() {
_classCallCheck(this, ProviderDetector);
}
_createClass(ProviderDetector, [{
key: "detect",
value: function detect() {
if (typeof global$1.ethereumProvider !== 'undefined' && global$1.ethereumProvider.constructor.name === 'EthereumProvider') {
return global$1.ethereumProvider;
}
if (typeof global$1.web3 !== 'undefined' && global$1.web3.currentProvider) {
return global$1.web3.currentProvider;
}
return null;
}
}]);
return ProviderDetector;
}();
var messageId = 0;

@@ -137,2 +99,32 @@ var JsonRpcMapper =

var JsonRpcResponseValidator =
function () {
function JsonRpcResponseValidator() {
_classCallCheck(this, JsonRpcResponseValidator);
}
_createClass(JsonRpcResponseValidator, null, [{
key: "validate",
value: function validate(response) {
var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (isObject(response)) {
if (response.error) {
if (response.error instanceof Error) {
return new Error("Node error: ".concat(response.error.message));
}
return new Error("Node error: ".concat(JSON.stringify(response.error)));
}
if (payload && response.id !== payload.id) {
return new Error("Validation error: Invalid JSON-RPC response ID (request: ".concat(payload.id, " / response: ").concat(response.id, ")"));
}
if (response.result === undefined) {
return new Error('Validation error: Undefined JSON-RPC result');
}
return true;
}
return new Error('Validation error: Response should be of type Object');
}
}]);
return JsonRpcResponseValidator;
}();
var AbstractSocketProvider =

@@ -179,6 +171,44 @@ function (_EventEmitter) {

key: "send",
value: function send(method, parameters) {}
value: function () {
var _send = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee(method, parameters) {
var response, validationResult;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
case 2:
response = _context.sent;
validationResult = JsonRpcResponseValidator.validate(response);
if (!(validationResult instanceof Error)) {
_context.next = 6;
break;
}
throw validationResult;
case 6:
return _context.abrupt("return", response.result);
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function send(_x, _x2) {
return _send.apply(this, arguments);
}
return send;
}()
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {}
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {

@@ -211,11 +241,11 @@ key: "onReady",

var _onConnect = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee() {
_regeneratorRuntime.mark(function _callee2() {
var subscriptionKeys, subscriptionId, _i, key;
return _regeneratorRuntime.wrap(function _callee$(_context) {
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context.prev = _context.next) {
switch (_context2.prev = _context2.next) {
case 0:
subscriptionKeys = Object.keys(this.subscriptions);
if (!(subscriptionKeys.length > 0)) {
_context.next = 13;
_context2.next = 13;
break;

@@ -226,10 +256,10 @@ }

if (!(_i < subscriptionKeys.length)) {
_context.next = 13;
_context2.next = 13;
break;
}
key = subscriptionKeys[_i];
_context.next = 7;
_context2.next = 7;
return this.subscribe(this.subscriptions[key].subscribeMethod, this.subscriptions[key].parameters[0], this.subscriptions[key].parameters.slice(1));
case 7:
subscriptionId = _context.sent;
subscriptionId = _context2.sent;
delete this.subscriptions[subscriptionId];

@@ -239,16 +269,18 @@ this.subscriptions[this.getSubscriptionEvent(this.subscriptions[key].id)].id = subscriptionId;

_i++;
_context.next = 3;
_context2.next = 3;
break;
case 13:
this.emit(this.SOCKET_CONNECT);
this.emit(this.CONNECT);
case 14:
case 15:
case "end":
return _context.stop();
return _context2.stop();
}
}
}, _callee, this);
}, _callee2, this);
}));
return function onConnect() {
function onConnect() {
return _onConnect.apply(this, arguments);
};
}
return onConnect;
}()

@@ -358,32 +390,2 @@ }, {

var JsonRpcResponseValidator =
function () {
function JsonRpcResponseValidator() {
_classCallCheck(this, JsonRpcResponseValidator);
}
_createClass(JsonRpcResponseValidator, null, [{
key: "validate",
value: function validate(response) {
var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (isObject(response)) {
if (response.error) {
if (response.error instanceof Error) {
return new Error("Node error: ".concat(response.error.message));
}
return new Error("Node error: ".concat(JSON.stringify(response.error)));
}
if (payload && response.id !== payload.id) {
return new Error("Validation error: Invalid JSON-RPC response ID (request: ".concat(payload.id, " / response: ").concat(response.id, ")"));
}
if (response.result === undefined) {
return new Error('Validation error: Undefined JSON-RPC result');
}
return true;
}
return new Error('Validation error: Response should be of type Object');
}
}]);
return JsonRpcResponseValidator;
}();
var WebsocketProvider =

@@ -483,23 +485,2 @@ function (_AbstractSocketProvid) {

}, {
key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {
key: "sendPayload",

@@ -556,2 +537,3 @@ value: function sendPayload(payload) {

_this.host = path;
_this.chunks = '';
return _this;

@@ -574,3 +556,9 @@ }

value: function onMessage(message) {
_get(_getPrototypeOf(IpcProvider.prototype), "onMessage", this).call(this, message.toString());
var chunk = message.toString('utf8');
if (chunk.indexOf('\n') < 0) {
this.chunks += chunk;
return;
}
_get(_getPrototypeOf(IpcProvider.prototype), "onMessage", this).call(this, this.chunks + chunk.substring(0, chunk.indexOf('\n')));
this.chunks = chunk.substring(chunk.indexOf('\n') + 1);
}

@@ -580,13 +568,8 @@ }, {

value: function registerEventListeners() {
if (this.connection.constructor.name === 'Socket') {
oboe(this.connection).done(this.onMessage);
} else {
this.connection.addListener('data', this.onMessage.bind(this));
}
this.connection.addListener('connect', this.onConnect.bind(this));
this.connection.addListener('error', this.onError.bind(this));
this.connection.addListener('end', this.onError.bind(this));
this.connection.addListener('close', this.onClose.bind(this));
this.connection.addListener('timeout', this.onClose.bind(this));
this.connection.addListener('ready', this.onReady.bind(this));
this.connection.on('data', this.onMessage.bind(this));
this.connection.on('connect', this.onConnect.bind(this));
this.connection.on('error', this.onError.bind(this));
this.connection.on('close', this.onClose.bind(this));
this.connection.on('timeout', this.onClose.bind(this));
this.connection.on('ready', this.onReady.bind(this));
}

@@ -598,15 +581,15 @@ }, {

case this.SOCKET_MESSAGE:
this.connection.removeEventListener('data', this.onMessage);
this.connection.removeListener('data', this.onMessage);
break;
case this.SOCKET_READY:
this.connection.removeEventListener('ready', this.onReady);
this.connection.removeListener('ready', this.onReady);
break;
case this.SOCKET_CLOSE:
this.connection.removeEventListener('close', this.onClose);
this.connection.removeListener('close', this.onClose);
break;
case this.SOCKET_ERROR:
this.connection.removeEventListener('error', this.onError);
this.connection.removeListener('error', this.onError);
break;
case this.SOCKET_CONNECT:
this.connection.removeEventListener('connect', this.onConnect);
this.connection.removeListener('connect', this.onConnect);
break;

@@ -617,23 +600,2 @@ }

}, {
key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {
key: "sendPayload",

@@ -643,5 +605,2 @@ value: function sendPayload(payload) {

return new Promise(function (resolve, reject) {
if (_this2.connection.pending) {
return reject(new Error('Connection error: The socket is still trying to connect'));
}
if (!_this2.connection.writable) {

@@ -659,6 +618,3 @@ _this2.connection.connect({

}
_this2.on(id, function (response) {
resolve(response);
_this2.removeAllListeners(id);
});
_this2.once(id, resolve);
return;

@@ -722,11 +678,34 @@ }

key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
value: function () {
var _send = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee(method, parameters) {
var response, validationResult;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
case 2:
response = _context.sent;
validationResult = JsonRpcResponseValidator.validate(response);
if (!(validationResult instanceof Error)) {
_context.next = 6;
break;
}
throw validationResult;
case 6:
return _context.abrupt("return", response.result);
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function send(_x, _x2) {
return _send.apply(this, arguments);
}
return send;
}()
}, {

@@ -772,5 +751,3 @@ key: "sendBatch",

} catch (error) {
if (error.constructor.name === 'NetworkError') {
_this.connected = false;
}
_this.connected = false;
reject(error);

@@ -915,11 +892,31 @@ }

key: "send",
value: function send(method, parameters) {
return this.connection.send(method, parameters).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response;
});
}
value: function () {
var _send = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee(method, parameters) {
var response, validationResult;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
response = this.connection.send(method, parameters);
validationResult = JsonRpcResponseValidator.validate(response);
if (!(validationResult instanceof Error)) {
_context.next = 4;
break;
}
throw validationResult;
case 4:
return _context.abrupt("return", response);
case 5:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function send(_x, _x2) {
return _send.apply(this, arguments);
}
return send;
}()
}, {

@@ -1006,23 +1003,2 @@ key: "sendBatch",

}, {
key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {
key: "sendPayload",

@@ -1097,23 +1073,2 @@ value: function sendPayload(payload) {

}, {
key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
}, {
key: "sendBatch",
value: function sendBatch(methods, moduleInstance) {
var payload = [];
methods.forEach(function (method) {
method.beforeExecution(moduleInstance);
payload.push(JsonRpcMapper.toPayload(method.rpcMethod, method.parameters));
});
return this.sendPayload(payload);
}
}, {
key: "sendPayload",

@@ -1169,11 +1124,34 @@ value: function sendPayload(payload) {

key: "send",
value: function send(method, parameters) {
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters)).then(function (response) {
var validationResult = JsonRpcResponseValidator.validate(response);
if (validationResult instanceof Error) {
throw validationResult;
}
return response.result;
});
}
value: function () {
var _send = _asyncToGenerator(
_regeneratorRuntime.mark(function _callee(method, parameters) {
var response, validationResult;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.sendPayload(JsonRpcMapper.toPayload(method, parameters));
case 2:
response = _context.sent;
validationResult = JsonRpcResponseValidator.validate(response);
if (!(validationResult instanceof Error)) {
_context.next = 6;
break;
}
throw validationResult;
case 6:
return _context.abrupt("return", response.result);
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function send(_x, _x2) {
return _send.apply(this, arguments);
}
return send;
}()
}, {

@@ -1231,7 +1209,2 @@ key: "sendBatch",

}, {
key: "createProviderDetector",
value: function createProviderDetector() {
return new ProviderDetector();
}
}, {
key: "createHttpProvider",

@@ -1314,21 +1287,44 @@ value: function createHttpProvider(url) {

var HttpProvider$1 = function HttpProvider(url, options) {
var global$1 = function () {
return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === 'object' && self;
}() || new Function('return this')();
var ProviderDetector =
function () {
function ProviderDetector() {
_classCallCheck(this, ProviderDetector);
}
_createClass(ProviderDetector, null, [{
key: "detect",
value: function detect() {
if (typeof global$1.ethereumProvider !== 'undefined' && global$1.ethereumProvider.constructor.name === 'EthereumProvider') {
return global$1.ethereumProvider;
}
if (typeof global$1.web3 !== 'undefined' && global$1.web3.currentProvider) {
return global$1.web3.currentProvider;
}
return null;
}
}]);
return ProviderDetector;
}();
function HttpProvider$1(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new ProvidersModuleFactory().createHttpProvider(url, options);
};
var WebsocketProvider$1 = function WebsocketProvider(url, options) {
}
function WebsocketProvider$1(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new ProvidersModuleFactory().createWebsocketProvider(url, options);
};
var IpcProvider$1 = function IpcProvider(path, net) {
}
function IpcProvider$1(path, net) {
return new ProvidersModuleFactory().createIpcProvider(path, net);
};
var BatchRequest$1 = function BatchRequest(moduleInstance) {
}
function BatchRequest$1(moduleInstance) {
return new ProvidersModuleFactory().createBatchRequest(moduleInstance);
};
var ProviderResolver$1 = function ProviderResolver() {
}
function ProviderResolver$1() {
return new ProvidersModuleFactory().createProviderResolver();
};
var ProviderDetector$1 = function ProviderDetector() {
return new ProvidersModuleFactory().createProviderDetector();
};
}
exports.ProviderDetector = ProviderDetector;
exports.HttpProvider = HttpProvider$1;

@@ -1339,3 +1335,2 @@ exports.WebsocketProvider = WebsocketProvider$1;

exports.ProviderResolver = ProviderResolver$1;
exports.ProviderDetector = ProviderDetector$1;
exports.ProvidersModuleFactory = ProvidersModuleFactory;

@@ -1342,0 +1337,0 @@ exports.Web3EthereumProvider = Web3EthereumProvider;

{
"name": "web3-providers",
"namespace": "ethereum",
"version": "1.0.0-beta.48",
"version": "1.0.0-beta.49",
"description": "Web3 module to handle requests to external providers.",

@@ -23,3 +23,2 @@ "repository": "https://github.com/ethereum/web3.js/tree/1.0/packages/web3-providers",

"lodash": "^4.17.11",
"oboe": "2.1.4",
"url-parse": "1.4.4",

@@ -30,7 +29,8 @@ "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible",

"devDependencies": {
"dtslint": "^0.4.2",
"web3-core": "1.0.0-beta.48",
"web3-core-helpers": "1.0.0-beta.48",
"web3-core-method": "1.0.0-beta.48",
"web3-utils": "1.0.0-beta.48"
"definitelytyped-header-parser": "^1.0.1",
"dtslint": "0.4.2",
"web3-core": "1.0.0-beta.49",
"web3-core-helpers": "1.0.0-beta.49",
"web3-core-method": "1.0.0-beta.49",
"web3-utils": "1.0.0-beta.49"
},

@@ -40,3 +40,4 @@ "files": [

"types/index.d.ts"
]
],
"gitHead": "eb1452cdd1591e0f26ff0f66df68ee0feb3f8c47"
}

@@ -32,7 +32,7 @@ /*

execute(): Promise<{methods: AbstractMethod[], response: object[]}|Error[]>;
execute(): Promise<{methods: AbstractMethod[]; response: any[]} | Error[]>;
}
export class ProviderDetector {
detect(): provider | undefined;
static detect(): provider | undefined;
}

@@ -45,4 +45,2 @@

createProviderDetector(): ProviderDetector;
createHttpProvider(url: string): HttpProvider;

@@ -63,5 +61,5 @@

send(method: string, parameters: any[]): Promise<object>;
send(method: string, parameters: any[]): Promise<any>;
sendBatch(methods: AbstractMethod[], moduleInstance: AbstractWeb3Module): Promise<object[]>;
sendBatch(methods: AbstractMethod[], moduleInstance: AbstractWeb3Module): Promise<any[]>;

@@ -79,5 +77,5 @@ disconnect(): boolean;

send(method: string, parameters: any[]): Promise<object>;
send(method: string, parameters: any[]): Promise<any>;
sendBatch(methods: AbstractMethod[], moduleInstance: AbstractWeb3Module): Promise<object[]>;
sendBatch(methods: AbstractMethod[], moduleInstance: AbstractWeb3Module): Promise<any[]>;

@@ -88,3 +86,3 @@ subscribe(subscribeMethod: string, subscriptionMethod: string, parameters: any[]): Promise<string>;

clearSubscriptions(unsubscribeMethod: string): Promise<boolean>
clearSubscriptions(unsubscribeMethod: string): Promise<boolean>;

@@ -99,3 +97,3 @@ on(type: string, callback: () => void): void;

reconnect(): void
reconnect(): void;

@@ -121,5 +119,5 @@ disconnect(code: number, reason: string): void;

send(method: string, parameters: any[]): Promise<object>;
send(method: string, parameters: any[]): Promise<any>;
sendBatch(methods: AbstractMethod[], moduleInstance: AbstractWeb3Module): Promise<object[]>;
sendBatch(methods: AbstractMethod[], moduleInstance: AbstractWeb3Module): Promise<any[]>;

@@ -130,3 +128,3 @@ subscribe(subscribeMethod: string, subscriptionMethod: string, parameters: any[]): Promise<string>;

clearSubscriptions(unsubscribeMethod: string): Promise<boolean>
clearSubscriptions(unsubscribeMethod: string): Promise<boolean>;

@@ -147,4 +145,2 @@ on(type: string, callback: () => void): void;

export class ProviderResolver {
constructor(providersPackageFactory: ProvidersModuleFactory);
resolve(provider: provider, net: net.Socket): provider;

@@ -151,0 +147,0 @@ }

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc