Date: Wed, 29 Nov 2023 19:17:44 +0200
Subject: [PATCH 5/8] fix(trading): fees accrued tooltip (#5387)
---
libs/datagrid/src/lib/ag-grid/ag-grid-themed.tsx | 3 +++
libs/liquidity/src/lib/liquidity-table.tsx | 5 +----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libs/datagrid/src/lib/ag-grid/ag-grid-themed.tsx b/libs/datagrid/src/lib/ag-grid/ag-grid-themed.tsx
index 269aa1c99..033b2dc18 100644
--- a/libs/datagrid/src/lib/ag-grid/ag-grid-themed.tsx
+++ b/libs/datagrid/src/lib/ag-grid/ag-grid-themed.tsx
@@ -37,6 +37,9 @@ export const AgGridThemed = ({
{
if (!value) return '-';
- const newValue = new BigNumber(value)
- .times(Number(stakeToCcyVolume) || 1)
- .toString();
let lessThanFull = false,
lessThanMinimum = false;
if (data.sla) {
@@ -153,7 +150,7 @@ export const LiquidityTable = ({
]
);
}
- return addDecimalsFormatNumber(newValue, assetDecimalPlaces ?? 0);
+ return addDecimalsFormatNumber(value, assetDecimalPlaces ?? 0);
};
const stakeToCcyVolumeQuantumFormatter = ({
From f57d6a7c7bafceafc20992754bcad7e2d118cc7e Mon Sep 17 00:00:00 2001
From: Art
Date: Wed, 29 Nov 2023 18:23:14 +0100
Subject: [PATCH 6/8] fix(trading): missing volume discount program issue,
inverted tiers (#5378)
---
.../referrals/hooks/use-referral-program.ts | 30 ++++---
.../referrals/referral-statistics.tsx | 4 +-
apps/trading/client-pages/referrals/tiers.tsx | 6 +-
.../fees-container/fees-container.tsx | 84 ++++++++-----------
4 files changed, 56 insertions(+), 68 deletions(-)
diff --git a/apps/trading/client-pages/referrals/hooks/use-referral-program.ts b/apps/trading/client-pages/referrals/hooks/use-referral-program.ts
index 7a1a6cc76..d501c0161 100644
--- a/apps/trading/client-pages/referrals/hooks/use-referral-program.ts
+++ b/apps/trading/client-pages/referrals/hooks/use-referral-program.ts
@@ -75,22 +75,20 @@ export const useReferralProgram = () => {
const benefitTiers = sortBy(data.currentReferralProgram.benefitTiers, (t) =>
Number(t.referralRewardFactor)
- )
- .reverse()
- .map((t, i) => {
- return {
- tier: i + 1,
- rewardFactor: Number(t.referralRewardFactor),
- commission: Number(t.referralRewardFactor) * 100 + '%',
- discountFactor: Number(t.referralDiscountFactor),
- discount: Number(t.referralDiscountFactor) * 100 + '%',
- minimumVolume: Number(t.minimumRunningNotionalTakerVolume),
- volume: getNumberFormat(0).format(
- Number(t.minimumRunningNotionalTakerVolume)
- ),
- epochs: Number(t.minimumEpochs),
- };
- });
+ ).map((t, i) => {
+ return {
+ tier: i + 1, // sorted in asc order, hence first is the lowest tier
+ rewardFactor: Number(t.referralRewardFactor),
+ commission: Number(t.referralRewardFactor) * 100 + '%',
+ discountFactor: Number(t.referralDiscountFactor),
+ discount: Number(t.referralDiscountFactor) * 100 + '%',
+ minimumVolume: Number(t.minimumRunningNotionalTakerVolume),
+ volume: getNumberFormat(0).format(
+ Number(t.minimumRunningNotionalTakerVolume)
+ ),
+ epochs: Number(t.minimumEpochs),
+ };
+ });
const stakingTiers = sortBy(
data.currentReferralProgram.stakingTiers,
diff --git a/apps/trading/client-pages/referrals/referral-statistics.tsx b/apps/trading/client-pages/referrals/referral-statistics.tsx
index 69e10d30c..628732687 100644
--- a/apps/trading/client-pages/referrals/referral-statistics.tsx
+++ b/apps/trading/client-pages/referrals/referral-statistics.tsx
@@ -29,8 +29,8 @@ import { useLayoutEffect, useRef, useState } from 'react';
import { useCurrentEpochInfoQuery } from './hooks/__generated__/Epoch';
import BigNumber from 'bignumber.js';
import { t } from '@vegaprotocol/i18n';
-import maxBy from 'lodash/maxBy';
import { DocsLinks } from '@vegaprotocol/environment';
+import minBy from 'lodash/minBy';
export const ReferralStatistics = () => {
const { pubKey } = useVegaWallet();
@@ -124,7 +124,7 @@ export const Statistics = ({
);
const nextBenefitTierValue = currentBenefitTierValue
? benefitTiers.find((t) => t.tier === currentBenefitTierValue.tier - 1)
- : maxBy(benefitTiers, (bt) => bt.tier); // max tier number is lowest tier
+ : minBy(benefitTiers, (bt) => bt.tier); // min tier number is lowest tier
const epochsValue =
!isNaN(currentEpoch) && refereeInfo?.atEpoch
? currentEpoch - refereeInfo?.atEpoch
diff --git a/apps/trading/client-pages/referrals/tiers.tsx b/apps/trading/client-pages/referrals/tiers.tsx
index 41cd7c814..46b73b616 100644
--- a/apps/trading/client-pages/referrals/tiers.tsx
+++ b/apps/trading/client-pages/referrals/tiers.tsx
@@ -199,13 +199,13 @@ const TiersTable = ({
...d,
className: classNames({
'from-vega-pink-400 dark:from-vega-pink-600 to-20% bg-highlight':
- d.tier === 1,
+ d.tier >= 3,
'from-vega-purple-400 dark:from-vega-purple-600 to-20% bg-highlight':
d.tier === 2,
'from-vega-blue-400 dark:from-vega-blue-600 to-20% bg-highlight':
- d.tier === 3,
+ d.tier === 1,
'from-vega-orange-400 dark:from-vega-orange-600 to-20% bg-highlight':
- d.tier > 3,
+ d.tier == 0,
}),
}))}
/>
diff --git a/apps/trading/components/fees-container/fees-container.tsx b/apps/trading/components/fees-container/fees-container.tsx
index ea4c8a095..2e156b821 100644
--- a/apps/trading/components/fees-container/fees-container.tsx
+++ b/apps/trading/components/fees-container/fees-container.tsx
@@ -36,7 +36,7 @@ export const FeesContainer = () => {
const { data: markets, loading: marketsLoading } = useMarketList();
const { data: programData, loading: programLoading } =
- useDiscountProgramsQuery();
+ useDiscountProgramsQuery({ errorPolicy: 'ignore' });
const volumeDiscountWindowLength =
programData?.currentVolumeDiscountProgram?.windowLength || 1;
@@ -459,25 +459,19 @@ const VolumeTiers = ({
- {Array.from(tiers)
- .reverse()
- .map((tier, i) => {
- const isUserTier = tiers.length - 1 - tierIndex === i;
+ {Array.from(tiers).map((tier, i) => {
+ const isUserTier = tiers.length - 1 - tierIndex === i;
- return (
-
- {i + 1} |
-
- {formatPercentage(Number(tier.volumeDiscountFactor))}%
- |
-
- {formatNumber(tier.minimumRunningNotionalTakerVolume)}
- |
- {isUserTier ? formatNumber(lastEpochVolume) : ''} |
- {isUserTier ? : null} |
-
- );
- })}
+ return (
+
+ {i + 1} |
+ {formatPercentage(Number(tier.volumeDiscountFactor))}% |
+ {formatNumber(tier.minimumRunningNotionalTakerVolume)} |
+ {isUserTier ? formatNumber(lastEpochVolume) : ''} |
+ {isUserTier ? : null} |
+
+ );
+ })}
@@ -518,37 +512,33 @@ const ReferralTiers = ({
- {Array.from(tiers)
- .reverse()
- .map((t, i) => {
- const isUserTier = tiers.length - 1 - tierIndex === i;
+ {Array.from(tiers).map((t, i) => {
+ const isUserTier = tiers.length - 1 - tierIndex === i;
- const requiredVolume = Number(
- t.minimumRunningNotionalTakerVolume
+ const requiredVolume = Number(t.minimumRunningNotionalTakerVolume);
+ let unlocksIn = null;
+
+ if (
+ referralVolumeInWindow >= requiredVolume &&
+ epochsInSet < t.minimumEpochs
+ ) {
+ unlocksIn = (
+
+ Unlocks in {t.minimumEpochs - epochsInSet} epochs
+
);
- let unlocksIn = null;
+ }
- if (
- referralVolumeInWindow >= requiredVolume &&
- epochsInSet < t.minimumEpochs
- ) {
- unlocksIn = (
-
- Unlocks in {t.minimumEpochs - epochsInSet} epochs
-
- );
- }
-
- return (
-
- {i + 1} |
- {formatPercentage(Number(t.referralDiscountFactor))}% |
- {formatNumber(t.minimumRunningNotionalTakerVolume)} |
- {t.minimumEpochs} |
- {isUserTier ? : unlocksIn} |
-
- );
- })}
+ return (
+
+ {i + 1} |
+ {formatPercentage(Number(t.referralDiscountFactor))}% |
+ {formatNumber(t.minimumRunningNotionalTakerVolume)} |
+ {t.minimumEpochs} |
+ {isUserTier ? : unlocksIn} |
+
+ );
+ })}
From 2d926c0ce05ca18b59b8d2a52d7033d935630846 Mon Sep 17 00:00:00 2001
From: Art