balances: expose usable amounts and prioritize non-Ethereum sources - #246
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
shrinathprabhu
approved these changes
Aug 21, 2026
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.
Summary
Make source funding safer and more explicit by prioritizing non-Ethereum Mayan bridge sources and exposing balances before and after native-token reservations. Delegated EOAs on Monad now retain an additional 10 MON without adding a sequential RPC wait to swap preflight.
Changes
totalBalanceandusableBalancefields to publicTokenBalanceandChainBalanceresults, withbalanceretained as a deprecated alias forusableBalance.Testing
npm run lintnpm run typechecknpm testRisk / Impact
Medium. Mayan may now consume smaller non-Ethereum balances before a larger Ethereum balance, which can change selected legs and which leg carries destination gas drop. The public balance shape gains required fields, while the existing
balancefield remains available as a deprecated compatibility alias. Monad native source capacity is reduced by an additional 10 MON only for delegated EOAs; delegation detection and fee estimation are concurrent, and low balances are clamped to zero. Regression coverage exercises source ordering, public type shape, total/usable normalization, delegated and undelegated Monad accounts, low-balance clamping, and concurrent RPC startup.