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>;
template <
typename U,
typename Value = U::value_type,
typename Unit = U::unit_type>
typename Value = typename U::value_type,
typename Unit = typename U::unit_type>
concept IsArithmeticValueUnit =
std::is_same_v<U, unit::ValueUnit<Unit, Value>> &&
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>;
template <typename U>
concept IsArithmetic =

View File

@@ -594,8 +594,7 @@ safe_cast(Src s) noexcept
template <class Dest, class Src>
constexpr std::enable_if_t<
std::is_integral_v<typename Dest::value_type> &&
std::is_integral_v<typename Src>,
std::is_integral_v<typename Dest::value_type> && std::is_integral_v<Src>,
Dest>
safe_cast(Src s) noexcept
{
@@ -617,8 +616,7 @@ unsafe_cast(Src s) noexcept
template <class Dest, class Src>
constexpr std::enable_if_t<
std::is_integral_v<typename Dest::value_type> &&
std::is_integral_v<typename Src>,
std::is_integral_v<typename Dest::value_type> && std::is_integral_v<Src>,
Dest>
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())
: vault.asset(0));
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};
mptt.create(
{.flags = tfMPTCanClawback | tfMPTCanTransfer | tfMPTCanLock});
PrettyAsset const mptAsset = mptt.issuanceID();
PrettyAsset const mptAsset = mptt["MPT"];
mptt.authorize({.account = alice});
mptt.authorize({.account = evan});
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, sig(sfCounterpartySignature, bob), ter(temDISABLED));
env(setTx);
#if 0
auto const loanKeylet =
keylet::loan(alice.id(), keylet.key, env.seq(alice));
#if 0
// Other Loan transactions are disabled, too.
// 2. LoanDelete
env(delete(alice, loanKeylet.key),

View File

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

View File

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

View File

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

View File

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