{"version":3,"sources":["../src/ts/utils.ts"],"sourcesContent":["import {Address, getAddress} from 'viem';\nimport * as addresses from './AaveAddressBook';\n\ntype AnyObject = {[key: string]: any};\n\nfunction flattenObject(obj: AnyObject, parentKey = '', result: AnyObject = {}): AnyObject {\n  for (const [key, value] of Object.entries(obj)) {\n    const newKey = parentKey ? `${parentKey}.${key}` : key;\n\n    if (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n      flattenObject(value, newKey, result);\n    } else {\n      result[newKey] = value;\n    }\n  }\n  return result;\n}\n\n/**\n * Checks if address is listed on address-book\n * @param value\n * @param chainId\n * @returns string[] found paths to address-book addresses\n */\nexport function getAddressBookReferences(value: Address, chainId: number): string[] {\n  // glob imports have no object properties\n  // therefore we recreate the object via spread & remove addresses unrelated to the chain we are checking\n  const transformedAddresses = Object.keys(addresses).reduce(\n    (acc, key) => {\n      if (addresses[key as keyof typeof addresses].CHAIN_ID === chainId) {\n        const chainAddresses = {...addresses[key as keyof typeof addresses]};\n        // deleting eModes as they only contain duplicates and on lookup should always be deprioritized\n        if ((chainAddresses as any).E_MODES) {\n          delete (chainAddresses as any).E_MODES;\n        }\n        return {...acc, ...flattenObject({[key]: chainAddresses})};\n      }\n      return acc;\n    },\n    {} as Record<string, Address>,\n  );\n  return Object.keys(transformedAddresses).filter(\n    (key) => transformedAddresses[key] === getAddress(value),\n  );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAiB,kBAAiB;AAClC,YAAY,eAAe;AAI3B,SAAS,cAAc,KAAgB,YAAY,IAAI,SAAoB,CAAC,GAAc;AACxF,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,UAAM,SAAS,YAAY,GAAG,SAAS,IAAI,GAAG,KAAK;AAEnD,QAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAG;AACxE,oBAAc,OAAO,QAAQ,MAAM;AAAA,IACrC,OAAO;AACL,aAAO,MAAM,IAAI;AAAA,IACnB;AAAA,EACF;AACA,SAAO;AACT;AAQO,SAAS,yBAAyB,OAAgB,SAA2B;AAGlF,QAAM,uBAAuB,OAAO,KAAK,SAAS,EAAE;AAAA,IAClD,CAAC,KAAK,QAAQ;AACZ,UAAI,UAAU,GAA6B,EAAE,aAAa,SAAS;AACjE,cAAM,iBAAiB,mBAAI,UAAU,GAA6B;AAElE,YAAK,eAAuB,SAAS;AACnC,iBAAQ,eAAuB;AAAA,QACjC;AACA,eAAO,kCAAI,MAAQ,cAAc,EAAC,CAAC,GAAG,GAAG,eAAc,CAAC;AAAA,MAC1D;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EACH;AACA,SAAO,OAAO,KAAK,oBAAoB,EAAE;AAAA,IACvC,CAAC,QAAQ,qBAAqB,GAAG,MAAM,WAAW,KAAK;AAAA,EACzD;AACF;","names":[]}