diff --git a/include/kth/domain/chain/input_basis.hpp b/include/kth/domain/chain/input_basis.hpp index eb90d3b76..439627c3a 100644 --- a/include/kth/domain/chain/input_basis.hpp +++ b/include/kth/domain/chain/input_basis.hpp @@ -53,8 +53,11 @@ class KD_API input_basis { // Operators. //------------------------------------------------------------------------- - bool operator==(input_basis const& x) const; - bool operator!=(input_basis const& x) const; + friend + bool operator==(input_basis const&, input_basis const&) = default; + + friend + bool operator!=(input_basis const&, input_basis const&) = default; // Deserialization. //------------------------------------------------------------------------- diff --git a/include/kth/domain/chain/output.hpp b/include/kth/domain/chain/output.hpp index e3136452a..32e7fb9cc 100644 --- a/include/kth/domain/chain/output.hpp +++ b/include/kth/domain/chain/output.hpp @@ -60,11 +60,6 @@ class KD_API output : public output_basis { output& operator=(output const& x); output& operator=(output&& x) noexcept; - // Operators. - //------------------------------------------------------------------------- - // bool operator==(output const& x) const; - // bool operator!=(output const& x) const; - // Deserialization. //------------------------------------------------------------------------- diff --git a/include/kth/domain/chain/output_basis.hpp b/include/kth/domain/chain/output_basis.hpp index 44b1332f1..cb06fd90c 100644 --- a/include/kth/domain/chain/output_basis.hpp +++ b/include/kth/domain/chain/output_basis.hpp @@ -49,10 +49,11 @@ struct KD_API output_basis { // Operators. //------------------------------------------------------------------------- - // bool operator==(output_basis const& x) const; - // bool operator!=(output_basis const& x) const; friend - auto operator<=>(output_basis const&, output_basis const&) = default; + bool operator==(output_basis const&, output_basis const&) = default; + + friend + bool operator!=(output_basis const&, output_basis const&) = default; // Deserialization. //------------------------------------------------------------------------- diff --git a/include/kth/domain/chain/token_data.hpp b/include/kth/domain/chain/token_data.hpp index 474821a9c..982244315 100644 --- a/include/kth/domain/chain/token_data.hpp +++ b/include/kth/domain/chain/token_data.hpp @@ -105,16 +105,23 @@ enum class capability_t : uint8_t { struct fungible { amount_t amount; + + friend constexpr + bool operator==(fungible const&, fungible const&) = default; + friend constexpr - auto operator<=>(fungible const&, fungible const&) = default; + bool operator!=(fungible const&, fungible const&) = default; }; struct non_fungible { capability_t capability; commitment_t commitment; - friend - auto operator<=>(non_fungible const&, non_fungible const&) = default; + friend constexpr + bool operator==(non_fungible const&, non_fungible const&) = default; + + friend constexpr + bool operator!=(non_fungible const&, non_fungible const&) = default; }; using both_kinds = std::pair; @@ -124,7 +131,10 @@ struct token_data_t { std::variant data; friend constexpr - auto operator<=>(token_data_t const&, token_data_t const&) = default; + bool operator==(token_data_t const&, token_data_t const&) = default; + + friend constexpr + bool operator!=(token_data_t const&, token_data_t const&) = default; }; using token_data_opt = std::optional; diff --git a/src/chain/input_basis.cpp b/src/chain/input_basis.cpp index d2f39d3f4..f9f91d1ca 100644 --- a/src/chain/input_basis.cpp +++ b/src/chain/input_basis.cpp @@ -53,24 +53,6 @@ input_basis::input_basis(output_point&& previous_output, chain::script&& script, {} #endif - -// Operators. -//----------------------------------------------------------------------------- - -bool input_basis::operator==(input_basis const& x) const { - return (sequence_ == x.sequence_) - && (previous_output_ == x.previous_output_) - && (script_ == x.script_) -#if defined(KTH_SEGWIT_ENABLED) - && (witness_ == x.witness_) -#endif - ; -} - -bool input_basis::operator!=(input_basis const& x) const { - return !(*this == x); -} - void input_basis::reset() { previous_output_.reset(); script_.reset();