コンテンツにスキップ
このページの翻訳は LLM によって生成されています。誤りに気づいた場合は GitHub で issue を開いてお知らせください。

Sai Core

Sai Core

Saiスマートコントラクトの仕組み

Section titled “Saiスマートコントラクトの仕組み”
  • perp、無期限先物取引のコア:
    • 市場、ポジション、証拠金、清算を管理します。
    • 価格影響込みの約定価格、取引・借入・資金調達手数料、損益を計算します。
    • 維持証拠金、最大レバレッジ、時間外制限、資金調達支払いのリスク条件を守ります。
    • 主な操作は新規・決済、担保変更、注文発注・実行、証拠金不足の清算です。
    • oracle から価格を読み、手数料を徴収・配分し、vault と損益を精算します。
  • EVMインターフェース、PerpVaultEvmInterface.sol:
    • MetaMaskなどEVMユーザーがWasmコントラクトを使えます。
    • トークン変換と perp・vault へのVM間呼び出しを処理します。
    • 入出金、新規・決済の基本操作をEVMウォレットに提供します。
  • vault、流動性プール: SLPボールトを実装します。
    • LP資金を集め、トレーダーの損益を引き受けます。
    • 総資産に対する持分を発行・記録し、入金とエポック単位の出金に対応します。
    • トレーダーの利益を支払い、損失を収益として受け取ります。
    • 持分の発行・焼却は vault-token-minter、精算送金は perp と連携します。
  • oracle、価格と権限:
    • 各市場の正式なマーク価格を保存・提供します。
    • 更新者と更新条件を管理します。
    • 証拠金確認、約定、資金調達、清算基準の価格を perp に渡します。
  • vault-token-minter、持分のToken Factory連携:
    • NibiruのToken Factoryで持分トークンの発行・焼却を管理します。
    • 許可リスト・所有者確認で無断の供給変更を防ぎます。
    • vault が入金時に発行、出金・償還時に焼却を呼び出します。
  1. 流動性の流れ
    1. LPが vault に入金し、vault-token-minter が持分を発行します。
    2. 出金申請をキューに入れ、エポックで実行して持分を焼却します。
  2. 取引の流れ
    1. EVMまたはWasmから perp の新規・決済・変更を要求します。
    2. oracle の価格で影響・手数料を計算し、証拠金とレバレッジを確認します。
    3. 状態、資金調達・借入手数料、損益差分を更新します。
  3. 精算
    1. トレーダーの損失は vault の利益になります。
    2. 利益は perp が vault から支払います。
  4. 資金調達と価格調整
    1. perp がマーク・指数価格の差から定期的に資金調達を計算し、ロング・ショートが支払い・受領します。
    2. ポジションに計上し、時間とともに vault で差引精算します。
  5. 清算
    1. 維持証拠金を下回ると、清算実行者による決済を許可します。
    2. 影響込みの価格、ペナルティ、手数料、損益を計算して精算します。
    3. 残担保を返還し、不良債権は設定上限内で vault が負担します。
  1. 所有者・ロールで価格更新、発行権限、パラメーター変更を制限します。
  2. perp は最大・時間外実効レバレッジ、最低維持証拠金、手数料範囲を守ります。
  3. vault はエポック規則と持分計算の正確性を守ります。
  4. VM間呼び出しは再入を避け、状態変更の会計をアトミックに保つ設計です。
  • perp: 市場、サイズ・建値・担保・累積手数料を含むポジション、待機注文、パラメーター。
  • vault: 総資産、総持分、アカウント別持分、出金エポック・キュー。
  • oracle: 市場価格と更新情報。
  • vault-token-minter: 発行・焼却権限とトークン情報。
  • ロングの新規注文:
    • perp.open_position を呼び、価格取得、価格影響・手数料適用、担保ロック、記録を行います。
  • 利益のあるロングの決済:
    • 現在の oracle 価格と影響から損益を計算し、手数料を差し引いて vault から利益を送ります。
  • LPの退出:
    • 出金申請をエポックのキューに入れ、実行時に vault-token-minter で持分を焼却して資産を払い出します。
  • 役割は perp が取引・リスク、vault が流動性・損益、oracle が価格、vault-token-minter が持分供給管理です。EVM窓口でウォレットから直接利用できます。

SaiはRustとSolidityのコントラクトを使うマルチVMアプリです。Wasmの安全性を活かしながら、EVMの柔軟さと使い慣れた開発環境を利用できます。