diff --git a/cmd/node/main.go b/cmd/node/main.go index ac04d581..f55d05fd 100644 --- a/cmd/node/main.go +++ b/cmd/node/main.go @@ -2,6 +2,7 @@ package main import ( "github.com/machinefi/w3bstream-mainnet/enums" + "github.com/machinefi/w3bstream-mainnet/vm" "log" "log/slog" "net/http" @@ -14,18 +15,11 @@ import ( "github.com/machinefi/w3bstream-mainnet/msg" "github.com/machinefi/w3bstream-mainnet/msg/handler" - "github.com/machinefi/w3bstream-mainnet/vm" ) func main() { - vmHandler := vm.NewHandler( - map[vm.Type]string{ - vm.Risc0: viper.GetString(enums.EnvKeyRisc0ServerEndpoint), - vm.Halo2: viper.GetString(enums.EnvKeyHalo2ServerEndpoint), - }, - ) msgHandler := handler.New( - vmHandler, + vm.DefaultHandler, viper.GetString(enums.EnvKeyChainEndpoint), viper.GetString(enums.EnvKeyOperatorPrivateKey), viper.GetString(enums.EnvKeyProjectConfigPath), diff --git a/vm/type.go b/vm/type.go index bf7d2d77..9ac54856 100644 --- a/vm/type.go +++ b/vm/type.go @@ -1,8 +1,15 @@ package vm +import "github.com/machinefi/w3bstream-mainnet/enums" + type Type string const ( Risc0 Type = "risc0" Halo2 Type = "halo2" ) + +var vmEndpointConfigEnvKeyMap = map[string]Type{ + enums.EnvKeyRisc0ServerEndpoint: Risc0, + enums.EnvKeyHalo2ServerEndpoint: Halo2, +} diff --git a/vm/vm.go b/vm/vm.go index 93d19571..dc819ab7 100644 --- a/vm/vm.go +++ b/vm/vm.go @@ -2,6 +2,7 @@ package vm import ( "context" + "github.com/spf13/viper" "log/slog" "github.com/machinefi/w3bstream-mainnet/msg" @@ -40,3 +41,16 @@ func NewHandler(endpoints map[Type]string) *Handler { instanceMgr: server.NewMgr(), } } + +var DefaultHandler *Handler + +func init() { + var endpoints = make(map[Type]string) + for key, typ := range vmEndpointConfigEnvKeyMap { + if ep := viper.GetString(key); ep != "" { + endpoints[typ] = ep + } + } + + DefaultHandler = NewHandler(endpoints) +}