Skip to content

cherry-pick more commits from develop into release-3.1 (Vault)#6203

Merged
ximinez merged 1 commit intorelease-3.1from
ximinez/vault-fix-3.1
Jan 11, 2026
Merged

cherry-pick more commits from develop into release-3.1 (Vault)#6203
ximinez merged 1 commit intorelease-3.1from
ximinez/vault-fix-3.1

Conversation

@ximinez
Copy link
Collaborator

@ximinez ximinez commented Jan 10, 2026

High Level Overview of Change

Cherry-picks the merge commits from PRs merged into develop. This PR should be merged with a push to preserve the separate commits. Do not squash or use the Github UI.

Includes:

- Adds a mechanism for the vault owner to burn user shares when the vault is stuck. If the Vault has 0 AssetsAvailable and Total, the owner may submit a VaultClawback to reclaim the worthless fees, and thus allow the Vault to be deleted. The Amount must be left off (unless the owner is the asset issuer), specified as 0 Shares, or specified as the number of Shares held.
@ximinez
Copy link
Collaborator Author

ximinez commented Jan 10, 2026

A diff of this commit, and the corresponding commit from the PR in develop.

$ diff <( git show ximinez/vault-fix-3.1  ) <( git show 14467fba5e5652d4976fdea0d312d64e6fb61242 )

1c1
< commit 418ce683020b3b6a00922bdb314f8b41838dd520
---
> commit 14467fba5e5652d4976fdea0d312d64e6fb61242
10c10
< index 99e1ad2063..38ea14646c 100644
---
> index f8d76623fd..d0a1450d6c 100644
13c13
< @@ -40,7 +40,6 @@
---
> @@ -21,7 +21,6 @@
21c21
< @@ -959,25 +958,6 @@ class Vault_test : public beast::unit_test::suite
---
> @@ -940,25 +939,6 @@ class Vault_test : public beast::unit_test::suite
47c47
< @@ -1216,11 +1196,13 @@ class Vault_test : public beast::unit_test::suite
---
> @@ -1197,11 +1177,13 @@ class Vault_test : public beast::unit_test::suite
63c63
< @@ -1943,8 +1925,20 @@ class Vault_test : public beast::unit_test::suite
---
> @@ -1924,8 +1906,20 @@ class Vault_test : public beast::unit_test::suite
86c86
< @@ -2396,6 +2390,15 @@ class Vault_test : public beast::unit_test::suite
---
> @@ -2377,6 +2371,15 @@ class Vault_test : public beast::unit_test::suite
102c102
< @@ -5262,6 +5265,542 @@ class Vault_test : public beast::unit_test::suite
---
> @@ -5243,6 +5246,542 @@ class Vault_test : public beast::unit_test::suite
645c645
< @@ -5280,6 +5819,8 @@ public:
---
> @@ -5261,6 +5800,8 @@ public:
655c655
< index c9632146b6..9dec921278 100644
---
> index 0b237905e8..2e0b3cbfab 100644
658c658
< @@ -114,6 +114,7 @@ hasPrivilege(STTx const& tx, Privilege priv)
---
> @@ -95,6 +95,7 @@ hasPrivilege(STTx const& tx, Privilege priv)
666c666
< @@ -2647,6 +2648,7 @@ ValidVault::Vault::make(SLE const& from)
---
> @@ -2622,6 +2623,7 @@ ValidVault::Vault::make(SLE const& from)
674c674
< @@ -3092,6 +3094,10 @@ ValidVault::finalize(
---
> @@ -3066,6 +3068,10 @@ ValidVault::finalize(
685c685
< @@ -3474,29 +3480,56 @@ ValidVault::finalize(
---
> @@ -3448,29 +3454,56 @@ ValidVault::finalize(
755c755
< @@ -3529,24 +3562,6 @@ ValidVault::finalize(
---
> @@ -3503,24 +3536,6 @@ ValidVault::finalize(
781c781
< index a142040a0f..0bef7fe3cb 100644
---
> index ef9db373f5..87a1afb623 100644
784c784
< @@ -880,6 +880,7 @@ class ValidVault
---
> @@ -861,6 +861,7 @@ class ValidVault
793c793
< index 45a56a6292..941b3dd3f0 100644
---
> index cc7dec993a..2552e8c1ff 100644
796,798c796
< @@ -18,17 +18,17 @@
<  //==============================================================================
<  
---
> @@ -1,18 +1,17 @@
815,817c813,818
<  namespace ripple {
<  
< @@ -41,15 +41,6 @@ VaultClawback::preflight(PreflightContext const& ctx)
---
>  namespace xrpl {
> -
>  NotTEC
>  VaultClawback::preflight(PreflightContext const& ctx)
>  {
> @@ -22,15 +21,6 @@ VaultClawback::preflight(PreflightContext const& ctx)
833c834
< @@ -61,17 +52,27 @@ VaultClawback::preflight(PreflightContext const& ctx)
---
> @@ -42,17 +32,27 @@ VaultClawback::preflight(PreflightContext const& ctx)
867c868
< @@ -79,61 +80,264 @@ VaultClawback::preclaim(PreclaimContext const& ctx)
---
> @@ -60,61 +60,264 @@ VaultClawback::preclaim(PreclaimContext const& ctx)
1167c1168
< @@ -144,7 +348,7 @@ VaultClawback::doApply()
---
> @@ -125,7 +328,7 @@ VaultClawback::doApply()
1176c1177
< @@ -153,105 +357,47 @@ VaultClawback::doApply()
---
> @@ -134,105 +337,47 @@ VaultClawback::doApply()
1191c1192
< -        "ripple::VaultClawback::doApply : matching asset");
---
> -        "xrpl::VaultClawback::doApply : matching asset");
1200c1201
<          "ripple::VaultClawback::doApply : loss and assets do balance");
---
>          "xrpl::VaultClawback::doApply : loss and assets do balance");
1308c1309
< @@ -301,30 +447,34 @@ VaultClawback::doApply()
---
> @@ -282,30 +427,34 @@ VaultClawback::doApply()
1367c1368
< index 65f0164686..b126b9b824 100644
---
> index 80a5f73ad0..d05f280e75 100644
1370c1371
< @@ -41,6 +41,14 @@ public:
---
> @@ -22,6 +22,14 @@ public:
1384c1385
<  }  // namespace ripple
---
>  }  // namespace xrpl

It looks to me like all of the differences are meta data (lines starting with @@ or index), comments, white space, and stuff related to the project rename.

@ximinez ximinez added the Trivial Simple change with minimal effect, or already tested. Only needs one approval. label Jan 10, 2026
@codecov
Copy link

codecov bot commented Jan 10, 2026

Codecov Report

❌ Patch coverage is 97.50000% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.3%. Comparing base (f17e476) to head (418ce68).
⚠️ Report is 1 commits behind head on release-3.1.

Files with missing lines Patch % Lines
src/xrpld/app/tx/detail/VaultClawback.cpp 97.0% 4 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           release-3.1   #6203   +/-   ##
===========================================
  Coverage         79.2%   79.3%           
===========================================
  Files              837     837           
  Lines            71377   71432   +55     
  Branches          8273    8295   +22     
===========================================
+ Hits             56562   56611   +49     
- Misses           14815   14821    +6     
Files with missing lines Coverage Δ
src/xrpld/app/tx/detail/InvariantCheck.cpp 92.2% <100.0%> (+<0.1%) ⬆️
src/xrpld/app/tx/detail/InvariantCheck.h 100.0% <ø> (ø)
src/xrpld/app/tx/detail/VaultClawback.h 100.0% <ø> (ø)
src/xrpld/app/tx/detail/VaultClawback.cpp 97.3% <97.0%> (+2.4%) ⬆️

... and 3 files with indirect coverage changes

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ximinez ximinez added the Ready to merge *PR author* thinks it's ready to merge. Has passed code review. Perf sign-off may still be required. label Jan 11, 2026
@ximinez
Copy link
Collaborator Author

ximinez commented Jan 11, 2026

I've got a script running locally that will push this branch within a minute of a approving review.

@ximinez ximinez merged commit 418ce68 into release-3.1 Jan 11, 2026
26 checks passed
@ximinez ximinez deleted the ximinez/vault-fix-3.1 branch January 11, 2026 05:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ready to merge *PR author* thinks it's ready to merge. Has passed code review. Perf sign-off may still be required. Trivial Simple change with minimal effect, or already tested. Only needs one approval.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants