ソースを参照

feat: 支持 displayReversed 字段,调换交易对显示和价格区间顺序

lushdog@outlook.com 1 ヶ月 前
コミット
45cd8d91a2
1 ファイル変更18 行追加3 行削除
  1. 18 3
      src/app/components/DataTable.tsx

+ 18 - 3
src/app/components/DataTable.tsx

@@ -42,6 +42,7 @@ interface PoolOption {
 
 interface PoolInfo {
 	poolAddress: string
+	displayReversed?: boolean
 	mintA?: {
 		address: string
 		symbol?: string
@@ -190,7 +191,10 @@ function DataTableContent() {
 				const options: PoolOption[] = result.result.data.records.map((pool) => {
 					const symbolA = pool.mintA?.mintInfo?.symbol || ''
 					const symbolB = pool.mintB?.mintInfo?.symbol || ''
-					const label = `${symbolA}/${symbolB}`
+					// 如果 displayReversed 为 true,调换 AB 位置
+					const label = pool.displayReversed
+						? `${symbolB}/${symbolA}`
+						: `${symbolA}/${symbolB}`
 					return {
 						label,
 						value: pool.poolAddress,
@@ -242,18 +246,25 @@ function DataTableContent() {
 				const tokenBaddress = poolMapData?.mintB?.address
 				const getPriceRange = (
 					item: Record<string, unknown>,
-					poolMapData: PoolInfo | undefined
+					poolMapData: PoolInfo | undefined,
+					displayReversed?: boolean
 				) => {
 					const priceUpper = TickMath.getPriceFromTick({
 						tick: item.upperTick as number,
 						decimalsA: poolMapData?.mintA?.decimals || 0,
 						decimalsB: poolMapData?.mintB?.decimals || 0,
+						baseIn: !displayReversed,
 					})
 					const priceLower = TickMath.getPriceFromTick({
 						tick: item.lowerTick as number,
 						decimalsA: poolMapData?.mintA?.decimals || 0,
 						decimalsB: poolMapData?.mintB?.decimals || 0,
+						baseIn: !displayReversed,
 					})
+					// 如果 displayReversed 为 true,调换 priceLower 和 priceUpper 位置
+					if (displayReversed) {
+						return `${priceUpper.toFixed(6)} - ${priceLower.toFixed(6)}`
+					}
 					return `${priceLower.toFixed(6)} - ${priceUpper.toFixed(6)}`
 				}
 				const filteredRecords = records.filter((item) => {
@@ -265,7 +276,11 @@ function DataTableContent() {
 					filteredRecords.map((item, index) => ({
 						...item,
 						key: `${item.id || index}`,
-						priceRange: getPriceRange(item, poolMapData),
+						priceRange: getPriceRange(
+							item,
+							poolMapData,
+							poolMapData?.displayReversed
+						),
 						tokenAaddress,
 						tokenBaddress,
 					})) as TableData[]