Post Auction Launcher
Post Auction Launcher as name says, is a contract for creation and migration of liquidity pools to Sushiswap exchange. To launch the Liquidity Pool we deposit the auction token and payment token and call finalize function.


Launch a liquidity pool

function depositETH() public payable
Deposits WETH to the contract to build a pair with a token for launching a pool.
function depositToken1(uint256 _amount) external
Deposit token 1 where, token 1 is the payment currency through which we buy the auctioned token. Typically ETH otherwise, any existing ERC20 Token that is used as Payment Currency for the market
function depositToken2(uint256 _amount) external
Deposit token 2 where, token 2 is the auction token that is to be auctioned.
function finalize() external nonReentrant returns (uint256 liquidity)
Launches a liquidity pool. First it checks whether a market has been finalized, if not finalized it finalizes the market! Once called, it launches token1/token2 paired liquidity pool.It intializes the period till which we want the LP tokens to be locked in the contract

Withdraw functions

function withdrawDeposits() external
After the liquidity has been launched, there can be remaining token1 and token2 balance in the contract. This function withdraws the remaining balance to the respective wallet
function withdrawLPTokens() external returns (uint256 liquidity)
All the lp tokens from liquidity pool is transferred to the wallet by the account having operator role after the lock period

Init Function

function initAuctionLauncher(
address _market,
address _factneedsory,
address _admin,
address _wallet,
uint256 _liquidityPercent,
uint256 _locktime
Address of the market for which we want to have post auction launcher
Uniswap V2 factory
Address with admin priviledges
The address that gets the remaining fund and LP tokens after locktime
Percent of initial auction token liquidity you want to launch.
Period that we want to lock the liquidity pool before withdrawing

Read Only Functions

function getTokenAmounts() public view returns (uint256 token1Amount, uint256 token2Amount)
Returns balanced amounts of token1 and token2 to be launched. It performs calculations so that, the relationship between both the token is normal and not skewed.
function getLPBalance() public view returns (uint256)
Returns amount of LP token generated and locked in the contract
function getLPTokenAddress() public view returns (address)
Returns token1 token2 paired LP token