Open
Conversation
added test for paused vault deposit recovery
jribbink
reviewed
Feb 3, 2026
jribbink
reviewed
Feb 3, 2026
jribbink
reviewed
Feb 3, 2026
jribbink
reviewed
Feb 3, 2026
zhangchiqing
approved these changes
Feb 19, 2026
jribbink
reviewed
Feb 22, 2026
jribbink
approved these changes
Feb 22, 2026
| receiver.deposit(from: <-recovered) | ||
| return true | ||
| } | ||
| Burner.burn(<-recovered) |
Member
There was a problem hiding this comment.
/// If unsuccessful (no tokens recovered), destroys the empty vault and returns false.
Are we sure the recovered is empty here? I think withdrawAvailable will return a partial balance like (50 tokens when asked for 100), if it fails the check above, and then we will burn these 50 tokens. Do we want to deposit back anyway, and return true or false depending on whether the amount is full or partial ?
Contributor
Author
There was a problem hiding this comment.
fix: withdraw to receiver available up to amount.
Returns true if the full amount was recovered (within rounding tolerance), false if only partial or zero.
…e recovery instead of burning it
zhangchiqing
approved these changes
Feb 24, 2026
Co-authored-by: Leo Zhang <zhangchiqing@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #110
Summary
ERC4626SinkConnectors.AssetSinkwhen EVM approve/deposit calls failtokenSourcefor bridging assets back from EVM on recoveryswap()andswapBack()methods inERC4626SwapConnectorsChanges
ERC4626SinkConnectors.cdc
tokenSource: EVMTokenConnectors.Sourcefor failure recoveryEVM.Bridgeentitlementapprove()failure (bridge tokens back)deposit()failure (revoke approval, bridge tokens back)ERC4626SwapConnectors.cdc
@paramand@returndocumentation forswap()andswapBack()Tests
testDepositToPausedVaultRecoversGracefullyverifying recovery behaviordeposit_to_paused_vault.cdcfor testing paused vault scenarios