Source code for curvesim.pool.stableswap.raipool

from .metapool import CurveMetaPool


[docs]class CurveRaiPool(CurveMetaPool): """ Rebasing stableswap metapool implementation in Python. Used for RAI3CRV pool. """
[docs] def __init__(self, redemption_price, *args, **kwargs): """ Parameters ---------- redemption_price : int redemption price for the pool; functionally equivalent to `rate_multiplier` for a factory metapool A : int Amplification coefficient; this is :math:`A n^{n-1}` in the whitepaper. D : int or list of int coin balances or virtual total balance n: int number of coins tokens : int LP token supply fee : int, optional fee with 10**10 precision (default = .004%) fee_mul : fee multiplier for dynamic fee pools admin_fee : int, optional percentage of `fee` with 10**10 precision (default = 50%) """ super().__init__(*args, rate_multiplier=redemption_price, **kwargs)
[docs] def dydx(self, i, j, use_fee=False): _dydx = super().dydx(i, j, use_fee=use_fee) if i >= self.max_coin and j == 0: base_i = i - self.max_coin _dydx = _dydx * self.basepool.rates[base_i] / self.rate_multiplier return _dydx
def _dydx(self, i, j, xp, use_fee=False): dydx = super()._dydx(i, j, xp, use_fee=use_fee) rates = self.rates return dydx * rates[i] / rates[j]