account/ChainRpcEndpointProvider.hpp¶
Loads RPC endpoints from the evmrelay ChainList provider and wires them into PublicChainInputValidator with weighted consensus support. More...
Namespaces¶
| Name |
|---|
| sgns |
Classes¶
| Name | |
|---|---|
| struct | sgns::ChainRpcProviderConfig Platform-agnostic configuration passed to ChainRpcEndpointProvider. |
| class | sgns::ChainRpcEndpointProvider Encapsulates ChainList RPC endpoint loading and validator wiring. |
Detailed Description¶
Loads RPC endpoints from the evmrelay ChainList provider and wires them into PublicChainInputValidator with weighted consensus support.
Date: 2026-05-27 SuperGenius
Source code¶
#ifndef _CHAIN_RPC_ENDPOINT_PROVIDER_HPP_
#define _CHAIN_RPC_ENDPOINT_PROVIDER_HPP_
#include <cstdint>
#include <filesystem>
#include <string>
#include <unordered_map>
#include <vector>
#include "account/PublicChainInputValidator.hpp"
#include "base/logger.hpp"
namespace sgns
{
struct ChainRpcProviderConfig
{
std::filesystem::path chains_json_path;
std::unordered_map<std::string, std::vector<WeightedRpcEndpoint>> direct_endpoints;
};
class ChainRpcEndpointProvider
{
public:
using ChainIdMap = std::unordered_map<std::string, uint64_t>;
explicit ChainRpcEndpointProvider( ChainIdMap chain_id_map );
bool Initialize( PublicChainInputValidator &validator,
const ChainRpcProviderConfig &config,
const base::Logger &logger ) const;
private:
ChainIdMap chain_id_map_;
};
} // namespace sgns
#endif
Updated on 2026-06-05 at 17:22:19 -0700