工作原理:一個實際例子

讓我們通過一個故事來理解 internet.fund 的運作方式。

用戶故事:小明想賺取收益

小明是個加密貨幣愛好者,他手裡有一些 SOL 和 USDC。他在社交媒體上看到一位他很信任的 KOL 分享了一個 internet.fund 上的 "SOL-USDC 渦輪增壓池",據說收益很不錯。

在傳統 DeFi 世界: 小明點開鏈接,看到一個滿是圖表和術語的界面。他需要計算兩種代幣的比例,擔心無常損失,還要研究如何質押 LP 代幣。幾分鐘後,他感到了困惑和挫敗,最終選擇放棄。

在 internet.fund 世界:

  1. 小明點開 KOL 分享的鏈接,頁面非常簡潔。

  2. 頁面上只有一個大大的按鈕「一鍵加入池子」和一個輸入框。

  3. 小明在輸入框裡填寫了他想投入的總資產,比如 "1000 美元"。

  4. 協議自動顯示:「這將會用掉您大約 X 個 SOL 和 Y 個 USDC」。

  5. 小明點擊「確認」,錢包彈出一次簽名請求。

  6. 簽名完成。頁面顯示:「恭喜!您已成功加入,正在賺取收益。」

背後的代碼邏輯 (偽代碼)

當小明點擊確認時,後端會構建一個原子交易 (Atomic Transaction),其中可能包含多個指令:

Rust

// internet.fund 路由器構建的單次交易
let transaction = Transaction::new_with_payer(
    &[
        // 指令1: 如果需要,創建用戶的 USDC 關聯賬戶
        create_associated_token_account_if_needed(&payer, &usdc_mint),

        // 指令2: 將用戶的部分 SOL 打包成 wSOL
        wrap_sol(&payer, amount_sol),

        // 指令3: 調用我們的核心合約,執行“智能入金”
        internet_fund::instruction::smart_deposit(
            &payer,
            &pool_state,
            amount_sol_in,
            amount_usdc_in,
        ),
        
        // 指令4 (可選): 將獲得的 LP 代幣自動質押到收益聚合器
        internet_fund::instruction::auto_stake_lp(&payer, &pool_state),
    ],
    Some(&payer.pubkey()),
);

用戶只需要一次簽名,但我們的協議在鏈上為他完成了 3-4 個步驟。這就是我們實現極致簡單的核心。

Last updated