impl/bridge_rpc_watcher.hpp¶
Header file for the bridge RPC watcher. More...
Namespaces¶
| Name |
|---|
| sgns |
| sgns::evmwatcher |
Classes¶
| Name | |
|---|---|
| class | sgns::evmwatcher::BridgeRpcWatcher RPC-based bridge event watcher that polls eth_getLogs, verifies receipts, and produces normalized BridgeEventClaim objects. |
| struct | sgns::evmwatcher::BridgeRpcWatcher::Config Configuration structure for BridgeRpcWatcher. |
Detailed Description¶
Header file for the bridge RPC watcher.
Date: 2026-06-03 SuperGenius ([email protected]) Copyright 2026 Genius Ventures, Inc. SPDX-License-Identifier: MIT
Source code¶
#pragma once
#include <watcher/messaging_watcher.hpp>
#include <eth/bridge_event.hpp>
#include <eth/rpc_http_transport.hpp>
#include <chrono>
#include <cstdint>
#include <functional>
#include <string>
#include <vector>
namespace sgns::evmwatcher
{
class BridgeRpcWatcher final : public watcher::MessagingWatcher
{
public:
using BridgeClaimCallback = std::function<void( const eth::BridgeEventClaim & )>;
struct Config
{
std::string rpc_url;
uint64_t chain_id = 0;
uint64_t dest_chain_id = 0;
std::string contract_address;
std::string event_signature;
uint64_t confirmation_depth = 12;
std::chrono::seconds poll_interval{ 4 };
uint64_t max_log_range = 1000;
};
BridgeRpcWatcher( const Config &config, MessageCallback message_callback, BridgeClaimCallback claim_callback );
void startWatching() override;
void stopWatching() override;
[[nodiscard]] const Config &GetConfig() const noexcept
{
return config_;
}
[[nodiscard]] uint64_t GetLastProcessedBlock() const noexcept
{
return last_block_;
}
protected:
void watch() override;
private:
void poll_once();
Config config_;
BridgeClaimCallback claim_callback_;
eth::rpc::RpcHttpTransport transport_;
uint64_t last_block_ = 0;
};
} // namespace sgns::evmwatcher
Updated on 2026-06-05 at 17:22:20 -0700