Skip to content

sgns::PublicChainInputValidator

Validator for transactions that reference external public-chain proofs.

#include <PublicChainInputValidator.hpp>

Inherits from sgns::IInputValidator

Public Functions

Name
void SetRpcEndpoints(const std::string & chain_id, std::vector< WeightedRpcEndpoint > endpoints)
Configure weighted RPC endpoints for a source chain.
virtual bool ValidateUTXOParameters(const UTXOTxParameters & params, const std::string & address, const UTXOManager & utxo_manager) const override
Validates local UTXO structure for externally sourced claims.
virtual bool ValidateWitness(const ConsensusSubject & subject, const std::shared_ptr< GeniusTransaction > & tx, const UTXOTxParameters & params, const std::shared_ptr< Blockchain > & blockchain) const override
Validates the external witness data supplied by consensus.
virtual bool RequiresConsensusUTXOData() const override
Public-chain validation does not require local UTXO witness data.

Additional inherited members

Public Functions inherited from sgns::IInputValidator

Name
virtual ~IInputValidator() =default
Destroys the input validator.

Public Functions Documentation

function SetRpcEndpoints

void SetRpcEndpoints(
    const std::string & chain_id,
    std::vector< WeightedRpcEndpoint > endpoints
)

Configure weighted RPC endpoints for a source chain.

Parameters:

  • chain_id Source chain identifier (e.g. "1" for Ethereum).
  • endpoints Weighted RPC endpoint URLs for verifying burn receipts.

function ValidateUTXOParameters

virtual bool ValidateUTXOParameters(
    const UTXOTxParameters & params,
    const std::string & address,
    const UTXOManager & utxo_manager
) const override

Validates local UTXO structure for externally sourced claims.

Parameters:

  • params UTXO inputs and outputs carried by the transaction.
  • address Source address; ignored for public-chain validation.
  • utxo_manager Local UTXO manager; ignored for public-chain validation.

Return: True when both input and output lists are non-empty.

Reimplements: sgns::IInputValidator::ValidateUTXOParameters

function ValidateWitness

virtual bool ValidateWitness(
    const ConsensusSubject & subject,
    const std::shared_ptr< GeniusTransaction > & tx,
    const UTXOTxParameters & params,
    const std::shared_ptr< Blockchain > & blockchain
) const override

Validates the external witness data supplied by consensus.

Parameters:

  • subject Consensus subject carrying UTXO commitment data.
  • tx Transaction that references the public-chain source event.
  • params UTXO inputs and outputs carrying the source reference and minted outputs.
  • blockchain Blockchain service; currently unused by public-chain validation.

Return: True when tx is present, params are non-empty, and the source reference verification succeeds.

Reimplements: sgns::IInputValidator::ValidateWitness

function RequiresConsensusUTXOData

inline virtual bool RequiresConsensusUTXOData() const override

Public-chain validation does not require local UTXO witness data.

Return: Always false.

Reimplements: sgns::IInputValidator::RequiresConsensusUTXOData

Bridge mints use the EVM transaction hash as input, not a local UTXO. Receipt verification is handled via RPC in VerifyPublicChainSmartContract.


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