|
xrpld
|
A type that represents either a sequence value or a ticket value. More...
#include <SeqProxy.h>

Public Types | |
| enum class | Type : std::uint8_t { Seq = 0 , Ticket } |
Public Member Functions | |
| constexpr | SeqProxy (Type t, std::uint32_t v) |
| SeqProxy (SeqProxy const &other)=default | |
| SeqProxy & | operator= (SeqProxy const &other)=default |
| constexpr std::uint32_t | value () const |
| constexpr bool | isSeq () const |
| constexpr bool | isTicket () const |
| SeqProxy & | advanceBy (std::uint32_t amount) |
Static Public Member Functions | |
| static constexpr SeqProxy | rawSequence (std::uint32_t v) |
| Factory function to return a sequence-based SeqProxy. | |
| static constexpr SeqProxy | rawTicket (std::uint32_t v) |
| Factory function to return a ticket-based SeqProxy. | |
Private Attributes | |
| std::uint32_t | value_ |
| Type | type_ |
Friends | |
| constexpr bool | operator== (SeqProxy lhs, SeqProxy rhs) |
| constexpr bool | operator< (SeqProxy lhs, SeqProxy rhs) |
| constexpr bool | operator> (SeqProxy lhs, SeqProxy rhs) |
| constexpr bool | operator>= (SeqProxy lhs, SeqProxy rhs) |
| constexpr bool | operator<= (SeqProxy lhs, SeqProxy rhs) |
| std::ostream & | operator<< (std::ostream &os, SeqProxy seqProx) |
A type that represents either a sequence value or a ticket value.
We use the value() of a SeqProxy in places where a sequence was used before. An example of this is the sequence of an Offer stored in the ledger. We do the same thing with the in-ledger identifier of a Check, Payment Channel, and Escrow.
Why is this safe? If we use the SeqProxy::value(), how do we know that each ledger entry will be unique?
There are two components that make this safe:
When a "TicketCreate" transaction creates a batch of tickets it advances the account root sequence to one past the largest created ticket.
Therefore all tickets in a batch other than the first may never have the same value as a sequence on that same account. And since a ticket may only be used once there will never be any duplicates within this account.
Definition at line 36 of file SeqProxy.h.
|
strong |
| Enumerator | |
|---|---|
| Seq | |
| Ticket | |
Definition at line 39 of file SeqProxy.h.
|
explicitconstexpr |
Definition at line 46 of file SeqProxy.h.
|
default |
|
staticconstexpr |
Factory function to return a sequence-based SeqProxy.
Outside of tests, this function should only be used for "secondary" transaction sequences, e.g. sfOfferSequence, or sequence fields in an existing ledger object. DO NOT use this for the "primary" sequence of a transaction, sfSequence.
Definition at line 62 of file SeqProxy.h.
|
staticconstexpr |
Factory function to return a ticket-based SeqProxy.
Outside of tests, this function should only be used for "secondary" transaction sequences, e.g. sfOfferSequence, or sequence fields in an existing ledger object. DO NOT use this for the "primary" ticket sequence of a transaction, sfTicketSequence.
Definition at line 74 of file SeqProxy.h.
|
nodiscardconstexpr |
Definition at line 80 of file SeqProxy.h.
|
nodiscardconstexpr |
Definition at line 86 of file SeqProxy.h.
|
nodiscardconstexpr |
Definition at line 92 of file SeqProxy.h.
| SeqProxy & xrpl::SeqProxy::advanceBy | ( | std::uint32_t | amount | ) |
Definition at line 102 of file SeqProxy.h.
Definition at line 119 of file SeqProxy.h.
Definition at line 126 of file SeqProxy.h.
Definition at line 135 of file SeqProxy.h.
Definition at line 141 of file SeqProxy.h.
Definition at line 146 of file SeqProxy.h.
|
friend |
Definition at line 152 of file SeqProxy.h.
|
private |
Definition at line 42 of file SeqProxy.h.
|
private |
Definition at line 43 of file SeqProxy.h.