async function searchPos(lPos: BigNumber, rPos: BigNumber, collateral: BigNumber, iteration: number): Promise<string> {
// l + (r-l)/2 for preventing over flow, instead of (l+r)/2
let pos = lPos.plus(((rPos.minus(lPos)).div(2)))
console.log("rPos " + rPos)
console.log("lPos " + lPos)
console.log("pos " + pos)
let res = await liquidityPool.connect(signer).callStatic.queryTrade(0, signer.address, toWei(pos.toString()), NONE, 12800)
let costBigNumber = new BigNumber(fromWei(res.cost.toString()))
console.log("costBigNumber " + costBigNumber)
if (costBigNumber.eq(collateral)) {
} else if (costBigNumber.gt(collateral)) {
} else if (costBigNumber.lt(collateral)) {
iteration = iteration - 1
return lPos.plus(((rPos.minus(lPos)).div(2))).toString()