@dodoex/widgets 3.0.2-zetachain.11 → 3.0.2-zetachain.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helper-BnoyRpeK.cjs +561 -0
- package/dist/helper-BnoyRpeK.cjs.map +1 -0
- package/dist/helper-CMiEdcFd.js +545 -0
- package/dist/index-B-5Qs8z3.cjs +1212 -0
- package/dist/index-B-5Qs8z3.cjs.map +1 -0
- package/dist/index-COcquHWW.cjs +974 -0
- package/dist/index-COcquHWW.cjs.map +1 -0
- package/dist/index-CwQNn_Bp.js +1209 -0
- package/dist/index-De8Sa6Av.cjs +96076 -0
- package/dist/index-De8Sa6Av.cjs.map +1 -0
- package/dist/index-bUI_7SKV.js +96014 -0
- package/dist/index-s8jAQFVo.js +971 -0
- package/dist/index.cjs +91 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +37 -1
- package/dist/types/hooks/ConnectWallet/useWalletInfo.d.ts +3 -1
- package/package.json +7 -16
- package/dist/helper-Bh6_7gAw.js +0 -1
- package/dist/helper-DCJJEnV3.cjs +0 -1
- package/dist/index-Bg8rd10E.js +0 -12
- package/dist/index-CEN1BcL7.cjs +0 -263
- package/dist/index-CGy_7PS2.cjs +0 -12
- package/dist/index-CzpL7rfy.js +0 -78
- package/dist/index-DVLnDJLQ.cjs +0 -78
- package/dist/index-DjAOs16s.js +0 -263
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-COcquHWW.cjs","sources":["../src/components/chart/liquidity-chart/index.styled.tsx","../src/components/chart/liquidity-chart/helper.ts","../src/components/chart/liquidity-chart/useGridLine.tsx","../src/components/chart/liquidity-chart/useHorizontalLabel.tsx","../src/components/chart/liquidity-chart/useLiquidityLine.tsx","../src/components/chart/liquidity-chart/useMiddleLine.tsx","../src/components/chart/liquidity-chart/usePoints.ts","../src/components/chart/liquidity-chart/LiquidityChartKonva.tsx","../src/components/chart/liquidity-chart/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\r\n\r\nexport const Container = styled.div`\r\n height: 100%;\r\n position: relative;\r\n`;\r\nexport const TipWrapper = styled.div`\r\n text-align: center;\r\n margin-top: 17.1px;\r\n margin-bottom: 88.41px;\r\n color: #606066;\r\n font-size: 12px;\r\n line-height: 17px;\r\n font-weight: 400;\r\n`;\r\n","import BigNumber from 'bignumber.js';\r\nimport { StatAreaPoint } from './usePoints';\r\n\r\n// The space reserved at the top\r\nconst topEmptyHeight = 36;\r\n\r\nexport function computePointYByHeight({\r\n maxHeight,\r\n gridAreaHeight,\r\n value,\r\n}: {\r\n maxHeight: BigNumber;\r\n gridAreaHeight: number;\r\n value: BigNumber;\r\n}) {\r\n const height = new BigNumber(gridAreaHeight).minus(topEmptyHeight);\r\n const onePXY = height.div(maxHeight);\r\n const y = height.minus(value.multipliedBy(onePXY)).plus(topEmptyHeight);\r\n return y.toNumber();\r\n}\r\n\r\nexport function computeHeightByPointY({\r\n maxY,\r\n gridAreaHeight,\r\n y,\r\n}: {\r\n maxY: BigNumber;\r\n gridAreaHeight: number;\r\n y: number;\r\n}) {\r\n const height = new BigNumber(gridAreaHeight).minus(topEmptyHeight);\r\n const onePXY = height.div(maxY);\r\n const h = height.minus(new BigNumber(y).minus(topEmptyHeight)).div(onePXY);\r\n return h;\r\n}\r\n\r\n/**\r\n * Obtain the closest data point from the data point collection through the coordinate point x and a series of point data subsets from the point to the center line.\r\n */\r\nexport function getStatAreaPointByX({\r\n targetPrice,\r\n areaPoints,\r\n isLeft,\r\n}: {\r\n targetPrice: BigNumber;\r\n areaPoints: StatAreaPoint[];\r\n isLeft: boolean;\r\n}): {\r\n targetAreaStatPoint: StatAreaPoint | null;\r\n targetAreaStatPoints: StatAreaPoint[];\r\n} {\r\n for (let index = 0; index < areaPoints.length; index++) {\r\n const point = areaPoints[index];\r\n\r\n const nextPoint =\r\n index < areaPoints.length - 1 ? areaPoints[index + 1] : null;\r\n\r\n if (!nextPoint) {\r\n return { targetAreaStatPoint: point, targetAreaStatPoints: areaPoints };\r\n }\r\n\r\n if (isLeft) {\r\n if (\r\n targetPrice.lte(point.middlePrice) &&\r\n targetPrice.gte(nextPoint.middlePrice)\r\n ) {\r\n return {\r\n targetAreaStatPoint: point,\r\n targetAreaStatPoints: areaPoints.slice(0, index + 1),\r\n };\r\n }\r\n } else if (\r\n targetPrice.gte(point.middlePrice) &&\r\n targetPrice.lte(nextPoint.middlePrice)\r\n ) {\r\n return {\r\n targetAreaStatPoint: point,\r\n targetAreaStatPoints: areaPoints.slice(0, index + 1),\r\n };\r\n }\r\n }\r\n\r\n return { targetAreaStatPoint: null, targetAreaStatPoints: [] };\r\n}\r\n\r\n/**\r\n * Given a pixel's x-coordinate, width, logarithm of the minimum value of the abscissa, and logarithm of the maximum value of the abscissa, calculate the logarithmic coordinate corresponding to the point\r\n */\r\nexport function computeTargetPrice({\r\n x,\r\n width,\r\n minXLN10,\r\n maxXLN10,\r\n}: {\r\n x: number;\r\n width: number;\r\n minXLN10: BigNumber;\r\n maxXLN10: BigNumber;\r\n}) {\r\n const xLN10 = new BigNumber(x)\r\n .div(width)\r\n .multipliedBy(maxXLN10.minus(minXLN10));\r\n const power = xLN10.plus(minXLN10);\r\n return new BigNumber(10 ** power.toNumber());\r\n}\r\n\r\n/**\r\n * Given the logarithm of a coordinate, the width, the logarithm of the minimum value of the abscissa, and the logarithm of the maximum value of the abscissa, calculate the x coordinate corresponding to the point\r\n */\r\nexport function computeTargetX({\r\n width,\r\n targetLN10,\r\n minXLN10,\r\n maxXLN10,\r\n}: {\r\n width: number;\r\n targetLN10: BigNumber;\r\n minXLN10: BigNumber;\r\n maxXLN10: BigNumber;\r\n}) {\r\n return targetLN10\r\n .minus(minXLN10)\r\n .div(maxXLN10.minus(minXLN10))\r\n .multipliedBy(width)\r\n .toNumber();\r\n}\r\n\r\n/**\r\n * Calculate logarithm\r\n */\r\nexport function computeTargetLN({ target }: { target: BigNumber }) {\r\n return new BigNumber(Math.log10(target.toNumber()));\r\n}\r\n","import { useMemo } from 'react';\r\nimport { Line } from 'react-konva';\r\n\r\nexport function useGridLine({\r\n gridAreaHeight,\r\n gridAreaWidth,\r\n horizontalLineCount,\r\n verticalLineCount,\r\n color = '#2A2A2D',\r\n}: {\r\n gridAreaHeight: number;\r\n gridAreaWidth: number;\r\n horizontalLineCount: number;\r\n verticalLineCount: number;\r\n color?: string;\r\n}) {\r\n return useMemo(() => {\r\n const horizontalGridLines: Array<Array<number>> = [];\r\n const horizontalGridPerBlockHeight =\r\n gridAreaHeight / (horizontalLineCount + 1);\r\n const verticalGridLines: Array<Array<number>> = [];\r\n const verticalGridPerBlockHeight = gridAreaWidth / (verticalLineCount + 1);\r\n for (let index = 0; index < horizontalLineCount; index++) {\r\n const y = horizontalGridPerBlockHeight * (index + 1);\r\n horizontalGridLines.push([0, y, gridAreaWidth, y]);\r\n }\r\n for (let index = 0; index < verticalLineCount; index++) {\r\n const x = verticalGridPerBlockHeight * (index + 1);\r\n verticalGridLines.push([x, 0, x, gridAreaHeight]);\r\n }\r\n return (\r\n <>\r\n {horizontalGridLines.map((points, index) => (\r\n <Line\r\n key={index}\r\n points={points}\r\n stroke={color}\r\n strokeWidth={1}\r\n lineCap=\"round\"\r\n lineJoin=\"round\"\r\n tension={1}\r\n listening={false}\r\n />\r\n ))}\r\n {verticalGridLines.map((points, index) => (\r\n <Line\r\n key={index}\r\n points={points}\r\n stroke={color}\r\n strokeWidth={1}\r\n lineCap=\"round\"\r\n lineJoin=\"round\"\r\n tension={1}\r\n listening={false}\r\n />\r\n ))}\r\n </>\r\n );\r\n }, [\r\n gridAreaHeight,\r\n gridAreaWidth,\r\n horizontalLineCount,\r\n verticalLineCount,\r\n color,\r\n ]);\r\n}\r\n","import BigNumber from 'bignumber.js';\r\nimport { useMemo } from 'react';\r\nimport { Line, Text } from 'react-konva';\r\nimport { formatShortNumber } from '../../../utils/formatter';\r\nimport { computeTargetPrice } from './helper';\r\n\r\nexport function useHorizontalLabel({\r\n minXLN10,\r\n maxXLN10,\r\n labelCount,\r\n gridAreaHeight,\r\n gridAreaWidth,\r\n color = '#606066',\r\n}: {\r\n minXLN10: BigNumber;\r\n maxXLN10: BigNumber;\r\n labelCount: number;\r\n gridAreaHeight: number;\r\n gridAreaWidth: number;\r\n color?: string;\r\n}) {\r\n return useMemo(() => {\r\n const labelWidth = gridAreaWidth / (labelCount + 1);\r\n const labelTextList: Array<{\r\n x: number;\r\n y: number;\r\n text: string;\r\n }> = [];\r\n const labelLines: Array<Array<number>> = [];\r\n for (let index = 0; index < labelCount; index++) {\r\n const x = labelWidth / 2 + labelWidth * index;\r\n labelTextList.push({\r\n x,\r\n y: gridAreaHeight + 10.08 + 1,\r\n text: formatShortNumber(\r\n computeTargetPrice({\r\n x: labelWidth * (index + 1),\r\n width: gridAreaWidth,\r\n minXLN10,\r\n maxXLN10,\r\n }),\r\n ),\r\n });\r\n\r\n const lineX = labelWidth * (index + 1);\r\n labelLines.push([\r\n lineX,\r\n gridAreaHeight + 1,\r\n lineX,\r\n gridAreaHeight + 4 + 1,\r\n ]);\r\n }\r\n return (\r\n <>\r\n {labelTextList.map((labelText, index) => (\r\n <Text\r\n key={index}\r\n x={labelText.x}\r\n y={labelText.y}\r\n text={labelText.text}\r\n fontSize={14}\r\n fontFamily=\"Manrope\"\r\n fill={color}\r\n width={labelWidth}\r\n padding={0}\r\n align=\"center\"\r\n verticalAlign=\"bottom\"\r\n listening={false}\r\n />\r\n ))}\r\n\r\n {labelLines.map((points, index) => (\r\n <Line\r\n key={index}\r\n points={points}\r\n stroke={color}\r\n strokeWidth={1}\r\n lineCap=\"butt\"\r\n lineJoin=\"miter\"\r\n tension={1}\r\n listening={false}\r\n />\r\n ))}\r\n </>\r\n );\r\n }, [minXLN10, maxXLN10, gridAreaHeight, gridAreaWidth, labelCount]);\r\n}\r\n","import BigNumber from 'bignumber.js';\r\nimport { useMemo } from 'react';\r\nimport { Line } from 'react-konva';\r\nimport {\r\n computePointYByHeight,\r\n computeTargetLN,\r\n computeTargetX,\r\n} from './helper';\r\nimport { ColorMap } from './LiquidityChartKonva';\r\nimport { StatAreaPoint } from './usePoints';\r\n\r\nexport function useLiquidityLine({\r\n leftStatAreaPoints,\r\n rightStatAreaPoints,\r\n minXLN10,\r\n maxXLN10,\r\n maxLeftHeight,\r\n maxRightHeight,\r\n gridAreaWidth,\r\n gridAreaHeight,\r\n colorMap,\r\n}: {\r\n leftStatAreaPoints: Array<StatAreaPoint>;\r\n rightStatAreaPoints: Array<StatAreaPoint>;\r\n minXLN10: BigNumber;\r\n maxXLN10: BigNumber;\r\n maxLeftHeight: BigNumber;\r\n maxRightHeight: BigNumber;\r\n gridAreaWidth: number;\r\n gridAreaHeight: number;\r\n colorMap: ColorMap;\r\n}) {\r\n const leftLine = useMemo(() => {\r\n if (leftStatAreaPoints.length < 1) {\r\n return <></>;\r\n }\r\n const points: Array<number> = [];\r\n let minPointY = gridAreaHeight;\r\n for (const statPoint of leftStatAreaPoints) {\r\n const { middlePrice, rectangleHeight } = statPoint;\r\n const targetLN10 = computeTargetLN({ target: middlePrice });\r\n const x = computeTargetX({\r\n minXLN10,\r\n maxXLN10,\r\n width: gridAreaWidth,\r\n targetLN10,\r\n });\r\n const y = computePointYByHeight({\r\n maxHeight: maxLeftHeight,\r\n gridAreaHeight,\r\n value: rectangleHeight,\r\n });\r\n points.push(x, y);\r\n if (y < minPointY) {\r\n minPointY = y;\r\n }\r\n }\r\n\r\n // Gradient color points: from center to left\r\n const linearGradientPoints = points.slice();\r\n const [rightEndPointX, rightEndPointY] = linearGradientPoints;\r\n const leftStartPointY =\r\n linearGradientPoints[linearGradientPoints.length - 1];\r\n const leftStartPointX =\r\n linearGradientPoints[linearGradientPoints.length - 2];\r\n linearGradientPoints.push(leftStartPointX, leftStartPointY);\r\n linearGradientPoints.push(leftStartPointX, gridAreaHeight);\r\n linearGradientPoints.push(rightEndPointX, gridAreaHeight);\r\n linearGradientPoints.push(rightEndPointX, rightEndPointY);\r\n return (\r\n <>\r\n <Line\r\n points={linearGradientPoints}\r\n closed\r\n listening={false}\r\n lineCap=\"round\"\r\n lineJoin=\"round\"\r\n fillLinearGradientStartPoint={{ x: 0, y: gridAreaHeight }}\r\n fillLinearGradientEndPoint={{ x: 0, y: minPointY }}\r\n fillLinearGradientColorStops={colorMap.leftBg}\r\n />\r\n <Line\r\n points={points}\r\n stroke={colorMap.leftLine}\r\n strokeWidth={2}\r\n lineCap=\"round\"\r\n lineJoin=\"round\"\r\n listening={false}\r\n />\r\n </>\r\n );\r\n }, [\r\n leftStatAreaPoints,\r\n gridAreaWidth,\r\n minXLN10,\r\n maxXLN10,\r\n gridAreaHeight,\r\n maxLeftHeight,\r\n ]);\r\n\r\n const rightLine = useMemo(() => {\r\n if (rightStatAreaPoints.length < 1) {\r\n return <></>;\r\n }\r\n const points: Array<number> = [];\r\n let minPointY = gridAreaHeight;\r\n for (const statPoint of rightStatAreaPoints) {\r\n const { middlePrice, rectangleHeight } = statPoint;\r\n const targetLN10 = computeTargetLN({ target: middlePrice });\r\n const x = computeTargetX({\r\n minXLN10,\r\n maxXLN10,\r\n width: gridAreaWidth,\r\n targetLN10,\r\n });\r\n const y = computePointYByHeight({\r\n maxHeight: maxRightHeight,\r\n gridAreaHeight,\r\n value: rectangleHeight,\r\n });\r\n points.push(x, y);\r\n if (y < minPointY) {\r\n minPointY = y;\r\n }\r\n }\r\n // Gradient colored dots\r\n const linearGradientPoints = points.slice();\r\n const [firstPointX] = linearGradientPoints;\r\n linearGradientPoints.unshift(firstPointX, gridAreaHeight);\r\n linearGradientPoints.unshift(gridAreaWidth, gridAreaHeight);\r\n return (\r\n <>\r\n <Line\r\n points={linearGradientPoints}\r\n closed\r\n listening={false}\r\n lineCap=\"round\"\r\n lineJoin=\"round\"\r\n fillLinearGradientStartPoint={{ x: 0, y: gridAreaHeight }}\r\n fillLinearGradientEndPoint={{ x: 0, y: minPointY }}\r\n fillLinearGradientColorStops={colorMap.rightBg}\r\n />\r\n <Line\r\n points={points}\r\n stroke={colorMap.rightLine}\r\n strokeWidth={2}\r\n lineCap=\"round\"\r\n lineJoin=\"round\"\r\n listening={false}\r\n />\r\n </>\r\n );\r\n }, [\r\n rightStatAreaPoints,\r\n gridAreaWidth,\r\n minXLN10,\r\n maxXLN10,\r\n gridAreaHeight,\r\n maxRightHeight,\r\n ]);\r\n\r\n return {\r\n leftLine,\r\n rightLine,\r\n };\r\n}\r\n","import { useMemo } from 'react';\r\nimport { Line } from 'react-konva';\r\n\r\nexport function useMiddleLine({\r\n gridAreaHeight,\r\n gridAreaWidth,\r\n color = '#606066',\r\n}: {\r\n gridAreaHeight: number;\r\n gridAreaWidth: number;\r\n color?: string;\r\n}) {\r\n return useMemo(() => {\r\n const topPointX = gridAreaWidth / 2;\r\n return (\r\n <Line\r\n points={[topPointX, 0, topPointX, gridAreaHeight - 1]}\r\n stroke={color}\r\n strokeWidth={1}\r\n lineCap=\"round\"\r\n lineJoin=\"round\"\r\n tension={1}\r\n listening={false}\r\n />\r\n );\r\n }, [gridAreaHeight, gridAreaWidth, color]);\r\n}\r\n","import {\r\n PMMHelper,\r\n PmmModelParams,\r\n PMMState as PMMStateFromSDK,\r\n solveQuadraticFunctionForTarget,\r\n} from '@dodoex/api';\r\n\r\nimport BigNumber from 'bignumber.js';\r\nimport { useMemo } from 'react';\r\n\r\n/**\r\n * data point\r\n */\r\n\r\nexport type StatPoint = {\r\n giveAmount: BigNumber;\r\n getAmount: BigNumber;\r\n price: BigNumber;\r\n};\r\n\r\n/**\r\n * Drawing method:\r\n Substitute the minimum value to get the height of the center point, which is the bottom edge of the area chart. Substitute the maximum value to get the vertex of the area chart. The length of the bottom edge from the vertex is the price range.\r\n\r\n Divide the total area into one hundred equal parts. Calculate each part on the basis of the previous part. Substitute the new area into the formula to get a new price. The difference from the previous price is the width of the rectangle. The area is divided by The width is the height of the rectangle, which is the ordinate.\r\n\r\n First, calculate a series of points as a point set based on the rectangular accumulation method.\r\n\r\n When the mouse hovers, the abscissa is the price. Find the closest price in the point set. Use this price as the end point and the center line as the starting point to get a subset of the point set. You can draw a line by combining the center line and the abscissa. The area of the trapezoid can be drawn.\r\n\r\n Update: Taking Δl as the ordinate, Δl = (the difference between the quantity passed in from the previous point and the next point) * (the difference between the quantity obtained from the previous point and the next point)\r\n */\r\nexport type StatAreaPoint = {\r\n area: BigNumber;\r\n price: BigNumber;\r\n // The midpoint between the current price and the previous price is used as the abscissa\r\n middlePrice: BigNumber;\r\n rectangleHeight: BigNumber;\r\n};\r\n\r\nexport function usePoints({ params }: { params: PmmModelParams }) {\r\n return useMemo(() => {\r\n const b = new BigNumber(params.b);\r\n const q = new BigNumber(params.q);\r\n let b0 = new BigNumber(params.b0);\r\n const q0 = new BigNumber(params.q0);\r\n const i = new BigNumber(params.i);\r\n const K = new BigNumber(params.k);\r\n const { R } = params;\r\n\r\n // When created, b0 is equal to b, and a b0 needs to be calculated.\r\n if (R === 1 && b0.eq(b)) {\r\n b0 = solveQuadraticFunctionForTarget(\r\n b,\r\n q.minus(q0),\r\n new BigNumber(1).div(i),\r\n K,\r\n );\r\n }\r\n\r\n const pmmState = new PMMStateFromSDK({\r\n i,\r\n K,\r\n B: b,\r\n Q: q,\r\n B0: b0,\r\n Q0: q0,\r\n R,\r\n mtFeeRate: new BigNumber(0),\r\n lpFeeRate: new BigNumber(0),\r\n });\r\n\r\n const pmm = new PMMHelper();\r\n const B = new BigNumber(pmmState.B);\r\n // const Q = new BigNumber(pmmState.Q);\r\n\r\n // A collection of data points, mapped into points on the graph through equal width and height proportions\r\n const leftStatPoints: StatPoint[] = [];\r\n const rightStatPoints: StatPoint[] = [];\r\n let maxLeftHeight = new BigNumber(0);\r\n let maxRightHeight = new BigNumber(0);\r\n\r\n const midPrice = pmm.GetMidPrice(pmmState);\r\n const portion = q.gt(0) ? b.div(q) : new BigNumber(1);\r\n // console.log('v2 midPrice', midPrice.toString(), portion.toString());\r\n\r\n for (let index = 0; index <= 250; index++) {\r\n let giveAmount = B.multipliedBy(index / 100).multipliedBy(\r\n midPrice.multipliedBy(portion).multipliedBy(4),\r\n );\r\n // let giveAmount = B.multipliedBy(index / 100).multipliedBy(4);\r\n // let giveAmount = B.multipliedBy(index / 100);\r\n if (index === 0) {\r\n giveAmount = B.multipliedBy(1 / 100000000000);\r\n }\r\n // sellBase needs to pass in the number of quotes and gets the number of bases\r\n const getAmount = pmm?.QuerySellBase(giveAmount, pmmState);\r\n // console.log('v2 QuerySellBase', giveAmount.toString(), getAmount.toString());\r\n\r\n if (!getAmount.isNaN() && getAmount.gt(0)) {\r\n // Price on the left\r\n const price = getAmount.div(giveAmount);\r\n leftStatPoints.push({\r\n giveAmount,\r\n getAmount,\r\n price,\r\n });\r\n continue;\r\n }\r\n leftStatPoints.push({\r\n giveAmount,\r\n getAmount: new BigNumber(0),\r\n price: new BigNumber(0),\r\n });\r\n }\r\n\r\n for (let index = 0; index <= 250; index++) {\r\n let giveAmount = B.multipliedBy(index / 100).multipliedBy(\r\n midPrice.multipliedBy(4),\r\n );\r\n // let giveAmount = B.multipliedBy(index / 100);\r\n if (index === 0) {\r\n giveAmount = B.multipliedBy(1 / 100000000000);\r\n }\r\n // sellQuote needs to pass in the number of bases and get the number of quotes\r\n const getAmount = pmm?.QuerySellQuote(giveAmount, pmmState);\r\n // console.log('v2 QuerySellQuote', giveAmount.toString(), getAmount.toString());\r\n\r\n if (!getAmount.isNaN() && getAmount.gt(0)) {\r\n // Price on the right\r\n const price = giveAmount.dividedBy(getAmount);\r\n rightStatPoints.push({\r\n giveAmount,\r\n getAmount,\r\n price,\r\n });\r\n continue;\r\n }\r\n rightStatPoints.push({\r\n giveAmount,\r\n getAmount: new BigNumber(0),\r\n price: new BigNumber(0),\r\n });\r\n }\r\n\r\n if (leftStatPoints.length < 2 && rightStatPoints.length < 2) {\r\n return {\r\n leftStatAreaPoints: [],\r\n rightStatAreaPoints: [],\r\n maxLeftHeight: new BigNumber(10).multipliedBy(1.2),\r\n maxRightHeight: new BigNumber(10).multipliedBy(1.2),\r\n middlePriceLN10: new BigNumber(0),\r\n minXLN10: new BigNumber(-1),\r\n maxXLN10: new BigNumber(1),\r\n };\r\n }\r\n\r\n // The data points are divided into two groups on the left and right, and the width and height corresponding to the area are calculated.\r\n const leftStatAreaPoints: StatAreaPoint[] = [];\r\n for (let index = 1; index < leftStatPoints.length; index++) {\r\n const statPoint = leftStatPoints[index];\r\n const { giveAmount, getAmount, price } = statPoint;\r\n\r\n const lastStatPoint = leftStatPoints[index - 1];\r\n\r\n if (!price.isNaN() && price.gt(0) && lastStatPoint) {\r\n const priceChange = price.minus(lastStatPoint.price).abs();\r\n const giveAmountChange = giveAmount\r\n .minus(lastStatPoint.giveAmount)\r\n .abs();\r\n const getAmountChange = getAmount.minus(lastStatPoint.getAmount).abs();\r\n const leftRectangleHeight =\r\n getAmountChange.multipliedBy(giveAmountChange);\r\n\r\n if (index === 1) {\r\n leftStatAreaPoints.push({\r\n area: getAmount,\r\n price,\r\n middlePrice: price.plus(priceChange.div(1.1)),\r\n rectangleHeight: leftRectangleHeight.plus(\r\n leftRectangleHeight.multipliedBy(0.03),\r\n ),\r\n });\r\n }\r\n leftStatAreaPoints.push({\r\n area: getAmount,\r\n price,\r\n middlePrice: price.plus(priceChange.div(2)),\r\n rectangleHeight: leftRectangleHeight,\r\n });\r\n\r\n maxLeftHeight = BigNumber.max(leftRectangleHeight, maxLeftHeight);\r\n }\r\n }\r\n\r\n const rightStatAreaPoints: StatAreaPoint[] = [];\r\n for (let index = 1; index < rightStatPoints.length; index++) {\r\n const statPoint = rightStatPoints[index];\r\n const { giveAmount, getAmount, price } = statPoint;\r\n\r\n const lastStatPoint = rightStatPoints[index - 1];\r\n const lastPrice = lastStatPoint.price;\r\n const lastGiveAmount = lastStatPoint.giveAmount;\r\n const lastGetAmount = lastStatPoint.getAmount;\r\n\r\n if (!price.isNaN() && price.gt(0) && lastStatPoint) {\r\n const priceChange = price.minus(lastPrice).abs();\r\n const giveAmountChange = giveAmount.minus(lastGiveAmount).abs();\r\n const getAmountChange = getAmount.minus(lastGetAmount).abs();\r\n const rightRectangleHeight =\r\n getAmountChange.multipliedBy(giveAmountChange);\r\n\r\n if (index === 1) {\r\n rightStatAreaPoints.push({\r\n area: getAmount,\r\n price,\r\n middlePrice: price.minus(priceChange.div(1.1)),\r\n rectangleHeight: rightRectangleHeight.plus(\r\n rightRectangleHeight.multipliedBy(0.03),\r\n ),\r\n });\r\n }\r\n\r\n rightStatAreaPoints.push({\r\n area: getAmount,\r\n price,\r\n middlePrice: price.minus(priceChange.div(2)),\r\n rectangleHeight: rightRectangleHeight,\r\n });\r\n\r\n maxRightHeight = BigNumber.max(rightRectangleHeight, maxRightHeight);\r\n }\r\n }\r\n\r\n // Intuitively, the data points on the left are distributed from the middle to the left, and the data points on the right are distributed from the middle to the right.\r\n // Left starting point\r\n const leftStartStatPoint =\r\n leftStatPoints.length > 0\r\n ? leftStatPoints[leftStatPoints.length - 1]\r\n : rightStatPoints[0];\r\n // midpoint\r\n const middleStatPoint =\r\n rightStatPoints.length > 0 ? rightStatPoints[0] : leftStatPoints[0];\r\n // Right end point\r\n const rightEndStatPoint =\r\n rightStatPoints.length > 0\r\n ? rightStatPoints[rightStatPoints.length - 1]\r\n : leftStatPoints[0];\r\n\r\n const minX = leftStartStatPoint.price;\r\n const maxX = rightEndStatPoint.price;\r\n const middlePrice = middleStatPoint.price;\r\n const middlePriceLN10 = new BigNumber(Math.log10(middlePrice.toNumber()));\r\n // Center the graphic\r\n let minXLN10 = minX.gt(0)\r\n ? new BigNumber(Math.log10(minX.toNumber()))\r\n : new BigNumber(-Math.log10(maxX.toNumber()));\r\n let maxXLN10 = maxX.gt(0)\r\n ? new BigNumber(Math.log10(maxX.toNumber()))\r\n : new BigNumber(-Math.log10(minX.toNumber()));\r\n const rangeLN10 = BigNumber.max(\r\n middlePriceLN10.minus(minXLN10).abs(),\r\n maxXLN10.minus(middlePriceLN10).abs(),\r\n );\r\n minXLN10 = middlePriceLN10.minus(rangeLN10);\r\n maxXLN10 = middlePriceLN10.plus(rangeLN10);\r\n // console.log('v2 price', {\r\n // // middlePrice: middlePrice.toString(),\r\n // minX: minX.toString(),\r\n // // maxX: maxX.toString(),\r\n // middlePriceLN10: middlePriceLN10.toString(),\r\n // minXLN10: minXLN10.toString(),\r\n // maxXLN10: maxXLN10.toString(),\r\n // });\r\n\r\n return {\r\n leftStatAreaPoints,\r\n rightStatAreaPoints,\r\n maxLeftHeight: maxLeftHeight.multipliedBy(1.2),\r\n maxRightHeight: maxRightHeight.multipliedBy(1.2),\r\n minXLN10,\r\n maxXLN10,\r\n middlePriceLN10,\r\n };\r\n }, [params]);\r\n}\r\n","import { PMMModel, PmmModelParams } from '@dodoex/api';\r\nimport BigNumber from 'bignumber.js';\r\nimport Konva from 'konva';\r\nimport { KonvaEventObject } from 'konva/lib/Node';\r\nimport { merge } from 'lodash';\r\nimport { useRef } from 'react';\r\nimport { chartT as t } from '../i18n';\r\nimport {\r\n Circle,\r\n Label,\r\n Layer,\r\n Line,\r\n Rect,\r\n Stage,\r\n Tag,\r\n Text,\r\n} from 'react-konva';\r\nimport { formatShortNumber } from '../../../utils/formatter';\r\nimport { colorRgb } from '../depth-chart/helper';\r\nimport { labelPadding } from '../utils';\r\nimport {\r\n computePointYByHeight,\r\n computeTargetLN,\r\n computeTargetPrice,\r\n computeTargetX,\r\n getStatAreaPointByX,\r\n} from './helper';\r\nimport { useGridLine } from './useGridLine';\r\nimport { useHorizontalLabel } from './useHorizontalLabel';\r\nimport { useLiquidityLine } from './useLiquidityLine';\r\nimport { useMiddleLine } from './useMiddleLine';\r\nimport { StatAreaPoint, usePoints } from './usePoints';\r\n\r\nexport const bgColor = 'rgba(38, 39, 41, 0.3)';\r\n\r\nexport interface ColorMap {\r\n grid?: string;\r\n midPriceLine?: string;\r\n leftBg?: (string | number)[];\r\n leftLine?: string;\r\n leftColor?: string;\r\n rightBg?: (string | number)[];\r\n rightLine?: string;\r\n rightColor?: string;\r\n tooltipBg?: string;\r\n tooltipColor?: string;\r\n textColor?: string;\r\n}\r\n\r\nexport type Props = {\r\n width: number;\r\n height: number;\r\n params: PmmModelParams;\r\n midPrice: BigNumber;\r\n pmmModel: PMMModel;\r\n baseTokenSymbol: string;\r\n quoteTokenSymbol: string;\r\n colorMap?: ColorMap;\r\n};\r\n\r\nexport function LiquidityChartKonva({\r\n width,\r\n height,\r\n params,\r\n baseTokenSymbol,\r\n quoteTokenSymbol,\r\n colorMap,\r\n}: Props) {\r\n const {\r\n maxLeftHeight,\r\n maxRightHeight,\r\n leftStatAreaPoints,\r\n rightStatAreaPoints,\r\n minXLN10,\r\n maxXLN10,\r\n } = usePoints({\r\n params,\r\n });\r\n\r\n const xAxisLabelHeight = 30.13;\r\n const gridAreaHeight = height - xAxisLabelHeight;\r\n const horizontalLineCount = 9;\r\n // The number of vertical grid lines or the number of horizontal axis scales\r\n const verticalLineCount = 7;\r\n\r\n const tooltipRef = useRef<Konva.Layer>(null);\r\n\r\n const colorMapRes = merge(\r\n {\r\n grid: '#2A2A2D',\r\n midPriceLine: '#313335',\r\n leftBg: [0, bgColor, 1, '#31645d'],\r\n leftLine: '#55f6db',\r\n leftColor: '',\r\n rightBg: [0, bgColor, 1, '#67303d'],\r\n rightLine: '#ff4f73',\r\n rightColor: '',\r\n tooltipBg: '#121212',\r\n tooltipColor: undefined,\r\n textColor: '#606066',\r\n },\r\n colorMap,\r\n );\r\n\r\n const handleMouseover = (evt: KonvaEventObject<MouseEvent>) => {\r\n const { current: tooltip } = tooltipRef;\r\n const node = evt.target;\r\n if (node && tooltip) {\r\n // update tooltip\r\n const mousePos = node.getStage()?.getPointerPosition();\r\n if (mousePos) {\r\n const { x } = mousePos;\r\n const middleX = width / 2;\r\n if (Math.abs(x - middleX) <= 2) {\r\n return;\r\n }\r\n if (x <= 2 || width - x <= 2) {\r\n return;\r\n }\r\n const targetPrice = computeTargetPrice({\r\n x,\r\n width,\r\n minXLN10,\r\n maxXLN10,\r\n });\r\n\r\n let targetAreaStatPoint: StatAreaPoint | null = null;\r\n let targetAreaStatPoints: Array<StatAreaPoint> = [];\r\n const isLeft = x < middleX;\r\n if (isLeft) {\r\n const result = getStatAreaPointByX({\r\n areaPoints: leftStatAreaPoints,\r\n targetPrice,\r\n isLeft,\r\n });\r\n targetAreaStatPoint = result.targetAreaStatPoint;\r\n targetAreaStatPoints = result.targetAreaStatPoints;\r\n } else {\r\n const result = getStatAreaPointByX({\r\n areaPoints: rightStatAreaPoints,\r\n targetPrice,\r\n isLeft,\r\n });\r\n targetAreaStatPoint = result.targetAreaStatPoint;\r\n targetAreaStatPoints = result.targetAreaStatPoints;\r\n }\r\n if (targetAreaStatPoint) {\r\n const targetLN10 = computeTargetLN({\r\n target: targetAreaStatPoint.middlePrice,\r\n });\r\n const targetAreaPointX = computeTargetX({\r\n minXLN10,\r\n maxXLN10,\r\n width,\r\n targetLN10,\r\n });\r\n const targetAreaPointY = computePointYByHeight({\r\n maxHeight: isLeft ? maxLeftHeight : maxRightHeight,\r\n gridAreaHeight,\r\n value: targetAreaStatPoint.rectangleHeight,\r\n });\r\n const tooltipLabel = tooltip.findOne<Konva.Label>('#tooltip');\r\n const toolTipVertLine =\r\n tooltip.findOne<Konva.Line>('#toolTipVertLine');\r\n const joinCircle = tooltip.findOne<Konva.Line>('#joinCircle');\r\n const tooltipText = tooltip.findOne<Konva.Text>('#tooltip-Text');\r\n const tooltipTag = tooltip.findOne<Konva.Tag>('#tooltip-tag');\r\n const priceTextLabel =\r\n tooltip.findOne<Konva.Label>('#priceTextLabel');\r\n const priceTextLabelText = priceTextLabel?.findOne<Konva.Text>(\r\n '#priceTextLabel-text',\r\n );\r\n const area = tooltip.findOne<Konva.Line>('#area');\r\n\r\n tooltipLabel?.position({\r\n x: targetAreaPointX,\r\n y: targetAreaPointY - 5 - 6,\r\n });\r\n\r\n tooltipText?.fill(\r\n colorMapRes.tooltipColor || (isLeft ? '#00FAD9' : '#FF5072'),\r\n );\r\n tooltipText?.text(\r\n isLeft\r\n ? t('pool.chart.liquidity-chart-buy', {\r\n amount: formatShortNumber(targetAreaStatPoint.area),\r\n symbol: baseTokenSymbol,\r\n price: formatShortNumber(targetAreaStatPoint.price),\r\n })\r\n : t('pool.chart.liquidity-chart-sell', {\r\n amount: formatShortNumber(targetAreaStatPoint.area),\r\n symbol: quoteTokenSymbol,\r\n price: formatShortNumber(targetAreaStatPoint.price),\r\n }),\r\n );\r\n\r\n if (tooltipLabel && tooltipTag) {\r\n if (tooltipLabel.width() / 2 > x) {\r\n tooltipTag.pointerDirection('left');\r\n tooltipTag.pointerHeight(15);\r\n tooltipTag.pointerWidth(8);\r\n tooltipLabel.offsetX(-(5 + 6));\r\n tooltipLabel.offsetY(-(5 + 6));\r\n } else if (tooltipLabel.width() / 2 + x > width) {\r\n tooltipTag.pointerDirection('right');\r\n tooltipTag.pointerHeight(15);\r\n tooltipTag.pointerWidth(8);\r\n tooltipLabel.offsetX(5 + 6);\r\n tooltipLabel.offsetY(-(5 + 6));\r\n } else {\r\n // @ts-ignore\r\n tooltipTag.pointerDirection('down');\r\n tooltipTag.pointerHeight(8);\r\n tooltipTag.pointerWidth(15);\r\n tooltipLabel.offsetX(0);\r\n tooltipLabel.offsetY(0);\r\n }\r\n }\r\n\r\n toolTipVertLine?.points([\r\n targetAreaPointX,\r\n gridAreaHeight,\r\n targetAreaPointX,\r\n targetAreaPointY,\r\n ]);\r\n toolTipVertLine?.stroke(isLeft ? '#55f6db' : '#ff4f73');\r\n\r\n let joinFill = isLeft ? 'rgb(86, 246, 218)' : '#FF5072';\r\n let joinStroke = isLeft\r\n ? 'rgba(86, 246, 218, 0.3)'\r\n : 'rgba(255, 80, 114, 0.3)';\r\n if (colorMapRes.leftLine && colorMapRes.rightLine) {\r\n joinFill = isLeft ? colorMapRes.leftLine : colorMapRes.rightLine;\r\n joinStroke = isLeft\r\n ? `rgba(${colorRgb(colorMapRes.leftLine)}, 0.4)`\r\n : `rgba(${colorRgb(colorMapRes.rightLine)}, 0.4)`;\r\n }\r\n if (joinCircle) {\r\n joinCircle.x(targetAreaPointX);\r\n joinCircle.y(targetAreaPointY);\r\n joinCircle.fill(joinFill);\r\n joinCircle.stroke(joinStroke);\r\n }\r\n\r\n if (priceTextLabel) {\r\n priceTextLabel.x(targetAreaPointX);\r\n priceTextLabel.y(gridAreaHeight + 8.08 + 1);\r\n priceTextLabel.offsetX(priceTextLabel.width() / 2);\r\n if (priceTextLabel.x() - priceTextLabel.width() / 2 < 0) {\r\n priceTextLabel.x(priceTextLabel.width() / 2);\r\n } else if (\r\n priceTextLabel.x() + priceTextLabel.width() / 2 >\r\n width\r\n ) {\r\n priceTextLabel.x(width - priceTextLabel.width() / 2);\r\n } else {\r\n priceTextLabel.x(x);\r\n }\r\n }\r\n\r\n if (priceTextLabelText) {\r\n priceTextLabelText.fill(\r\n colorMapRes.tooltipColor || (isLeft ? '#00FAD9' : '#FF5072'),\r\n );\r\n priceTextLabelText.text(\r\n formatShortNumber(targetAreaStatPoint.price),\r\n );\r\n }\r\n\r\n // Gradient colored dots\r\n const points: Array<number> = [];\r\n for (const statPoint of targetAreaStatPoints) {\r\n const { middlePrice, rectangleHeight } = statPoint;\r\n const targetLN10Gradient = computeTargetLN({ target: middlePrice });\r\n const xGradient = computeTargetX({\r\n minXLN10,\r\n maxXLN10,\r\n width,\r\n targetLN10: targetLN10Gradient,\r\n });\r\n const y = computePointYByHeight({\r\n maxHeight: isLeft ? maxLeftHeight : maxRightHeight,\r\n gridAreaHeight,\r\n value: rectangleHeight,\r\n });\r\n points.push(xGradient, y + 1);\r\n }\r\n const linearGradientPoints = points.slice();\r\n const [firstPointX, firstPointY] = linearGradientPoints;\r\n if (isLeft) {\r\n linearGradientPoints.push(targetAreaPointX, targetAreaPointY);\r\n linearGradientPoints.push(targetAreaPointX, gridAreaHeight);\r\n linearGradientPoints.push(firstPointX, gridAreaHeight);\r\n linearGradientPoints.push(firstPointX, firstPointY);\r\n } else {\r\n linearGradientPoints.unshift(firstPointX, gridAreaHeight);\r\n linearGradientPoints.unshift(targetAreaPointX, gridAreaHeight);\r\n linearGradientPoints.unshift(targetAreaPointX, targetAreaPointY);\r\n }\r\n if (area) {\r\n area.points(linearGradientPoints);\r\n area.fill(\r\n isLeft\r\n ? colorMapRes.leftLine || '#2c5b56'\r\n : colorMapRes.rightLine || '#7b3a48',\r\n );\r\n }\r\n\r\n tooltip.show();\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleMouseOut = () => {\r\n const { current: tooltip } = tooltipRef;\r\n if (tooltip) {\r\n tooltip.hide();\r\n }\r\n };\r\n\r\n const gridLine = useGridLine({\r\n gridAreaHeight,\r\n gridAreaWidth: width,\r\n horizontalLineCount,\r\n verticalLineCount,\r\n color: colorMapRes.grid,\r\n });\r\n const horizontalLabel = useHorizontalLabel({\r\n gridAreaHeight,\r\n gridAreaWidth: width,\r\n labelCount: verticalLineCount,\r\n minXLN10,\r\n maxXLN10,\r\n color: colorMapRes.textColor,\r\n });\r\n const middleLine = useMiddleLine({\r\n gridAreaHeight,\r\n gridAreaWidth: width,\r\n color: colorMapRes.midPriceLine,\r\n });\r\n const { leftLine, rightLine } = useLiquidityLine({\r\n leftStatAreaPoints,\r\n rightStatAreaPoints,\r\n minXLN10,\r\n maxXLN10,\r\n maxLeftHeight,\r\n maxRightHeight,\r\n gridAreaWidth: width,\r\n gridAreaHeight,\r\n colorMap: colorMapRes,\r\n });\r\n\r\n return (\r\n <Stage\r\n width={width}\r\n height={height}\r\n onMouseMove={handleMouseover}\r\n onMouseOver={handleMouseover}\r\n onMouseEnter={handleMouseover}\r\n onMouseOut={handleMouseOut}\r\n >\r\n <Layer>\r\n <Rect\r\n x={0}\r\n y={0}\r\n width={width}\r\n height={gridAreaHeight}\r\n stroke={colorMapRes.grid}\r\n strokeWidth={1}\r\n />\r\n\r\n {gridLine}\r\n\r\n {horizontalLabel}\r\n\r\n {leftLine}\r\n\r\n {rightLine}\r\n\r\n {middleLine}\r\n </Layer>\r\n\r\n <Layer ref={tooltipRef} visible={false}>\r\n <Line\r\n points={[]}\r\n closed\r\n listening={false}\r\n lineCap=\"round\"\r\n lineJoin=\"round\"\r\n id=\"area\"\r\n />\r\n\r\n <Line\r\n points={[]}\r\n strokeWidth={1}\r\n stroke=\"#ff4f73\"\r\n lineJoin=\"round\"\r\n lineCap=\"round\"\r\n dash={[4, 6]}\r\n id=\"toolTipVertLine\"\r\n />\r\n <Circle\r\n x={0}\r\n y={0}\r\n radius={5}\r\n fill=\"#FF5072\"\r\n stroke=\"rgba(255, 80, 114, 0.3)\"\r\n strokeWidth={12}\r\n id=\"joinCircle\"\r\n />\r\n <Label listening={false} x={0} y={0} id=\"priceTextLabel\">\r\n <Tag fill={colorMapRes.tooltipBg} id=\"priceTextLabel-tag\" />\r\n <Text\r\n text=\"-\"\r\n fontSize={14}\r\n fontFamily=\"Manrope\"\r\n padding={2}\r\n fill=\"#FF5072\"\r\n id=\"priceTextLabel-text\"\r\n />\r\n </Label>\r\n\r\n <Label listening={false} id=\"tooltip\">\r\n <Tag\r\n fill={colorMapRes.tooltipBg}\r\n pointerDirection=\"down\"\r\n pointerWidth={15}\r\n pointerHeight={8}\r\n cornerRadius={8}\r\n lineJoin=\"round\"\r\n id=\"tooltip-tag\"\r\n />\r\n <Text\r\n text=\"\"\r\n fontFamily=\"Manrope\"\r\n fontSize={12}\r\n lineHeight={17 / 12}\r\n // width={210}\r\n padding={labelPadding}\r\n fill=\"#FF5072\"\r\n id=\"tooltip-Text\"\r\n />\r\n </Label>\r\n </Layer>\r\n </Stage>\r\n );\r\n}\r\n","import { PMMModel, PmmModelParams } from '@dodoex/api';\r\nimport BigNumber from 'bignumber.js';\r\nimport { Container, TipWrapper } from './index.styled';\r\nimport { ColorMap, LiquidityChartKonva } from './LiquidityChartKonva';\r\nimport { chartT as t } from '../i18n';\r\n\r\ntype Props = {\r\n width?: number;\r\n height?: number;\r\n baseTokenSymbol: string;\r\n quoteTokenSymbol: string;\r\n pmmModel?: PMMModel;\r\n pmmParams?: PmmModelParams;\r\n midPrice?: BigNumber;\r\n notShowTipText?: boolean;\r\n colorMap?: ColorMap;\r\n};\r\n\r\nconst LiquidityChart: React.FC<Props> = ({\r\n width = 834,\r\n height = 462,\r\n baseTokenSymbol,\r\n quoteTokenSymbol,\r\n pmmModel,\r\n pmmParams,\r\n midPrice,\r\n notShowTipText,\r\n colorMap,\r\n}: Props) => {\r\n return (\r\n <Container>\r\n {pmmParams !== undefined &&\r\n midPrice !== undefined &&\r\n pmmModel !== undefined &&\r\n midPrice !== undefined && (\r\n <LiquidityChartKonva\r\n width={width}\r\n height={height}\r\n params={pmmParams}\r\n midPrice={midPrice}\r\n pmmModel={pmmModel}\r\n baseTokenSymbol={baseTokenSymbol}\r\n quoteTokenSymbol={quoteTokenSymbol}\r\n colorMap={colorMap}\r\n />\r\n )}\r\n\r\n {!notShowTipText ? (\r\n <TipWrapper>\r\n * \r\n {t('pool.chart.liquidity-chart-tip', {\r\n baseTokenSymbol,\r\n })}\r\n </TipWrapper>\r\n ) : (\r\n ''\r\n )}\r\n </Container>\r\n );\r\n};\r\n\r\nexport default LiquidityChart;\r\n"],"names":["Container","styled","div","TipWrapper","topEmptyHeight","computePointYByHeight","maxHeight","gridAreaHeight","value","height","BigNumber","minus","onePXY","y","multipliedBy","plus","toNumber","getStatAreaPointByX","targetPrice","areaPoints","isLeft","index","length","point","nextPoint","targetAreaStatPoint","targetAreaStatPoints","lte","middlePrice","gte","slice","computeTargetPrice","x","width","minXLN10","maxXLN10","xLN10","power","computeTargetX","targetLN10","computeTargetLN","target","Math","log10","useGridLine","gridAreaWidth","horizontalLineCount","verticalLineCount","color","useMemo","horizontalGridLines","horizontalGridPerBlockHeight","verticalGridLines","verticalGridPerBlockHeight","push","_jsxs","_Fragment","children","map","points","_jsx","Line","stroke","strokeWidth","lineCap","lineJoin","tension","listening","useHorizontalLabel","labelCount","labelWidth","labelTextList","labelLines","text","formatShortNumber","lineX","labelText","Text","fontSize","fontFamily","fill","padding","align","verticalAlign","useLiquidityLine","leftStatAreaPoints","rightStatAreaPoints","maxLeftHeight","maxRightHeight","colorMap","leftLine","minPointY","statPoint","rectangleHeight","linearGradientPoints","rightEndPointX","rightEndPointY","leftStartPointY","leftStartPointX","closed","fillLinearGradientStartPoint","fillLinearGradientEndPoint","fillLinearGradientColorStops","leftBg","rightLine","firstPointX","unshift","rightBg","useMiddleLine","topPointX","usePoints","params","b","q","b0","q0","i","K","k","R","eq","solveQuadraticFunctionForTarget","pmmState","PMMStateFromSDK","B","Q","B0","Q0","mtFeeRate","lpFeeRate","pmm","PMMHelper","leftStatPoints","rightStatPoints","midPrice","GetMidPrice","portion","gt","giveAmount","getAmount","QuerySellBase","isNaN","price","QuerySellQuote","dividedBy","middlePriceLN10","lastStatPoint","priceChange","abs","giveAmountChange","getAmountChange","leftRectangleHeight","area","max","lastPrice","lastGiveAmount","lastGetAmount","rightRectangleHeight","leftStartStatPoint","middleStatPoint","rightEndStatPoint","minX","maxX","rangeLN10","bgColor","LiquidityChartKonva","baseTokenSymbol","quoteTokenSymbol","xAxisLabelHeight","tooltipRef","useRef","colorMapRes","merge","grid","midPriceLine","leftColor","rightColor","tooltipBg","tooltipColor","undefined","textColor","handleMouseover","evt","current","tooltip","node","mousePos","_a","getStage","getPointerPosition","middleX","result","targetAreaPointX","targetAreaPointY","tooltipLabel","findOne","toolTipVertLine","joinCircle","tooltipText","tooltipTag","priceTextLabel","priceTextLabelText","position","t","amount","symbol","pointerDirection","pointerHeight","pointerWidth","offsetX","offsetY","joinFill","joinStroke","colorRgb","targetLN10Gradient","xGradient","firstPointY","show","handleMouseOut","hide","gridLine","horizontalLabel","middleLine","Stage","onMouseMove","onMouseOver","onMouseEnter","onMouseOut","Layer","Rect","ref","visible","id","dash","Circle","radius","Label","Tag","cornerRadius","lineHeight","labelPadding","LiquidityChart","pmmModel","pmmParams","notShowTipText"],"mappings":"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"}
|