@airdao/swap-router-contracts
Version:
Smart contracts for swapping on Astra Classic and CL
17 lines (14 loc) • 458 B
text/typescript
import bn from 'bignumber.js'
import { BigNumber, BigNumberish } from 'ethers'
bn.config({ EXPONENTIAL_AT: 999999, DECIMAL_PLACES: 40 })
// returns the sqrt price as a 64x96
export function encodePriceSqrt(reserve1: BigNumberish, reserve0: BigNumberish): BigNumber {
return BigNumber.from(
new bn(reserve1.toString())
.div(reserve0.toString())
.sqrt()
.multipliedBy(new bn(2).pow(96))
.integerValue(3)
.toString()
)
}