/
flags.go
40 lines (33 loc) · 964 Bytes
/
flags.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package jsonrpc
import (
cmdutils "github.com/kilnfi/go-utils/cmd/utils"
jsonrpchttp "github.com/kilnfi/go-utils/net/jsonrpc/http"
"github.com/spf13/pflag"
"github.com/spf13/viper"
)
func Flags(v *viper.Viper, f *pflag.FlagSet) {
EthELAddrFlag(v, f)
}
func ConfigFromViper(v *viper.Viper) *jsonrpchttp.Config {
return &jsonrpchttp.Config{
Address: GetEthELAddr(v),
}
}
const (
ethELAddrFlag = "eth-el-addr"
ethELAddrViperKey = "eth.el-addr"
ethELAddrEnv = "ETH_EL_ADDR"
)
// EthELAddrFlag register flag for Eth1 node to connect to
func EthELAddrFlag(v *viper.Viper, f *pflag.FlagSet) {
desc := cmdutils.FlagDesc(
"JSON-RPC address of the Ethereum execution layer node to connect to",
ethELAddrEnv,
)
f.String(ethELAddrFlag, "", desc)
_ = v.BindPFlag(ethELAddrViperKey, f.Lookup(ethELAddrFlag))
_ = v.BindEnv(ethELAddrViperKey, ethELAddrEnv)
}
func GetEthELAddr(v *viper.Viper) string {
return v.GetString(ethELAddrViperKey)
}