Skip to content

eth/bridge_observation.hpp

Namespaces

Name
eth

Functions

Name
codec::ByteBuffer bridge_event_claim_payload(const BridgeEventClaim & claim)
Canonical bytes for bridge-event consensus payloads and watcher signatures.
std::optional< BridgeEventClaim > decode_bridge_event_claim_payload(const codec::ByteBuffer & payload)
Hash256 bridge_event_domain_separator(uint64_t src_chain_id, uint64_t dest_chain_id, const Address & bridge_contract)
Hash256 bridge_event_claim_hash(const BridgeEventClaim & claim)
std::optional< Address > observer_address_from_private_key(const Secp256k1PrivateKey & private_key)
std::optional< BridgeEventObservation > sign_bridge_event_claim(const BridgeEventClaim & claim, const Secp256k1PrivateKey & private_key)
bool verify_bridge_event_observation(const BridgeEventObservation & observation)

Functions Documentation

function bridge_event_claim_payload

codec::ByteBuffer bridge_event_claim_payload(
    const BridgeEventClaim & claim
)

Canonical bytes for bridge-event consensus payloads and watcher signatures.

function decode_bridge_event_claim_payload

std::optional< BridgeEventClaim > decode_bridge_event_claim_payload(
    const codec::ByteBuffer & payload
)

function bridge_event_domain_separator

Hash256 bridge_event_domain_separator(
    uint64_t src_chain_id,
    uint64_t dest_chain_id,
    const Address & bridge_contract
)

function bridge_event_claim_hash

Hash256 bridge_event_claim_hash(
    const BridgeEventClaim & claim
)

function observer_address_from_private_key

std::optional< Address > observer_address_from_private_key(
    const Secp256k1PrivateKey & private_key
)

function sign_bridge_event_claim

std::optional< BridgeEventObservation > sign_bridge_event_claim(
    const BridgeEventClaim & claim,
    const Secp256k1PrivateKey & private_key
)

function verify_bridge_event_observation

bool verify_bridge_event_observation(
    const BridgeEventObservation & observation
)

Source code

// Copyright 2026 Genius Ventures, Inc.
// SPDX-License-Identifier: MIT

#ifndef EVMRELAY_INCLUDE_ETH_BRIDGE_OBSERVATION_HPP
#define EVMRELAY_INCLUDE_ETH_BRIDGE_OBSERVATION_HPP

#include <eth/bridge_event.hpp>
#include <eth/secp256k1_utility.hpp>
#include <optional>

namespace eth {

[[nodiscard]] codec::ByteBuffer bridge_event_claim_payload(const BridgeEventClaim& claim);
[[nodiscard]] std::optional<BridgeEventClaim> decode_bridge_event_claim_payload(
    const codec::ByteBuffer& payload) noexcept;

[[nodiscard]] Hash256 bridge_event_domain_separator(
    uint64_t       src_chain_id,
    uint64_t       dest_chain_id,
    const Address& bridge_contract) noexcept;

[[nodiscard]] Hash256 bridge_event_claim_hash(const BridgeEventClaim& claim) noexcept;
[[nodiscard]] std::optional<Address> observer_address_from_private_key(
    const Secp256k1PrivateKey& private_key) noexcept;
[[nodiscard]] std::optional<BridgeEventObservation> sign_bridge_event_claim(
    const BridgeEventClaim&     claim,
    const Secp256k1PrivateKey&  private_key) noexcept;
[[nodiscard]] bool verify_bridge_event_observation(
    const BridgeEventObservation& observation) noexcept;

} // namespace eth

#endif // EVMRELAY_INCLUDE_ETH_BRIDGE_OBSERVATION_HPP

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