Skip to content

Commit c7a6fa6

Browse files
authored
Merge branch 'main' into fix/evaluateCohortEligibility
2 parents 87cd713 + 4bdb5f7 commit c7a6fa6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+603
-740
lines changed

app/_locales/en/messages.json

Lines changed: 20 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/_locales/en_GB/messages.json

Lines changed: 20 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/_locales/ga/messages.json

Lines changed: 0 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/scripts/controllers/app-state-controller.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ import {
4949
GetAddressSecurityAlertResponse,
5050
AddAddressSecurityAlertResponse,
5151
} from '../../../shared/lib/trust-signals';
52-
import { DefaultSubscriptionPaymentOptions } from '../../../shared/types';
52+
import {
53+
DefaultSubscriptionPaymentOptions,
54+
ShieldSubscriptionMetricsPropsFromUI,
55+
} from '../../../shared/types';
5356
import type {
5457
Preferences,
5558
PreferencesControllerGetStateAction,
@@ -128,6 +131,12 @@ export type AppStateControllerState = {
128131
pendingShieldCohortTxType: string | null;
129132
defaultSubscriptionPaymentOptions?: DefaultSubscriptionPaymentOptions;
130133

134+
/**
135+
* The properties for the Shield subscription metrics.
136+
* Since we can't access some of these properties in the background, we need to get them from the UI.
137+
*/
138+
shieldSubscriptionMetricsProps?: ShieldSubscriptionMetricsPropsFromUI;
139+
131140
/**
132141
* Whether the wallet reset is in progress.
133142
*/
@@ -644,6 +653,12 @@ const controllerMetadata: StateMetadata<AppStateControllerState> = {
644653
includeInDebugSnapshot: false,
645654
usedInUi: false,
646655
},
656+
shieldSubscriptionMetricsProps: {
657+
includeInStateLogs: false,
658+
persist: true,
659+
includeInDebugSnapshot: false,
660+
usedInUi: false,
661+
},
647662
};
648663

649664
export class AppStateController extends BaseController<
@@ -1585,4 +1600,17 @@ export class AppStateController extends BaseController<
15851600
defaultSubscriptionPaymentOptions;
15861601
});
15871602
}
1603+
1604+
/**
1605+
* Update the Shield subscription metrics properties which are not accessible in the background directly.
1606+
*
1607+
* @param shieldSubscriptionMetricsProps - The Shield subscription metrics properties.
1608+
*/
1609+
setShieldSubscriptionMetricsProps(
1610+
shieldSubscriptionMetricsProps: ShieldSubscriptionMetricsPropsFromUI,
1611+
): void {
1612+
this.update((state) => {
1613+
state.shieldSubscriptionMetricsProps = shieldSubscriptionMetricsProps;
1614+
});
1615+
}
15881616
}

app/scripts/metamask-controller.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2938,6 +2938,10 @@ export default class MetamaskController extends EventEmitter {
29382938
appStateController.setDefaultSubscriptionPaymentOptions.bind(
29392939
appStateController,
29402940
),
2941+
setShieldSubscriptionMetricsProps:
2942+
appStateController.setShieldSubscriptionMetricsProps.bind(
2943+
appStateController,
2944+
),
29412945

29422946
// EnsController
29432947
tryReverseResolveAddress:

app/scripts/services/subscription/subscription-service.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,13 +230,17 @@ export class SubscriptionService {
230230
const appStateControllerState = this.#messenger.call(
231231
'AppStateController:getState',
232232
);
233-
const { defaultSubscriptionPaymentOptions } = appStateControllerState;
233+
const {
234+
defaultSubscriptionPaymentOptions,
235+
shieldSubscriptionMetricsProps,
236+
} = appStateControllerState;
234237

235238
const accountTypeAndCategory = this.#getAccountTypeAndCategoryForMetrics();
236239

237240
const trackingProps = getSubscriptionRequestTrackingProps(
238241
subscriptionControllerState,
239242
defaultSubscriptionPaymentOptions,
243+
shieldSubscriptionMetricsProps,
240244
transactionMeta,
241245
);
242246

@@ -246,13 +250,17 @@ export class SubscriptionService {
246250
const renewalTrackingProps = getSubscriptionRestartRequestTrackingProps(
247251
subscriptionControllerState,
248252
requestStatus,
253+
shieldSubscriptionMetricsProps,
249254
extrasProps?.error_message as string | undefined,
250255
);
251256

252257
this.#messenger.call('MetaMetricsController:trackEvent', {
253258
event: MetaMetricsEventName.ShieldMembershipRestartRequest,
254259
category: MetaMetricsEventCategory.Shield,
255-
properties: renewalTrackingProps,
260+
properties: {
261+
...accountTypeAndCategory,
262+
...renewalTrackingProps,
263+
},
256264
});
257265
}
258266

@@ -262,8 +270,8 @@ export class SubscriptionService {
262270
properties: {
263271
...accountTypeAndCategory,
264272
...trackingProps,
265-
status: requestStatus,
266273
...extrasProps,
274+
status: requestStatus,
267275
},
268276
});
269277
}

lavamoat/browserify/beta/policy.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,7 @@
900900
"@metamask/superstruct": true,
901901
"@metamask/utils": true,
902902
"@metamask/bridge-controller>bignumber.js": true,
903+
"browserify>buffer": true,
903904
"lodash": true,
904905
"reselect": true,
905906
"uuid": true

lavamoat/browserify/experimental/policy.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,7 @@
900900
"@metamask/superstruct": true,
901901
"@metamask/utils": true,
902902
"@metamask/bridge-controller>bignumber.js": true,
903+
"browserify>buffer": true,
903904
"lodash": true,
904905
"reselect": true,
905906
"uuid": true

lavamoat/browserify/flask/policy.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,7 @@
900900
"@metamask/superstruct": true,
901901
"@metamask/utils": true,
902902
"@metamask/bridge-controller>bignumber.js": true,
903+
"browserify>buffer": true,
903904
"lodash": true,
904905
"reselect": true,
905906
"uuid": true

lavamoat/browserify/main/policy.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,7 @@
900900
"@metamask/superstruct": true,
901901
"@metamask/utils": true,
902902
"@metamask/bridge-controller>bignumber.js": true,
903+
"browserify>buffer": true,
903904
"lodash": true,
904905
"reselect": true,
905906
"uuid": true

0 commit comments

Comments
 (0)