Fix vault::query_pools to skip defunct pools and improve pagination handling #100
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.
Problem
The
query_poolsfunction had a critical bug where it would attempt to load defunct pools fromACTIVE_POOLSstorage, causing queries to fail when defunct pools existed in the system. The function also had inefficient pagination logic that could result in incomplete results when pools were missing from the active pools storage.Solution
This PR refactors the
query_poolsfunction to:may_load()instead ofload()to handle cases where pools might not exist inACTIVE_POOLSstorage (i.e., defunct pools)Key Changes
query_poolsfunction to usemay_load()and proper pagination logicTesting
Artifacts Updated
dexter_vault.wasmwith the fixed contractchecksums.txtImpact
This fix ensures that pool queries work reliably even when defunct pools exist in the system, preventing query failures and improving the overall robustness of the vault contract.