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.
Explanation
Adds a generic
non_evm_stakingstate structure to support staking APY data for non-EVM chains (starting with Tron).Tron staking uses a different approach than EVM pooled staking, so rather than forcing Tron into the existing
pooled_stakingstructure (which would require nullable vault-specific fields and some conditional logic), this introduces a minimal state that can accommodate any non-EVM chain.The idea next is for the mobile client to:
1 - Call
EarnController.refreshNonEvmStakingApy()with Tron witness API fetcher2 - Use the selectors in
selectEarnTokensto populateearnToken.experience.aprwith the Tron APY3- Get rid of the
useTronStakeApyhook calls from componentsReferences
Checklist
Note
Add generic non-EVM staking state with APY refresh/getter, expose selectors/exports, and update tests and selector typings.
non_evm_stakingstate/types and metadata; initialize with{}.refreshNonEvmStakingApy({ chainId, apyFetcher })andgetNonEvmStakingApy(chainId).selectNonEvmStaking,selectNonEvmStakingForChainId,selectNonEvmStakingApyForChainId.index.ts.non_evm_staking.Written by Cursor Bugbot for commit 31d118f. This will update automatically on new commits. Configure here.