Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename close event to disconnect #3773

Merged
merged 6 commits into from
Nov 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
15 changes: 9 additions & 6 deletions packages/web3-core-requestmanager/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ RequestManager.prototype.setProvider = function (provider, net) {
});

// notify all subscriptions about bad close conditions
this.provider.on('close', function close(event) {
const disconnect = function disconnect(event) {
if (!_this._isCleanCloseEvent(event) || _this._isIpcCloseError(event)) {
_this.subscriptions.forEach(function (subscription) {
subscription.callback(errors.ConnectionCloseError(event));
Expand All @@ -136,7 +136,10 @@ RequestManager.prototype.setProvider = function (provider, net) {
if (_this.provider && _this.provider.emit) {
_this.provider.emit('end', event);
}
});
};
// TODO: Remove close once the standard allows it
this.provider.on('close', disconnect);
this.provider.on('disconnect', disconnect);

// TODO add end, timeout??
}
Expand Down Expand Up @@ -257,7 +260,7 @@ RequestManager.prototype.removeSubscription = function (id, callback) {
* Should be called to reset the subscriptions
*
* @method reset
*
*
* @returns {boolean}
*/
RequestManager.prototype.clearSubscriptions = function (keepIsSyncing) {
Expand Down Expand Up @@ -310,12 +313,12 @@ RequestManager.prototype._isIpcCloseError = function (event) {

/**
* The jsonrpc result callback for RequestManager.send
*
*
* @method _jsonrpcResultCallback
*
*
* @param {Function} callback the callback to use
* @param {Object} payload the jsonrpc payload
*
*
* @returns {Function} return callback of form (err, result)
*
*/
Expand Down
5 changes: 4 additions & 1 deletion test/3_givenProvider-ganache.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ describe('web.providers.givenProvider (ganache)', function(){
assert.equal(1, web3.currentProvider.listenerCount('data'))
assert.equal(1, web3.currentProvider.listenerCount('connect'))
assert.equal(1, web3.currentProvider.listenerCount('error'))
assert.equal(1, web3.currentProvider.listenerCount('close'))
koraykoska marked this conversation as resolved.
Show resolved Hide resolved
// TODO: Remove close once the standard allows it
assert(
web3.currentProvider.listenerCount("disconnect") === 1 || web3.currentProvider.listenerCount("close") === 1
);
});

it('deploys a contract', async function(){
Expand Down
12 changes: 6 additions & 6 deletions test/eth.subscribe.ganache.js
Original file line number Diff line number Diff line change
Expand Up @@ -242,12 +242,12 @@ describe('subscription connect/reconnect', function () {
.once('data', async function () {
await pify(server.close)();
})
.on('error', function (err) {
counter++;
assert(err.message.includes('CONNECTION ERROR'));
assert(err.message.includes('close code `1006`'));
assert(err.message.includes('Connection dropped by remote peer.'));
});

web3.eth.currentProvider.on('close', function (err) {
counter++;
assert(err.reason.includes('Connection dropped by remote peer.'));
assert(err.code === 1006);
});

// Make sure error handler doesn't fire twice
await waitSeconds(2);
Expand Down
24 changes: 12 additions & 12 deletions test/websocket.ganache.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ describe('WebsocketProvider (ganache)', function () {
await web3.eth.getBlockNumber();

await new Promise(async function(resolve){
web3.currentProvider.once('error', function(err){
assert(err.message.includes('Connection dropped by remote peer.'))
assert(err.message.includes('1006'));
web3.currentProvider.on('close', function (err) {
assert(err.reason.includes('Connection dropped by remote peer.'));
assert(err.code === 1006);
resolve();
});

Expand All @@ -64,9 +64,9 @@ describe('WebsocketProvider (ganache)', function () {
await web3.eth.getBlockNumber();

await new Promise(async function(resolve){
web3.currentProvider.once('error', function(err){
assert(err.message.includes('1012'));
assert(err.message.includes('restart'));
web3.currentProvider.on('close', function (err) {
assert(err.reason.includes('restart'));
assert(err.code === 1012);
resolve();
});

Expand Down Expand Up @@ -106,9 +106,9 @@ describe('WebsocketProvider (ganache)', function () {
await web3.eth.getBlockNumber();

await new Promise(async function(resolve){
web3.currentProvider.once('end', function(event){
assert.equal(event.type, 'close');
assert.equal(event.wasClean, false);
web3.currentProvider.on('close', function (err) {
assert.equal(err.type, 'close');
assert.equal(err.wasClean, false);
resolve();
});

Expand All @@ -127,9 +127,9 @@ describe('WebsocketProvider (ganache)', function () {
await web3.eth.getBlockNumber();

await new Promise(async function(resolve){
web3.currentProvider.once('end', function(event){
assert.equal(event.type, 'close');
assert.equal(event.wasClean, true);
web3.currentProvider.on('close', function (err) {
assert.equal(err.type, 'close');
assert.equal(err.wasClean, true);
resolve();
});

Expand Down