Skip to content

Commit

Permalink
Adding metrics events for blockaid
Browse files Browse the repository at this point in the history
  • Loading branch information
jpuri committed Jul 24, 2023
1 parent f331039 commit 1b9539a
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 0 deletions.
17 changes: 17 additions & 0 deletions app/scripts/controllers/transactions/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ import {
isEIP1559Transaction,
} from '../../../../shared/modules/transaction.utils';
import { ORIGIN_METAMASK } from '../../../../shared/constants/app';
import {
BlockaidReason,
BlockaidResultType,
} from '../../../../shared/constants/security-provider';
import {
calcGasTotal,
getSwapsTokensReceivedFromTxMeta,
Expand Down Expand Up @@ -359,6 +363,7 @@ export default class TransactionController extends EventEmitter {
undefined,
undefined,
opts.id,
{ securityAlertResponse: opts.securityAlertResponse },
);

const txId = initialTxMeta.id;
Expand Down Expand Up @@ -1636,6 +1641,9 @@ export default class TransactionController extends EventEmitter {
txParams: normalizedTxParams,
origin,
sendFlowHistory,
///: BEGIN:ONLY_INCLUDE_IN(blockaid)
securityAlertResponse: options.securityAlertResponse,
///: END:ONLY_INCLUDE_IN
});

// Add actionId to txMeta to check if same actionId is seen again
Expand Down Expand Up @@ -2322,6 +2330,9 @@ export default class TransactionController extends EventEmitter {
finalApprovalAmount,
contractMethodName,
securityProviderResponse,
///: BEGIN:ONLY_INCLUDE_IN(blockaid)
securityAlertResponse,
///: END:ONLY_INCLUDE_IN
} = txMeta;

const source = referrer === ORIGIN_METAMASK ? 'user' : 'dapp';
Expand Down Expand Up @@ -2498,6 +2509,12 @@ export default class TransactionController extends EventEmitter {
transaction_type: transactionType,
transaction_speed_up: type === TransactionType.retry,
ui_customizations: uiCustomizations,
///: BEGIN:ONLY_INCLUDE_IN(blockaid)
security_alert_response:
securityAlertResponse?.result_type ?? BlockaidResultType.NotApplicable,
security_alert_reason:
securityAlertResponse?.reason ?? BlockaidReason.notApplicable,
///: END:ONLY_INCLUDE_IN
};

if (transactionContractMethod === contractMethodNames.APPROVE) {
Expand Down
22 changes: 22 additions & 0 deletions app/scripts/controllers/transactions/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2423,6 +2423,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: null,
security_alert_reason: 'not_applicable',
security_alert_response: 'not_applicable',
},
sensitiveProperties: {
default_gas: '0.000031501',
Expand Down Expand Up @@ -2510,6 +2512,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: null,
security_alert_reason: 'not_applicable',
security_alert_response: 'not_applicable',
},
sensitiveProperties: {
default_gas: '0.000031501',
Expand Down Expand Up @@ -2609,6 +2613,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: null,
security_alert_reason: 'not_applicable',
security_alert_response: 'not_applicable',
},
sensitiveProperties: {
default_gas: '0.000031501',
Expand Down Expand Up @@ -2698,6 +2704,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: null,
security_alert_reason: 'not_applicable',
security_alert_response: 'not_applicable',
},
sensitiveProperties: {
default_gas: '0.000031501',
Expand Down Expand Up @@ -2765,6 +2773,10 @@ describe('Transaction Controller', function () {
securityProviderResponse: {
flagAsDangerous: 0,
},
securityAlertResponse: {
result_type: 'Benign',
reason: 'none',
},
};

const expectedPayload = {
Expand All @@ -2789,6 +2801,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: null,
security_alert_response: 'Benign',
security_alert_reason: 'none',
},
sensitiveProperties: {
gas_price: '2',
Expand Down Expand Up @@ -2861,6 +2875,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: null,
security_alert_reason: 'not_applicable',
security_alert_response: 'not_applicable',
},
sensitiveProperties: {
baz: 3.0,
Expand Down Expand Up @@ -2935,6 +2951,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: ['flagged_as_malicious'],
security_alert_reason: 'not_applicable',
security_alert_response: 'not_applicable',
},
sensitiveProperties: {
baz: 3.0,
Expand Down Expand Up @@ -3009,6 +3027,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: ['flagged_as_safety_unknown'],
security_alert_reason: 'not_applicable',
security_alert_response: 'not_applicable',
},
sensitiveProperties: {
baz: 3.0,
Expand Down Expand Up @@ -3091,6 +3111,8 @@ describe('Transaction Controller', function () {
device_model: 'N/A',
transaction_speed_up: false,
ui_customizations: null,
security_alert_reason: 'not_applicable',
security_alert_response: 'not_applicable',
},
sensitiveProperties: {
baz: 3.0,
Expand Down
3 changes: 3 additions & 0 deletions shared/constants/security-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,16 @@ export enum BlockaidReason {
/** Malicious trade that results in the victim being rained */
unfairTrade = 'unfair_trade',

notApplicable = 'not_applicable',

other = 'other',
}

export enum BlockaidResultType {
Malicious = 'Malicious',
Warning = 'Warning',
Benign = 'Benign',
NotApplicable = 'not_applicable',
}

/**
Expand Down

0 comments on commit 1b9539a

Please sign in to comment.