more price handling bugfixes
This commit is contained in:
@@ -6,6 +6,7 @@ import {ethers, FixedNumber} from "ethers";
|
||||
import {uniswapV3PoolAbi} from "@/blockchain/abi.js";
|
||||
|
||||
const subscriptionCounts = {} // key is route and value is a subscription counter
|
||||
export const WIDE_PRICE_FORMAT = {decimals:38, width:512, signed:false}; // 38 decimals is 127 bits
|
||||
|
||||
|
||||
export function subPrices( routes ) {
|
||||
@@ -84,9 +85,8 @@ async function getPriceForRoute(route) {
|
||||
const [sqrtPrice,,,,,,] = got
|
||||
const spn = BigInt(sqrtPrice)
|
||||
let price = spn*spn * 10n**BigInt(route.token0.decimals-route.token1.decimals)
|
||||
const format = {decimals:38,width:512,signed:false}; // 38 decimals is 127 bits
|
||||
price = FixedNumber.fromValue(price,0,format)
|
||||
price = price.div(FixedNumber.fromValue(2n**(96n*2n),0,format))
|
||||
price = FixedNumber.fromValue(price,0,WIDE_PRICE_FORMAT)
|
||||
price = price.div(FixedNumber.fromValue(2n**(96n*2n),0,WIDE_PRICE_FORMAT))
|
||||
price = price.round(18).toString()
|
||||
console.log(`price for ${route.token0.symbol}/${route.token1.symbol}`,price)
|
||||
store.poolPrices[addr] = price
|
||||
|
||||
Reference in New Issue
Block a user