From ac24a8da2eba2405782845be62139b1d15c3e911 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Fri, 20 Dec 2024 20:50:23 +0530 Subject: [PATCH] pin forked state provider immediately --- apps/remix-ide/src/app/udapp/run-tab.tsx | 1 + apps/remix-ide/src/blockchain/blockchain.tsx | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/apps/remix-ide/src/app/udapp/run-tab.tsx b/apps/remix-ide/src/app/udapp/run-tab.tsx index 55c06045b0..b580eb09ba 100644 --- a/apps/remix-ide/src/app/udapp/run-tab.tsx +++ b/apps/remix-ide/src/app/udapp/run-tab.tsx @@ -295,6 +295,7 @@ export class RunTab extends ViewPlugin { this.on('udapp', 'vmStateForked', async (stateName) => { await addFVSProvider(`.states/forked_states/${stateName}.json`, 20) + this.emit('providerPinned', stateName) }) // wallet connect diff --git a/apps/remix-ide/src/blockchain/blockchain.tsx b/apps/remix-ide/src/blockchain/blockchain.tsx index 8e5f00e890..afa47b45d0 100644 --- a/apps/remix-ide/src/blockchain/blockchain.tsx +++ b/apps/remix-ide/src/blockchain/blockchain.tsx @@ -148,6 +148,15 @@ export class Blockchain extends Plugin { _paq.push(['trackEvent', 'blockchain', 'providerPinned', name]) this.emit('providersChanged') }) + // used to pin the provider created from forked state + this.on('udapp', 'providerPinned', (providerName) => { + const name = `vm-fs-${providerName}` + this.emit('shouldAddProvidertoUdapp', name, this.getProviderObjByName(name)) + this.pinnedProviders.push(name) + this.call('config', 'setAppParameter', 'settings/pinned-providers', JSON.stringify(this.pinnedProviders)) + _paq.push(['trackEvent', 'blockchain', 'providerPinned', name]) + this.emit('providersChanged') + }) this.on('environmentExplorer', 'providerUnpinned', (name, provider) => { this.emit('shouldRemoveProviderFromUdapp', name, provider) @@ -568,6 +577,13 @@ export class Blockchain extends Plugin { return this.executionContext.getProvider() } + getProviderObjByName(name) { + const allProviders = this.getAllProviders() + console.log('allProviders--->', allProviders) + console.log('allProviders--name->', name) + return allProviders[name] + } + getInjectedWeb3Address() { return this.executionContext.getSelectedAddress() }