File tree Expand file tree Collapse file tree 1 file changed +25
-18
lines changed
libs/remix-ui/quick-dapp-v2/src/lib/utils Expand file tree Collapse file tree 1 file changed +25
-18
lines changed Original file line number Diff line number Diff line change @@ -264,24 +264,31 @@ export function generateWalletSelectionScript(): string {
264264 // their provider but keep our Proxy in control until the user selects a wallet.
265265 var _proxyProvider = getProviderOrProxy();
266266
267- Object.defineProperty(window, 'ethereum', {
268- get: function() {
269- if (_resolved && _selectedProvider) return _selectedProvider;
270- return _proxyProvider;
271- },
272- set: function(val) {
273- if (val && !val._isQuickDappProxy) {
274- // Capture the provider from wallet extensions as legacy fallback
275- window.__qdapp_legacy_ethereum = val;
276- }
277- if (_resolved) {
278- // After wallet selection, allow reassignment
279- _selectedProvider = val;
280- }
281- },
282- configurable: true,
283- enumerable: true
284- });
267+ try {
268+ Object.defineProperty(window, 'ethereum', {
269+ get: function() {
270+ if (_resolved && _selectedProvider) return _selectedProvider;
271+ return _proxyProvider;
272+ },
273+ set: function(val) {
274+ if (val && !val._isQuickDappProxy) {
275+ window.__qdapp_legacy_ethereum = val;
276+ }
277+ if (_resolved) {
278+ _selectedProvider = val;
279+ }
280+ },
281+ configurable: true,
282+ enumerable: true
283+ });
284+ } catch (e) {
285+ // MetaMask (Chrome) may define window.ethereum as non-configurable before us.
286+ // Fall back to using the existing provider directly.
287+ console.warn('[QuickDapp] Cannot override window.ethereum:', e.message);
288+ if (window.ethereum) {
289+ window.__qdapp_legacy_ethereum = window.ethereum;
290+ }
291+ }
285292
286293 console.log('[QuickDapp] Wallet selection script loaded. Detected', _providers.length, 'EIP-6963 providers.');
287294})();
You can’t perform that action at this time.
0 commit comments