diff --git a/app/core/Engine/controllers/transaction-controller/event_properties/metamask-pay.test.ts b/app/core/Engine/controllers/transaction-controller/event_properties/metamask-pay.test.ts index f779890372a3..e1f8db025229 100644 --- a/app/core/Engine/controllers/transaction-controller/event_properties/metamask-pay.test.ts +++ b/app/core/Engine/controllers/transaction-controller/event_properties/metamask-pay.test.ts @@ -46,19 +46,6 @@ describe('Metamask Pay Metrics', () => { }); }); - it('returns nothing if predict_deposit', () => { - request.transactionMeta.nestedTransactions = [ - { type: TransactionType.predictDeposit }, - ]; - - const result = getMetaMaskPayProperties(request); - - expect(result).toStrictEqual({ - properties: {}, - sensitiveProperties: {}, - }); - }); - it('copies properties from parent transaction if bridge', () => { getUIMetricsMock.mockReturnValue({ properties: { @@ -359,4 +346,36 @@ describe('Metamask Pay Metrics', () => { expect(result.properties.mm_pay_dust_usd).toBeUndefined(); }); + + it('sets polymarket_account_created as true if predict deposit and matching nested transaction', () => { + request.transactionMeta.nestedTransactions = [ + { type: TransactionType.predictDeposit }, + { data: '0xa1884d2c1234' }, + ]; + + const result = getMetaMaskPayProperties(request); + + expect(result).toStrictEqual({ + properties: { + polymarket_account_created: true, + }, + sensitiveProperties: {}, + }); + }); + + it('sets polymarket_account_created as false if predict deposit with no matching nested transaction', () => { + request.transactionMeta.nestedTransactions = [ + { type: TransactionType.predictDeposit }, + { data: '0xa1884d2d' }, + ]; + + const result = getMetaMaskPayProperties(request); + + expect(result).toStrictEqual({ + properties: { + polymarket_account_created: false, + }, + sensitiveProperties: {}, + }); + }); }); diff --git a/app/core/Engine/controllers/transaction-controller/event_properties/metamask-pay.ts b/app/core/Engine/controllers/transaction-controller/event_properties/metamask-pay.ts index 1255ca8c36fa..be0137f740ae 100644 --- a/app/core/Engine/controllers/transaction-controller/event_properties/metamask-pay.ts +++ b/app/core/Engine/controllers/transaction-controller/event_properties/metamask-pay.ts @@ -5,6 +5,8 @@ import { orderBy } from 'lodash'; import { NATIVE_TOKEN_ADDRESS } from '../../../../../components/Views/confirmations/constants/tokens'; import { hasTransactionType } from '../../../../../components/Views/confirmations/utils/transaction'; +const FOUR_BYTE_SAFE_PROXY_CREATE = '0xa1884d2c'; + const COPY_METRICS = [ 'mm_pay', 'mm_pay_use_case', @@ -32,6 +34,12 @@ export const getMetaMaskPayProperties: TransactionMetricsBuilder = ({ (batchId && hasTransactionType(tx, PAY_TYPES) && tx.batchId === batchId), ); + if (hasTransactionType(transactionMeta, [TransactionType.predictDeposit])) { + properties.polymarket_account_created = ( + transactionMeta?.nestedTransactions ?? [] + ).some((t) => t.data?.startsWith(FOUR_BYTE_SAFE_PROXY_CREATE)); + } + if (hasTransactionType(transactionMeta, PAY_TYPES) || !parentTransaction) { return { properties,