mookim

mookim

mookim.eth

azuroコード分析

https://azuro.org

最近の池の利益の Dune クエリ:https://dune.com/queries/2513483

プールの収益ダッシュボード:https://tools.defieye.io/superset/dashboard/azuro/?standalone=true

コントラクトアドレス#

Polygon のコードを例にすると、

Oracle 0x94429f3d92ad38c70e44218460a97021548d17ad
LP 0x7043E4e1c4045424858ECBCED80989FeAfC11B36
Core1 0x3B182e9FbF50398A412d17D7969561E3BfcC4fA4 Core コード
Core2 0xbb13f8981cefd19ddc5338f0f1e11de45e8a11ca BetExpress コード は Core1 の組み合わせベットです

LP.addReserve#

gameId、lockedReserve、finalReserve、leaf を渡す

利益 = finalReserve - lockedReserve
利益が 0 より大きい場合、leaf の前のノードにのみ配布されます
利益が 0 より小さい場合、すべての LP プロバイダーが損失を被ります

したがって、資金を投入する場合は、現在の locked 資金の全体に対する割合を確認することをお勧めします。この比率は、投資後の短期間内に直面する最大の損失です(この期間中に lockedReserve が消費されると、LP 全体が損失を被りますが、利益がある場合はあなたには分配されません)。

Core1._calcReserve#

max( abs(reinforcement-funds[0]), abs(reinforcement-funds[1]) )

これは、LP がこの条件で最大の損失を被る可能性です。すべての条件を合わせると、LP の locked になります。

Core1.resolveCondition#

Core1 のみで使用されます

すべての条件は 2 つの側面のみであり、outcomeIndex は 0 または 1 です
0 が勝ったと仮定すると、プールはどれだけの資金を獲得できるでしょうか?それは 1 が投入した資金から 0 に支払われるべき配当を引いたものです

したがって、次のようになります:

lockedReserve = _calcReserve(reinforcement, funds);
profitReserve = lockedReserve + funds[oppositeIndex] - reinforcement;
addReserve(condition.gameId, lockedReserve, profitReserve, condition.leaf)

ここで、プールの利益はfunds[oppositeIndex] - reinforcement;です。つまり、失敗したユーザーが投入した元本から、利益を得たユーザーが得た部分を差し引いたものです。なぜなら、funds のデフォルト値は reinforcement から始まり、ユーザーの元本は彼がいる側の funds を増やし、拡大されたオッズの対戦相手側の funds を差し引くからです。

LP.bet#

ユーザーのベットトランザクション:https://dashboard.tenderly.co/tx/polygon/0x97935416834c48f2bce822d1cd18ba01fb58e14b5191f8bd80f9f94a45dc6882

これは Core1 のものです

ユーザーは USDT を LP に提供し、それが Core.putBet に入ります
現在の virtualFunds、ユーザーが投入した amount の数量、および設定された margin に基づいて、スリッページを更新します。CoreTools.calcOdds

このトランザクションでは、ユーザーは 0 に 2u をベットし、funds と virtualFunds は両方とも 0 です。この側面は 2u 増加し、対戦相手の側面 1 は元本に乗じたオッズ 2 * 1.219464097168 = 2.438928u を減少させます。

Core2 の betData はSubBet[] memory subBets, uint64 minOddsです

LP.withdrawPayout#

Core.resolvePayout に最初に入ります

Core1 は単に NFT の所有者と viewPayout の結果を返します

しかし、Core2 はまだ lp.addReserve を呼び出してプールからお金を引き出します

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。