|
xrpld
|
Context needed to build Strand Steps and for error checking. More...
#include <Steps.h>

Public Member Functions | |
| StrandContext (ReadView const &view, std::vector< std::unique_ptr< Step > > const &strand, AccountID const &strandSrc, AccountID const &strandDst, Asset const &strandDeliver, std::optional< Quality > const &limitQuality, bool isLast, bool ownerPaysTransferFee, OfferCrossing offerCrossing, bool isDefaultPath, std::array< boost::container::flat_set< Asset >, 2 > &seenDirectAssets, boost::container::flat_set< Asset > &seenBookOuts, AMMContext &ammContext, std::optional< uint256 > const &domainID, beast::Journal j) | |
| StrandContext constructor. | |
Public Attributes | |
| ReadView const & | view |
| Current ReadView. | |
| AccountID const | strandSrc |
| Strand source account. | |
| AccountID const | strandDst |
| Strand destination account. | |
| Asset const | strandDeliver |
| Asset strand delivers. | |
| std::optional< Quality > const | limitQuality |
| Worst accepted quality. | |
| bool const | isFirst |
| true if Step is first in Strand | |
| bool const | isLast = false |
| true if Step is last in Strand | |
| bool const | ownerPaysTransferFee |
| true if owner, not sender, pays fee | |
| OfferCrossing const | offerCrossing |
| Yes/Sell if offer crossing, not payment. | |
| bool const | isDefaultPath |
| true if Strand is default path | |
| size_t const | strandSize |
| Length of Strand. | |
| Step const *const | prevStep = nullptr |
| The previous step in the strand. | |
| std::array< boost::container::flat_set< Asset >, 2 > & | seenDirectAssets |
| A strand may not include the same account node more than once in the same currency. | |
| boost::container::flat_set< Asset > & | seenBookOuts |
| A strand may not include an offer that output the same issue more than once. | |
| AMMContext & | ammContext |
| std::optional< uint256 > | domainID |
| beast::Journal const | j |
Context needed to build Strand Steps and for error checking.
| xrpl::StrandContext::StrandContext | ( | ReadView const & | view, |
| std::vector< std::unique_ptr< Step > > const & | strand, | ||
| AccountID const & | strandSrc, | ||
| AccountID const & | strandDst, | ||
| Asset const & | strandDeliver, | ||
| std::optional< Quality > const & | limitQuality, | ||
| bool | isLast, | ||
| bool | ownerPaysTransferFee, | ||
| OfferCrossing | offerCrossing, | ||
| bool | isDefaultPath, | ||
| std::array< boost::container::flat_set< Asset >, 2 > & | seenDirectAssets, | ||
| boost::container::flat_set< Asset > & | seenBookOuts, | ||
| AMMContext & | ammContext, | ||
| std::optional< uint256 > const & | domainID, | ||
| beast::Journal | j ) |
StrandContext constructor.
Journal for logging
| seenDirectAssets | For detecting currency loops |
| seenBookOuts | For detecting book loops |
Definition at line 686 of file PaySteps.cpp.
| AccountID const xrpl::StrandContext::strandSrc |
| AccountID const xrpl::StrandContext::strandDst |
| Asset const xrpl::StrandContext::strandDeliver |
| std::optional<Quality> const xrpl::StrandContext::limitQuality |
| bool const xrpl::StrandContext::isFirst |
| bool const xrpl::StrandContext::isLast = false |
| bool const xrpl::StrandContext::ownerPaysTransferFee |
| OfferCrossing const xrpl::StrandContext::offerCrossing |
| bool const xrpl::StrandContext::isDefaultPath |
| size_t const xrpl::StrandContext::strandSize |
| Step const* const xrpl::StrandContext::prevStep = nullptr |
| std::array<boost::container::flat_set<Asset>, 2>& xrpl::StrandContext::seenDirectAssets |
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<Asset>& xrpl::StrandContext::seenBookOuts |
| AMMContext& xrpl::StrandContext::ammContext |
| std::optional<uint256> xrpl::StrandContext::domainID |
| beast::Journal const xrpl::StrandContext::j |