mirror of
https://github.com/XRPLF/rippled.git
synced 2026-10-11 14:18:07 +00:00
Compare commits
13 Commits
develop
...
tapanito/u
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17220ca51a | ||
|
|
cda637d476 | ||
|
|
ed42fe7a32 | ||
|
|
516efefd6f | ||
|
|
3ebc4b5a00 | ||
|
|
8811e6c091 | ||
|
|
8645272b1a | ||
|
|
b3978ae302 | ||
|
|
0e3807040d | ||
|
|
aa5b02cde3 | ||
|
|
99747f6b04 | ||
|
|
fc620bf29a | ||
|
|
b01ba1fce2 |
@@ -7116,8 +7116,33 @@ private:
|
||||
|
||||
auto const shareMPTID = vaultSle->at(sfShareMPTID);
|
||||
STAmount const shareAmt{MPTIssue{shareMPTID}, 100'000'000};
|
||||
AMM const amm{env, alice_, XRP(100), shareAmt, Ter(tecWRONG_ASSET)};
|
||||
{
|
||||
AMM const amm{env, alice_, XRP(100), shareAmt, Ter(tecWRONG_ASSET)};
|
||||
BEAST_EXPECT(!amm.ammExists());
|
||||
}
|
||||
|
||||
// Argument order swapped: shares as Amount, XRP as Amount2.
|
||||
{
|
||||
AMM const amm{env, alice_, shareAmt, XRP(100), Ter(tecWRONG_ASSET)};
|
||||
BEAST_EXPECT(!amm.ammExists());
|
||||
}
|
||||
|
||||
// Shares of one vault paired with shares of a second vault.
|
||||
auto [createTx2, vaultKeylet2] = vault.create({.owner = alice_, .asset = iou});
|
||||
env(createTx2);
|
||||
env.close();
|
||||
env(vault.deposit({.depositor = alice_, .id = vaultKeylet2.key, .amount = iou(200)}));
|
||||
env.close();
|
||||
|
||||
auto const vault2Sle = env.le(vaultKeylet2);
|
||||
if (!BEAST_EXPECT(vault2Sle))
|
||||
return;
|
||||
|
||||
STAmount const vault2Shares{MPTIssue{vault2Sle->at(sfShareMPTID)}, 100'000'000};
|
||||
{
|
||||
AMM const amm{env, alice_, shareAmt, vault2Shares, Ter(tecWRONG_ASSET)};
|
||||
BEAST_EXPECT(!amm.ammExists());
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -870,7 +870,8 @@ private:
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
Asset const& asset,
|
||||
Vault& vault)> test) {
|
||||
Vault& vault,
|
||||
MPTTester& mptt)> test) {
|
||||
Env env{*this, testableAmendments()};
|
||||
Account const issuer{"issuer"};
|
||||
Account const owner{"owner"};
|
||||
@@ -883,7 +884,7 @@ private:
|
||||
mptt.create();
|
||||
Asset const asset = mptt.issuanceID();
|
||||
|
||||
test(env, issuer, owner, depositor, asset, vault);
|
||||
test(env, issuer, owner, depositor, asset, vault, mptt);
|
||||
};
|
||||
|
||||
testCase([this](
|
||||
@@ -892,7 +893,8 @@ private:
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
Asset const& asset,
|
||||
Vault& vault) {
|
||||
Vault& vault,
|
||||
MPTTester& mptt) {
|
||||
testcase("MPT no authorization");
|
||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||
env(tx, Ter(tecNO_AUTH));
|
||||
@@ -904,7 +906,31 @@ private:
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
Asset const& asset,
|
||||
Vault& vault) {
|
||||
Vault& vault,
|
||||
MPTTester& mptt) {
|
||||
testcase("MPT without CanTransfer until issuer enables it");
|
||||
// Unlike AMMCreate's requireAuth, canAddHolding does not exempt the issuer.
|
||||
{
|
||||
auto [tx, keylet] = vault.create({.owner = issuer, .asset = asset});
|
||||
env(tx, Ter(tecNO_AUTH));
|
||||
}
|
||||
|
||||
mptt.set({.account = issuer, .flags = tfMPTSetCanTransfer});
|
||||
|
||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||
env(tx);
|
||||
env.close();
|
||||
BEAST_EXPECT(env.le(keylet));
|
||||
});
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
Asset const& asset,
|
||||
Vault& vault,
|
||||
MPTTester& mptt) {
|
||||
testcase("MPT cannot set Scale=0");
|
||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||
tx[sfScale] = 0;
|
||||
@@ -917,7 +943,8 @@ private:
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
Asset const& asset,
|
||||
Vault& vault) {
|
||||
Vault& vault,
|
||||
MPTTester& mptt) {
|
||||
testcase("MPT cannot set Scale=1");
|
||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||
tx[sfScale] = 1;
|
||||
|
||||
Reference in New Issue
Block a user