aboutsummaryrefslogtreecommitdiff
path: root/src/pubkey.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pubkey.h')
-rw-r--r--src/pubkey.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/pubkey.h b/src/pubkey.h
index 1af1187006..7d09faa9c1 100644
--- a/src/pubkey.h
+++ b/src/pubkey.h
@@ -222,6 +222,12 @@ private:
uint256 m_keydata;
public:
+ /** Construct an empty x-only pubkey. */
+ XOnlyPubKey() = default;
+
+ XOnlyPubKey(const XOnlyPubKey&) = default;
+ XOnlyPubKey& operator=(const XOnlyPubKey&) = default;
+
/** Construct an x-only pubkey from exactly 32 bytes. */
explicit XOnlyPubKey(Span<const unsigned char> bytes);
@@ -234,7 +240,14 @@ public:
const unsigned char& operator[](int pos) const { return *(m_keydata.begin() + pos); }
const unsigned char* data() const { return m_keydata.begin(); }
- size_t size() const { return m_keydata.size(); }
+ static constexpr size_t size() { return decltype(m_keydata)::size(); }
+ const unsigned char* begin() const { return m_keydata.begin(); }
+ const unsigned char* end() const { return m_keydata.end(); }
+ unsigned char* begin() { return m_keydata.begin(); }
+ unsigned char* end() { return m_keydata.end(); }
+ bool operator==(const XOnlyPubKey& other) const { return m_keydata == other.m_keydata; }
+ bool operator!=(const XOnlyPubKey& other) const { return m_keydata != other.m_keydata; }
+ bool operator<(const XOnlyPubKey& other) const { return m_keydata < other.m_keydata; }
};
struct CExtPubKey {