Conversation
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
gemcoder21
reviewed
Nov 30, 2025
Refactored multicall3 to provide a builder-based batch interface with typed result decoding, replacing manual call construction and decoding in everstake and yielder modules. Added efficient position data fetching in YoGatewayClient using multicall batching for balances and historical prices, and updated YoYieldProvider to use this for APY and position queries. Added integration test for YoVault positions. Improved error handling and re-exported PositionData.
Introduces an is_yield_available method to Yielder and GemYielder for checking if yield is available for a given asset. Also corrects asset value calculation in YoYieldProvider to derive it from share balance and latest price.
Refactored YoYieldProvider to support multiple chains by managing gateways per chain and updating vault definitions. Added USDT vault for Ethereum, replaced YO_GATEWAY_BASE_MAINNET with YO_GATEWAY, and updated GemYielder to initialize gateways for both Base and Ethereum chains. Adjusted lookback block calculation and related logic to be chain-aware.
reuse reqwest_provider in both swapper and yielder, replace AlienError with gem_client::ClientError
gemcoder21
reviewed
Jan 25, 2026
gemcoder21
reviewed
Jan 25, 2026
gemcoder21
reviewed
Jan 25, 2026
Replace the legacy Yield types with Earn equivalents across the codebase: TransactionInputType::Yield -> TransactionInputType::Earn and YieldAction -> EarnAction. Add new primitives (earn_action, earn_data, earn_position, earn_provider) and remove the old yield_data. Update providers, preload mappers, RPC clients, yielder implementation and tests to use the new Earn types and BigInt values where appropriate. Adjust Uniffi remote types in gemstone to GemEarn* and use GemBigInt for position balances. Add num-bigint dependency to Cargo and yielder Cargo.toml. Misc: small formatting/unwrap fixes in yielder client code and gas/fee mappings updated to reference Earn variants.
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
yieldercrate and Yo yield provider (yoUSD on Base, yoUSDT on Ethereum) with on-chain APY/position data, Yo API rewards, and deposit/withdraw tx builders with approval handling.GemYielderUniFFI object + types, yield transaction helpers, and gateway auto-filling yield call data when missing.Testing
yield_integration_testsfeature.Checklist