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 に支払う必要のある payout を引いたものです

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

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 を呼び出してプールからお金を引き出します

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