@@ -211,10 +211,6 @@ const controllerMetadata = {
211211 persist : true ,
212212 anonymous : false ,
213213 } ,
214- previousUserTraits : {
215- persist : true ,
216- anonymous : false ,
217- } ,
218214 dataCollectionForMarketing : {
219215 persist : true ,
220216 anonymous : false ,
@@ -239,7 +235,6 @@ const controllerMetadata = {
239235 * @property fragments - Object keyed by UUID with stored fragments as values.
240236 * @property eventsBeforeMetricsOptIn - Array of queued events added before a user opts into metrics.
241237 * @property traits - Traits that are not derived from other state keys.
242- * @property previousUserTraits - The user traits the last time they were computed.
243238 * @property dataCollectionForMarketing - Flag to determine if data collection for marketing is enabled.
244239 * @property marketingCampaignCookieId - The marketing campaign cookie id.
245240 * @property segmentApiCalls - Object keyed by messageId with segment event type and payload as values.
@@ -251,7 +246,6 @@ export type MetaMetricsControllerState = {
251246 fragments : Record < string , MetaMetricsEventFragment > ;
252247 eventsBeforeMetricsOptIn : MetaMetricsEventPayload [ ] ;
253248 traits : MetaMetricsUserTraits ;
254- previousUserTraits ?: MetaMetricsUserTraits ;
255249 dataCollectionForMarketing : boolean | null ;
256250 marketingCampaignCookieId : string | null ;
257251 segmentApiCalls : Record <
@@ -338,7 +332,6 @@ export const getDefaultMetaMetricsControllerState =
338332 latestNonAnonymousEventTimestamp : 0 ,
339333 eventsBeforeMetricsOptIn : [ ] ,
340334 traits : { } ,
341- previousUserTraits : { } ,
342335 fragments : { } ,
343336 segmentApiCalls : { } ,
344337 } ) ;
@@ -354,6 +347,8 @@ export default class MetaMetricsController extends BaseController<
354347
355348 locale : string ;
356349
350+ previousUserTraits ?: MetaMetricsUserTraits ;
351+
357352 version : MetaMetricsControllerOptions [ 'version' ] ;
358353
359354 #extension: MetaMetricsControllerOptions [ 'extension' ] ;
@@ -1180,7 +1175,7 @@ export default class MetaMetricsController extends BaseController<
11801175 ? Object . keys ( metamaskState . custodyAccountDetails ) [ 0 ]
11811176 : null ;
11821177 ///: END:ONLY_INCLUDE_IF
1183- const { traits, previousUserTraits } = this . state ;
1178+ const { traits } = this . state ;
11841179
11851180 const currentTraits = {
11861181 [ MetaMetricsUserTrait . AddressBookEntries ] : sum (
@@ -1213,7 +1208,7 @@ export default class MetaMetricsController extends BaseController<
12131208 ) ,
12141209 [ MetaMetricsUserTrait . NumberOfHDEntropies ] :
12151210 this . #getNumberOfHDEntropies( metamaskState ) ??
1216- previousUserTraits ?. number_of_hd_entropies ,
1211+ this . previousUserTraits ?. number_of_hd_entropies ,
12171212 [ MetaMetricsUserTrait . OpenSeaApiEnabled ] : metamaskState . openSeaEnabled ,
12181213 [ MetaMetricsUserTrait . ThreeBoxEnabled ] : false , // deprecated, hard-coded as false
12191214 [ MetaMetricsUserTrait . Theme ] : metamaskState . theme || 'default' ,
@@ -1244,24 +1239,23 @@ export default class MetaMetricsController extends BaseController<
12441239 ) ,
12451240 } ;
12461241
1247- if ( ! previousUserTraits && metamaskState . participateInMetaMetrics ) {
1248- this . update ( ( state ) => {
1249- state . previousUserTraits = currentTraits ;
1250- } ) ;
1242+ if ( ! this . previousUserTraits && metamaskState . participateInMetaMetrics ) {
1243+ this . previousUserTraits = currentTraits ;
12511244 return currentTraits ;
12521245 }
12531246
1254- if ( previousUserTraits && ! isEqual ( previousUserTraits , currentTraits ) ) {
1247+ if (
1248+ this . previousUserTraits &&
1249+ ! isEqual ( this . previousUserTraits , currentTraits )
1250+ ) {
12551251 const updates = pickBy ( currentTraits , ( v , k ) => {
1256- // @ts -expect-error It's okay that `k` may not be a key of `previousUserTraits`, because we assume `isEqual` can handle it
1257- const previous = previousUserTraits [ k ] ;
1252+ // @ts -expect-error It's okay that `k` may not be a key of `this. previousUserTraits`, because we assume `isEqual` can handle it
1253+ const previous = this . previousUserTraits [ k ] ;
12581254 return ! isEqual ( previous , v ) ;
12591255 } ) ;
12601256
12611257 if ( metamaskState . participateInMetaMetrics ) {
1262- this . update ( ( state ) => {
1263- state . previousUserTraits = currentTraits ;
1264- } ) ;
1258+ this . previousUserTraits = currentTraits ;
12651259 }
12661260
12671261 return updates ;
0 commit comments