コンテンツにスキップ

流動性プール

x/liquiditypoolモジュールは、Sunriseブロックチェーンに集中流動性自動マーケットメーカー(AMM)メカニズムを実装します。このモジュールにより、ユーザーは流動性プールを作成し、特定の価格範囲でポジションを追加し、取引手数料やインセンティブから報酬を得ることができます。

  1. 集中流動性AMM:
    • Uniswap V3と同様のモデルに従い、流動性プロバイダーは特定の価格範囲内に資産を集中させることができます。
    • 従来の定数積AMMと比較して、資本効率が向上します。
  2. ポジションベースの流動性:
    • ユーザーは、定義された価格範囲(ティック)でポジションを作成します。
    • 各ポジションには一意のIDがあり、流動性プロバイダーの貢献を追跡します。
  3. 手数料の生成:
    • ポジションは、その価格範囲内で発生した取引から手数料を得ます。
    • 手数料は、プールのベースデノミネーションとクォートデノミネーションで徴収されます。
  4. vRISEインセンティブ:
    • 流動性プロバイダーは、追加のインセンティブとしてvRISEトークンを獲得します。
    • 詳細については、流動性インセンティブを参照してください。

注意: 次のセクションでは、経験豊富なユーザーまたは開発者向けの高度なトピックについて説明します。

各プールは、いくつかのパラメータによって定義されます:

  • id: プールの一意の識別子
  • denom_base & denom_quote: トークンペアのデノミネーション
  • fee_rate: プール内のスワップで請求される手数料
  • tick_params: ティックシステムを定義するパラメータ
  • current_tick, current_tick_liquidity, current_sqrt_price: 現在の状態変数

ティックシステムは、価格比率の式に基づいています。

price(tick)=price_ratiotickbase_offset\mathrm{price}(\mathrm{tick}) = \mathrm{price\_ratio}^{\mathrm{tick} - \mathrm{base\_offset}}

一般的なケース(price_ratio = 1.0001base_offset = 0)では:

price(tick)=1.0001tick\mathrm{price}(\mathrm{tick}) = 1.0001^{\mathrm{tick}}

これにより、特定の価格範囲内に流動性を正確に配置できます。

注意: 次のセクションでは、経験豊富なユーザーまたは開発者向けの高度なトピックについて説明します。

sequenceDiagram
    participant User as ユーザー
    participant LiquidityPool as x/liquiditypool モジュール
    participant SwapModule as x/swap モジュール

    User->>LiquidityPool: MsgCreatePosition
    LiquidityPool->>User: ポジションIDを返す

    User->>LiquidityPool: MsgIncreaseLiquidity
    LiquidityPool->>User: 新しいポジションIDを返す

    User->>LiquidityPool: MsgDecreaseLiquidity
    LiquidityPool->>User: トークンを返す

    User->>SwapModule: スワップを実行(x/swap経由)
    SwapModule->>LiquidityPool: プールの流動性を使用
    LiquidityPool->>LiquidityPool: ポジションの手数料を徴収
    LiquidityPool->>User: スワップされた金額を送信

    User->>LiquidityPool: MsgClaimRewards
    LiquidityPool->>User: 獲得した手数料とvRISEインセンティブを送金

このモジュールは、さまざまなメッセージタイプを提供します。

  • MsgUpdateParams:モジュールパラメータの更新(ガバナンス操作)
  • MsgCreatePool:指定されたパラメータで新しい流動性プールを作成
  • MsgCreatePosition:プール内の価格範囲内にポジションを作成
  • MsgIncreaseLiquidity:既存のポジションに流動性を追加
  • MsgDecreaseLiquidity:既存のポジションから流動性を削除
  • MsgClaimRewards:ポジションで蓄積された手数料とインセンティブを請求

このモジュールは、さまざまなクエリエンドポイントを提供します。

  • Params:モジュールパラメータのクエリ
  • Pool:特定のプールの詳細を取得
  • Pools:すべての流動性プールを一覧表示
  • Position:特定のポジションの詳細を取得
  • Positions:すべてのポジションを一覧表示
  • PoolPositions:特定のプール内のポジションを一覧表示
  • AddressPositions:アドレスが所有するポジションを一覧表示
  • PositionFees:ポジションで発生した手数料を取得
  • CalculationCreatePosition:ポジション作成のプレビュー
  • CalculationIncreaseLiquidity:流動性増加のプレビュー

詳細については、Githubを参照してください。