UniswapV2 mathematical approach and contract code review