diff --git a/components/StakeForm.tsx b/components/StakeForm.tsx index 20b5481..9f593ab 100644 --- a/components/StakeForm.tsx +++ b/components/StakeForm.tsx @@ -36,6 +36,8 @@ import SheenLoader from './shared/SheenLoader' import useLeverageMax from 'hooks/useLeverageMax' import { STAKEABLE_TOKENS_DATA } from 'utils/constants' import { sleep } from 'utils' +import { usePlausible } from 'next-plausible' +import { TelemetryEvents } from 'utils/telemetry' const set = mangoStore.getState().set @@ -97,6 +99,7 @@ function StakeForm({ token: selectedToken }: StakeFormProps) { estimatedNetAPY, } = useBankRates(selectedToken, leverage) const leverageMax = useLeverageMax(selectedToken) + const telemetry = usePlausible() const stakeBank = useMemo(() => { return group?.banksMapByName.get(selectedToken)?.[0] @@ -175,6 +178,19 @@ function StakeForm({ token: selectedToken }: StakeFormProps) { parseFloat(inputAmount), tokenNum || 0, ) + if (mangoAccount !== undefined) { + telemetry('positionCreate', { + props: { + token: selectedToken, + }, + }) + } else { + telemetry('positionIncrease', { + props: { + token: selectedToken, + }, + }) + } notify({ title: 'Transaction confirmed', type: 'success', diff --git a/components/UnstakeForm.tsx b/components/UnstakeForm.tsx index 3bdbb18..c10f1ee 100644 --- a/components/UnstakeForm.tsx +++ b/components/UnstakeForm.tsx @@ -37,6 +37,8 @@ import ButtonGroup from './forms/ButtonGroup' import Decimal from 'decimal.js' import { Disclosure } from '@headlessui/react' import { sleep } from 'utils' +import { usePlausible } from 'next-plausible' +import { TelemetryEvents } from 'utils/telemetry' const set = mangoStore.getState().set @@ -79,6 +81,7 @@ function UnstakeForm({ token: selectedToken }: UnstakeFormProps) { const { usedTokens, totalTokens } = useMangoAccountAccounts() const { group } = useMangoGroup() const { mangoAccount } = useMangoAccount() + const telemetry = usePlausible() const stakeBank = useMemo(() => { return group?.banksMapByName.get(selectedToken)?.[0] @@ -197,6 +200,11 @@ function UnstakeForm({ token: selectedToken }: UnstakeFormProps) { await sleep(500) await actions.fetchMangoAccounts(mangoAccount.owner) await actions.fetchWalletTokens(publicKey) + telemetry('positionReduce', { + props: { + token: selectedToken, + }, + }) } catch (e) { console.error('Error depositing:', e) setSubmitting(false) diff --git a/utils/telemetry.ts b/utils/telemetry.ts new file mode 100644 index 0000000..b7f7646 --- /dev/null +++ b/utils/telemetry.ts @@ -0,0 +1,5 @@ +export type TelemetryEvents = { + positionCreate: { token: string } + positionIncrease: { token: string } + positionReduce: { token: string } +} \ No newline at end of file