diff --git a/keyserver/src/keyserver.js b/keyserver/src/keyserver.js --- a/keyserver/src/keyserver.js +++ b/keyserver/src/keyserver.js @@ -35,6 +35,7 @@ multimediaUploadResponder, uploadDownloadResponder, } from './uploads/uploads.js'; +import { initENSCache } from './utils/ens-cache.js'; import { prefetchAllURLFacts, getSquadCalURLFacts, @@ -45,8 +46,7 @@ const inviteSecretRegex = /^[a-z0-9]+$/i; (async () => { - await olm.init(); - await prefetchAllURLFacts(); + await Promise.all([olm.init(), prefetchAllURLFacts(), initENSCache()]); const squadCalBaseRoutePath = getSquadCalURLFacts()?.baseRoutePath; const landingBaseRoutePath = getLandingURLFacts()?.baseRoutePath; diff --git a/keyserver/src/utils/ens-cache.js b/keyserver/src/utils/ens-cache.js --- a/keyserver/src/utils/ens-cache.js +++ b/keyserver/src/utils/ens-cache.js @@ -2,27 +2,26 @@ import { ethers } from 'ethers'; -import { ENSCache, type EthersProvider } from 'lib/utils/ens-cache.js'; +import { getCommConfig } from 'lib/utils/comm-config.js'; +import { ENSCache } from 'lib/utils/ens-cache.js'; import { getENSNames as baseGetENSNames, type GetENSNames, } from 'lib/utils/ens-helpers.js'; -const alchemyKey = process.env.COMM_ALCHEMY_KEY; - -let provider: ?EthersProvider; -if (alchemyKey) { - provider = new ethers.providers.AlchemyProvider('mainnet', alchemyKey); -} - -let ensCache: ?ENSCache; -if (provider) { - ensCache = new ENSCache(provider); -} - let getENSNames: ?GetENSNames; -if (ensCache) { +async function initENSCache() { + const alchemySecret = await getCommConfig({ + folder: 'secrets', + name: 'alchemy', + }); + const alchemyKey = alchemySecret?.key; + if (!alchemyKey) { + return; + } + const provider = new ethers.providers.AlchemyProvider('mainnet', alchemyKey); + const ensCache = new ENSCache(provider); getENSNames = baseGetENSNames.bind(null, ensCache); } -export { provider, ensCache, getENSNames }; +export { initENSCache, getENSNames };