🌅
Sunrise日本語
  • Home
    • 👋Sunrise
  • 📜Learn
    • 🌆Sunrise
      • Proof of Liquidity
      • DA Fee Abstraction
      • Data Availability
      • Gauges Voting
      • Liquidity Pool
      • Liquidity Incentive
      • Swap
      • TokenConverter
      • Fee
      • Lockup Account
    • 💴$RISE
      • Allocations
    • 🏦Gluon
    • 💴$GLU
    • 🎓Thesis
      • App chain thesis
      • Interoperability
  • 🛠️Build
    • Client
    • L2 Blockchains
      • Rollkit
        • Sunrise Data
        • Rollkit L2 Chain
      • OP Stack
        • Sunrise Data
        • OP Stack L2 Chain
    • Validators
      • Proof of Data Availability
      • Self Delegation
  • 🏗️Run a Sunrise Node
    • Networks
    • Types of Nodes
      • Consensus
        • Full Consensus Node
        • Validator Node (Genesis)
        • Validator Node
        • Setup Cosmovisor
      • IBC Relayers
    • Resources
      • Upgrade
      • Environment
  • 🏗️Run a Gluon Node
    • Networks
    • Node
      • Validator Node
  • 🔗Links
    • GitHub
    • Discord
    • X (Twitter)
    • Medium
    • dev.to
  • 📓Deprecated (UnUniFi)
    • IBC Channels
    • Security
    • CosmWasm
      • Tutorial
      • Create Project
    • IYA Strategy
      • Interface
      • External CosmWasm chain with IBCHooks
      • External EVM chain with Axelar
    • Frontend
      • Cosmos Client TS
    • Resources
    • Setup ununifid
    • ununifid
      • Basic Commands
      • Module Commands
        • wasm
    • Build a Node
    • Build a Validator Node
    • Setup Cosmovisor
    • Mainnet Upgrades
    • IBC Relayer
GitBook提供
このページ内
  • 主な特徴
  • コア機能
  • プール管理
  • ティックシステム
  • ワークフロー: ポジションの作成と使用
  • メッセージ
  • MsgCreatePool
  • MsgCreatePosition
  • MsgIncreaseLiquidity
  • MsgDecreaseLiquidity
  • MsgClaimRewards
  • 使用例
  • クエリ
  1. Learn
  2. Sunrise

Liquidity Pool

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

主な特徴

レベル1: アプリ開発者向け

  1. 集中型流動性AMM:

    • Uniswap V3と同様のモデルに従い、流動性提供者が特定の価格範囲内に資産を集中させることができます。

    • 従来の定数積AMMと比較して資本効率が向上します。

  2. ポジションベースの流動性:

    • ユーザーは定義された価格範囲(ティック)でポジションを作成します。

    • 各ポジションには固有のIDがあり、流動性提供者の貢献を追跡します。

  3. 手数料の生成:

    • ポジションは価格範囲内で発生する取引から手数料を獲得します。

    • 手数料はプールのベースおよびクォートデノミネーションで収集されます。

  4. vRISEインセンティブ:

    • 流動性提供者は追加のインセンティブとしてvRISEトークンを獲得します。

    • これらのトークンはSunriseエコシステムでDA Fee Abstractionに使用できます。

コア機能

レベル2: 上級ユーザー向け

プール管理

各プールはいくつかのパラメータで定義されます:

  • id: プールの一意の識別子

  • denom_base & denom_quote: トークンペアのデノミネーション

  • fee_rate: プール内のスワップに課される手数料

  • tick_params: ティックシステムを定義するパラメータ

  • current_tick, current_tick_liquidity, current_sqrt_price: 現在のステート変数

ティックシステム

レベル3: モジュール開発者向け

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

price_ratio = 1.0001およびbase_offset = 0の一般的なケースでは:

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

ワークフロー: ポジションの作成と使用

レベル2: 上級ユーザー向け

sequenceDiagram
    participant User
    participant LiquidityPool as x/liquiditypool Module
    participant SwapModule as x/swap Module
    participant BankKeeper as Bank Module

    User->>LiquidityPool: MsgCreatePosition
    LiquidityPool->>BankKeeper: Transfer Tokens to Module
    LiquidityPool->>User: Return Position ID
    
    User->>LiquidityPool: MsgIncreaseLiquidity
    LiquidityPool->>BankKeeper: Transfer Additional Tokens
    
    User->>SwapModule: Perform Swap (via x/swap)
    SwapModule->>LiquidityPool: Use Pool Liquidity
    LiquidityPool->>LiquidityPool: Collect Fees for Positions
    
    User->>LiquidityPool: MsgClaimRewards
    LiquidityPool->>BankKeeper: Transfer Earned Fees to User
    LiquidityPool->>User: Transfer vRISE Incentives
    
    User->>LiquidityPool: MsgDecreaseLiquidity
    LiquidityPool->>BankKeeper: Return Tokens to User

メッセージ

レベル3: モジュール開発者向け

MsgCreatePool

指定されたパラメータで新しい流動性プールを作成します。

type MsgCreatePool struct {
    Authority   string
    DenomBase   string
    DenomQuote  string
    FeeRate     string
    PriceRatio  string
    BaseOffset  string
}

MsgCreatePosition

プール内の価格範囲内でポジションを作成します。

type MsgCreatePosition struct {
    Sender         string
    PoolId         uint64
    LowerTick      int64
    UpperTick      int64
    TokenBase      sdk.Coin
    TokenQuote     sdk.Coin
    MinAmountBase  string
    MinAmountQuote string
}

MsgIncreaseLiquidity

既存のポジションに流動性を追加します。

type MsgIncreaseLiquidity struct {
    Sender         string
    Id             uint64
    AmountBase     string
    AmountQuote    string
    MinAmountBase  string
    MinAmountQuote string
}

MsgDecreaseLiquidity

既存のポジションから流動性を取り除きます。

type MsgDecreaseLiquidity struct {
    Sender    string
    Id        uint64
    Liquidity string
}

MsgClaimRewards

ポジションに蓄積された手数料とインセンティブを請求します。

type MsgClaimRewards struct {
    Sender      string
    PositionIds []uint64
}

使用例

レベル1: アプリ開発者向け

ポジションの作成

import { SunriseClient } from "@sunriselayer/client";
import { MsgCreatePosition } from "@sunriselayer/client/types";

async function createPosition() {
    const client = await SunriseClient.connect("https://rpc.sunriselayer.io");
    
    const msgCreatePosition = {
        sender: "sunrise1...",
        poolId: 1,
        lowerTick: -4155,  // およそ価格0.66
        upperTick: 4054,   // およそ価格1.5
        tokenBase: { denom: "urise", amount: "1000000" },
        tokenQuote: { denom: "uusdc", amount: "1000000" },
        minAmountBase: "0",
        minAmountQuote: "0"
    };
    
    const result = await client.executeTransaction(msgCreatePosition);
    console.log("Position created:", result);
}

クエリ

レベル1: アプリ開発者向け

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

  • Params: モジュールパラメータをクエリする

  • Pools: すべての流動性プールを一覧表示する

  • Pool: 特定のプールの詳細を取得する

  • Positions: すべてのポジションを一覧表示する

  • Position: 特定のポジションの詳細を取得する

  • PoolPositions: 特定のプール内のポジションを一覧表示する

  • AddressPositions: アドレスが所有するポジションを一覧表示する

  • PositionFees: ポジションの発生手数料を取得する

  • CalculationCreatePosition: ポジション作成のプレビュー

  • CalculationIncreaseLiquidity: 流動性増加のプレビュー

前へGauges Voting次へLiquidity Incentive

最終更新 1 か月前

price(tick)=price_ratiotick−base_offset\mathrm{price}(\mathrm{tick}) = \mathrm{price\_ratio}^{\mathrm{tick} - \mathrm{base\_offset}}price(tick)=price_ratiotick−base_offset
price(tick)=1.0001tick\mathrm{price}(\mathrm{tick}) = 1.0001^{\mathrm{tick}}price(tick)=1.0001tick

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

📜
🌆
Github