Skip to content

Commit 6f5bd3d

Browse files
committed
metrics: Track RPC migration path (from/to) in banner update event
Change from single rpc_endpoint_url to from_rpc_domain and to_rpc_domain properties to track the complete migration path when users switch RPCs from the network connection banner. This enables analytics to identify: - Which RPC endpoints are problematic (high from_rpc_domain counts) - Which RPC endpoints users prefer (high to_rpc_domain counts) - Common migration patterns (FROM → TO pairs)
1 parent c19334f commit 6f5bd3d

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

ui/pages/settings/networks-tab/networks-form/networks-form.test.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,18 @@ describe('NetworkForm Component', () => {
482482
<MetaMetricsContext.Provider value={mockTrackEvent}>
483483
<NetworksForm
484484
{...propNetworkDisplay}
485+
networkFormState={{
486+
...propNetworkDisplay.networkFormState,
487+
rpcUrls: {
488+
defaultRpcEndpointIndex: 0,
489+
rpcEndpoints: [
490+
{
491+
url: 'https://monad-mainnet.infura.io/v3/',
492+
type: 'custom',
493+
},
494+
],
495+
},
496+
}}
485497
existingNetwork={{
486498
chainId: '0x64',
487499
name: 'Ethereum',
@@ -509,7 +521,8 @@ describe('NetworkForm Component', () => {
509521
event: 'Network Connection Banner RPC Updated',
510522
properties: {
511523
chain_id_caip: 'eip155:100',
512-
rpc_endpoint_url: 'mainnet.infura.io',
524+
from_rpc_domain: 'mainnet.infura.io',
525+
to_rpc_domain: 'monad-mainnet.infura.io',
513526
},
514527
});
515528
});
@@ -627,7 +640,8 @@ describe('NetworkForm Component', () => {
627640
event: 'Network Connection Banner RPC Updated',
628641
properties: {
629642
chain_id_caip: 'eip155:100',
630-
rpc_endpoint_url: 'custom',
643+
from_rpc_domain: 'custom',
644+
to_rpc_domain: 'custom',
631645
},
632646
});
633647
});

ui/pages/settings/networks-tab/networks-form/networks-form.tsx

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -315,17 +315,21 @@ export const NetworksForm = ({
315315

316316
// Track RPC update from network connection banner
317317
if (trackRpcUpdateFromBanner) {
318-
const selectedRpcEndpoint =
318+
const newRpcEndpoint =
319319
networkPayload.rpcEndpoints[
320320
networkPayload.defaultRpcEndpointIndex
321321
];
322+
const oldRpcEndpoint =
323+
existingNetwork.rpcEndpoints[
324+
existingNetwork.defaultRpcEndpointIndex ?? 0
325+
];
326+
322327
const chainIdAsDecimal = hexToNumber(chainIdHex);
323-
const sanitizedRpcUrl = isPublicEndpointUrl(
324-
selectedRpcEndpoint.url,
325-
infuraProjectId ?? '',
326-
)
327-
? onlyKeepHost(selectedRpcEndpoint.url)
328-
: 'custom';
328+
329+
const sanitizeRpcUrl = (url: string) =>
330+
isPublicEndpointUrl(url, infuraProjectId ?? '')
331+
? onlyKeepHost(url)
332+
: 'custom';
329333

330334
trackEvent({
331335
category: MetaMetricsEventCategory.Network,
@@ -334,7 +338,8 @@ export const NetworksForm = ({
334338
/* eslint-disable @typescript-eslint/naming-convention */
335339
properties: {
336340
chain_id_caip: `eip155:${chainIdAsDecimal}`,
337-
rpc_endpoint_url: sanitizedRpcUrl,
341+
from_rpc_domain: sanitizeRpcUrl(oldRpcEndpoint.url),
342+
to_rpc_domain: sanitizeRpcUrl(newRpcEndpoint.url),
338343
},
339344
/* eslint-enable @typescript-eslint/naming-convention */
340345
});

0 commit comments

Comments
 (0)