Fix build errors

This commit is contained in:
Ed Hennis
2025-04-29 11:03:43 -04:00
parent 70155a5ac2
commit 01538ef108
8 changed files with 44 additions and 15 deletions

View File

@@ -522,12 +522,12 @@ concept IsArithmeticNumber = std::is_arithmetic_v<U> ||
std::is_same_v<U, Number> || std::is_same_v<U, STAmount>; std::is_same_v<U, Number> || std::is_same_v<U, STAmount>;
template < template <
typename U, typename U,
typename Value = U::value_type, typename Value = typename U::value_type,
typename Unit = U::unit_type> typename Unit = typename U::unit_type>
concept IsArithmeticValueUnit = concept IsArithmeticValueUnit =
std::is_same_v<U, unit::ValueUnit<Unit, Value>> && std::is_same_v<U, unit::ValueUnit<Unit, Value>> &&
IsArithmeticNumber<Value> && std::is_class_v<Unit>; IsArithmeticNumber<Value> && std::is_class_v<Unit>;
template <typename U, typename Value = U::value_type> template <typename U, typename Value = typename U::value_type>
concept IsArithmeticST = !IsArithmeticValueUnit<U> && IsArithmeticNumber<Value>; concept IsArithmeticST = !IsArithmeticValueUnit<U> && IsArithmeticNumber<Value>;
template <typename U> template <typename U>
concept IsArithmetic = concept IsArithmetic =

View File

@@ -594,8 +594,7 @@ safe_cast(Src s) noexcept
template <class Dest, class Src> template <class Dest, class Src>
constexpr std::enable_if_t< constexpr std::enable_if_t<
std::is_integral_v<typename Dest::value_type> && std::is_integral_v<typename Dest::value_type> && std::is_integral_v<Src>,
std::is_integral_v<typename Src>,
Dest> Dest>
safe_cast(Src s) noexcept safe_cast(Src s) noexcept
{ {
@@ -617,8 +616,7 @@ unsafe_cast(Src s) noexcept
template <class Dest, class Src> template <class Dest, class Src>
constexpr std::enable_if_t< constexpr std::enable_if_t<
std::is_integral_v<typename Dest::value_type> && std::is_integral_v<typename Dest::value_type> && std::is_integral_v<Src>,
std::is_integral_v<typename Src>,
Dest> Dest>
unsafe_cast(Src s) noexcept unsafe_cast(Src s) noexcept
{ {

View File

@@ -329,7 +329,7 @@ class LoanBroker_test : public beast::unit_test::suite
? STAmount(env.current()->fees().base.value()) ? STAmount(env.current()->fees().base.value())
: vault.asset(0)); : vault.asset(0));
env.require(balance(alice, expectedBalance)); env.require(balance(alice, expectedBalance));
env.require(balance(pseudoAccount, None(vault.asset.raw()))); env.require(balance(pseudoAccount, vault.asset(none)));
} }
} }
@@ -367,7 +367,7 @@ class LoanBroker_test : public beast::unit_test::suite
MPTTester mptt{env, issuer, mptInitNoFund}; MPTTester mptt{env, issuer, mptInitNoFund};
mptt.create( mptt.create(
{.flags = tfMPTCanClawback | tfMPTCanTransfer | tfMPTCanLock}); {.flags = tfMPTCanClawback | tfMPTCanTransfer | tfMPTCanLock});
PrettyAsset const mptAsset = mptt.issuanceID(); PrettyAsset const mptAsset = mptt["MPT"];
mptt.authorize({.account = alice}); mptt.authorize({.account = alice});
mptt.authorize({.account = evan}); mptt.authorize({.account = evan});
env(pay(issuer, alice, mptAsset(100'000))); env(pay(issuer, alice, mptAsset(100'000)));

View File

@@ -80,9 +80,9 @@ class Loan_test : public beast::unit_test::suite
setTx = env.jt( setTx = env.jt(
setTx, sig(sfCounterpartySignature, bob), ter(temDISABLED)); setTx, sig(sfCounterpartySignature, bob), ter(temDISABLED));
env(setTx); env(setTx);
#if 0
auto const loanKeylet = auto const loanKeylet =
keylet::loan(alice.id(), keylet.key, env.seq(alice)); keylet::loan(alice.id(), keylet.key, env.seq(alice));
#if 0
// Other Loan transactions are disabled, too. // Other Loan transactions are disabled, too.
// 2. LoanDelete // 2. LoanDelete
env(delete(alice, loanKeylet.key), env(delete(alice, loanKeylet.key),

View File

@@ -205,7 +205,7 @@ protected:
using base::value_; using base::value_;
public: public:
using base::JTxField; using JTxField<SF, SV, OV>::JTxField;
OV OV
value() const override value() const override

View File

@@ -225,6 +225,12 @@ public:
STAmount amount{asset_, v * scale_, 0, negative}; STAmount amount{asset_, v * scale_, 0, negative};
return {amount, ""}; return {amount, ""};
} }
None
operator()(none_t) const
{
return {asset_};
}
}; };
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -456,14 +462,32 @@ public:
return issuanceID; return issuanceID;
} }
/** Implicit conversion to MPTIssue. /** Explicit conversion to MPTIssue or asset.
*/
ripple::MPTIssue
mptIssue() const
{
return MPTIssue{issuanceID};
}
Asset
asset() const
{
return mptIssue();
}
/** Implicit conversion to MPTIssue or asset.
This allows passing an MPT This allows passing an MPT
value where an MPTIssue is expected. value where an MPTIssue is expected.
*/ */
operator ripple::MPTIssue() const operator ripple::MPTIssue() const
{ {
return MPTIssue{issuanceID}; return mptIssue();
}
operator PrettyAsset() const
{
return asset();
} }
template <class T> template <class T>
@@ -479,6 +503,13 @@ public:
PrettyAmount PrettyAmount
operator()(detail::epsilon_multiple) const; operator()(detail::epsilon_multiple) const;
/** Returns None-of-Issue */
None
operator()(none_t) const
{
return {mptIssue()};
}
friend BookSpec friend BookSpec
operator~(MPT const& mpt) operator~(MPT const& mpt)
{ {

View File

@@ -35,9 +35,9 @@ class sig
{ {
private: private:
bool manual_ = true; bool manual_ = true;
std::optional<Account> account_;
/// subField only supported with explicit account /// subField only supported with explicit account
SField const* const subField = nullptr; SField const* const subField = nullptr;
std::optional<Account> account_;
static constexpr SField* const topLevel = nullptr; static constexpr SField* const topLevel = nullptr;
public: public:

View File

@@ -241,7 +241,7 @@ LoanSet::doApply()
auto const brokerSle = view.peek(keylet::loanbroker(brokerID)); auto const brokerSle = view.peek(keylet::loanbroker(brokerID));
if (!brokerSle) if (!brokerSle)
tefBAD_LEDGER; // LCOV_EXCL_LINE return tefBAD_LEDGER; // LCOV_EXCL_LINE
auto const brokerOwner = brokerSle->at(sfOwner); auto const brokerOwner = brokerSle->at(sfOwner);
auto const brokerOwnerSle = view.peek(keylet::account(brokerOwner)); auto const brokerOwnerSle = view.peek(keylet::account(brokerOwner));