mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-21 03:26:01 +00:00
Rename sfMPTokenIssuanceID in Vault to sfShareMPTID
This commit is contained in:
@@ -479,7 +479,7 @@ LEDGER_ENTRY(ltVAULT, 0x0083, Vault, vault, ({
|
|||||||
{sfAssetsAvailable, soeREQUIRED},
|
{sfAssetsAvailable, soeREQUIRED},
|
||||||
{sfAssetsMaximum, soeDEFAULT},
|
{sfAssetsMaximum, soeDEFAULT},
|
||||||
{sfLossUnrealized, soeREQUIRED},
|
{sfLossUnrealized, soeREQUIRED},
|
||||||
{sfMPTokenIssuanceID, soeREQUIRED}, // sfShare
|
{sfShareMPTID, soeREQUIRED},
|
||||||
{sfWithdrawalPolicy, soeREQUIRED},
|
{sfWithdrawalPolicy, soeREQUIRED},
|
||||||
// no SharesTotal ever (use MPTIssuance.sfOutstandingAmount)
|
// no SharesTotal ever (use MPTIssuance.sfOutstandingAmount)
|
||||||
// no PermissionedDomainID ever (use MPTIssuance.sfDomainID)
|
// no PermissionedDomainID ever (use MPTIssuance.sfDomainID)
|
||||||
|
|||||||
@@ -155,6 +155,7 @@ TYPED_SFIELD(sfTakerGetsIssuer, UINT160, 4)
|
|||||||
|
|
||||||
// 192-bit (common)
|
// 192-bit (common)
|
||||||
TYPED_SFIELD(sfMPTokenIssuanceID, UINT192, 1)
|
TYPED_SFIELD(sfMPTokenIssuanceID, UINT192, 1)
|
||||||
|
TYPED_SFIELD(sfShareMPTID, UINT192, 2)
|
||||||
|
|
||||||
// 256-bit (common)
|
// 256-bit (common)
|
||||||
TYPED_SFIELD(sfLedgerHash, UINT256, 1)
|
TYPED_SFIELD(sfLedgerHash, UINT256, 1)
|
||||||
|
|||||||
@@ -89,7 +89,6 @@ JSS(SettleDelay); // in: TransactionSign
|
|||||||
JSS(SendMax); // in: TransactionSign
|
JSS(SendMax); // in: TransactionSign
|
||||||
JSS(Sequence); // in/out: TransactionSign; field.
|
JSS(Sequence); // in/out: TransactionSign; field.
|
||||||
JSS(SetFlag); // field.
|
JSS(SetFlag); // field.
|
||||||
JSS(Share); // out: Vault
|
|
||||||
JSS(SharesTotal); // out: Vault
|
JSS(SharesTotal); // out: Vault
|
||||||
JSS(Signer); // field.
|
JSS(Signer); // field.
|
||||||
JSS(Signers); // field.
|
JSS(Signers); // field.
|
||||||
|
|||||||
@@ -142,8 +142,6 @@ STLedgerEntry::getJson(JsonOptions options) const
|
|||||||
if (getType() == ltMPTOKEN_ISSUANCE)
|
if (getType() == ltMPTOKEN_ISSUANCE)
|
||||||
ret[jss::mpt_issuance_id] = to_string(
|
ret[jss::mpt_issuance_id] = to_string(
|
||||||
makeMptID(getFieldU32(sfSequence), getAccountID(sfIssuer)));
|
makeMptID(getFieldU32(sfSequence), getAccountID(sfIssuer)));
|
||||||
else if (getType() == ltVAULT)
|
|
||||||
ret[jss::Share] = to_json(MPTIssue(getFieldH192(sfMPTokenIssuanceID)));
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -873,7 +873,7 @@ class Vault_test : public beast::unit_test::suite
|
|||||||
// accounts for the issued shares.
|
// accounts for the issued shares.
|
||||||
auto v = env.le(keylet);
|
auto v = env.le(keylet);
|
||||||
BEAST_EXPECT(v);
|
BEAST_EXPECT(v);
|
||||||
MPTID share = (*v)[sfMPTokenIssuanceID];
|
MPTID share = (*v)[sfShareMPTID];
|
||||||
auto issuance = env.le(keylet::mptIssuance(share));
|
auto issuance = env.le(keylet::mptIssuance(share));
|
||||||
BEAST_EXPECT(issuance);
|
BEAST_EXPECT(issuance);
|
||||||
Number outstandingShares = issuance->at(sfOutstandingAmount);
|
Number outstandingShares = issuance->at(sfOutstandingAmount);
|
||||||
@@ -1240,18 +1240,13 @@ class Vault_test : public beast::unit_test::suite
|
|||||||
BEAST_EXPECT(checkString(sfAssetsMaximum, "1000"));
|
BEAST_EXPECT(checkString(sfAssetsMaximum, "1000"));
|
||||||
BEAST_EXPECT(checkString(sfAssetsTotal, "50"));
|
BEAST_EXPECT(checkString(sfAssetsTotal, "50"));
|
||||||
BEAST_EXPECT(checkString(sfLossUnrealized, "0"));
|
BEAST_EXPECT(checkString(sfLossUnrealized, "0"));
|
||||||
BEAST_EXPECT(checkString(
|
BEAST_EXPECT(
|
||||||
sfMPTokenIssuanceID, strHex(sle->at(sfMPTokenIssuanceID))));
|
checkString(sfShareMPTID, strHex(sle->at(sfShareMPTID))));
|
||||||
BEAST_EXPECT(checkString(sfOwner, toBase58(owner.id())));
|
BEAST_EXPECT(checkString(sfOwner, toBase58(owner.id())));
|
||||||
BEAST_EXPECT(checkInt(sfSequence, sequence));
|
BEAST_EXPECT(checkInt(sfSequence, sequence));
|
||||||
BEAST_EXPECT(
|
BEAST_EXPECT(
|
||||||
checkInt(sfWithdrawalPolicy, vaultStrategyFirstComeFirstServe));
|
checkInt(sfWithdrawalPolicy, vaultStrategyFirstComeFirstServe));
|
||||||
|
|
||||||
// This field is injected in STLedgerEntry::getJson
|
|
||||||
BEAST_EXPECT(
|
|
||||||
node.isMember(jss::Share) && node[jss::Share].isObject() &&
|
|
||||||
node[jss::Share] == to_json(sle->at(sfMPTokenIssuanceID)));
|
|
||||||
|
|
||||||
// This field is injected in RPC::supplementJson<ltVAULT>
|
// This field is injected in RPC::supplementJson<ltVAULT>
|
||||||
BEAST_EXPECT(
|
BEAST_EXPECT(
|
||||||
node.isMember(jss::SharesTotal) &&
|
node.isMember(jss::SharesTotal) &&
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ VaultClawback::doApply()
|
|||||||
if (!vault)
|
if (!vault)
|
||||||
return tefINTERNAL; // Enforced in preclaim
|
return tefINTERNAL; // Enforced in preclaim
|
||||||
|
|
||||||
auto const mptIssuanceID = (*vault)[sfMPTokenIssuanceID];
|
auto const mptIssuanceID = (*vault)[sfShareMPTID];
|
||||||
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
|
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
|
||||||
if (!sleIssuance)
|
if (!sleIssuance)
|
||||||
return tefINTERNAL;
|
return tefINTERNAL;
|
||||||
@@ -139,7 +139,7 @@ VaultClawback::doApply()
|
|||||||
STAmount assets, shares;
|
STAmount assets, shares;
|
||||||
if (amount == beast::zero)
|
if (amount == beast::zero)
|
||||||
{
|
{
|
||||||
Asset share = *(*vault)[sfMPTokenIssuanceID];
|
Asset share = *(*vault)[sfShareMPTID];
|
||||||
shares = accountHolds(
|
shares = accountHolds(
|
||||||
view(),
|
view(),
|
||||||
holder,
|
holder,
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ VaultCreate::doApply()
|
|||||||
// Leave default values for AssetTotal and AssetAvailable, both zero.
|
// Leave default values for AssetTotal and AssetAvailable, both zero.
|
||||||
if (auto value = tx[~sfAssetsMaximum])
|
if (auto value = tx[~sfAssetsMaximum])
|
||||||
vault->at(sfAssetsMaximum) = *value;
|
vault->at(sfAssetsMaximum) = *value;
|
||||||
vault->at(sfMPTokenIssuanceID) = share;
|
vault->at(sfShareMPTID) = share;
|
||||||
if (auto value = tx[~sfData])
|
if (auto value = tx[~sfData])
|
||||||
vault->at(sfData) = *value;
|
vault->at(sfData) = *value;
|
||||||
// Required field, default to vaultStrategyFirstComeFirstServe
|
// Required field, default to vaultStrategyFirstComeFirstServe
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ VaultDelete::doApply()
|
|||||||
// The operator-> gives the underlying STAccount,
|
// The operator-> gives the underlying STAccount,
|
||||||
// whose value function returns a const&.
|
// whose value function returns a const&.
|
||||||
{.account = vault->at(sfAccount)->value(),
|
{.account = vault->at(sfAccount)->value(),
|
||||||
.issuanceID = vault->at(sfMPTokenIssuanceID)}))
|
.issuanceID = vault->at(sfShareMPTID)}))
|
||||||
return ter;
|
return ter;
|
||||||
|
|
||||||
// The psuedo-account's directory should have been deleted already.
|
// The psuedo-account's directory should have been deleted already.
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ VaultDeposit::preclaim(PreclaimContext const& ctx)
|
|||||||
if (isFrozen(ctx.view, account, vaultAsset))
|
if (isFrozen(ctx.view, account, vaultAsset))
|
||||||
return tecFROZEN;
|
return tecFROZEN;
|
||||||
|
|
||||||
auto const share = MPTIssue(vault->at(sfMPTokenIssuanceID));
|
auto const share = MPTIssue(vault->at(sfShareMPTID));
|
||||||
// Cannot deposit if the shares of the vault are frozen
|
// Cannot deposit if the shares of the vault are frozen
|
||||||
if (isFrozen(ctx.view, account, share))
|
if (isFrozen(ctx.view, account, share))
|
||||||
return tecFROZEN;
|
return tecFROZEN;
|
||||||
@@ -126,7 +126,7 @@ VaultDeposit::doApply()
|
|||||||
auto const assets = ctx_.tx[sfAmount];
|
auto const assets = ctx_.tx[sfAmount];
|
||||||
|
|
||||||
// Make sure the depositor can hold shares.
|
// Make sure the depositor can hold shares.
|
||||||
auto const mptIssuanceID = (*vault)[sfMPTokenIssuanceID];
|
auto const mptIssuanceID = (*vault)[sfShareMPTID];
|
||||||
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
|
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
|
||||||
if (!sleIssuance)
|
if (!sleIssuance)
|
||||||
return tefINTERNAL;
|
return tefINTERNAL;
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ VaultSet::preclaim(PreclaimContext const& ctx)
|
|||||||
if (ctx.tx[sfAccount] != vault->at(sfOwner))
|
if (ctx.tx[sfAccount] != vault->at(sfOwner))
|
||||||
return tecNO_PERMISSION;
|
return tecNO_PERMISSION;
|
||||||
|
|
||||||
auto const mptIssuanceID = (*vault)[sfMPTokenIssuanceID];
|
auto const mptIssuanceID = (*vault)[sfShareMPTID];
|
||||||
auto const sleIssuance = ctx.view.read(keylet::mptIssuance(mptIssuanceID));
|
auto const sleIssuance = ctx.view.read(keylet::mptIssuance(mptIssuanceID));
|
||||||
if (!sleIssuance)
|
if (!sleIssuance)
|
||||||
return tefINTERNAL;
|
return tefINTERNAL;
|
||||||
@@ -124,7 +124,7 @@ VaultSet::doApply()
|
|||||||
if (!vault)
|
if (!vault)
|
||||||
return tefINTERNAL; // Enforced in preclaim
|
return tefINTERNAL; // Enforced in preclaim
|
||||||
|
|
||||||
auto const mptIssuanceID = (*vault)[sfMPTokenIssuanceID];
|
auto const mptIssuanceID = (*vault)[sfShareMPTID];
|
||||||
auto const sleIssuance = view().peek(keylet::mptIssuance(mptIssuanceID));
|
auto const sleIssuance = view().peek(keylet::mptIssuance(mptIssuanceID));
|
||||||
if (!sleIssuance)
|
if (!sleIssuance)
|
||||||
return tefINTERNAL;
|
return tefINTERNAL;
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ VaultWithdraw::preclaim(PreclaimContext const& ctx)
|
|||||||
|
|
||||||
auto const assets = ctx.tx[sfAmount];
|
auto const assets = ctx.tx[sfAmount];
|
||||||
auto const asset = vault->at(sfAsset);
|
auto const asset = vault->at(sfAsset);
|
||||||
auto const share = vault->at(sfMPTokenIssuanceID);
|
auto const share = vault->at(sfShareMPTID);
|
||||||
if (assets.asset() != asset && assets.asset() != share)
|
if (assets.asset() != asset && assets.asset() != share)
|
||||||
return tecWRONG_ASSET;
|
return tecWRONG_ASSET;
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ VaultWithdraw::doApply()
|
|||||||
if (!vault)
|
if (!vault)
|
||||||
return tefINTERNAL; // Enforced in preclaim
|
return tefINTERNAL; // Enforced in preclaim
|
||||||
|
|
||||||
auto const mptIssuanceID = (*vault)[sfMPTokenIssuanceID];
|
auto const mptIssuanceID = (*vault)[sfShareMPTID];
|
||||||
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
|
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
|
||||||
if (!sleIssuance)
|
if (!sleIssuance)
|
||||||
return tefINTERNAL;
|
return tefINTERNAL;
|
||||||
|
|||||||
@@ -2533,8 +2533,7 @@ assetsToSharesDeposit(
|
|||||||
assets.asset() == vault->at(sfAsset),
|
assets.asset() == vault->at(sfAsset),
|
||||||
"ripple::assetsToSharesDeposit : assets and vault match");
|
"ripple::assetsToSharesDeposit : assets and vault match");
|
||||||
Number assetTotal = vault->at(sfAssetsTotal);
|
Number assetTotal = vault->at(sfAssetsTotal);
|
||||||
STAmount shares{
|
STAmount shares{vault->at(sfShareMPTID), static_cast<Number>(assets)};
|
||||||
vault->at(sfMPTokenIssuanceID), static_cast<Number>(assets)};
|
|
||||||
if (assetTotal == 0)
|
if (assetTotal == 0)
|
||||||
return shares;
|
return shares;
|
||||||
Number shareTotal = issuance->at(sfOutstandingAmount);
|
Number shareTotal = issuance->at(sfOutstandingAmount);
|
||||||
@@ -2553,7 +2552,7 @@ assetsToSharesWithdraw(
|
|||||||
"ripple::assetsToSharesWithdraw : assets and vault match");
|
"ripple::assetsToSharesWithdraw : assets and vault match");
|
||||||
Number assetTotal = vault->at(sfAssetsTotal);
|
Number assetTotal = vault->at(sfAssetsTotal);
|
||||||
assetTotal -= vault->at(sfLossUnrealized);
|
assetTotal -= vault->at(sfLossUnrealized);
|
||||||
STAmount shares{vault->at(sfMPTokenIssuanceID)};
|
STAmount shares{vault->at(sfShareMPTID)};
|
||||||
if (assetTotal == 0)
|
if (assetTotal == 0)
|
||||||
return shares;
|
return shares;
|
||||||
Number shareTotal = issuance->at(sfOutstandingAmount);
|
Number shareTotal = issuance->at(sfOutstandingAmount);
|
||||||
@@ -2568,7 +2567,7 @@ sharesToAssetsWithdraw(
|
|||||||
STAmount const& shares)
|
STAmount const& shares)
|
||||||
{
|
{
|
||||||
XRPL_ASSERT(
|
XRPL_ASSERT(
|
||||||
shares.asset() == vault->at(sfMPTokenIssuanceID),
|
shares.asset() == vault->at(sfShareMPTID),
|
||||||
"ripple::sharesToAssetsWithdraw : shares and vault match");
|
"ripple::sharesToAssetsWithdraw : shares and vault match");
|
||||||
Number assetTotal = vault->at(sfAssetsTotal);
|
Number assetTotal = vault->at(sfAssetsTotal);
|
||||||
assetTotal -= vault->at(sfLossUnrealized);
|
assetTotal -= vault->at(sfLossUnrealized);
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ supplementJson<ltVAULT>(
|
|||||||
vault->getType() == ltVAULT,
|
vault->getType() == ltVAULT,
|
||||||
"ripple::RPC::supplementJson<ltVAULT> : matching type");
|
"ripple::RPC::supplementJson<ltVAULT> : matching type");
|
||||||
|
|
||||||
auto const share = vault->at(sfMPTokenIssuanceID);
|
auto const share = vault->at(sfShareMPTID);
|
||||||
auto const sleIssuance = view.read(keylet::mptIssuance(share));
|
auto const sleIssuance = view.read(keylet::mptIssuance(share));
|
||||||
if (!sleIssuance)
|
if (!sleIssuance)
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user