From ed825d2b260a249b01c3a55c822a9ca2588e961f Mon Sep 17 00:00:00 2001 From: Wyatt Barnes Date: Tue, 1 Feb 2022 18:34:56 -1000 Subject: [PATCH] Update helpers.js (#4613) (#4671) * Update helpers.js * fix: remove more window use * Update CHANGELOG.md Co-authored-by: Jack Works --- CHANGELOG.md | 1 + .../web3-core-requestmanager/src/givenProvider.js | 12 +++++++----- packages/web3-eth-accounts/src/index.js | 2 +- packages/web3-providers-ws/src/helpers.js | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c18990dbdbe..81ee4f921b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -501,6 +501,7 @@ Released with 1.0.0-beta.37 code base. ### Fixed - Fix a typo in the documentation for `methods.myMethod.send` (#4599) +- Use globalThis to locate global object if possible (#4613) - Fix typos in web3-utils.rst (#4662) - Added effectiveGasPrice to TransactionReceipt (#4692) - Correction in documentation for `web3.eth.accounts.signTransaction` (#4576) diff --git a/packages/web3-core-requestmanager/src/givenProvider.js b/packages/web3-core-requestmanager/src/givenProvider.js index 2f57f1a51ce..f7fb84d6792 100644 --- a/packages/web3-core-requestmanager/src/givenProvider.js +++ b/packages/web3-core-requestmanager/src/givenProvider.js @@ -26,11 +26,13 @@ var givenProvider = null; // ADD GIVEN PROVIDER /* jshint ignore:start */ -var global; -try { - global = Function('return this')(); -} catch (e) { - global = window; +var global = typeof globalThis === 'object' ? globalThis : undefined; +if(!global) { + try { + global = Function('return this')(); + } catch (e) { + global = self; + } } // EIP-1193: window.ethereum diff --git a/packages/web3-eth-accounts/src/index.js b/packages/web3-eth-accounts/src/index.js index e1a44e4791b..1f2ec649b62 100644 --- a/packages/web3-eth-accounts/src/index.js +++ b/packages/web3-eth-accounts/src/index.js @@ -768,7 +768,7 @@ if (!storageAvailable('localStorage')) { function storageAvailable(type) { var storage; try { - storage = window[type]; + storage = self[type]; var x = '__storage_test__'; storage.setItem(x, x); storage.removeItem(x); diff --git a/packages/web3-providers-ws/src/helpers.js b/packages/web3-providers-ws/src/helpers.js index 25347e3f2ff..28750c43070 100644 --- a/packages/web3-providers-ws/src/helpers.js +++ b/packages/web3-providers-ws/src/helpers.js @@ -19,7 +19,7 @@ if (isNode || isRN) { helpers = require('url').parse; } } else { - _btoa = btoa.bind(window); + _btoa = btoa.bind(typeof globalThis === 'object' ? globalThis : self); helpers = function(url) { return new URL(url); };