1#include <xrpl/ledger/View.h>
2#include <xrpl/protocol/Feature.h>
3#include <xrpl/tx/paths/Flow.h>
4#include <xrpl/tx/paths/RippleCalc.h>
5#include <xrpl/tx/paths/detail/FlowDebugInfo.h>
38 Input const*
const pInputs)
50 if (pInputs && pInputs->
limitQuality && saMaxAmountReq > beast::zero)
51 return Quality{Amounts(saMaxAmountReq, saDstAmountReq)};
56 if (saMaxAmountReq >= beast::zero ||
58 saMaxAmountReq.
getIssuer() != uSrcAccountID)
60 return saMaxAmountReq;
85 JLOG(j.error()) <<
"Exception from flow: " << e.
what();
94 j.debug() <<
"RippleCalc Result> "
97 <<
", dstAmtReq: " << saDstAmountReq <<
", sendMax: " << saMaxAmountReq;
A wrapper which makes credits unavailable to balances.
void apply(RawView &to)
Apply changes to base view.
Currency const & getCurrency() const
AccountID const & getIssuer() const
Service registry for dependency injection.
virtual beast::Journal getJournal(std::string const &name)=0
static Output rippleCalculate(PaymentSandbox &view, STAmount const &saMaxAmountReq, STAmount const &saDstAmountReq, AccountID const &uDstAccountID, AccountID const &uSrcAccountID, STPathSet const &spsPaths, std::optional< uint256 > const &domainID, ServiceRegistry ®istry, Input const *const pInputs=nullptr)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
StrandResult< TInAmt, TOutAmt > flow(PaymentSandbox const &baseView, Strand const &strand, std::optional< TInAmt > const &maxIn, TOutAmt const &out, beast::Journal j)
Request out amount from a strand.
void setResult(TER const value)