Skip to content

feat: Implement Stellar Yield Enhancements (Issues #35 #36 #40 #41)#130

Merged
edehvictor merged 2 commits intoedehvictor:mainfrom
ChaoLing140:feat/stellar-yield-enhancements-35-36-40-41
Mar 30, 2026
Merged

feat: Implement Stellar Yield Enhancements (Issues #35 #36 #40 #41)#130
edehvictor merged 2 commits intoedehvictor:mainfrom
ChaoLing140:feat/stellar-yield-enhancements-35-36-40-41

Conversation

@ChaoLing140
Copy link
Copy Markdown
Contributor

Summary

This PR implements multiple enhancements to StellarYield as outlined in issues #35, #36, #40, and #41:

Issue #35: StellarYield Developer SDK (TypeScript)

  • Created /packages/sdk with TypeScript package structure
  • Implemented VaultClient for vault contract interactions (deposit, withdraw, getShares, etc.)
  • Implemented ApiClient for backend API calls (APY, TVL, historical data)
  • Set up tsup for ESM and CommonJS bundling
  • Added comprehensive TSDoc comments for all public methods
  • Included example usage in /packages/sdk/src/examples/basic.ts

Issue #36: Advanced Slippage & MEV Protection

  • Added min_shares_out parameter to vault deposit functions
  • Implemented on-chain slippage checks that revert if exceeded
  • Added slippage tolerance UI slider (0.1% to 5%) in ZapDepositPanel
  • Zap contract now passes slippage parameters through to vault

Issue #40: GraphQL API Layer

  • Set up GraphQL schema with graphql-yoga at /server/src/graphql/
  • Defined schemas for Vault, User, Transaction, and YieldSnapshot
  • Implemented resolvers with efficient database queries (N+1 prevention)
  • Integrated GraphQL endpoint in Express app

Issue #41: EIP-4626 Style Vault Standard

  • Expanded VaultStandard trait in /contracts/interfaces/vault_standard.rs
  • Added preview_withdraw, preview_redeem, and share_price methods
  • Implemented proper rounding rules:
    • Deposits: round UP (favor vault)
    • Withdrawals: round DOWN (favor user)
  • Added public view functions for all new methods

Test Plan

  • SDK package compiles and exports correctly
  • GraphQL resolvers properly query databases
  • Vault contract implements all VaultStandard trait methods
  • Slippage UI slider correctly passes parameters

Closes #35
Closes #36
Closes #40
Closes #41

…dehvictor#36 edehvictor#40 edehvictor#41

- Build StellarYield SDK package with TypeScript
  - VaultClient for contract interactions
  - ApiClient for backend data fetching
  - Full TSDoc documentation

- Implement EIP-4626 style vault standard trait
  - Expanded VaultStandard trait with rounding rules
  - Added preview_withdraw, preview_redeem, share_price methods
  - Proper rounding for deposits (up) and withdrawals (down)

- Add slippage protection for Zap routing
  - min_shares_out parameter on deposit functions
  - Slippage tolerance UI slider (0.1% to 5%)
  - On-chain slippage checks that revert if exceeded

- Set up GraphQL API layer
  - Schema definitions for Vault, User, Transaction, YieldSnapshot
  - Resolvers with N+1 query prevention
  - graphql-yoga integration

Closes edehvictor#35
Closes edehvictor#36
Closes edehvictor#40
Closes edehvictor#41
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 30, 2026

@ChaoLing140 is attempting to deploy a commit to the Edeh Victor's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave
Copy link
Copy Markdown

drips-wave bot commented Mar 30, 2026

@ChaoLing140 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@edehvictor
Copy link
Copy Markdown
Owner

@ChaoLing140 resolve conflict

@edehvictor edehvictor merged commit 125ff89 into edehvictor:main Mar 30, 2026
0 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants