forked from cerc-io/laconicd-deprecated
feat: configurable JSON-RPC APIs (#349)
* fix confusing name * feat: Enable configurable grpc apis * docs: Update docs and changelog * Organized flags order * fix linter * fix linter * fix maligned struct * fix typo in docs * fix unnecesary duplicate * Update cmd/ethermintd/config/config.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update cmd/ethermintd/config/config.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update cmd/ethermintd/config/config.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update docs/basics/json_rpc.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * fix eth to be manage as default * Update init.sh Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update tests/solidity/init-test-node.sh Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * add default case * add default enable api namespaces * update changelog * fix namespaces array handler * remove duplicated changelog * fix typo * remove duplicates namespaces and fix eth namespace issue * fix variable name * break line in docs Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
co-authored by
Federico Kunze Küllmer
parent
54581269b8
commit
d1212725f8
@@ -18,6 +18,11 @@ const (
|
||||
DefaultEVMWSAddress = "0.0.0.0:8546"
|
||||
)
|
||||
|
||||
// GetDefaultAPINamespaces returns the default list of JSON-RPC namespaces that should be enabled
|
||||
func GetDefaultAPINamespaces() []string {
|
||||
return []string{"eth"}
|
||||
}
|
||||
|
||||
// AppConfig helps to override default appConfig template and configs.
|
||||
// return "", nil if no custom configuration is required for the application.
|
||||
func AppConfig() (string, interface{}) {
|
||||
@@ -57,27 +62,30 @@ func DefaultConfig() *Config {
|
||||
}
|
||||
}
|
||||
|
||||
// DefaultEVMConfig returns an EVM config with the JSON-RPC API enabled by default
|
||||
func DefaultEVMConfig() *EVMRPCConfig {
|
||||
return &EVMRPCConfig{
|
||||
Enable: true,
|
||||
RPCAddress: DefaultEVMAddress,
|
||||
WsAddress: DefaultEVMWSAddress,
|
||||
}
|
||||
}
|
||||
|
||||
// EVMRPCConfig defines configuration for the EVM RPC server.
|
||||
type EVMRPCConfig struct {
|
||||
// RPCAddress defines the HTTP server to listen on
|
||||
RPCAddress string `mapstructure:"address"`
|
||||
// WsAddress defines the WebSocket server to listen on
|
||||
WsAddress string `mapstructure:"ws-address"`
|
||||
// API defines a list of JSON-RPC namespaces that should be enabled
|
||||
API []string `mapstructure:"api"`
|
||||
// Enable defines if the EVM RPC server should be enabled.
|
||||
Enable bool `mapstructure:"enable"`
|
||||
// EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk)
|
||||
EnableUnsafeCORS bool `mapstructure:"enable-unsafe-cors"`
|
||||
}
|
||||
|
||||
// DefaultEVMConfig returns an EVM config with the JSON-RPC API enabled by default
|
||||
func DefaultEVMConfig() *EVMRPCConfig {
|
||||
return &EVMRPCConfig{
|
||||
Enable: true,
|
||||
API: GetDefaultAPINamespaces(),
|
||||
RPCAddress: DefaultEVMAddress,
|
||||
WsAddress: DefaultEVMWSAddress,
|
||||
}
|
||||
}
|
||||
|
||||
// Config defines the server's top level configuration. It includes the default app config
|
||||
// from the SDK as well as the EVM configuration to enable the JSON-RPC APIs.
|
||||
type Config struct {
|
||||
@@ -95,6 +103,7 @@ func GetConfig(v *viper.Viper) Config {
|
||||
Config: cfg,
|
||||
EVMRPC: EVMRPCConfig{
|
||||
Enable: v.GetBool("evm-rpc.enable"),
|
||||
API: v.GetStringSlice("evm-rpc.api"),
|
||||
RPCAddress: v.GetString("evm-rpc.address"),
|
||||
WsAddress: v.GetString("evm-rpc.ws-address"),
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user