PoolDepositWithdraw
Inherits: IPoolDepositWithdraw, PoolInternal, ReentrancyGuard
Functions
constructor
constructor(
address factory,
address router,
address wrappedNativeToken,
address feeReceiver,
address referral,
address settings,
address vaultRegistry,
address vxPremia
) PoolInternal(factory, router, wrappedNativeToken, feeReceiver, referral, settings, vaultRegistry, vxPremia);
deposit
Deposits a position (combination of owner/operator, price range, bid/ask collateral, and long/short
contracts) into the pool. Tx will revert if market price is not between minMarketPrice and
maxMarketPrice.
function deposit(
Position.Key calldata p,
UD60x18 belowLower,
UD60x18 belowUpper,
UD60x18 size,
UD60x18 minMarketPrice,
UD60x18 maxMarketPrice
) external nonReentrant returns (Position.Delta memory delta);
Parameters
| Name | Type | Description |
|---|---|---|
p | Position.Key | The position key |
belowLower | UD60x18 | The normalized price of nearest existing tick below lower. The search is done off-chain, passed as arg and validated on-chain to save gas (18 decimals) |
belowUpper | UD60x18 | The normalized price of nearest existing tick below upper. The search is done off-chain, passed as arg and validated on-chain to save gas (18 decimals) |
size | UD60x18 | The position size to deposit (18 decimals) |
minMarketPrice | UD60x18 | Min market price, as normalized value. (If below, tx will revert) (18 decimals) |
maxMarketPrice | UD60x18 | Max market price, as normalized value. (If above, tx will revert) (18 decimals) |
Returns
| Name | Type | Description |
|---|---|---|
delta | Position.Delta | The amount of collateral / longs / shorts deposited |
deposit
Deposits a position (combination of owner/operator, price range, bid/ask collateral, and long/short
contracts) into the pool. Tx will revert if market price is not between minMarketPrice and
maxMarketPrice.
function deposit(
Position.Key calldata p,
UD60x18 belowLower,
UD60x18 belowUpper,
UD60x18 size,
UD60x18 minMarketPrice,
UD60x18 maxMarketPrice,
bool isBidIfStrandedMarketPrice
) external nonReentrant returns (Position.Delta memory delta);
Parameters
| Name | Type | Description |
|---|---|---|
p | Position.Key | The position key |
belowLower | UD60x18 | The normalized price of nearest existing tick below lower. The search is done off-chain, passed as arg and validated on-chain to save gas (18 decimals) |
belowUpper | UD60x18 | The normalized price of nearest existing tick below upper. The search is done off-chain, passed as arg and validated on-chain to save gas (18 decimals) |
size | UD60x18 | The position size to deposit (18 decimals) |
minMarketPrice | UD60x18 | Min market price, as normalized value. (If below, tx will revert) (18 decimals) |
maxMarketPrice | UD60x18 | Max market price, as normalized value. (If above, tx will revert) (18 decimals) |
isBidIfStrandedMarketPrice | bool |
Returns
| Name | Type | Description |
|---|---|---|
delta | Position.Delta | The amount of collateral / longs / shorts deposited |
withdraw
Withdraws a position (combination of owner/operator, price range, bid/ask collateral, and long/short
contracts) from the pool. Tx will revert if market price is not between minMarketPrice and
maxMarketPrice.
function withdraw(Position.Key calldata p, UD60x18 size, UD60x18 minMarketPrice, UD60x18 maxMarketPrice)
external
nonReentrant
returns (Position.Delta memory delta);
Parameters
| Name | Type | Description |
|---|---|---|
p | Position.Key | The position key |
size | UD60x18 | The position size to withdraw (18 decimals) |
minMarketPrice | UD60x18 | Min market price, as normalized value. (If below, tx will revert) (18 decimals) |
maxMarketPrice | UD60x18 | Max market price, as normalized value. (If above, tx will revert) (18 decimals) |
Returns
| Name | Type | Description |
|---|---|---|
delta | Position.Delta | The amount of collateral / longs / shorts withdrawn |
getNearestTicksBelow
Get nearest ticks below lower and upper.
If no tick between lower and upper, then the nearest tick below upper, will be lower
function getNearestTicksBelow(UD60x18 lower, UD60x18 upper)
external
view
returns (UD60x18 nearestBelowLower, UD60x18 nearestBelowUpper);
Parameters
| Name | Type | Description |
|---|---|---|
lower | UD60x18 | The lower bound of the range (18 decimals) |
upper | UD60x18 | The upper bound of the range (18 decimals) |
Returns
| Name | Type | Description |
|---|---|---|
nearestBelowLower | UD60x18 | The nearest tick below lower (18 decimals) |
nearestBelowUpper | UD60x18 | The nearest tick below upper (18 decimals) |