This is the heart of Azuro Protocol. Liquidity Pool accept bet's and Liquidity from providers.

Liquidity Pool is ERC721- non-fungible token which broadens the standard specification by including bet and provide liquidity features, based on the Core contract.

Every liquidity token LPNFT represent liquidity part added by the user.

LPNFT can be withdrawn by user at any time with getting its part of common liquidity including profit/loss from adding liquidity moment. Liquiity can be withdrawn partially (set by percent parameter) or completely.

User’s liquidity used in protocol only from moment it was added.

External Functions

addLiquidity

function addLiquidity(uint128 amount) external

Function to provide liquidity into pool to earn margin. Liquidity Provider receives a LPNFT - token reflecting its share in the pool.

withdrawLiquidity

function withdrawLiquidity(uint48 depNum, uint40 percent) external

Function to remove liquidity from pool. In parameters:

bet

function bet(
    uint256 conditionId,
    uint128 amount,
    uint64 outcomeId,
    uint64 deadline,
    uint64 minOdds
) external returns (uint256)

Function to put bet

betFor

function betFor(
    address bettor,
    uint256 conditionId,
    uint128 amount,
    uint64 outcomeId,
    uint64 deadline,
    uint64 minOdds
) external returns (uint256) {

Function to put bet for bettor

withdrawPayout

function withdrawPayout(uint256 tokenId) external