Beta 7 with some repo names changed.
This commit is contained in:
1 parent
0f7b40cca7
commit
963c19493a
3408 files changed
+462217
-15516
No files matched your search
+125
@@ -0,0 +1,125 @@
|
||||
/*
|
||||
This file is part of web3.js.
|
||||
|
||||
web3.js is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
web3.js is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with web3.js. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/** @file httpprovider.js
|
||||
* @authors:
|
||||
* Marek Kotewicz <marek@parity.io>
|
||||
* Marian Oancea
|
||||
* Fabian Vogelsteller <fabian@ethereum.org>
|
||||
* @date 2015
|
||||
*/
|
||||
var errors = require('web3-core-helpers').errors;
|
||||
var XHR2 = require('xhr2-cookies').XMLHttpRequest; // jshint ignore: line
|
||||
var http = require('http');
|
||||
var https = require('https');
|
||||
/**
|
||||
* HttpProvider should be used to send rpc calls over http
|
||||
*/
|
||||
var HttpProvider = function HttpProvider(host, options) {
|
||||
options = options || {};
|
||||
this.withCredentials = options.withCredentials || false;
|
||||
this.timeout = options.timeout || 0;
|
||||
this.headers = options.headers;
|
||||
this.agent = options.agent;
|
||||
this.connected = false;
|
||||
// keepAlive is true unless explicitly set to false
|
||||
const keepAlive = options.keepAlive !== false;
|
||||
this.host = host || 'http://localhost:8545';
|
||||
if (!this.agent) {
|
||||
if (this.host.substring(0, 5) === "https") {
|
||||
this.httpsAgent = new https.Agent({ keepAlive });
|
||||
}
|
||||
else {
|
||||
this.httpAgent = new http.Agent({ keepAlive });
|
||||
}
|
||||
}
|
||||
};
|
||||
HttpProvider.prototype._prepareRequest = function () {
|
||||
var request;
|
||||
// the current runtime is a browser
|
||||
if (typeof XMLHttpRequest !== 'undefined') {
|
||||
request = new XMLHttpRequest();
|
||||
}
|
||||
else {
|
||||
request = new XHR2();
|
||||
var agents = { httpsAgent: this.httpsAgent, httpAgent: this.httpAgent, baseUrl: this.baseUrl };
|
||||
if (this.agent) {
|
||||
agents.httpsAgent = this.agent.https;
|
||||
agents.httpAgent = this.agent.http;
|
||||
agents.baseUrl = this.agent.baseUrl;
|
||||
}
|
||||
request.nodejsSet(agents);
|
||||
}
|
||||
request.open('POST', this.host, true);
|
||||
request.setRequestHeader('Content-Type', 'application/json');
|
||||
request.timeout = this.timeout;
|
||||
request.withCredentials = this.withCredentials;
|
||||
if (this.headers) {
|
||||
this.headers.forEach(function (header) {
|
||||
request.setRequestHeader(header.name, header.value);
|
||||
});
|
||||
}
|
||||
return request;
|
||||
};
|
||||
/**
|
||||
* Should be used to make async request
|
||||
*
|
||||
* @method send
|
||||
* @param {Object} payload
|
||||
* @param {Function} callback triggered on end with (err, result)
|
||||
*/
|
||||
HttpProvider.prototype.send = function (payload, callback) {
|
||||
var _this = this;
|
||||
var request = this._prepareRequest();
|
||||
request.onreadystatechange = function () {
|
||||
if (request.readyState === 4 && request.timeout !== 1) {
|
||||
var result = request.responseText;
|
||||
var error = null;
|
||||
try {
|
||||
result = JSON.parse(result);
|
||||
}
|
||||
catch (e) {
|
||||
error = errors.InvalidResponse(request.responseText);
|
||||
}
|
||||
_this.connected = true;
|
||||
callback(error, result);
|
||||
}
|
||||
};
|
||||
request.ontimeout = function () {
|
||||
_this.connected = false;
|
||||
callback(errors.ConnectionTimeout(this.timeout));
|
||||
};
|
||||
try {
|
||||
request.send(JSON.stringify(payload));
|
||||
}
|
||||
catch (error) {
|
||||
this.connected = false;
|
||||
callback(errors.InvalidConnection(this.host));
|
||||
}
|
||||
};
|
||||
HttpProvider.prototype.disconnect = function () {
|
||||
//NO OP
|
||||
};
|
||||
/**
|
||||
* Returns the desired boolean.
|
||||
*
|
||||
* @method supportsSubscriptions
|
||||
* @returns {boolean}
|
||||
*/
|
||||
HttpProvider.prototype.supportsSubscriptions = function () {
|
||||
return false;
|
||||
};
|
||||
module.exports = HttpProvider;
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"_from": "web3-providers-http@1.3.0",
|
||||
"_id": "web3-providers-http@1.3.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-cMKhUI6PqlY/EC+ZDacAxajySBu8AzW8jOjt1Pe/mbRQgS0rcZyvLePGTTuoyaA8C21F8UW+EE5jj7YsNgOuqA==",
|
||||
"_location": "/web3-providers-http",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "web3-providers-http@1.3.0",
|
||||
"name": "web3-providers-http",
|
||||
"escapedName": "web3-providers-http",
|
||||
"rawSpec": "1.3.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.3.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/web3-core-requestmanager"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.0.tgz",
|
||||
"_shasum": "88227f64c88b32abed4359383c2663616e0dc531",
|
||||
"_spec": "web3-providers-http@1.3.0",
|
||||
"_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\BackendServers\\node_modules\\web3-core-requestmanager",
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"web3-core-helpers": "1.3.0",
|
||||
"xhr2-cookies": "1.1.0"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Module to handle web3 RPC connections over HTTP.",
|
||||
"devDependencies": {
|
||||
"dtslint": "^3.4.1",
|
||||
"typescript": "^3.9.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.0.0"
|
||||
},
|
||||
"gitHead": "a88944fff1f62b2b6f00e3de52446d24d9e92cc6",
|
||||
"license": "LGPL-3.0",
|
||||
"main": "lib/index.js",
|
||||
"name": "web3-providers-http",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ethereum/web3.js/tree/1.x/packages/web3-providers-http"
|
||||
},
|
||||
"scripts": {
|
||||
"dtslint": "dtslint --localTs ../../node_modules/typescript/lib types",
|
||||
"tsc": "tsc -b tsconfig.json"
|
||||
},
|
||||
"types": "types/index.d.ts",
|
||||
"version": "1.3.0"
|
||||
}
|
||||
+142
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
This file is part of web3.js.
|
||||
|
||||
web3.js is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
web3.js is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with web3.js. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/** @file httpprovider.js
|
||||
* @authors:
|
||||
* Marek Kotewicz <marek@parity.io>
|
||||
* Marian Oancea
|
||||
* Fabian Vogelsteller <fabian@ethereum.org>
|
||||
* @date 2015
|
||||
*/
|
||||
|
||||
var errors = require('web3-core-helpers').errors;
|
||||
var XHR2 = require('xhr2-cookies').XMLHttpRequest; // jshint ignore: line
|
||||
var http = require('http');
|
||||
var https = require('https');
|
||||
|
||||
|
||||
/**
|
||||
* HttpProvider should be used to send rpc calls over http
|
||||
*/
|
||||
var HttpProvider = function HttpProvider(host, options) {
|
||||
options = options || {};
|
||||
|
||||
this.withCredentials = options.withCredentials || false;
|
||||
this.timeout = options.timeout || 0;
|
||||
this.headers = options.headers;
|
||||
this.agent = options.agent;
|
||||
this.connected = false;
|
||||
|
||||
// keepAlive is true unless explicitly set to false
|
||||
const keepAlive = options.keepAlive !== false;
|
||||
this.host = host || 'http://localhost:8545';
|
||||
if (!this.agent) {
|
||||
if (this.host.substring(0,5) === "https") {
|
||||
this.httpsAgent = new https.Agent({ keepAlive });
|
||||
} else {
|
||||
this.httpAgent = new http.Agent({ keepAlive });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
HttpProvider.prototype._prepareRequest = function(){
|
||||
var request;
|
||||
|
||||
// the current runtime is a browser
|
||||
if (typeof XMLHttpRequest !== 'undefined') {
|
||||
request = new XMLHttpRequest();
|
||||
} else {
|
||||
request = new XHR2();
|
||||
var agents = {httpsAgent: this.httpsAgent, httpAgent: this.httpAgent, baseUrl: this.baseUrl};
|
||||
|
||||
if (this.agent) {
|
||||
agents.httpsAgent = this.agent.https;
|
||||
agents.httpAgent = this.agent.http;
|
||||
agents.baseUrl = this.agent.baseUrl;
|
||||
}
|
||||
|
||||
request.nodejsSet(agents);
|
||||
}
|
||||
|
||||
request.open('POST', this.host, true);
|
||||
request.setRequestHeader('Content-Type','application/json');
|
||||
request.timeout = this.timeout;
|
||||
request.withCredentials = this.withCredentials;
|
||||
|
||||
if(this.headers) {
|
||||
this.headers.forEach(function(header) {
|
||||
request.setRequestHeader(header.name, header.value);
|
||||
});
|
||||
}
|
||||
|
||||
return request;
|
||||
};
|
||||
|
||||
/**
|
||||
* Should be used to make async request
|
||||
*
|
||||
* @method send
|
||||
* @param {Object} payload
|
||||
* @param {Function} callback triggered on end with (err, result)
|
||||
*/
|
||||
HttpProvider.prototype.send = function (payload, callback) {
|
||||
var _this = this;
|
||||
var request = this._prepareRequest();
|
||||
|
||||
request.onreadystatechange = function() {
|
||||
if (request.readyState === 4 && request.timeout !== 1) {
|
||||
var result = request.responseText;
|
||||
var error = null;
|
||||
|
||||
try {
|
||||
result = JSON.parse(result);
|
||||
} catch(e) {
|
||||
error = errors.InvalidResponse(request.responseText);
|
||||
}
|
||||
|
||||
_this.connected = true;
|
||||
callback(error, result);
|
||||
}
|
||||
};
|
||||
|
||||
request.ontimeout = function() {
|
||||
_this.connected = false;
|
||||
callback(errors.ConnectionTimeout(this.timeout));
|
||||
};
|
||||
|
||||
try {
|
||||
request.send(JSON.stringify(payload));
|
||||
} catch(error) {
|
||||
this.connected = false;
|
||||
callback(errors.InvalidConnection(this.host));
|
||||
}
|
||||
};
|
||||
|
||||
HttpProvider.prototype.disconnect = function () {
|
||||
//NO OP
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the desired boolean.
|
||||
*
|
||||
* @method supportsSubscriptions
|
||||
* @returns {boolean}
|
||||
*/
|
||||
HttpProvider.prototype.supportsSubscriptions = function () {
|
||||
return false;
|
||||
};
|
||||
|
||||
module.exports = HttpProvider;
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./lib"
|
||||
},
|
||||
"include": [
|
||||
"./src"
|
||||
]
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6"],
|
||||
"target": "es6",
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"noEmit": true,
|
||||
"allowSyntheticDefaultImports": false,
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"web3-providers": ["."]
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extends": "dtslint/dtslint.json",
|
||||
"rules": {
|
||||
"semicolon": false,
|
||||
"no-import-default-of-export-equals": false,
|
||||
"file-name-casing": [true, "kebab-case"],
|
||||
"whitespace": false,
|
||||
"no-unnecessary-class": false
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user