|
|
@@ -1,5 +1,6 @@
|
|
|
'use client'
|
|
|
|
|
|
+import { TickMath } from '@/lib/byreal-clmm-sdk/src/instructions/utils/tickMath'
|
|
|
import { useEffect, useState } from 'react'
|
|
|
import { Table, Select, Typography, Tag, Button, InputNumber, App } from 'antd'
|
|
|
|
|
|
@@ -10,6 +11,7 @@ interface TableData {
|
|
|
positionAgeMs: number
|
|
|
tokenAaddress?: string
|
|
|
tokenBaddress?: string
|
|
|
+ priceRange?: string
|
|
|
[key: string]: unknown
|
|
|
}
|
|
|
|
|
|
@@ -38,15 +40,19 @@ interface PoolInfo {
|
|
|
mintA?: {
|
|
|
address: string
|
|
|
symbol?: string
|
|
|
+ decimals?: number
|
|
|
mintInfo?: {
|
|
|
symbol?: string
|
|
|
+ decimals?: number
|
|
|
}
|
|
|
}
|
|
|
mintB?: {
|
|
|
address: string
|
|
|
symbol?: string
|
|
|
+ decimals?: number
|
|
|
mintInfo?: {
|
|
|
symbol?: string
|
|
|
+ decimals?: number
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -151,9 +157,26 @@ function DataTableContent() {
|
|
|
: undefined
|
|
|
const tokenAaddress = poolMapData?.mintA?.address
|
|
|
const tokenBaddress = poolMapData?.mintB?.address
|
|
|
+ const getPriceRange = (
|
|
|
+ item: Record<string, unknown>,
|
|
|
+ poolMapData: PoolInfo | undefined
|
|
|
+ ) => {
|
|
|
+ const priceUpper = TickMath.getPriceFromTick({
|
|
|
+ tick: item.upperTick as number,
|
|
|
+ decimalsA: poolMapData?.mintA?.decimals || 0,
|
|
|
+ decimalsB: poolMapData?.mintB?.decimals || 0,
|
|
|
+ })
|
|
|
+ const priceLower = TickMath.getPriceFromTick({
|
|
|
+ tick: item.lowerTick as number,
|
|
|
+ decimalsA: poolMapData?.mintA?.decimals || 0,
|
|
|
+ decimalsB: poolMapData?.mintB?.decimals || 0,
|
|
|
+ })
|
|
|
+ return `${priceLower.toFixed(6)} - ${priceUpper.toFixed(6)}`
|
|
|
+ }
|
|
|
setData(
|
|
|
records.map((item, index) => ({
|
|
|
key: `${item.id || index}`,
|
|
|
+ priceRange: getPriceRange(item, poolMapData),
|
|
|
tokenAaddress,
|
|
|
tokenBaddress,
|
|
|
...item,
|
|
|
@@ -349,6 +372,14 @@ function DataTableContent() {
|
|
|
)
|
|
|
},
|
|
|
},
|
|
|
+ {
|
|
|
+ title: '区间',
|
|
|
+ dataIndex: 'priceRange',
|
|
|
+ key: 'priceRange',
|
|
|
+ render: (text: string) => {
|
|
|
+ return <span className="font-bold text-lg">{text}</span>
|
|
|
+ },
|
|
|
+ },
|
|
|
{
|
|
|
title: '复制数',
|
|
|
dataIndex: 'copies',
|