mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Refactoring 1
This commit is contained in:
committed by
Bronek Kozicki
parent
e514de76ed
commit
4e50087612
@@ -199,6 +199,26 @@ Env::balance(Account const& account, Issue const& issue) const
|
||||
return {amount, lookup(issue.account).name()};
|
||||
}
|
||||
|
||||
PrettyAmount
|
||||
Env::balance(Account const& account, MPTIssue const& mptIssue) const
|
||||
{
|
||||
auto const sle = le(keylet::mptoken(mptIssue.getMptID(), account));
|
||||
if (!sle)
|
||||
{
|
||||
return {STAmount(mptIssue, 0), account.name()};
|
||||
}
|
||||
STAmount const amount{mptIssue, sle->getFieldU64(sfMPTAmount)};
|
||||
return {amount, lookup(mptIssue.getIssuer()).name()};
|
||||
}
|
||||
|
||||
PrettyAmount
|
||||
Env::balance(Account const& account, Asset const& asset) const
|
||||
{
|
||||
return std::visit(
|
||||
[&](auto const& issue) { return balance(account, issue); },
|
||||
asset.value());
|
||||
}
|
||||
|
||||
std::uint32_t
|
||||
Env::ownerCount(Account const& account) const
|
||||
{
|
||||
|
||||
@@ -136,10 +136,30 @@ expectLine(
|
||||
return false;
|
||||
}
|
||||
|
||||
[[nodiscard]] bool
|
||||
expectLine(Env& env, AccountID const& account, None const&, Issue const& issue)
|
||||
{
|
||||
return !env.le(keylet::line(account, issue));
|
||||
}
|
||||
|
||||
[[nodiscard]] bool
|
||||
expectLine(
|
||||
Env& env,
|
||||
AccountID const& account,
|
||||
None const&,
|
||||
MPTIssue const& mptIssue)
|
||||
{
|
||||
return !env.le(keylet::mptoken(mptIssue.getMptID(), account));
|
||||
}
|
||||
|
||||
[[nodiscard]] bool
|
||||
expectLine(Env& env, AccountID const& account, None const& value)
|
||||
{
|
||||
return !env.le(keylet::line(account, value.issue));
|
||||
return std::visit(
|
||||
[&](auto const& issue) {
|
||||
return expectLine(env, account, value, issue);
|
||||
},
|
||||
value.asset.value());
|
||||
}
|
||||
|
||||
[[nodiscard]] bool
|
||||
|
||||
@@ -24,38 +24,73 @@ namespace test {
|
||||
namespace jtx {
|
||||
|
||||
void
|
||||
balance::operator()(Env& env) const
|
||||
doBalance(
|
||||
Env& env,
|
||||
AccountID const& account,
|
||||
bool none,
|
||||
STAmount const& value,
|
||||
Issue const& issue)
|
||||
{
|
||||
if (isXRP(value_.issue()))
|
||||
if (isXRP(issue))
|
||||
{
|
||||
auto const sle = env.le(account_);
|
||||
if (none_)
|
||||
auto const sle = env.le(keylet::account(account));
|
||||
if (none)
|
||||
{
|
||||
env.test.expect(!sle);
|
||||
}
|
||||
else if (env.test.expect(sle))
|
||||
{
|
||||
env.test.expect(sle->getFieldAmount(sfBalance) == value_);
|
||||
env.test.expect(sle->getFieldAmount(sfBalance) == value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
auto const sle = env.le(keylet::line(account_.id(), value_.issue()));
|
||||
if (none_)
|
||||
auto const sle = env.le(keylet::line(account, issue));
|
||||
if (none)
|
||||
{
|
||||
env.test.expect(!sle);
|
||||
}
|
||||
else if (env.test.expect(sle))
|
||||
{
|
||||
auto amount = sle->getFieldAmount(sfBalance);
|
||||
amount.setIssuer(value_.issue().account);
|
||||
if (account_.id() > value_.issue().account)
|
||||
amount.setIssuer(issue.account);
|
||||
if (account > issue.account)
|
||||
amount.negate();
|
||||
env.test.expect(amount == value_);
|
||||
env.test.expect(amount == value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
doBalance(
|
||||
Env& env,
|
||||
AccountID const& account,
|
||||
bool none,
|
||||
STAmount const& value,
|
||||
MPTIssue const& mptIssue)
|
||||
{
|
||||
auto const sle = env.le(keylet::mptoken(mptIssue.getMptID(), account));
|
||||
if (none)
|
||||
{
|
||||
env.test.expect(!sle);
|
||||
}
|
||||
else if (env.test.expect(sle))
|
||||
{
|
||||
STAmount const amount{mptIssue, sle->getFieldU64(sfMPTAmount)};
|
||||
env.test.expect(amount == value);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
balance::operator()(Env& env) const
|
||||
{
|
||||
return std::visit(
|
||||
[&](auto const& issue) {
|
||||
doBalance(env, account_.id(), none_, value_, issue);
|
||||
},
|
||||
value_.asset().value());
|
||||
}
|
||||
|
||||
} // namespace jtx
|
||||
} // namespace test
|
||||
} // namespace ripple
|
||||
|
||||
@@ -26,13 +26,15 @@ namespace test {
|
||||
namespace jtx {
|
||||
|
||||
void
|
||||
fee::operator()(Env&, JTx& jt) const
|
||||
fee::operator()(Env& env, JTx& jt) const
|
||||
{
|
||||
if (!manual_)
|
||||
return;
|
||||
jt.fill_fee = false;
|
||||
if (increment_)
|
||||
jt[sfFee] = STAmount(env.current()->fees().increment).getJson();
|
||||
if (amount_)
|
||||
jt[jss::Fee] = amount_->getJson(JsonOptions::none);
|
||||
jt[sfFee] = amount_->getJson(JsonOptions::none);
|
||||
}
|
||||
|
||||
} // namespace jtx
|
||||
|
||||
@@ -20,9 +20,6 @@
|
||||
#include <test/jtx/owners.h>
|
||||
|
||||
namespace ripple {
|
||||
namespace test {
|
||||
namespace jtx {
|
||||
|
||||
namespace detail {
|
||||
|
||||
std::uint32_t
|
||||
@@ -39,7 +36,7 @@ owned_count_of(ReadView const& view, AccountID const& id, LedgerEntryType type)
|
||||
|
||||
void
|
||||
owned_count_helper(
|
||||
Env& env,
|
||||
test::jtx::Env& env,
|
||||
AccountID const& id,
|
||||
LedgerEntryType type,
|
||||
std::uint32_t value)
|
||||
@@ -49,6 +46,9 @@ owned_count_helper(
|
||||
|
||||
} // namespace detail
|
||||
|
||||
namespace test {
|
||||
namespace jtx {
|
||||
|
||||
void
|
||||
owners::operator()(Env& env) const
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user