lib/fission/category.js
const { toHexDigit } = require('./hex'); Similar blocks of code found in 2 locations. Consider refactoring.const CATEGORIES = Object.freeze({ GENERIC: 0x0, PERMISSION: 0x1, FIND: 0x2, NEGOTIATION: 0x3, AVAILABILITY: 0x4, FINANCE: 0x5, x60: 0x6, x70: 0x7, x80: 0x8, x90: 0x9, APPLICATION_SPECIFIC: 0xA, xB0: 0xB, xC0: 0xC, xD0: 0xD, CRYPTOGRAPHY: 0xE, OFF_CHAIN: 0xF}); const CATEGORY_NAMES = Object.freeze(Object.keys(CATEGORIES)); const toNumber = (name) => { const id = CATEGORIES[name]; if (id === undefined) throw badLookup(name); return id * 0x10;}; const toHexString = (num) => `0x${toHexDigit(num)}0`; const badLookup = (targetCategory) => Error(`${targetCategory} is not a valid ERC-1066 category`); module.exports = { CATEGORIES, CATEGORY_NAMES, toHexString, toNumber, badLookup};