Skip to content

Latest commit

 

History

History
91 lines (79 loc) · 2.36 KB

File metadata and controls

91 lines (79 loc) · 2.36 KB

Architecture Design

User Flow Diagram

sequenceDiagram
    actor User
    participant Wallet
    participant YF as YieldForge Vault
    participant LP as Lending Protocols (Kamino, Save)
    participant Strategy as Strategy Controller
    
    %% Deposit Flow
    User->>Wallet: Connect Wallet
    User->>YF: Deposit USDC/USDT
    YF->>YF: Update User Vault Balance
    YF->>LP: Deposit USDC/USDT into Protocols
    LP-->>YF: Mint Derivated Tokens to Vault
    
    %% Analytics Request Flow
    User->>YF: Request Analytics
    YF->>Strategy: Fetch APY Data
    Strategy->>LP: Get On-Chain APY
    LP-->>Strategy: Return Current APY
    Strategy-->>YF: Return APY & Yield Data
    YF-->>User: Display Analytics
    Note over YF,User: Shows: Deposit Amount,<br/>Accrued Yields, Current APY,<br/>Total Pool Liquidity
    
    %% Withdrawal Flow
    User->>YF: Request Withdrawal
    YF->>LP: Redeem Derivated Tokens for USDC/USDT
    LP-->>YF: Return USDC/USDT + Yield
    YF->>YF: Update User Vault Balance
    YF-->>User: Send USDC/USDT
Loading

Account Structure

classDiagram
    class VaultState {
        PDA
        <<program>>
        +Pubkey authority
        +u64 total_usdc_deposits
        +u64 total_usdt_deposits
        +u64 total_k_tokens
        +u64 total_save_tokens
        +Pubkey vault_usdc_account
        +Pubkey vault_usdt_account
        +Pubkey vault_k_token_account
        +Pubkey vault_save_token_account
    }

    class UserAccount {
        PDA(user, vault)
        <<account>>
        +Pubkey owner
        +u64 deposited_usdc
        +u64 deposited_usdt
    }

    class TokenAccounts {
        <<token accounts>>
        +Pubkey vault_usdc_account
        +Pubkey vault_usdt_account
        +Pubkey vault_k_token_account
        +Pubkey vault_save_token_account
        +Pubkey user_token_account
    }

    class ProtocolAccounts {
        PDA(protocol)
        <<program>>
        +Pubkey kamino_position
        +Pubkey save_position
        +u64 kamino_current_apy
        +u64 save_current_apy
    }

    VaultState --> UserAccount: Creates
    VaultState --> TokenAccounts: Manages
    VaultState --> ProtocolAccounts: Monitors
    UserAccount --> VaultState: Deposits/Withdraws
Loading

Deployment

The program has been deployed to Solana Devnet with the following program ID:

Program ID: FfVpsFLmj4ZsCzXPEWJYFCBaRPTQaxmDz2GxFzbpu5TP