Skip to content

account/GeniusInputValidator.hpp

Input validation strategy for native Genius-chain transactions. More...

Namespaces

Name
sgns

Classes

Name
class sgns::GeniusInputValidator
Validator for native Genius-chain transactions.

Attributes

Name
bool kGeniusValidatorRegistered

Detailed Description

Input validation strategy for native Genius-chain transactions.

Date: 2026-06-02 Henrique A. Klein (hklein@gnus.ai)

Attributes Documentation

variable kGeniusValidatorRegistered

static bool kGeniusValidatorRegistered = GeniusInputValidator::Register();

Source code

#ifndef SGNS_GENIUS_INPUT_VALIDATOR_HPP
#define SGNS_GENIUS_INPUT_VALIDATOR_HPP

#include <memory>

#include "account/InputValidators.hpp"

namespace sgns
{
    class GeniusInputValidator final : public IInputValidator
    {
    public:
        bool ValidateUTXOParameters( const UTXOTxParameters &params,
                                     const std::string      &address,
                                     const UTXOManager      &utxo_manager ) const override;

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

        bool RequiresConsensusUTXOData() const override
        {
            return true;
        }

        static bool Register()
        {
            static GeniusInputValidator instance;
            IInputValidator::Register( "supergenius", &instance );
            IInputValidator::Register( "supergenius_chain", &instance );
            IInputValidator::Register( "", &instance );
            return true;
        }
    };

    static inline bool kGeniusValidatorRegistered = GeniusInputValidator::Register();
} // namespace sgns

#endif // SGNS_GENIUS_INPUT_VALIDATOR_HPP

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