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() }