Core

Core contract of Platypus protocol

contracts/pool/Core.sol

Title: Core

Notice: Handles math operations of Platypus protocol.

Details: Uses DSMath to compute using WAD and RAY.

Remark:

1 WAD = 10**18

1 RAY = 10**27

function _slippageFun

Core._slippage(k, n, c1, xThreshold, x)

Notice: Yellow Paper Def. 2.4 (Price Slippage Curve)

Arguments

name

type

description

k

uint256

K slippage parameter in WAD

n

uint256

N slippage parameter

c1

uint256

C1 slippage parmeter in WAD

xThreshold

uint256

xThreshold slippage parameter in WAD

x

uint256

coverage ratio in WAD

Output

name

type

description

uint256

The result of price slippage curve

function _slippage

Core._slippage(k, n, c1, xThreshold, cash, liability, cashChange, addCash)

Notice: Yellow Paper Def. 2.4 (Asset Slippage)

Arguments

name

type

description

k

uint256

K slippage parameter in WAD

n

uint256

N slippage parameter

c1

uint256

C1 slippage parameter

xThreshold

uint256

xThreshold slippage parameter in WAD

cash

uint256

cash position of asset in WAD

cashChange

uint256

cashChange of asset in WAD

addCash

bool

true if we are adding cash, false otherwise

Output

name

type

description

uint256

result of one-sided asset slippage

function _swappingSlippage

Core._swappingSlippage(si, sj)

Notice: Yellow Paper Def. 2.5 (Swapping Slippage). Calculates 1 - (Si - Sj).

Arguments

name

type

description

si

uint256

si slippage parameter in WAD

sj

uint256

sj slippage parameter

Output

name

type

description

uint256

result of swapping slippage (1- Si->j)

function _haircut

Core._haircut(amount, rate)

Notice: Yellow Paper Def. 4.0 (Haircut).

Arguments

name

type

description

amount

uint256

The amount that will receive this discount

rate

uint256

The rate to be applied

Output

name

type

description

uint256

the result of operation

function _dividend

Core._dividend(amount, ratio)

Notice: Applies dividend to amount

Arguments

name

type

description

amount

uint256

The amount that will receive the discount

ratio

uint256

The ratio to be applied in dividend

Output

name

type

description

uint256

The result of operation

function _withdrawalFee

Core._withdrawalFee(k, n, c1, xThreshold, cash, liability, amount)

Notice: Yellow Paper Def. 6.2 (Withdrawal Fee)

Arguments

name

type

description

k

uint256

K slippage parameter in WAD

n

uint256

N slippage parameter

c1

uint256

C1 slippage parameter in WAD

xThreshold

uint256

xThreshold slippage parameter in WAD

cash

uint256

cash position of asset in WAD

liability

uint256

liability position of asset in WAD

amount

uint256

amount to be withdrawn in WAD

Output

name

type

description

uint256

The final fee to be applied

function _depositFee

Core._depositFee(k, n, c1, xThreshold, cash, liability, amount)

Notice: Yellow Paper Def. 7.2 (Deposit Fee)

Arguments

name

type

description

k

uint256

K slippage parameter in WAD

n

uint256

N slippage parameter

c1

uint256

C1 slippage parameter in WAD

xThreshold

uint256

xThreshold slippage parameter in WAD

cash

uint256

cash position of asset in WAD

liability

uint256

liability position of asset in WAD

amount

uint256

amount to be deposited in WAD

Output

name

type

description

uint256

The final fee to be applied

Last updated