1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-25 11:28:51 +01:00
metamask-extension/shared/constants/security-provider.ts
2023-08-03 16:24:54 +05:30

78 lines
2.4 KiB
TypeScript

export enum SecurityProvider {
Blockaid = 'blockaid',
}
type SecurityProviderConfig = Record<
SecurityProvider,
{
/** translation key for security provider name */
readonly tKeyName: string;
/** URL to securty provider website */
readonly url: string;
}
>;
export const SECURITY_PROVIDER_CONFIG: Readonly<SecurityProviderConfig> = {
[SecurityProvider.Blockaid]: {
tKeyName: 'blockaid',
url: 'https://blockaid.io/',
},
};
/** The reason, also referred to as the attack type, provided in the PPOM Response */
export enum BlockaidReason {
/** Approval for a malicious spender */
approvalFarming = 'approval_farming',
/** Malicious signature on Blur order */
blurFarming = 'blur_farming',
/** A known malicous site invoked that transaction */
maliciousDomain = 'malicious_domain',
/** Malicious signature on a Permit order */
permitFarming = 'permit_farming',
/** Direct theft of native assets (ETH/MATIC/AVAX/ etc …) */
rawNativeTokenTransfer = 'raw_native_token_transfer',
/** Malicious raw signature from the user */
rawSignatureFarming = 'raw_signature_farming',
/** Malicious signature on a Seaport order */
seaportFarming = 'seaport_farming',
/** setApprovalForAll for a malicious operator */
setApprovalForAll = 'set_approval_for_all',
/** Malicious signature on other type of trade order (Zero-X / Rarible / etc..) */
tradeOrderFarming = 'trade_order_farming',
/** Direct theft of assets using transfer */
transferFarming = 'transfer_farming',
/** Direct theft of assets using transferFrom */
transferFromFarming = 'transfer_from_farming',
/** Malicious trade that results in the victim being rained */
unfairTrade = 'unfair_trade',
other = 'other',
// Locally defined
notApplicable = 'NotApplicable',
failed = 'Failed',
}
export enum BlockaidResultType {
Malicious = 'Malicious',
Warning = 'Warning',
Benign = 'Benign',
// Locally defined
Failed = 'Failed',
NotApplicable = 'NotApplicable',
}
/**
* @typedef {object} SecurityProviderMessageSeverity
* @property {0} NOT_MALICIOUS - Indicates message is not malicious
* @property {1} MALICIOUS - Indicates message is malicious
* @property {2} NOT_SAFE - Indicates message is not safe
*/
/** @type {SecurityProviderMessageSeverity} */
export const SECURITY_PROVIDER_MESSAGE_SEVERITY = {
NOT_MALICIOUS: 0,
MALICIOUS: 1,
NOT_SAFE: 2,
};