Skip to content

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
class sgns::IBridgeInitObserver
Observer interface notified when RPC endpoints have been loaded and wired.
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/ChainContractPair.hpp"
#include "account/PublicChainInputValidator.hpp"

namespace sgns
{
    class IBridgeInitObserver
    {
    public:
        virtual void OnRpcEndpointsReady( std::vector<ChainContractPair> chains ) = 0;

        virtual ~IBridgeInitObserver() = default;
    };

    class ChainRpcEndpointProvider
    {
    public:
        ChainRpcEndpointProvider() = default;

        void AddObserver( IBridgeInitObserver &observer );

        bool Initialize( const std::filesystem::path    &bridge_chains_config_path,
                         PublicChainInputValidator       &validator );

    private:
        std::vector<IBridgeInitObserver *> observers_;
    };
} // namespace sgns

#endif

Updated on 2026-06-28 at 18:54:57 -0700