3#include <xrpl/basics/Buffer.h>
4#include <xrpl/protocol/AccountID.h>
5#include <xrpl/protocol/Issue.h>
6#include <xrpl/protocol/PublicKey.h>
7#include <xrpl/protocol/SField.h>
8#include <xrpl/protocol/STBase.h>
9#include <xrpl/protocol/STXChainBridge.h>
10#include <xrpl/protocol/SecretKey.h>
11#include <xrpl/protocol/TER.h>
13#include <boost/container/flat_set.hpp>
14#include <boost/container/vector.hpp>
68 [[nodiscard]]
static bool
71 [[nodiscard]]
static bool
289 match(MatchFields
const& rhs)
const;
350template <
class TAttestation>
382 [[nodiscard]] AttCollection::const_iterator
385 [[nodiscard]] AttCollection::const_iterator
388 AttCollection::iterator
391 AttCollection::iterator
412template <
class TAttestation>
413[[nodiscard]]
inline bool
421template <
class TAttestation>
428template <
class TAttestation>
436template <
class TAttestation>
444template <
class TAttestation>
451template <
class TAttestation>
Like std::vector<char> but better.
STArray toSTArray() const
AttCollection::iterator end()
XChainAttestationsBase(AttCollection &&sigs)
XChainAttestationsBase(STArray const &arr)
std::vector< TAttestation > AttCollection
AttCollection::const_iterator end() const
std::size_t eraseIf(F &&f)
AttCollection attestations_
XChainAttestationsBase(XChainAttestationsBase const &rhs)=default
static constexpr std::uint32_t kMaxAttestations
AttCollection const & attestations() const
AttCollection::const_iterator begin() const
void emplaceBack(T &&att)
XChainAttestationsBase & operator=(XChainAttestationsBase const &rhs)=default
XChainAttestationsBase(json::Value const &v)
~XChainAttestationsBase()=default
XChainAttestationsBase()=default
AttCollection::iterator begin()
XChainAttestationsBase< XChainClaimAttestation > TBase
XChainAttestationsBase< XChainCreateAccountAttestation > TBase
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
constexpr bool operator==(BaseUInt< Bits, Tag > const &lhs, BaseUInt< Bits, Tag > const &rhs)
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
AttestationBase & operator=(AttestationBase const &)=default
AccountID attestationSignerAccount
virtual ~AttestationBase()=default
AttestationBase(AccountID attestationSignerAccount, PublicKey const &publicKey, Buffer signature, AccountID const &sendingAccount, STAmount sendingAmount, AccountID const &rewardAccount, bool wasLockingChainSend)
bool verify(STXChainBridge const &bridge) const
static bool equalHelper(AttestationBase const &lhs, AttestationBase const &rhs)
static bool sameEventHelper(AttestationBase const &lhs, AttestationBase const &rhs)
virtual std::vector< std::uint8_t > message(STXChainBridge const &bridge) const =0
AttestationBase(AttestationBase const &)=default
void addHelper(STObject &o) const
bool sameEvent(AttestationClaim const &rhs) const
bool validAmounts() 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)
friend bool operator==(AttestationClaim const &lhs, AttestationClaim const &rhs)
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)
std::optional< AccountID > dst
bool validAmounts() const
STObject toSTObject() const
bool sameEvent(AttestationCreateAccount const &rhs) const
std::uint64_t createCount
friend bool operator==(AttestationCreateAccount const &lhs, AttestationCreateAccount const &rhs)
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)
AttestationCreateAccount(STObject const &o)
bool operator()(AttestationClaim const &lhs, AttestationClaim const &rhs) const
bool operator()(AttestationCreateAccount const &lhs, AttestationCreateAccount const &rhs) const
MatchFields(STAmount a, bool b, std::optional< AccountID > const &d)
MatchFields(TSignedAttestation const &att)
std::optional< AccountID > dst
std::optional< AccountID > dst
Attestations::AttestationClaim TSignedAttestation
friend bool operator==(XChainClaimAttestation const &lhs, XChainClaimAttestation const &rhs)
XChainClaimAttestation(AccountID const &keyAccount, PublicKey const &publicKey, STAmount const &amount, AccountID const &rewardAccount, bool wasLockingChainSend, std::optional< AccountID > const &dst)
STObject toSTObject() const
static SField const & arrayFieldName
AttestationMatch match(MatchFields const &rhs) const
MatchFields(TSignedAttestation const &att)
Attestations::AttestationCreateAccount TSignedAttestation
STObject toSTObject() const
XChainCreateAccountAttestation(AccountID const &keyAccount, PublicKey const &publicKey, STAmount const &amount, STAmount const &rewardAmount, AccountID const &rewardAccount, bool wasLockingChainSend, AccountID const &dst)
friend bool operator==(XChainCreateAccountAttestation const &lhs, XChainCreateAccountAttestation const &rhs)
AttestationMatch match(MatchFields const &rhs) const
static SField const & arrayFieldName