1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-30 16:18:07 +01:00
metamask-extension/app/scripts/lib/is-phish.js

24 lines
766 B
JavaScript

const levenshtein = require('fast-levenshtein')
const LEVENSHTEIN_TOLERANCE = 4
// credit to @sogoiii and @409H for their help!
// Return a boolean on whether or not a phish is detected.
function isPhish({ hostname, blacklist, whitelist, fuzzylist }) {
// check if the domain is part of the whitelist.
if (whitelist && whitelist.includes(hostname)) return false
// check if the domain is part of the blacklist.
if (blacklist && blacklist.includes(hostname)) return true
// check for similar values.
const levenshteinForm = hostname.replace(/\./g, '')
const levenshteinMatched = fuzzylist.some((element) => {
return levenshtein.get(element, levenshteinForm) <= LEVENSHTEIN_TOLERANCE
})
return levenshteinMatched
}
module.exports = isPhish