mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-30 08:09:15 +01:00
34 lines
821 B
JavaScript
34 lines
821 B
JavaScript
|
/* CONTRACT NAMER
|
||
|
*
|
||
|
* Takes an address,
|
||
|
* Returns a nicname if we have one stored,
|
||
|
* otherwise returns null.
|
||
|
*/
|
||
|
|
||
|
const contractMap = require('eth-contract-metadata')
|
||
|
const ethUtil = require('ethereumjs-util')
|
||
|
|
||
|
module.exports = function (addr, identities = {}) {
|
||
|
const checksummed = ethUtil.toChecksumAddress(addr)
|
||
|
if (contractMap[checksummed] && contractMap[checksummed].name) {
|
||
|
return contractMap[checksummed].name
|
||
|
}
|
||
|
|
||
|
const address = addr.toLowerCase()
|
||
|
const ids = hashFromIdentities(identities)
|
||
|
return addrFromHash(address, ids)
|
||
|
}
|
||
|
|
||
|
function hashFromIdentities (identities) {
|
||
|
const result = {}
|
||
|
for (const key in identities) {
|
||
|
result[key] = identities[key].name
|
||
|
}
|
||
|
return result
|
||
|
}
|
||
|
|
||
|
function addrFromHash (addr, hash) {
|
||
|
const address = addr.toLowerCase()
|
||
|
return hash[address] || null
|
||
|
}
|