Skip to content

Commit 93a9788

Browse files
committed
refactor(predict): extract user trait setting into dedicated method
- Create private setPolymarketAccountCreatedTrait() method - Use .catch() for proper async error handling (fire-and-forget pattern) - Clean separation of concerns with descriptive method name - Non-blocking trait setting with error logging to Sentry - All 169 tests passing
1 parent bf1c1bf commit 93a9788

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

app/components/UI/Predict/providers/polymarket/PolymarketProvider.ts

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,6 +1300,32 @@ export class PolymarketProvider implements PredictProvider {
13001300
return result;
13011301
}
13021302

1303+
/**
1304+
* Set user trait for Polymarket account creation via MetaMask
1305+
* Fire-and-forget operation that logs errors but doesn't fail
1306+
*/
1307+
private setPolymarketAccountCreatedTrait(): void {
1308+
MetaMetrics.getInstance()
1309+
.addTraitsToUser({
1310+
[UserProfileProperty.CREATED_POLYMARKET_ACCOUNT_VIA_MM]: true,
1311+
})
1312+
.catch((error) => {
1313+
// Log error but don't fail the deposit preparation
1314+
Logger.error(error as Error, {
1315+
tags: {
1316+
feature: PREDICT_CONSTANTS.FEATURE_NAME,
1317+
provider: 'polymarket',
1318+
},
1319+
context: {
1320+
name: 'PolymarketProvider',
1321+
data: {
1322+
method: 'setPolymarketAccountCreatedTrait',
1323+
},
1324+
},
1325+
});
1326+
});
1327+
}
1328+
13031329
public async prepareDeposit(
13041330
params: PrepareDepositParams & { signer: Signer },
13051331
): Promise<PrepareDepositResponse> {
@@ -1344,27 +1370,7 @@ export class PolymarketProvider implements PredictProvider {
13441370
transactions.push(deployTransaction);
13451371

13461372
// Set user trait for Polymarket account creation via MetaMask
1347-
try {
1348-
const metrics = MetaMetrics.getInstance();
1349-
await metrics.addTraitsToUser({
1350-
[UserProfileProperty.CREATED_POLYMARKET_ACCOUNT_VIA_MM]: true,
1351-
});
1352-
} catch (error) {
1353-
// Log error but don't fail the deposit preparation
1354-
Logger.error(error as Error, {
1355-
tags: {
1356-
feature: PREDICT_CONSTANTS.FEATURE_NAME,
1357-
provider: 'polymarket',
1358-
},
1359-
context: {
1360-
name: 'PolymarketProvider',
1361-
data: {
1362-
method: 'prepareDeposit',
1363-
action: 'setPolymarketAccountTrait',
1364-
},
1365-
},
1366-
});
1367-
}
1373+
this.setPolymarketAccountCreatedTrait();
13681374
}
13691375

13701376
if (!accountState.hasAllowances) {

0 commit comments

Comments
 (0)