|
@@ -82,22 +82,29 @@ export async function syncFromByrealApi(): Promise<{
|
|
|
|
|
|
|
|
if (apiPos) {
|
|
if (apiPos) {
|
|
|
// Position exists in API — sync PNL/APR/bonus/fee data
|
|
// Position exists in API — sync PNL/APR/bonus/fee data
|
|
|
- const ageMs = apiPos.positionAgeMs || 0
|
|
|
|
|
|
|
+ const pnlUsd = Number(apiPos.pnlUsd) || 0
|
|
|
|
|
+ const pnlPercent = Number(apiPos.pnlUsdPercent) || 0
|
|
|
|
|
+ const bonusUsd = Number(apiPos.bonusUsd) || 0
|
|
|
|
|
+ const earnedUsd = Number(apiPos.earnedUsd) || 0
|
|
|
|
|
+ const liquidityUsd = Number(apiPos.liquidityUsd) || 0
|
|
|
|
|
+ const totalDeposit = Number(apiPos.totalDeposit) || 0
|
|
|
|
|
+ const ageMs = Number(apiPos.positionAgeMs) || 0
|
|
|
const ageDays = ageMs / (1000 * 60 * 60 * 24)
|
|
const ageDays = ageMs / (1000 * 60 * 60 * 24)
|
|
|
|
|
+
|
|
|
// APR = (earnedUsd / totalDeposit) / ageDays * 365 * 100
|
|
// APR = (earnedUsd / totalDeposit) / ageDays * 365 * 100
|
|
|
let apr = ''
|
|
let apr = ''
|
|
|
- if (apiPos.totalDeposit > 0 && ageDays > 0) {
|
|
|
|
|
- const aprValue = (apiPos.earnedUsd / apiPos.totalDeposit / ageDays) * 365 * 100
|
|
|
|
|
|
|
+ if (totalDeposit > 0 && ageDays > 0) {
|
|
|
|
|
+ const aprValue = (earnedUsd / totalDeposit / ageDays) * 365 * 100
|
|
|
apr = aprValue.toFixed(2)
|
|
apr = aprValue.toFixed(2)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
updatePositionMappingSyncData(dbPos.our_nft_mint, {
|
|
updatePositionMappingSyncData(dbPos.our_nft_mint, {
|
|
|
- pnlUsd: apiPos.pnlUsd?.toFixed(4) || '0',
|
|
|
|
|
- pnlPercent: apiPos.pnlUsdPercent?.toFixed(4) || '0',
|
|
|
|
|
|
|
+ pnlUsd: pnlUsd.toFixed(4),
|
|
|
|
|
+ pnlPercent: pnlPercent.toFixed(4),
|
|
|
apr,
|
|
apr,
|
|
|
- bonusUsd: apiPos.bonusUsd?.toFixed(4) || '0',
|
|
|
|
|
- earnedUsd: apiPos.earnedUsd?.toFixed(4) || '0',
|
|
|
|
|
- liquidityUsd: apiPos.liquidityUsd?.toFixed(2) || '0',
|
|
|
|
|
|
|
+ bonusUsd: bonusUsd.toFixed(4),
|
|
|
|
|
+ earnedUsd: earnedUsd.toFixed(4),
|
|
|
|
|
+ liquidityUsd: liquidityUsd.toFixed(2),
|
|
|
})
|
|
})
|
|
|
synced++
|
|
synced++
|
|
|
} else {
|
|
} else {
|