From 12552162c9c94dafaa29fb9dfa158f97af75f5ee Mon Sep 17 00:00:00 2001 From: John Freeman Date: Wed, 13 Nov 2024 15:19:30 -0600 Subject: [PATCH] progress --- src/test/app/Vault_test.cpp | 21 ++++++++++++++++++++- src/xrpld/app/tx/detail/VaultWithdraw.cpp | 5 ++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/test/app/Vault_test.cpp b/src/test/app/Vault_test.cpp index a921cb31e2..4a7294b5ad 100644 --- a/src/test/app/Vault_test.cpp +++ b/src/test/app/Vault_test.cpp @@ -362,8 +362,27 @@ class Vault_test : public beast::unit_test::suite env.close(); } - } + { + // Withdraw non-zero assets. + auto tx = vault.withdraw( + {.depositor = depositor, + .id = keylet.key, + .amount = asset(100)}); + env(tx); + env.close(); + } + { + // TODO: get asset of share. + // Redeem non-zero shares. + auto tx = vault.withdraw( + {.depositor = depositor, + .id = keylet.key, + .amount = asset(1000)}); + env(tx, ter(tecINSUFFICIENT_FUNDS)); + env.close(); + } + } } public: diff --git a/src/xrpld/app/tx/detail/VaultWithdraw.cpp b/src/xrpld/app/tx/detail/VaultWithdraw.cpp index e1e4b0e77b..72e303b5d3 100644 --- a/src/xrpld/app/tx/detail/VaultWithdraw.cpp +++ b/src/xrpld/app/tx/detail/VaultWithdraw.cpp @@ -96,13 +96,12 @@ VaultWithdraw::doApply() // The vault must have enough assets on hand. // The vault may hold assets that it has already pledged. // That is why we look at AssetAvailable instead of the account balance. - // TODO: Invariant: vault.AssetAvailable <= vault.Account.balance(vault.Asset) + // TODO: Invariant: vault.AssetAvailable <= + // vault.Account.balance(vault.Asset) if (*vault->at(sfAssetAvailable) < assets) return tecINSUFFICIENT_FUNDS; - std::cerr << "total before: " << *vault->at(sfAssetTotal) << std::endl; vault->at(sfAssetTotal) -= assets; - std::cerr << "total after: " << *vault->at(sfAssetTotal) << std::endl; vault->at(sfAssetAvailable) -= assets; auto const& vaultAccount = vault->at(sfAccount);