@@ -57,20 +57,24 @@ class StateManagerCommonStorageDump extends StateManager {
5757 }
5858}
5959
60- var stateManager = new StateManagerCommonStorageDump ( { } )
61- var vm = new EthJSVM ( {
62- enableHomestead : true ,
63- activatePrecompiles : true
64- } )
65-
66- // FIXME: move state manager in EthJSVM ctr
67- vm . stateManager = stateManager
68- vm . blockchain = stateManager . blockchain
69- vm . trie = stateManager . trie
70- vm . stateManager . checkpoint ( ( ) => { } )
60+ function createVm ( hardfork ) {
61+ var stateManager = new StateManagerCommonStorageDump ( { } )
62+ stateManager . checkpoint ( ( ) => { } )
63+ var vm = new EthJSVM ( {
64+ activatePrecompiles : true ,
65+ blockchain : stateManager . blockchain ,
66+ stateManager : stateManager ,
67+ hardfork : hardfork
68+ } )
69+ var web3vm = new Web3VMProvider ( )
70+ web3vm . setVM ( vm )
71+ return { vm, web3vm, stateManager }
72+ }
7173
72- var web3VM = new Web3VMProvider ( )
73- web3VM . setVM ( vm )
74+ var vms = {
75+ byzantium : createVm ( 'byzantium' ) ,
76+ constantinople : createVm ( 'constantinople' )
77+ }
7478
7579var mainNetGenesisHash = '0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3'
7680
@@ -104,7 +108,7 @@ function ExecutionContext () {
104108 }
105109
106110 this . web3 = function ( ) {
107- return this . isVM ( ) ? web3VM : web3
111+ return this . isVM ( ) ? vms . constantinople . web3vm : web3
108112 }
109113
110114 this . detectNetwork = function ( callback ) {
@@ -158,7 +162,7 @@ function ExecutionContext () {
158162 }
159163
160164 this . vm = function ( ) {
161- return vm
165+ return vms . constantinople . vm
162166 }
163167
164168 this . setContext = function ( context , endPointUrl , confirmCb , infoCb ) {
@@ -171,8 +175,8 @@ function ExecutionContext () {
171175
172176 if ( context === 'vm' ) {
173177 executionContext = context
174- vm . stateManager . revert ( function ( ) {
175- vm . stateManager . checkpoint ( )
178+ vms . constantinople . stateManager . revert ( ( ) => {
179+ vms . constantinople . stateManager . checkpoint ( ( ) => { } )
176180 } )
177181 self . event . trigger ( 'contextChanged' , [ 'vm' ] )
178182 return cb ( )
0 commit comments