mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Format first-party source according to .clang-format
This commit is contained in:
committed by
manojsdoshi
parent
65dfc5d19e
commit
50760c6935
@@ -16,9 +16,9 @@
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
//==============================================================================
|
||||
#include <test/jtx.h>
|
||||
#include <ripple/protocol/jss.h>
|
||||
#include <ripple/protocol/TxFlags.h>
|
||||
#include <ripple/protocol/jss.h>
|
||||
#include <test/jtx.h>
|
||||
|
||||
namespace ripple {
|
||||
|
||||
@@ -27,9 +27,8 @@ namespace test {
|
||||
class SetTrust_test : public beast::unit_test::suite
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
void testFreeTrustlines(bool thirdLineCreatesLE, bool createOnHighAcct)
|
||||
void
|
||||
testFreeTrustlines(bool thirdLineCreatesLE, bool createOnHighAcct)
|
||||
{
|
||||
if (thirdLineCreatesLE)
|
||||
testcase("Allow two free trustlines");
|
||||
@@ -39,13 +38,13 @@ public:
|
||||
using namespace jtx;
|
||||
Env env(*this);
|
||||
|
||||
auto const gwA = Account{ "gwA" };
|
||||
auto const gwB = Account{ "gwB" };
|
||||
auto const acctC = Account{ "acctC" };
|
||||
auto const acctD = Account{ "acctD" };
|
||||
auto const gwA = Account{"gwA"};
|
||||
auto const gwB = Account{"gwB"};
|
||||
auto const acctC = Account{"acctC"};
|
||||
auto const acctD = Account{"acctD"};
|
||||
|
||||
auto const & creator = createOnHighAcct ? acctD : acctC;
|
||||
auto const & assistor = createOnHighAcct ? acctC : acctD;
|
||||
auto const& creator = createOnHighAcct ? acctD : acctC;
|
||||
auto const& assistor = createOnHighAcct ? acctC : acctD;
|
||||
|
||||
auto const txFee = env.current()->fees().base;
|
||||
auto const baseReserve = env.current()->fees().accountReserve(0);
|
||||
@@ -54,53 +53,61 @@ public:
|
||||
env.fund(XRP(10000), gwA, gwB, assistor);
|
||||
|
||||
// Fund creator with ...
|
||||
env.fund(baseReserve /* enough to hold an account */
|
||||
+ drops(3*txFee) /* and to pay for 3 transactions */, creator);
|
||||
env.fund(
|
||||
baseReserve /* enough to hold an account */
|
||||
+ drops(3 * txFee) /* and to pay for 3 transactions */,
|
||||
creator);
|
||||
|
||||
env(trust(creator, gwA["USD"](100)), require(lines(creator,1)));
|
||||
env(trust(creator, gwB["USD"](100)), require(lines(creator,2)));
|
||||
env(trust(creator, gwA["USD"](100)), require(lines(creator, 1)));
|
||||
env(trust(creator, gwB["USD"](100)), require(lines(creator, 2)));
|
||||
|
||||
if (thirdLineCreatesLE)
|
||||
{
|
||||
// creator does not have enough for the third trust line
|
||||
env(trust(creator, assistor["USD"](100)),
|
||||
ter(tecNO_LINE_INSUF_RESERVE), require(lines(creator, 2)));
|
||||
ter(tecNO_LINE_INSUF_RESERVE),
|
||||
require(lines(creator, 2)));
|
||||
}
|
||||
else
|
||||
{
|
||||
// First establish opposite trust direction from assistor
|
||||
env(trust(assistor,creator["USD"](100)), require(lines(creator,3)));
|
||||
env(trust(assistor, creator["USD"](100)),
|
||||
require(lines(creator, 3)));
|
||||
|
||||
// creator does not have enough to create the other direction on
|
||||
//the existing trust line ledger entry
|
||||
env(trust(creator,assistor["USD"](100)),ter(tecINSUF_RESERVE_LINE));
|
||||
// the existing trust line ledger entry
|
||||
env(trust(creator, assistor["USD"](100)),
|
||||
ter(tecINSUF_RESERVE_LINE));
|
||||
}
|
||||
|
||||
// Fund creator additional amount to cover
|
||||
env(pay(env.master,creator,STAmount{ threelineReserve - baseReserve }));
|
||||
env(pay(env.master, creator, STAmount{threelineReserve - baseReserve}));
|
||||
|
||||
if (thirdLineCreatesLE)
|
||||
{
|
||||
env(trust(creator,assistor["USD"](100)),require(lines(creator, 3)));
|
||||
env(trust(creator, assistor["USD"](100)),
|
||||
require(lines(creator, 3)));
|
||||
}
|
||||
else
|
||||
{
|
||||
env(trust(creator, assistor["USD"](100)),require(lines(creator,3)));
|
||||
env(trust(creator, assistor["USD"](100)),
|
||||
require(lines(creator, 3)));
|
||||
|
||||
Json::Value jv;
|
||||
jv["account"] = creator.human();
|
||||
auto const lines = env.rpc("json","account_lines", to_string(jv));
|
||||
auto const lines = env.rpc("json", "account_lines", to_string(jv));
|
||||
// Verify that all lines have 100 limit from creator
|
||||
BEAST_EXPECT(lines[jss::result][jss::lines].isArray());
|
||||
BEAST_EXPECT(lines[jss::result][jss::lines].size() == 3);
|
||||
for (auto const & line : lines[jss::result][jss::lines])
|
||||
for (auto const& line : lines[jss::result][jss::lines])
|
||||
{
|
||||
BEAST_EXPECT(line[jss::limit] == "100");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Json::Value trust_explicit_amt(jtx::Account const & a, STAmount const & amt)
|
||||
Json::Value
|
||||
trust_explicit_amt(jtx::Account const& a, STAmount const& amt)
|
||||
{
|
||||
Json::Value jv;
|
||||
jv[jss::Account] = a.human();
|
||||
@@ -110,39 +117,45 @@ public:
|
||||
return jv;
|
||||
}
|
||||
|
||||
void testMalformedTransaction()
|
||||
void
|
||||
testMalformedTransaction()
|
||||
{
|
||||
testcase("SetTrust checks for malformed transactions");
|
||||
|
||||
using namespace jtx;
|
||||
Env env{ *this };
|
||||
Env env{*this};
|
||||
|
||||
auto const gw = Account{ "gateway" };
|
||||
auto const alice = Account{ "alice" };
|
||||
auto const gw = Account{"gateway"};
|
||||
auto const alice = Account{"alice"};
|
||||
env.fund(XRP(10000), gw, alice);
|
||||
|
||||
// Require valid tf flags
|
||||
for (std::uint64_t badFlag = 1u ;
|
||||
badFlag <= std::numeric_limits<std::uint32_t>::max(); badFlag *= 2)
|
||||
for (std::uint64_t badFlag = 1u;
|
||||
badFlag <= std::numeric_limits<std::uint32_t>::max();
|
||||
badFlag *= 2)
|
||||
{
|
||||
if( badFlag & tfTrustSetMask)
|
||||
env(trust(alice, gw["USD"](100),
|
||||
static_cast<std::uint32_t>(badFlag)), ter(temINVALID_FLAG));
|
||||
if (badFlag & tfTrustSetMask)
|
||||
env(trust(
|
||||
alice,
|
||||
gw["USD"](100),
|
||||
static_cast<std::uint32_t>(badFlag)),
|
||||
ter(temINVALID_FLAG));
|
||||
}
|
||||
|
||||
// trust amount can't be XRP
|
||||
env(trust_explicit_amt(alice, drops(10000)), ter(temBAD_LIMIT));
|
||||
|
||||
// trust amount can't be badCurrency IOU
|
||||
env(trust_explicit_amt(alice, gw[ to_string(badCurrency())](100)),
|
||||
env(trust_explicit_amt(alice, gw[to_string(badCurrency())](100)),
|
||||
ter(temBAD_CURRENCY));
|
||||
|
||||
// trust amount can't be negative
|
||||
env(trust(alice, gw["USD"](-1000)), ter(temBAD_LIMIT));
|
||||
|
||||
// trust amount can't be from invalid issuer
|
||||
env(trust_explicit_amt(alice, STAmount{Issue{to_currency("USD"),
|
||||
noAccount()}, 100 }), ter(temDST_NEEDED));
|
||||
env(trust_explicit_amt(
|
||||
alice, STAmount{Issue{to_currency("USD"), noAccount()}, 100}),
|
||||
ter(temDST_NEEDED));
|
||||
|
||||
// trust cannot be to self
|
||||
env(trust(alice, alice["USD"](100)), ter(temDST_IS_SRC));
|
||||
@@ -151,25 +164,24 @@ public:
|
||||
env(trust(alice, gw["USD"](100), tfSetfAuth), ter(tefNO_AUTH_REQUIRED));
|
||||
}
|
||||
|
||||
void testModifyQualityOfTrustline(bool createQuality, bool createOnHighAcct)
|
||||
void
|
||||
testModifyQualityOfTrustline(bool createQuality, bool createOnHighAcct)
|
||||
{
|
||||
testcase << "SetTrust " << (createQuality ? "creates" : "removes")
|
||||
<< " quality of trustline for "
|
||||
<< (createOnHighAcct ? "high" : "low" )
|
||||
<< " account" ;
|
||||
<< " quality of trustline for "
|
||||
<< (createOnHighAcct ? "high" : "low") << " account";
|
||||
|
||||
using namespace jtx;
|
||||
Env env{ *this };
|
||||
Env env{*this};
|
||||
|
||||
auto const alice = Account{ "alice" };
|
||||
auto const bob = Account{ "bob" };
|
||||
auto const alice = Account{"alice"};
|
||||
auto const bob = Account{"bob"};
|
||||
|
||||
auto const & fromAcct = createOnHighAcct ? alice : bob;
|
||||
auto const & toAcct = createOnHighAcct ? bob : alice;
|
||||
auto const& fromAcct = createOnHighAcct ? alice : bob;
|
||||
auto const& toAcct = createOnHighAcct ? bob : alice;
|
||||
|
||||
env.fund(XRP(10000), fromAcct, toAcct);
|
||||
|
||||
|
||||
auto txWithoutQuality = trust(toAcct, fromAcct["USD"](100));
|
||||
txWithoutQuality["QualityIn"] = "0";
|
||||
txWithoutQuality["QualityOut"] = "0";
|
||||
@@ -178,33 +190,32 @@ public:
|
||||
txWithQuality["QualityIn"] = "1000";
|
||||
txWithQuality["QualityOut"] = "1000";
|
||||
|
||||
auto & tx1 = createQuality ? txWithQuality : txWithoutQuality;
|
||||
auto & tx2 = createQuality ? txWithoutQuality : txWithQuality;
|
||||
auto& tx1 = createQuality ? txWithQuality : txWithoutQuality;
|
||||
auto& tx2 = createQuality ? txWithoutQuality : txWithQuality;
|
||||
|
||||
auto check_quality = [&](const bool exists)
|
||||
{
|
||||
auto check_quality = [&](const bool exists) {
|
||||
Json::Value jv;
|
||||
jv["account"] = toAcct.human();
|
||||
auto const lines = env.rpc("json","account_lines", to_string(jv));
|
||||
auto const lines = env.rpc("json", "account_lines", to_string(jv));
|
||||
auto quality = exists ? 1000 : 0;
|
||||
BEAST_EXPECT(lines[jss::result][jss::lines].isArray());
|
||||
BEAST_EXPECT(lines[jss::result][jss::lines].size() == 1);
|
||||
BEAST_EXPECT(lines[jss::result][jss::lines][0u][jss::quality_in]
|
||||
== quality);
|
||||
BEAST_EXPECT(lines[jss::result][jss::lines][0u][jss::quality_out]
|
||||
== quality);
|
||||
BEAST_EXPECT(
|
||||
lines[jss::result][jss::lines][0u][jss::quality_in] == quality);
|
||||
BEAST_EXPECT(
|
||||
lines[jss::result][jss::lines][0u][jss::quality_out] ==
|
||||
quality);
|
||||
};
|
||||
|
||||
|
||||
env(tx1, require(lines(toAcct, 1)), require(lines(fromAcct, 1)));
|
||||
check_quality(createQuality);
|
||||
|
||||
env(tx2, require(lines(toAcct, 1)), require(lines(fromAcct, 1)));
|
||||
check_quality(!createQuality);
|
||||
|
||||
}
|
||||
|
||||
void run() override
|
||||
void
|
||||
run() override
|
||||
{
|
||||
testFreeTrustlines(true, false);
|
||||
testFreeTrustlines(false, true);
|
||||
@@ -220,5 +231,5 @@ public:
|
||||
}
|
||||
};
|
||||
BEAST_DEFINE_TESTSUITE(SetTrust, app, ripple);
|
||||
} // test
|
||||
} // ripple
|
||||
} // namespace test
|
||||
} // namespace ripple
|
||||
|
||||
Reference in New Issue
Block a user