Documentation ¶
Overview ¶
Copyright 2022 Hekas Foundation This file is part of the Hekas Network packages.
Hekas is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The Hekas packages are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with the Hekas packages. If not, see https://github.com/hekas-network/hekas/blob/main/LICENSE
Copyright 2022 Hekas Foundation This file is part of the Hekas Network packages.
Hekas is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The Hekas packages are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with the Hekas packages. If not, see https://github.com/hekas-network/hekas/blob/main/LICENSE
Index ¶
Constants ¶
const ( // DefaultGRPCAddress is the default address the gRPC server binds to. DefaultGRPCAddress = "0.0.0.0:9900" // DefaultJSONRPCAddress is the default address the JSON-RPC server binds to. DefaultJSONRPCAddress = "127.0.0.1:8545" // DefaultJSONRPCWsAddress is the default address the JSON-RPC WebSocket server binds to. DefaultJSONRPCWsAddress = "127.0.0.1:8546" // DefaultJsonRPCMetricsAddress is the default address the JSON-RPC Metrics server binds to. DefaultJSONRPCMetricsAddress = "127.0.0.1:6065" // DefaultEVMTracer is the default vm.Tracer type DefaultEVMTracer = "" // DefaultFixRevertGasRefundHeight is the default height at which to overwrite gas refund DefaultFixRevertGasRefundHeight = 0 // DefaultMaxTxGasWanted is the default gas wanted for each eth tx returned in ante handler in check tx mode DefaultMaxTxGasWanted = 0 // DefaultGasCap is the default cap on gas that can be used in eth_call/estimateGas DefaultGasCap uint64 = 25000000 // DefaultFilterCap is the default cap for total number of filters that can be created DefaultFilterCap int32 = 200 // DefaultFeeHistoryCap is the default cap for total number of blocks that can be fetched DefaultFeeHistoryCap int32 = 100 // DefaultLogsCap is the default cap of results returned from single 'eth_getLogs' query DefaultLogsCap int32 = 10000 // DefaultBlockRangeCap is the default cap of block range allowed for 'eth_getLogs' query DefaultBlockRangeCap int32 = 10000 // DefaultEVMTimeout is the default timeout for eth_call DefaultEVMTimeout = 5 * time.Second // DefaultTxFeeCap is the default tx-fee cap for sending a transaction DefaultTxFeeCap float64 = 1.0 // DefaultHTTPTimeout is the default read/write timeout of the http json-rpc server DefaultHTTPTimeout = 30 * time.Second // DefaultHTTPIdleTimeout is the default idle timeout of the http json-rpc server DefaultHTTPIdleTimeout = 120 * time.Second // DefaultAllowUnprotectedTxs value is false DefaultAllowUnprotectedTxs = false // DefaultMaxOpenConnections represents the amount of open connections (unlimited = 0) DefaultMaxOpenConnections = 0 )
const DefaultConfigTemplate = `` /* 3825-byte string literal not displayed */
DefaultConfigTemplate defines the configuration template for the EVM RPC configuration
Variables ¶
This section is empty.
Functions ¶
func AppConfig ¶
AppConfig helps to override default appConfig template and configs. return "", nil if no custom configuration is required for the application.
func GetAPINamespaces ¶
func GetAPINamespaces() []string
GetAPINamespaces returns the all the available JSON-RPC API namespaces.
func GetDefaultAPINamespaces ¶
func GetDefaultAPINamespaces() []string
GetDefaultAPINamespaces returns the default list of JSON-RPC namespaces that should be enabled
Types ¶
type Config ¶
type Config struct { config.Config EVM EVMConfig `mapstructure:"evm"` JSONRPC JSONRPCConfig `mapstructure:"json-rpc"` TLS TLSConfig `mapstructure:"tls"` }
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.
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig returns server's default configuration.
func ParseConfig ¶
ParseConfig retrieves the default environment configuration for the application.
func (Config) ValidateBasic ¶
ValidateBasic returns an error any of the application configuration fields are invalid
type EVMConfig ¶
type EVMConfig struct { // Tracer defines vm.Tracer type that the EVM will use if the node is run in // trace mode. Default: 'json'. Tracer string `mapstructure:"tracer"` // MaxTxGasWanted defines the gas wanted for each eth tx returned in ante handler in check tx mode. MaxTxGasWanted uint64 `mapstructure:"max-tx-gas-wanted"` }
EVMConfig defines the application configuration values for the EVM.
func DefaultEVMConfig ¶
func DefaultEVMConfig() *EVMConfig
DefaultEVMConfig returns the default EVM configuration
type JSONRPCConfig ¶
type JSONRPCConfig struct { // API defines a list of JSON-RPC namespaces that should be enabled API []string `mapstructure:"api"` // Address defines the HTTP server to listen on Address string `mapstructure:"address"` // WsAddress defines the WebSocket server to listen on WsAddress string `mapstructure:"ws-address"` // GasCap is the global gas cap for eth-call variants. GasCap uint64 `mapstructure:"gas-cap"` // EVMTimeout is the global timeout for eth-call. EVMTimeout time.Duration `mapstructure:"evm-timeout"` // TxFeeCap is the global tx-fee cap for send transaction TxFeeCap float64 `mapstructure:"txfee-cap"` // FilterCap is the global cap for total number of filters that can be created. FilterCap int32 `mapstructure:"filter-cap"` // FeeHistoryCap is the global cap for total number of blocks that can be fetched FeeHistoryCap int32 `mapstructure:"feehistory-cap"` // Enable defines if the EVM RPC server should be enabled. Enable bool `mapstructure:"enable"` // LogsCap defines the max number of results can be returned from single `eth_getLogs` query. LogsCap int32 `mapstructure:"logs-cap"` // BlockRangeCap defines the max block range allowed for `eth_getLogs` query. BlockRangeCap int32 `mapstructure:"block-range-cap"` // HTTPTimeout is the read/write timeout of http json-rpc server. HTTPTimeout time.Duration `mapstructure:"http-timeout"` // HTTPIdleTimeout is the idle timeout of http json-rpc server. HTTPIdleTimeout time.Duration `mapstructure:"http-idle-timeout"` // AllowUnprotectedTxs restricts unprotected (non EIP155 signed) transactions to be submitted via // the node's RPC when global parameter is disabled. AllowUnprotectedTxs bool `mapstructure:"allow-unprotected-txs"` // MaxOpenConnections sets the maximum number of simultaneous connections // for the server listener. MaxOpenConnections int `mapstructure:"max-open-connections"` // EnableIndexer defines if enable the custom indexer service. EnableIndexer bool `mapstructure:"enable-indexer"` // MetricsAddress defines the metrics server to listen on MetricsAddress string `mapstructure:"metrics-address"` // FixRevertGasRefundHeight defines the upgrade height for fix of revert gas refund logic when transaction reverted FixRevertGasRefundHeight int64 `mapstructure:"fix-revert-gas-refund-height"` }
JSONRPCConfig defines configuration for the EVM RPC server.
func DefaultJSONRPCConfig ¶
func DefaultJSONRPCConfig() *JSONRPCConfig
DefaultJSONRPCConfig returns an EVM config with the JSON-RPC API enabled by default
func (JSONRPCConfig) Validate ¶
func (c JSONRPCConfig) Validate() error
Validate returns an error if the JSON-RPC configuration fields are invalid.
type TLSConfig ¶
type TLSConfig struct { // CertificatePath the file path for the certificate .pem file CertificatePath string `mapstructure:"certificate-path"` // KeyPath the file path for the key .pem file KeyPath string `mapstructure:"key-path"` }
TLSConfig defines the certificate and matching private key for the server.
func DefaultTLSConfig ¶
func DefaultTLSConfig() *TLSConfig
DefaultTLSConfig returns the default TLS configuration