Skip to content

Commit

Permalink
Fix "Wallet Connected" Telemetry (#276)
Browse files Browse the repository at this point in the history
  • Loading branch information
jribbink authored Dec 17, 2024
1 parent 0c3f1c1 commit 79b9a75
Show file tree
Hide file tree
Showing 9 changed files with 45 additions and 59 deletions.
8 changes: 4 additions & 4 deletions components/Discovery.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,11 @@ export default function Discovery() {
} else if (service.method === FCL_SERVICE_METHODS.EXT && rpcEnabled) {
setCurrentView(VIEWS.CONNECT_EXTENSION)
} else {
telemetry.trackWalletConnected({
walletUid: wallet.uid,
serviceMethod: service.method as FCL_SERVICE_METHODS,
})
fcl.WalletUtils.redirect(service)
telemetry.trackWalletConnected(
wallet.uid,
service.method as FCL_SERVICE_METHODS,
)
}

setSelectedWallet(wallet)
Expand Down
5 changes: 4 additions & 1 deletion components/views/ConnectExtension.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ export default function ConnectExtension({ wallet }: ConnectExtensionProps) {
rpc
.request(FclRequest.EXEC_SERVICE, { service })
.then(() => {
telemetry.trackWalletConnected(wallet.uid, FCL_SERVICE_METHODS.EXT)
telemetry.trackWalletConnected({
walletUid: wallet.uid,
serviceMethod: FCL_SERVICE_METHODS.WC,
})
setLastUsed(wallet)
handleCancel()
})
Expand Down
5 changes: 4 additions & 1 deletion components/views/ScanConnect/ScanConnectDesktop.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@ export default function ScanConnectDesktop({
const { setLastUsed } = useWalletHistory()
const telemetry = useTelemetry()
const { uri, connecting, error, isLoading } = useWcUri(() => {
telemetry.trackWalletConnected(wallet.uid, FCL_SERVICE_METHODS.WC)
telemetry.trackWalletConnected({
walletUid: wallet.uid,
serviceMethod: FCL_SERVICE_METHODS.WC,
})
setLastUsed(wallet)
handleCancel()
})
Expand Down
5 changes: 4 additions & 1 deletion components/views/ScanConnect/ScanConnectMobile.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ export default function ScanConnectMobile({
const { setLastUsed } = useWalletHistory()
const telemetry = useTelemetry()
const { uri, connecting, error, isLoading } = useWcUri(() => {
telemetry.trackWalletConnected(wallet.uid, FCL_SERVICE_METHODS.WC)
telemetry.trackWalletConnected({
walletUid: wallet.uid,
serviceMethod: FCL_SERVICE_METHODS.WC,
})
setLastUsed(wallet)
handleCancel()
})
Expand Down
32 changes: 19 additions & 13 deletions helpers/telemetry/telemetry.client.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
import Mixpanel from 'mixpanel-browser'
import { trackWalletConnected, trackWalletDiscoveryRequest } from './telemetry'
import mixpanel from 'mixpanel-browser'
import { TelemetryDataClient } from './types'
import { FCL_SERVICE_METHODS } from '../constants'

let mixpanel: any = null

export function getTelemetryClient(baseData: TelemetryDataClient) {
if (process.env.NEXT_PUBLIC_MIXPANEL_ID && !mixpanel) {
mixpanel = Mixpanel.init(process.env.NEXT_PUBLIC_MIXPANEL_ID)
}
if (process.env.NEXT_PUBLIC_MIXPANEL_ID) {
mixpanel.init(process.env.NEXT_PUBLIC_MIXPANEL_ID)
}

export function clientTelemetry(baseData: TelemetryDataClient) {
return {
trackWalletDiscoveryRequest: trackWalletDiscoveryRequest(
mixpanel,
baseData,
),
trackWalletConnected: trackWalletConnected(mixpanel, baseData),
trackWalletConnected: ({
walletUid,
serviceMethod,
}: {
walletUid: string
serviceMethod: FCL_SERVICE_METHODS
}) => {
mixpanel.track('Wallet Connected', {
walletUid: walletUid,
method: serviceMethod,
...baseData,
})
},
}
}
17 changes: 6 additions & 11 deletions helpers/telemetry/telemetry.server.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
import Mixpanel from 'mixpanel'
import { TelemetryDataServer } from './types'
import { trackWalletConnected, trackWalletDiscoveryRequest } from './telemetry'

let mixpanel: Mixpanel.Mixpanel | null = null
if (process.env.NEXT_PUBLIC_MIXPANEL_ID) {
Mixpanel.init(process.env.NEXT_PUBLIC_MIXPANEL_ID)
}

export function getTelemetryServer(baseData: TelemetryDataServer) {
if (process.env.NEXT_PUBLIC_MIXPANEL_ID && !mixpanel) {
mixpanel = Mixpanel.init(process.env.NEXT_PUBLIC_MIXPANEL_ID)
}

export function serverTelemetry(baseData: TelemetryDataServer) {
return {
trackWalletDiscoveryRequest: trackWalletDiscoveryRequest(
mixpanel,
baseData,
),
trackWalletConnected: trackWalletConnected(mixpanel, baseData),
trackWalletDiscoveryRequest: () =>
mixpanel?.track('Wallet Discovery Request', baseData),
}
}
24 changes: 0 additions & 24 deletions helpers/telemetry/telemetry.ts

This file was deleted.

4 changes: 2 additions & 2 deletions hooks/useTelemetry.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { useConfig } from '../contexts/FclContext'
import { getTelemetryClient } from '../helpers/telemetry/telemetry.client'
import { clientTelemetry } from '../helpers/telemetry/telemetry.client'

export function useTelemetry() {
const cfg = useConfig()
return getTelemetryClient({
return clientTelemetry({
network: cfg.network,
type: 'UI',
fclVersion: cfg.appVersion,
Expand Down
4 changes: 2 additions & 2 deletions pages/api/[network]/_common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { findMatchingPipeVersion } from '../../../helpers/version'
import { NETWORKS } from '../../../helpers/constants'
import { getWalletPipes } from '../../../helpers/wallet-pipes'
import { NextApiRequest } from 'next'
import { getTelemetryServer } from '../../../helpers/telemetry/telemetry.server'
import { serverTelemetry } from '../../../helpers/telemetry/telemetry.server'

// Initializing the cors middleware
export const cors = Cors({
Expand Down Expand Up @@ -41,7 +41,7 @@ export async function getWalletsFromRequest(
const discoveryRequestType = discoveryType || 'API'
const services = clientServices || extensions || []

getTelemetryServer({
serverTelemetry({
type: discoveryRequestType as 'UI' | 'API',
network,
fclVersion,
Expand Down

0 comments on commit 79b9a75

Please sign in to comment.