fix(frontend): 限制下单价格最高为 0.99

- 修改所有价格限制从 1 改为 0.99
- 影响位置:
  - handleOpenManualOrderModal: 默认价格计算
  - handlePriceChange: 手动修改价格
  - handleFetchLatestPrice: 获取最新价
  - handleSizeChange: 修改数量时重新计算价格
  - handleManualOrder: 提交订单时
- 确保价格不会超过 Polymarket 的最高限制 0.99

Made-with: Cursor
This commit is contained in:
WrBug
2026-02-26 21:36:59 +08:00
parent 1688fa9633
commit e5acad5091
+6 -6
View File
@@ -768,9 +768,9 @@ const CryptoTailMonitor: React.FC = () => {
message.warning(t('cryptoTailMonitor.manualOrder.priceNotLoaded'))
return
}
// 计算默认价格:最优 bid × 1.1,限制在 0~1 之间
// 计算默认价格:最优 bid × 1.1,限制在 0~0.99 之间
const rawPrice = parseFloat(bestBid) * 1.1
const defaultPrice = Math.min(1, Math.max(0, rawPrice))
const defaultPrice = Math.min(0.99, Math.max(0, rawPrice))
// 获取账户余额
let availableBalance = '0'
@@ -835,7 +835,7 @@ const CryptoTailMonitor: React.FC = () => {
message.warning(t('cryptoTailMonitor.manualOrder.priceNotLoaded'))
return
}
const price = parseFloat(latestPrice)
const price = Math.min(0.99, parseFloat(latestPrice))
const size = parseFloat(manualOrderModal.size)
const totalAmount = (price * size).toFixed(2)
setManualOrderModal({
@@ -860,7 +860,7 @@ const CryptoTailMonitor: React.FC = () => {
const handlePriceChange = (value: number | null) => {
if (value === null) return
const clamped = Math.min(1, Math.max(0, value))
const clamped = Math.min(0.99, Math.max(0, value))
const price = clamped.toFixed(4)
const size = parseFloat(manualOrderModal.size)
const totalAmount = (clamped * size).toFixed(2)
@@ -871,7 +871,7 @@ const CryptoTailMonitor: React.FC = () => {
if (value === null) return
const size = value.toFixed(2)
const priceRaw = parseFloat(manualOrderModal.price)
const price = Math.min(1, Math.max(0, priceRaw))
const price = Math.min(0.99, Math.max(0, priceRaw))
const totalAmount = (price * value).toFixed(2)
setManualOrderModal({ ...manualOrderModal, size, totalAmount, price: price.toFixed(4) })
}
@@ -915,7 +915,7 @@ const CryptoTailMonitor: React.FC = () => {
strategyId: initData.strategyId,
periodStartUnix: pushData.periodStartUnix,
direction: manualOrderModal.direction,
price: Math.min(1, Math.max(0, parseFloat(manualOrderModal.price) || 0)).toFixed(4),
price: Math.min(0.99, Math.max(0, parseFloat(manualOrderModal.price) || 0)).toFixed(4),
size: manualOrderModal.size,
marketTitle: pushData.marketTitle || initData.marketTitle,
tokenIds