diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 3bceb50c10..1386443818 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -27,7 +27,7 @@ import { StoragePlugin } from './app/plugins/storage' import { Layout } from './app/panels/layout' import { NotificationPlugin } from './app/plugins/notification' import { Blockchain } from './blockchain/blockchain.js' -import { MergeVMProvider } from './app/providers/vm-provider' +import { MergeVMProvider, LondonVMProvider, BerlinVMProvider} from './app/providers/vm-provider' import { MainnetForkVMProvider } from './app/providers/mainnet-vm-fork-provider' import { SepoliaForkVMProvider } from './app/providers/sepolia-vm-fork-provider' import { GoerliForkVMProvider } from './app/providers/goerli-vm-fork-provider' @@ -212,6 +212,8 @@ class AppComponent { const vmProviderSepoliaFork = new SepoliaForkVMProvider(blockchain) const vmProviderGoerliFork = new GoerliForkVMProvider(blockchain) const vmProviderMerge = new MergeVMProvider(blockchain) + const vmProviderBerlin = new BerlinVMProvider(blockchain) + const vmProviderLondon = new LondonVMProvider(blockchain) const hardhatProvider = new HardhatProvider(blockchain) const ganacheProvider = new GanacheProvider(blockchain) const foundryProvider = new FoundryProvider(blockchain) @@ -279,6 +281,8 @@ class AppComponent { dGitProvider, storagePlugin, vmProviderMerge, + vmProviderBerlin, + vmProviderLondon, vmProviderSepoliaFork, vmProviderGoerliFork, vmProviderMainnetFork, diff --git a/apps/remix-ide/src/app/providers/vm-provider.tsx b/apps/remix-ide/src/app/providers/vm-provider.tsx index 390da923c2..6cd154d31f 100644 --- a/apps/remix-ide/src/app/providers/vm-provider.tsx +++ b/apps/remix-ide/src/app/providers/vm-provider.tsx @@ -55,4 +55,34 @@ export class MergeVMProvider extends BasicVMProvider { this.blockchain = blockchain this.fork = 'merge' } +} + +export class LondonVMProvider extends BasicVMProvider { + constructor (blockchain) { + super({ + name: 'vm-london', + displayName: 'Remix VM (London)', + kind: 'provider', + description: 'Remix VM (London)', + methods: ['sendAsync', 'init'], + version: packageJson.version + }, blockchain) + this.blockchain = blockchain + this.fork = 'london' + } +} + +export class BerlinVMProvider extends BasicVMProvider { + constructor (blockchain) { + super({ + name: 'vm-berlin', + displayName: 'Remix VM (Berlin)', + kind: 'provider', + description: 'Remix VM (Berlin)', + methods: ['sendAsync', 'init'], + version: packageJson.version + }, blockchain) + this.blockchain = blockchain + this.fork = 'berlin' + } } \ No newline at end of file diff --git a/apps/remix-ide/src/app/udapp/run-tab.js b/apps/remix-ide/src/app/udapp/run-tab.js index 179299ff74..539089ff24 100644 --- a/apps/remix-ide/src/app/udapp/run-tab.js +++ b/apps/remix-ide/src/app/udapp/run-tab.js @@ -134,6 +134,8 @@ export class RunTab extends ViewPlugin { // VM const titleVM = 'Execution environment is local to Remix. Data is only saved to browser memory and will vanish upon reload.' await addProvider('vm-merge', 'Remix VM (Merge)', false, true, 'merge', 'settingsVMMergeMode', titleVM) + await addProvider('vm-london', 'Remix VM (London)', false, true, 'london', 'settingsVMLondonMode', titleVM) + await addProvider('vm-berlin', 'Remix VM (Berlin)', false, true, 'berlin', 'settingsVMBerlinMode', titleVM) await addProvider('vm-mainnet-fork', 'Remix VM - Mainnet fork', false, true, 'merge', 'settingsVMMainnetMode', titleVM) await addProvider('vm-sepolia-fork', 'Remix VM - Sepolia fork', false, true, 'merge', 'settingsVMSepoliaMode', titleVM) await addProvider('vm-goerli-fork', 'Remix VM - Goerli fork', false, true, 'merge', 'settingsVMGoerliMode', titleVM)