rippled
|
Context needed to build Strand Steps and for error checking. More...
Public Member Functions | |
StrandContext (ReadView const &view_, std::vector< std::unique_ptr< Step >> const &strand_, AccountID const &strandSrc_, AccountID const &strandDst_, Issue const &strandDeliver_, std::optional< Quality > const &limitQuality_, bool isLast_, bool ownerPaysTransferFee_, bool offerCrossing_, bool isDefaultPath_, std::array< boost::container::flat_set< Issue >, 2 > &seenDirectIssues_, boost::container::flat_set< Issue > &seenBookOuts_, beast::Journal j_) | |
StrandContext constructor. More... | |
Public Attributes | |
ReadView const & | view |
Current ReadView. More... | |
const AccountID | strandSrc |
Strand source account. More... | |
const AccountID | strandDst |
Strand destination account. More... | |
const Issue | strandDeliver |
Issue strand delivers. More... | |
const std::optional< Quality > | limitQuality |
Worst accepted quality. More... | |
const bool | isFirst |
true if Step is first in Strand More... | |
const bool | isLast = false |
true if Step is last in Strand More... | |
const bool | ownerPaysTransferFee |
true if owner, not sender, pays fee More... | |
const bool | offerCrossing |
true if offer crossing, not payment More... | |
const bool | isDefaultPath |
true if Strand is default path More... | |
const size_t | strandSize |
Length of Strand. More... | |
Step const *const | prevStep = nullptr |
The previous step in the strand. More... | |
std::array< boost::container::flat_set< Issue >, 2 > & | seenDirectIssues |
A strand may not include the same account node more than once in the same currency. More... | |
boost::container::flat_set< Issue > & | seenBookOuts |
A strand may not include an offer that output the same issue more than once. More... | |
const beast::Journal | j |
Context needed to build Strand Steps and for error checking.
ripple::StrandContext::StrandContext | ( | ReadView const & | view_, |
std::vector< std::unique_ptr< Step >> const & | strand_, | ||
AccountID const & | strandSrc_, | ||
AccountID const & | strandDst_, | ||
Issue const & | strandDeliver_, | ||
std::optional< Quality > const & | limitQuality_, | ||
bool | isLast_, | ||
bool | ownerPaysTransferFee_, | ||
bool | offerCrossing_, | ||
bool | isDefaultPath_, | ||
std::array< boost::container::flat_set< Issue >, 2 > & | seenDirectIssues_, | ||
boost::container::flat_set< Issue > & | seenBookOuts_, | ||
beast::Journal | j_ | ||
) |
StrandContext constructor.
Journal for logging
seenDirectIssues_ | For detecting currency loops |
seenBookOuts_ | For detecting book loops |
Definition at line 575 of file PaySteps.cpp.
ReadView const& ripple::StrandContext::view |
const AccountID ripple::StrandContext::strandSrc |
const AccountID ripple::StrandContext::strandDst |
const Issue ripple::StrandContext::strandDeliver |
const std::optional<Quality> ripple::StrandContext::limitQuality |
const bool ripple::StrandContext::isFirst |
const bool ripple::StrandContext::isLast = false |
const bool ripple::StrandContext::ownerPaysTransferFee |
const bool ripple::StrandContext::offerCrossing |
const bool ripple::StrandContext::isDefaultPath |
const size_t ripple::StrandContext::strandSize |
Step const* const ripple::StrandContext::prevStep = nullptr |
std::array<boost::container::flat_set<Issue>, 2>& ripple::StrandContext::seenDirectIssues |
A strand may not include the same account node more than once in the same currency.
In a direct step, an account will show up at most twice: once as a src and once as a dst (hence the two element array). The strandSrc and strandDst will only show up once each.
boost::container::flat_set<Issue>& ripple::StrandContext::seenBookOuts |
const beast::Journal ripple::StrandContext::j |