42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
|
package serve
|
||
|
|
||
|
import (
|
||
|
"github.com/ethereum/go-ethereum/rpc"
|
||
|
"github.com/ethereum/go-ethereum/statediff/indexer/node"
|
||
|
"github.com/spf13/viper"
|
||
|
)
|
||
|
|
||
|
// Env variables
|
||
|
const (
|
||
|
HTTP_TIMEOUT = "HTTP_TIMEOUT"
|
||
|
|
||
|
ETH_WS_PATH = "ETH_WS_PATH"
|
||
|
ETH_HTTP_PATH = "ETH_HTTP_PATH"
|
||
|
ETH_NODE_ID = "ETH_NODE_ID"
|
||
|
ETH_CLIENT_NAME = "ETH_CLIENT_NAME"
|
||
|
ETH_GENESIS_BLOCK = "ETH_GENESIS_BLOCK"
|
||
|
ETH_NETWORK_ID = "ETH_NETWORK_ID"
|
||
|
ETH_CHAIN_ID = "ETH_CHAIN_ID"
|
||
|
)
|
||
|
|
||
|
// GetEthNodeAndClient returns eth node info and client from path url
|
||
|
func getEthNodeAndClient(path string) (node.Info, *rpc.Client, error) {
|
||
|
viper.BindEnv("ethereum.nodeID", ETH_NODE_ID)
|
||
|
viper.BindEnv("ethereum.clientName", ETH_CLIENT_NAME)
|
||
|
viper.BindEnv("ethereum.genesisBlock", ETH_GENESIS_BLOCK)
|
||
|
viper.BindEnv("ethereum.networkID", ETH_NETWORK_ID)
|
||
|
viper.BindEnv("ethereum.chainID", ETH_CHAIN_ID)
|
||
|
|
||
|
rpcClient, err := rpc.Dial(path)
|
||
|
if err != nil {
|
||
|
return node.Info{}, nil, err
|
||
|
}
|
||
|
return node.Info{
|
||
|
ID: viper.GetString("ethereum.nodeID"),
|
||
|
ClientName: viper.GetString("ethereum.clientName"),
|
||
|
GenesisBlock: viper.GetString("ethereum.genesisBlock"),
|
||
|
NetworkID: viper.GetString("ethereum.networkID"),
|
||
|
ChainID: viper.GetUint64("ethereum.chainID"),
|
||
|
}, rpcClient, nil
|
||
|
}
|