Skip to content

sgns::ChainRpcEndpointProvider

Encapsulates ChainList RPC endpoint loading and validator wiring. More...

#include <ChainRpcEndpointProvider.hpp>

Public Types

Name
using std::unordered_map< std::string, uint64_t > ChainIdMap
Mapping from config-level chain name to its numeric EVM chain ID.

Public Functions

Name
ChainRpcEndpointProvider(ChainIdMap chain_id_map)
Constructs the provider with the configured chain name -> ID mapping.
bool Initialize(PublicChainInputValidator & validator, const ChainRpcProviderConfig & config, const base::Logger & logger) const
Loads RPC endpoints and wires them into the validator.

Detailed Description

class sgns::ChainRpcEndpointProvider;

Encapsulates ChainList RPC endpoint loading and validator wiring.

Loads the chainid.network chains.json, filters to configured chains, groups endpoints by chain ID with consensus weights (public=25%, direct=50%), and calls PublicChainInputValidator::SetRpcEndpoints for each chain.

Public Types Documentation

using ChainIdMap

using sgns::ChainRpcEndpointProvider::ChainIdMap = std::unordered_map<std::string, uint64_t>;

Mapping from config-level chain name to its numeric EVM chain ID.

Public Functions Documentation

function ChainRpcEndpointProvider

explicit ChainRpcEndpointProvider(
    ChainIdMap chain_id_map
)

Constructs the provider with the configured chain name -> ID mapping.

Parameters:

  • chain_id_map Maps config keys (e.g. "ethereum-mainnet") to numeric chain IDs (e.g. 1).

function Initialize

bool Initialize(
    PublicChainInputValidator & validator,
    const ChainRpcProviderConfig & config,
    const base::Logger & logger
) const

Loads RPC endpoints and wires them into the validator.

Parameters:

  • validator PublicChainInputValidator to configure.
  • config Filesystem paths and direct-endpoint definitions.
  • logger Logger for diagnostic output.

Return: True when at least one chain received RPC endpoints.

Public endpoints from the ChainList provider in config.chains_json_path contribute 25% consensus weight. Direct endpoints from config.direct_endpoints contribute 50% consensus weight.


Updated on 2026-06-05 at 17:22:18 -0700