mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-20 11:45:53 +00:00
feat: Support single asset vault (#1979)
fixes #1921 --------- Co-authored-by: Sergey Kuznetsov <skuznetsov@ripple.com> Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com>
This commit is contained in:
@@ -41,6 +41,7 @@
|
||||
#include <xrpl/protocol/STAmount.h>
|
||||
#include <xrpl/protocol/STArray.h>
|
||||
#include <xrpl/protocol/STIssue.h>
|
||||
#include <xrpl/protocol/STNumber.h>
|
||||
#include <xrpl/protocol/STObject.h>
|
||||
#include <xrpl/protocol/STVector256.h>
|
||||
#include <xrpl/protocol/TER.h>
|
||||
@@ -1642,3 +1643,37 @@ createAuthCredentialArray(std::vector<std::string_view> issuer, std::vector<std:
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
ripple::STObject
|
||||
createVault(
|
||||
std::string_view owner,
|
||||
std::string_view account,
|
||||
ripple::LedgerIndex seq,
|
||||
std::string_view assetCurrency,
|
||||
std::string_view assetIssuer,
|
||||
ripple::uint192 shareMPTID,
|
||||
uint64_t ownerNode,
|
||||
ripple::uint256 previousTxId,
|
||||
uint32_t previousTxSeq
|
||||
)
|
||||
{
|
||||
auto vault = ripple::STObject(ripple::sfLedgerEntry);
|
||||
vault.setAccountID(ripple::sfOwner, getAccountIdWithString(owner));
|
||||
vault.setAccountID(ripple::sfAccount, getAccountIdWithString(account));
|
||||
vault.setFieldU32(ripple::sfSequence, seq);
|
||||
vault.setFieldU64(ripple::sfOwnerNode, ownerNode);
|
||||
vault.setFieldH256(ripple::sfPreviousTxnID, previousTxId);
|
||||
vault.setFieldU32(ripple::sfPreviousTxnLgrSeq, previousTxSeq);
|
||||
|
||||
vault.setFieldIssue(ripple::sfAsset, ripple::STIssue{ripple::sfAsset, getIssue(assetCurrency, assetIssuer)});
|
||||
vault[ripple::sfShareMPTID] = shareMPTID;
|
||||
vault.setFieldNumber(ripple::sfAssetsTotal, ripple::STNumber{ripple::sfAssetsTotal, 300});
|
||||
vault.setFieldNumber(ripple::sfAssetsAvailable, ripple::STNumber{ripple::sfAssetsAvailable, 300});
|
||||
vault.setFieldNumber(ripple::sfLossUnrealized, ripple::STNumber{ripple::sfLossUnrealized, 0});
|
||||
vault.setFieldU8(ripple::sfWithdrawalPolicy, 200);
|
||||
|
||||
vault.setFieldU32(ripple::sfFlags, 0);
|
||||
vault.setFieldU16(ripple::sfLedgerEntryType, ripple::ltVAULT);
|
||||
|
||||
return vault;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user