Skip to content

account/BridgeRelayer.hpp

Wires evmrelay burn events to MintFunds via shared EthWatchService. More...

Namespaces

Name
sgns

Classes

Name
class sgns::BridgeRelayer
Registers a BridgeSourceBurned watch on a shared EthWatchService and calls MintFunds when burns are detected.

Detailed Description

Wires evmrelay burn events to MintFunds via shared EthWatchService.

Date: 2026-05-30

Source code

#pragma once

#include <memory>
#include <string>

#include "account/TransactionManager.hpp"
#include "base/logger.hpp"
#include "eth/eth_watch_service.hpp"

class BridgeRelayerTestAccess;

namespace sgns
{
    class BridgeRelayer : public std::enable_shared_from_this<BridgeRelayer>
    {
    public:
        static std::shared_ptr<BridgeRelayer> Create( std::weak_ptr<TransactionManager>     tx_manager,
                                                      std::shared_ptr<eth::EthWatchService> watch_service );

        void Start( const std::string &chain_name, const std::string &contract_address );

        void Stop();

    private:
        friend class ::BridgeRelayerTestAccess;
        explicit BridgeRelayer( std::weak_ptr<TransactionManager>     tx_manager,
                                std::shared_ptr<eth::EthWatchService> watch_service );
        void OnWatchEvent( const eth::WatchEventNotification &notification );

        std::weak_ptr<TransactionManager> tx_manager_; 
        std::shared_ptr<eth::EthWatchService> watch_service_; 
        base::Logger                          logger_;        
        eth::EventWatchId watch_id_{ 0 }; 
    };
} // namespace sgns

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