mirror of
https://github.com/XRPLF/rippled.git
synced 2026-10-24 20:47:12 +00:00
Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17220ca51a | ||
|
|
cda637d476 | ||
|
|
ed42fe7a32 | ||
|
|
516efefd6f | ||
|
|
3ebc4b5a00 | ||
|
|
8811e6c091 | ||
|
|
8645272b1a | ||
|
|
b3978ae302 | ||
|
|
0e3807040d | ||
|
|
aa5b02cde3 | ||
|
|
99747f6b04 | ||
|
|
fc620bf29a | ||
|
|
b01ba1fce2 |
No files matched your search
@@ -7116,8 +7116,33 @@ private:
|
|||||||
|
|
||||||
auto const shareMPTID = vaultSle->at(sfShareMPTID);
|
auto const shareMPTID = vaultSle->at(sfShareMPTID);
|
||||||
STAmount const shareAmt{MPTIssue{shareMPTID}, 100'000'000};
|
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.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
|
void
|
||||||
|
|||||||
@@ -870,7 +870,8 @@ private:
|
|||||||
Account const& owner,
|
Account const& owner,
|
||||||
Account const& depositor,
|
Account const& depositor,
|
||||||
Asset const& asset,
|
Asset const& asset,
|
||||||
Vault& vault)> test) {
|
Vault& vault,
|
||||||
|
MPTTester& mptt)> test) {
|
||||||
Env env{*this, testableAmendments()};
|
Env env{*this, testableAmendments()};
|
||||||
Account const issuer{"issuer"};
|
Account const issuer{"issuer"};
|
||||||
Account const owner{"owner"};
|
Account const owner{"owner"};
|
||||||
@@ -883,7 +884,7 @@ private:
|
|||||||
mptt.create();
|
mptt.create();
|
||||||
Asset const asset = mptt.issuanceID();
|
Asset const asset = mptt.issuanceID();
|
||||||
|
|
||||||
test(env, issuer, owner, depositor, asset, vault);
|
test(env, issuer, owner, depositor, asset, vault, mptt);
|
||||||
};
|
};
|
||||||
|
|
||||||
testCase([this](
|
testCase([this](
|
||||||
@@ -892,7 +893,8 @@ private:
|
|||||||
Account const& owner,
|
Account const& owner,
|
||||||
Account const& depositor,
|
Account const& depositor,
|
||||||
Asset const& asset,
|
Asset const& asset,
|
||||||
Vault& vault) {
|
Vault& vault,
|
||||||
|
MPTTester& mptt) {
|
||||||
testcase("MPT no authorization");
|
testcase("MPT no authorization");
|
||||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||||
env(tx, Ter(tecNO_AUTH));
|
env(tx, Ter(tecNO_AUTH));
|
||||||
@@ -904,7 +906,31 @@ private:
|
|||||||
Account const& owner,
|
Account const& owner,
|
||||||
Account const& depositor,
|
Account const& depositor,
|
||||||
Asset const& asset,
|
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");
|
testcase("MPT cannot set Scale=0");
|
||||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||||
tx[sfScale] = 0;
|
tx[sfScale] = 0;
|
||||||
@@ -917,7 +943,8 @@ private:
|
|||||||
Account const& owner,
|
Account const& owner,
|
||||||
Account const& depositor,
|
Account const& depositor,
|
||||||
Asset const& asset,
|
Asset const& asset,
|
||||||
Vault& vault) {
|
Vault& vault,
|
||||||
|
MPTTester& mptt) {
|
||||||
testcase("MPT cannot set Scale=1");
|
testcase("MPT cannot set Scale=1");
|
||||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||||
tx[sfScale] = 1;
|
tx[sfScale] = 1;
|
||||||
|
|||||||
Reference in new issue
Block a user