-
Notifications
You must be signed in to change notification settings - Fork 57
Accumulated updates #122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Accumulated updates #122
Conversation
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
Add comprehensive lostfound account management to handle failed token transfers during swaps with three-tier recovery: - Tier 1: Re-deposit to user's internal pool account - Tier 2: Deposit to user's personal lostfound account (when contract has >100 NEAR) - Tier 3: Fallback to owner's account (when contract has insufficient NEAR) Changes: - New account_lostfound module with LostfoundAccount structure and claim functionality - Enhanced callback recovery logic in exchange_callback_post_withdraw - Added test helper functions for controlling contract NEAR balance - Comprehensive test suite with 5 scenarios covering: * Tier 1 success path (user has storage) * Tier 1 failure → Tier 2 fallback (critical path) * Tier 2 user lostfound with claim verification * Tier 3 owner fallback when contract low on NEAR * Multiple tokens accumulating and selective claiming All tests passing with ~90-95% workflow coverage.
Previously, when multiple tokens shared the same Pyth oracle price_id, only the last token in the batch would be updated. This was due to using a HashMap<PriceIdentifier, AccountId> which only stored a single token per price_id, causing earlier tokens to be overwritten. Changes: - Modified internal_batch_update_degen_token_price to build HashMap<PriceIdentifier, Vec<AccountId>> instead - Updated batch_update_degen_token_by_pyth_oracle function signature to accept the new map structure - Updated batch_update_degen_token_by_pyth_oracle_callback with nested loop to update ALL tokens for each price_id - Updated SelfCallbacks trait to reflect the new signature - Added integration test batch_update_degen_token_same_price_id to verify that multiple tokens sharing a price_id are all correctly updated with the same price value All existing tests pass. The fix maintains backward compatibility as the oracle interface remains unchanged.
MagicGordon
approved these changes
Oct 20, 2025
MagicGordon
approved these changes
Nov 6, 2025
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.
No description provided.