diff --git a/CHANGELOG.md b/CHANGELOG.md index eaf9f13acd3..1a2a3b2e667 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -193,3 +193,4 @@ Released with 1.0.0-beta.37 code base. - Fix intermittent CI build issues with `dtslint`. (#3479) - Fix provider "error" / "end" events not fired when Websocket provider disconnects (#3485) +- Fix WSS credentials Base64 encoding (for browser) (#3508) diff --git a/packages/web3-providers-ws/src/helpers.js b/packages/web3-providers-ws/src/helpers.js index eff553bd9a4..dc138114247 100644 --- a/packages/web3-providers-ws/src/helpers.js +++ b/packages/web3-providers-ws/src/helpers.js @@ -18,7 +18,7 @@ if (isNode) { helpers = require('url').parse; } } else { - _btoa = btoa; + _btoa = btoa.bind(window); helpers = function(url) { return new URL(url); }; diff --git a/test/e2e.contract.deploy.js b/test/e2e.contract.deploy.js index b0834cc6e6e..fba81a99652 100644 --- a/test/e2e.contract.deploy.js +++ b/test/e2e.contract.deploy.js @@ -151,9 +151,10 @@ describe('contract.deploy [ @E2E ]', function() { describe('ws', function() { // Websockets extremely erratic for geth instamine... if (process.env.GETH_INSTAMINE) return; + var port; before(async function(){ - var port = utils.getWebsocketPort(); + port = utils.getWebsocketPort(); web3 = new Web3('ws://localhost:' + port); accounts = await web3.eth.getAccounts(); @@ -259,6 +260,10 @@ describe('contract.deploy [ @E2E ]', function() { done(); }) }) + + it('can connect over wss with username:password header', function(){ + const _web3 = new Web3('wss://usr:psswrd@localhost:' + port); + }); }); });