## Initialise
- Get pool with check
- TimeswapV2Pool.intialise()
- Check if liquidity exists
- If it doesnt exit set the sqrt as is given
## AddLiquidityGivenPrincipal
- Check deadline
- Get pool with check
- data = encode(true,(msg.sender,token0,token1,uniswapV3Fee))
- token0Amount, token1Amount = pool.swap(address(this),isToken0, exactInputIsTrue,strike,data)
- get sqrtPrice
- data = (msg.sender, isToken0)
- liquidityAmount, excessLong0, excessLong1, excessShort = TsIntPeri.addLiquidityGivenPrincipal(token0,token1,strike,maturity,iquidityTo,excessLong0To,excessLong1To,excessShortTo,ifToken0 => tokenAmount-tokenAmountOut else tokenAmountOut,ifToken0 =>tokenAmountOut else tokenAmount-tokenAmountOut )
- Get pool address
- data = Encode(token0,token1,liquidityTo,excessLong0To,excessLong1To,excessShortTo,preferLong0Excess,token0Amount,token1Amount)
- (liquidityAmount, , , ,data) = ITimeswapV2Pool.mint(strike,matuiryt,address(this),GivenLarger,strike.combine(token0Amount,token1Amount,strike,false),data)
- (excessLong0,excessLong1,excessShort) = abi.decode(data)
-
- MinLiquidityCheck
- MinExcessShortCheck
- MinLong0Check
- MinLong1Check