- {t('Earn commission & stake rewards')}
+ {t('Vega Community Referral Program')}
+
+ {t(
+ 'Referral programs can be proposed and created via Community governance.'
+ )}
+
{t(
- 'Invite friends and earn rewards from the trading fees they pay. Stake those rewards to earn multipliers on future rewards.'
+ 'Once live, users can generate referral codes to share with their friends and earn commission on their trades, while referred traders can access fee discounts based on the running volume of the group.'
)}
diff --git a/apps/trading/client-pages/referrals/referral-statistics.tsx b/apps/trading/client-pages/referrals/referral-statistics.tsx
index 5f76f0aef..98c31eaf9 100644
--- a/apps/trading/client-pages/referrals/referral-statistics.tsx
+++ b/apps/trading/client-pages/referrals/referral-statistics.tsx
@@ -10,7 +10,6 @@ import {
import { useVegaWallet } from '@vegaprotocol/wallet';
import { DEFAULT_AGGREGATION_DAYS, useReferral } from './hooks/use-referral';
-import { CreateCodeContainer } from './create-code-form';
import classNames from 'classnames';
import { Table } from './table';
import {
@@ -32,7 +31,7 @@ import BigNumber from 'bignumber.js';
import { DocsLinks } from '@vegaprotocol/environment';
import { useT, ns } from '../../lib/use-t';
import { Trans } from 'react-i18next';
-import { ApplyCodeForm } from './apply-code-form';
+import { ApplyCodeForm, ApplyCodeFormContainer } from './apply-code-form';
export const ReferralStatistics = () => {
const { pubKey } = useVegaWallet();
@@ -53,7 +52,7 @@ export const ReferralStatistics = () => {
if (referee?.code) {
return (
<>
-
- {tier < 4 && (
- // eslint-disable-next-line @next/next/no-img-element
-

+
+ {`${referralRewardMultiplier}x multiplier`}
-
-
Multiplier {referralRewardMultiplier}x
-
{label}
-
- {t('Stake a minimum of {{minimumStakedTokens}} $VEGA tokens', {
- minimumStakedTokens,
- })}
-
+
+
+
Multiplier {referralRewardMultiplier}x
+
+ {t('Stake a minimum of {{minimumStakedTokens}} $VEGA tokens', {
+ minimumStakedTokens,
+ })}
+
+
);
@@ -116,47 +123,93 @@ export const TiersContainer = () => {
return (
<>
- {/* Benefit tiers */}
-
-
{t('Referral tiers')}
+
{t('Current Program Details')}
+ {details?.id && (
+
+
+ proposal
+ ,
+ ]}
+ />
+
+ )}
+
+ {/* Meta */}
+
+ {details?.id && (
+
+ {t('Proposal ID:')}{' '}
+
+ {truncateMiddle(details.id)}
+
+
+ )}
{ends && (
-
+
{t('Program ends:')} {ends}
)}
-
- {loading || !benefitTiers || benefitTiers.length === 0 ? (
-
- ) : (
-
({
- ...bt,
- tierElement: (
-
- {bt.tier}
-
- ),
- }))}
- />
- )}
-
- {/* Staking tiers */}
-
-
{t('Staking multipliers')}
-
-
- {loading || !stakingTiers || stakingTiers.length === 0 ? (
- <>
+ {/* Container */}
+
+ {/* Benefit tiers */}
+
+
{t('Benefit tiers')}
+
+ {t(
+ 'Members of a referral group can access the increasing commission and discount benefits defined in the program based on their combined running volume.'
+ )}
+
+
+
+ {loading || !benefitTiers || benefitTiers.length === 0 ? (
-
-
- >
- ) : (
-
- )}
+ ) : (
+
({
+ ...bt,
+ tierElement: (
+
+ {bt.tier}
+
+ ),
+ }))}
+ />
+ )}
+
+
+ {/* Staking tiers */}
+
+
{t('Staking multipliers')}
+
+ {t(
+ 'Referrers can access the commission multipliers defined in the program by staking VEGA tokens in the amounts shown.'
+ )}
+
+
+
+ {loading || !stakingTiers || stakingTiers.length === 0 ? (
+ <>
+
+
+
+ >
+ ) : (
+
+ )}
+
>
);
@@ -168,17 +221,14 @@ const StakingTiers = ({
data: ReturnType
['stakingTiers'];
}) => (
<>
- {data.map(
- ({ tier, label, referralRewardMultiplier, minimumStakedTokens }, i) => (
-
- )
- )}
+ {data.map(({ tier, referralRewardMultiplier, minimumStakedTokens }, i) => (
+
+ ))}
>
);
@@ -218,6 +268,7 @@ const TiersTable = ({
},
{ name: 'epochs', displayName: t('Min. epochs') },
]}
+ className="bg-white dark:bg-vega-cdark-900"
data={data.map((d) => ({
...d,
className: classNames({