20#ifndef RIPPLE_PROTOCOL_STXATTESTATIONS_H_INCLUDED
21#define RIPPLE_PROTOCOL_STXATTESTATIONS_H_INCLUDED
23#include <xrpl/basics/Buffer.h>
24#include <xrpl/basics/Expected.h>
25#include <xrpl/protocol/AccountID.h>
26#include <xrpl/protocol/Issue.h>
27#include <xrpl/protocol/PublicKey.h>
28#include <xrpl/protocol/SField.h>
29#include <xrpl/protocol/STBase.h>
30#include <xrpl/protocol/STXChainBridge.h>
31#include <xrpl/protocol/SecretKey.h>
32#include <xrpl/protocol/TER.h>
34#include <boost/container/flat_set.hpp>
35#include <boost/container/vector.hpp>
42namespace Attestations {
70 bool wasLockingChainSend_);
87 [[nodiscard]]
static bool
90 [[nodiscard]]
static bool
114 bool wasLockingChainSend_,
126 bool wasLockingChainSend_,
194 bool wasLockingChainSend_,
207 bool wasLockingChainSend_,
297 bool wasLockingChainSend_,
305 bool wasLockingChainSend_,
315 match(MatchFields
const& rhs)
const;
355 bool wasLockingChainSend_,
378template <
class TAttestation>
410 typename AttCollection::const_iterator
413 typename AttCollection::const_iterator
416 typename AttCollection::iterator
419 typename AttCollection::iterator
440template <
class TAttestation>
441[[nodiscard]]
inline bool
449template <
class TAttestation>
453 return attestations_;
456template <
class TAttestation>
464template <
class TAttestation>
472template <
class TAttestation>
476 return attestations_.size();
479template <
class TAttestation>
483 return attestations_.empty();
Like std::vector<char> but better.
XChainAttestationsBase()=default
AttCollection attestations_
AttCollection::const_iterator end() const
static constexpr std::uint32_t maxAttestations
XChainAttestationsBase & operator=(XChainAttestationsBase const &rhs)=default
~XChainAttestationsBase()=default
XChainAttestationsBase(XChainAttestationsBase const &rhs)=default
void emplace_back(T &&att)
AttCollection::const_iterator begin() const
XChainAttestationsBase(AttCollection &&sigs)
AttCollection const & attestations() const
std::size_t erase_if(F &&f)
std::vector< TAttestation > AttCollection
STArray toSTArray() const
T emplace_back(T... args)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
constexpr bool operator==(base_uint< Bits, Tag > const &lhs, base_uint< Bits, Tag > const &rhs)
virtual ~AttestationBase()=default
AttestationBase & operator=(AttestationBase const &)=default
static bool equalHelper(AttestationBase const &lhs, AttestationBase const &rhs)
virtual std::vector< std::uint8_t > message(STXChainBridge const &bridge) const =0
AccountID attestationSignerAccount
void addHelper(STObject &o) const
static bool sameEventHelper(AttestationBase const &lhs, AttestationBase const &rhs)
bool verify(STXChainBridge const &bridge) const
AttestationBase(AttestationBase const &)=default
bool validAmounts() const
friend bool operator==(AttestationClaim const &lhs, AttestationClaim const &rhs)
std::optional< AccountID > dst
bool sameEvent(AttestationClaim const &rhs) const
STObject toSTObject() const
static std::vector< std::uint8_t > message(STXChainBridge const &bridge, AccountID const &sendingAccount, STAmount const &sendingAmount, AccountID const &rewardAccount, bool wasLockingChainSend, std::uint64_t claimID, std::optional< AccountID > const &dst)
bool validAmounts() const
static std::vector< std::uint8_t > message(STXChainBridge const &bridge, AccountID const &sendingAccount, STAmount const &sendingAmount, STAmount const &rewardAmount, AccountID const &rewardAccount, bool wasLockingChainSend, std::uint64_t createCount, AccountID const &dst)
std::uint64_t createCount
STObject toSTObject() const
friend bool operator==(AttestationCreateAccount const &lhs, AttestationCreateAccount const &rhs)
bool sameEvent(AttestationCreateAccount const &rhs) const
bool operator()(AttestationClaim const &lhs, AttestationClaim const &rhs) const
bool operator()(AttestationCreateAccount const &lhs, AttestationCreateAccount const &rhs) const
std::optional< AccountID > dst
MatchFields(STAmount const &a, bool b, std::optional< AccountID > const &d)
STObject toSTObject() const
Attestations::AttestationClaim TSignedAttestation
static SField const & ArrayFieldName
friend bool operator==(XChainClaimAttestation const &lhs, XChainClaimAttestation const &rhs)
std::optional< AccountID > dst
static SField const & ArrayFieldName
STObject toSTObject() const
friend bool operator==(XChainCreateAccountAttestation const &lhs, XChainCreateAccountAttestation const &rhs)