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>
44namespace Attestations {
72 bool wasLockingChainSend_);
89 [[nodiscard]]
static bool
92 [[nodiscard]]
static bool
116 bool wasLockingChainSend_,
128 bool wasLockingChainSend_,
196 bool wasLockingChainSend_,
209 bool wasLockingChainSend_,
299 bool wasLockingChainSend_,
307 bool wasLockingChainSend_,
317 match(MatchFields
const& rhs)
const;
357 bool wasLockingChainSend_,
380template <
class TAttestation>
412 typename AttCollection::const_iterator
415 typename AttCollection::const_iterator
418 typename AttCollection::iterator
421 typename AttCollection::iterator
442template <
class TAttestation>
443[[nodiscard]]
inline bool
451template <
class TAttestation>
455 return attestations_;
458template <
class TAttestation>
463 attestations_.emplace_back(std::forward<T>(att));
466template <
class TAttestation>
471 return std::erase_if(attestations_, std::forward<F>(f));
474template <
class TAttestation>
478 return attestations_.size();
481template <
class TAttestation>
485 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
Json::Value bridge(Account const &lockingChainDoor, Issue const &lockingChainIssue, Account const &issuingChainDoor, Issue const &issuingChainIssue)
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)