1#ifndef XRPL_PROTOCOL_STXATTESTATIONS_H_INCLUDED
2#define XRPL_PROTOCOL_STXATTESTATIONS_H_INCLUDED
4#include <xrpl/basics/Buffer.h>
5#include <xrpl/basics/Expected.h>
6#include <xrpl/protocol/AccountID.h>
7#include <xrpl/protocol/Issue.h>
8#include <xrpl/protocol/PublicKey.h>
9#include <xrpl/protocol/SField.h>
10#include <xrpl/protocol/STBase.h>
11#include <xrpl/protocol/STXChainBridge.h>
12#include <xrpl/protocol/SecretKey.h>
13#include <xrpl/protocol/TER.h>
15#include <boost/container/flat_set.hpp>
16#include <boost/container/vector.hpp>
23namespace Attestations {
51 bool wasLockingChainSend_);
68 [[nodiscard]]
static bool
71 [[nodiscard]]
static bool
95 bool wasLockingChainSend_,
107 bool wasLockingChainSend_,
175 bool wasLockingChainSend_,
188 bool wasLockingChainSend_,
278 bool wasLockingChainSend_,
286 bool wasLockingChainSend_,
296 match(MatchFields
const& rhs)
const;
336 bool wasLockingChainSend_,
359template <
class TAttestation>
391 typename AttCollection::const_iterator
394 typename AttCollection::const_iterator
397 typename AttCollection::iterator
400 typename AttCollection::iterator
421template <
class TAttestation>
422[[nodiscard]]
inline bool
430template <
class TAttestation>
434 return attestations_;
437template <
class TAttestation>
445template <
class TAttestation>
453template <
class TAttestation>
457 return attestations_.size();
460template <
class TAttestation>
464 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)