20 #ifndef RIPPLE_PROTOCOL_STXATTESTATIONS_H_INCLUDED
21 #define RIPPLE_PROTOCOL_STXATTESTATIONS_H_INCLUDED
23 #include <ripple/basics/Buffer.h>
24 #include <ripple/basics/Expected.h>
25 #include <ripple/protocol/AccountID.h>
26 #include <ripple/protocol/Issue.h>
27 #include <ripple/protocol/PublicKey.h>
28 #include <ripple/protocol/SField.h>
29 #include <ripple/protocol/STBase.h>
30 #include <ripple/protocol/STXChainBridge.h>
31 #include <ripple/protocol/SecretKey.h>
32 #include <ripple/protocol/TER.h>
34 #include <boost/container/flat_set.hpp>
35 #include <boost/container/vector.hpp>
44 namespace Attestations {
72 bool wasLockingChainSend_);
89 [[nodiscard]]
static bool
92 [[nodiscard]]
static bool
116 bool wasLockingChainSend_,
128 bool wasLockingChainSend_,
196 bool wasLockingChainSend_,
209 bool wasLockingChainSend_,
296 PublicKey
const& publicKey_,
297 STAmount
const& amount_,
299 bool wasLockingChainSend_,
303 STAccount
const& keyAccount_,
304 PublicKey
const& publicKey_,
305 STAmount
const& amount_,
306 STAccount
const& rewardAccount_,
307 bool wasLockingChainSend_,
317 match(MatchFields
const& rhs)
const;
319 [[nodiscard]] STObject
357 bool wasLockingChainSend_,
380 template <
class TAttestation>
412 typename AttCollection::const_iterator
415 typename AttCollection::const_iterator
418 typename AttCollection::iterator
421 typename AttCollection::iterator
442 template <
class TAttestation>
443 [[nodiscard]]
inline bool
451 template <
class TAttestation>
455 return attestations_;
458 template <
class TAttestation>
463 attestations_.emplace_back(std::forward<T>(att));
466 template <
class TAttestation>
471 return std::erase_if(attestations_, std::forward<F>(f));
474 template <
class TAttestation>
478 return attestations_.size();
481 template <
class TAttestation>
485 return attestations_.empty();
504 #endif // STXCHAINATTESTATIONS_H_
static constexpr std::uint32_t maxAttestations
AttestationBase(AccountID attestationSignerAccount_, PublicKey const &publicKey_, Buffer signature_, AccountID const &sendingAccount_, STAmount const &sendingAmount_, AccountID const &rewardAccount_, bool wasLockingChainSend_)
friend bool operator==(AttestationCreateAccount const &lhs, AttestationCreateAccount const &rhs)
bool operator()(AttestationCreateAccount const &lhs, AttestationCreateAccount const &rhs) const
XChainCreateAccountAttestation(AccountID const &keyAccount_, PublicKey const &publicKey_, STAmount const &amount_, STAmount const &rewardAmount_, AccountID const &rewardAccount_, bool wasLockingChainSend_, AccountID const &dst_)
AccountID attestationSignerAccount
AttestationBase & operator=(AttestationBase const &)=default
std::vector< TAttestation > AttCollection
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)
MatchFields(TSignedAttestation const &att)
AttestationMatch match(MatchFields const &rhs) const
void addHelper(STObject &o) const
AttestationClaim(AccountID attestationSignerAccount_, PublicKey const &publicKey_, Buffer signature_, AccountID const &sendingAccount_, STAmount const &sendingAmount_, AccountID const &rewardAccount_, bool wasLockingChainSend_, std::uint64_t claimID_, std::optional< AccountID > const &dst_)
static SField const & ArrayFieldName
bool validAmounts() const
AttestationCreateAccount(STObject const &o)
Like std::vector<char> but better.
STArray toSTArray() const
std::optional< AccountID > dst
static bool sameEventHelper(AttestationBase const &lhs, AttestationBase const &rhs)
bool operator==(Manifest const &lhs, Manifest const &rhs)
AttCollection::const_iterator begin() const
bool sameEvent(AttestationClaim const &rhs) const
MatchFields(STAmount const &a, bool b, std::optional< AccountID > const &d)
bool sameEvent(AttestationCreateAccount const &rhs) const
AttCollection attestations_
~XChainAttestationsBase()=default
Attestations::AttestationClaim TSignedAttestation
XChainAttestationsBase & operator=(XChainAttestationsBase const &rhs)=default
virtual ~AttestationBase()=default
virtual std::vector< std::uint8_t > message(STXChainBridge const &bridge) const =0
XChainAttestationsBase()=default
std::size_t erase_if(F &&f)
void emplace_back(T &&att)
friend bool operator==(XChainClaimAttestation const &lhs, XChainClaimAttestation const &rhs)
std::optional< AccountID > dst
std::optional< AccountID > dst
static SField const & ArrayFieldName
std::uint64_t createCount
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
bool validAmounts() const
AttestationMatch match(MatchFields const &rhs) const
static bool equalHelper(AttestationBase const &lhs, AttestationBase const &rhs)
MatchFields(TSignedAttestation const &att)
bool verify(STXChainBridge const &bridge) const
bool operator()(AttestationClaim const &lhs, AttestationClaim const &rhs) 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)
XChainClaimAttestation(AccountID const &keyAccount_, PublicKey const &publicKey_, STAmount const &amount_, AccountID const &rewardAccount_, bool wasLockingChainSend_, std::optional< AccountID > const &dst)
friend bool operator==(XChainCreateAccountAttestation const &lhs, XChainCreateAccountAttestation const &rhs)
STObject toSTObject() const
STObject toSTObject() const
AttCollection::const_iterator end() const
friend bool operator==(AttestationClaim const &lhs, AttestationClaim const &rhs)
AttCollection const & attestations() const
base_uint< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
STObject toSTObject() const
STObject toSTObject() const