From 0840bce387d4b672fa88c6822eecf35605b741be Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 18 Apr 2023 14:30:29 +0200 Subject: [PATCH] add shanghai vm --- apps/remix-ide/src/app.js | 4 +++- apps/remix-ide/src/app/providers/vm-provider.tsx | 15 +++++++++++++++ apps/remix-ide/src/app/udapp/run-tab.js | 1 + .../remix-ide/src/blockchain/execution-context.js | 6 +++--- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 6663de5616..27e2e5de88 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -28,7 +28,7 @@ import { StoragePlugin } from './app/plugins/storage' import { Layout } from './app/panels/layout' import { NotificationPlugin } from './app/plugins/notification' import { Blockchain } from './blockchain/blockchain' -import { MergeVMProvider, LondonVMProvider, BerlinVMProvider} from './app/providers/vm-provider' +import { MergeVMProvider, LondonVMProvider, BerlinVMProvider, ShanghaiVMProvider } 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' @@ -211,6 +211,7 @@ class AppComponent { const vmProviderMainnetFork = new MainnetForkVMProvider(blockchain) const vmProviderSepoliaFork = new SepoliaForkVMProvider(blockchain) const vmProviderGoerliFork = new GoerliForkVMProvider(blockchain) + const vmProviderShanghai = new ShanghaiVMProvider(blockchain) const vmProviderMerge = new MergeVMProvider(blockchain) const vmProviderBerlin = new BerlinVMProvider(blockchain) const vmProviderLondon = new LondonVMProvider(blockchain) @@ -281,6 +282,7 @@ class AppComponent { fetchAndCompile, dGitProvider, storagePlugin, + vmProviderShanghai, vmProviderMerge, vmProviderBerlin, vmProviderLondon, diff --git a/apps/remix-ide/src/app/providers/vm-provider.tsx b/apps/remix-ide/src/app/providers/vm-provider.tsx index 6cd154d31f..5e66152463 100644 --- a/apps/remix-ide/src/app/providers/vm-provider.tsx +++ b/apps/remix-ide/src/app/providers/vm-provider.tsx @@ -85,4 +85,19 @@ export class BerlinVMProvider extends BasicVMProvider { this.blockchain = blockchain this.fork = 'berlin' } +} + +export class ShanghaiVMProvider extends BasicVMProvider { + constructor (blockchain) { + super({ + name: 'vm-shanghai', + displayName: 'Remix VM (Shanghai)', + kind: 'provider', + description: 'Remix VM (Shanghai)', + methods: ['sendAsync', 'init'], + version: packageJson.version + }, blockchain) + this.blockchain = blockchain + this.fork = 'shanghai' + } } \ 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 7ecca1596b..4c0b61df7f 100644 --- a/apps/remix-ide/src/app/udapp/run-tab.js +++ b/apps/remix-ide/src/app/udapp/run-tab.js @@ -151,6 +151,7 @@ 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-shanghai', 'Remix VM (Shanghai)', false, true, 'shanghai', 'settingsVMShanghaiMode', titleVM) 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) diff --git a/apps/remix-ide/src/blockchain/execution-context.js b/apps/remix-ide/src/blockchain/execution-context.js index c362b9f746..d730a130e3 100644 --- a/apps/remix-ide/src/blockchain/execution-context.js +++ b/apps/remix-ide/src/blockchain/execution-context.js @@ -20,11 +20,11 @@ if (typeof window !== 'undefined' && typeof window.ethereum !== 'undefined') { export class ExecutionContext { constructor () { this.event = new EventManager() - this.executionContext = 'vm-merge' + this.executionContext = 'vm-shanghai' this.lastBlock = null this.blockGasLimitDefault = 4300000 this.blockGasLimit = this.blockGasLimitDefault - this.currentFork = 'merge' + this.currentFork = 'shanghai' this.mainNetGenesisHash = '0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3' this.customNetWorks = {} this.blocks = {} @@ -34,7 +34,7 @@ export class ExecutionContext { } init (config) { - this.executionContext = 'vm-merge' + this.executionContext = 'vm-shanghai' this.event.trigger('contextChanged', [this.executionContext]) }