2019-10-15 01:20:35 +00:00
|
|
|
package rpc
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
2020-07-02 15:19:48 +00:00
|
|
|
"github.com/spf13/viper"
|
|
|
|
|
2019-10-15 01:20:35 +00:00
|
|
|
"github.com/cosmos/cosmos-sdk/client/context"
|
|
|
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
2020-09-24 17:50:47 +00:00
|
|
|
ethermint "github.com/cosmos/ethermint/types"
|
2019-10-15 01:20:35 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// PublicNetAPI is the eth_ prefixed set of APIs in the Web3 JSON-RPC spec.
|
|
|
|
type PublicNetAPI struct {
|
|
|
|
networkVersion uint64
|
|
|
|
}
|
|
|
|
|
2020-07-03 15:40:00 +00:00
|
|
|
// NewPublicNetAPI creates an instance of the public Net Web3 API.
|
|
|
|
func NewPublicNetAPI(_ context.CLIContext) *PublicNetAPI {
|
2019-10-15 01:20:35 +00:00
|
|
|
chainID := viper.GetString(flags.FlagChainID)
|
|
|
|
// parse the chainID from a integer string
|
2020-09-24 17:50:47 +00:00
|
|
|
chainIDEpoch, err := ethermint.ParseChainID(chainID)
|
2019-10-15 01:20:35 +00:00
|
|
|
if err != nil {
|
2020-09-24 17:50:47 +00:00
|
|
|
panic(err)
|
2019-10-15 01:20:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return &PublicNetAPI{
|
2020-09-24 17:50:47 +00:00
|
|
|
networkVersion: chainIDEpoch.Uint64(),
|
2019-10-15 01:20:35 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Version returns the current ethereum protocol version.
|
|
|
|
func (s *PublicNetAPI) Version() string {
|
|
|
|
return fmt.Sprintf("%d", s.networkVersion)
|
|
|
|
}
|