@@ -140,24 +140,21 @@ func NewEVM(ctx Context, statedb StateDB, chainConfig *params.ChainConfig, vmCon
140
140
}
141
141
142
142
if chainConfig .IsEWASM (ctx .BlockNumber ) {
143
- // to be implemented by EVM-C and Wagon PRs.
144
- // if vmConfig.EWASMInterpreter != "" {
145
- // extIntOpts := strings.Split(vmConfig.EWASMInterpreter, ":")
146
- // path := extIntOpts[0]
147
- // options := []string{}
148
- // if len(extIntOpts) > 1 {
149
- // options = extIntOpts[1..]
150
- // }
151
- // evm.interpreters = append(evm.interpreters, NewEVMVCInterpreter(evm, vmConfig, options))
152
- // } else {
153
- // evm.interpreters = append(evm.interpreters, NewEWASMInterpreter(evm, vmConfig))
154
- // }
155
- panic ("No supported ewasm interpreter yet." )
156
- }
157
-
158
- // vmConfig.EVMInterpreter will be used by EVM-C, it won't be checked here
159
- // as we always want to have the built-in EVM as the failover option.
143
+ if vmConfig .EWASMInterpreter != "" {
144
+ evm .interpreters = append (evm .interpreters , NewEVMC (vmConfig .EWASMInterpreter , evm ))
145
+ } else {
146
+ panic ("The default ewasm interpreter not supported yet." )
147
+ }
148
+ }
149
+
150
+ if vmConfig .EVMInterpreter != "" {
151
+ // Create custom EVM.
152
+ evm .interpreters = append (evm .interpreters , NewEVMC (vmConfig .EVMInterpreter , evm ))
153
+ }
154
+
155
+ // Keep the built-in EVM as the failover option.
160
156
evm .interpreters = append (evm .interpreters , NewEVMInterpreter (evm , vmConfig ))
157
+
161
158
evm .interpreter = evm .interpreters [0 ]
162
159
163
160
return evm
0 commit comments