UNPKG

@iexec/dataprotector

Version:

This product enables users to confidentially store data–such as mail address, documents, personal information ...

38 lines 1.5 kB
import { WorkflowError } from '../../utils/errors.js'; import { resolveENS } from '../../utils/resolveENS.js'; import { addressOrEnsSchema, throwIfMissing } from '../../utils/validators.js'; import { getUserAddOnlyAppWhitelistQuery } from './subgraph/getUserAddOnlyAppWhitelistQuery.js'; export const getUserAddOnlyAppWhitelist = async ({ iexec = throwIfMissing(), graphQLClient = throwIfMissing(), user, }) => { let vUser = addressOrEnsSchema().label('userAddress').validateSync(user); if (vUser) { // ENS resolution if needed vUser = await resolveENS(iexec, vUser); } else { vUser = await iexec.wallet.getAddress(); vUser = vUser.toLowerCase(); } try { const getUserAppWhitelistQueryResponse = await getUserAddOnlyAppWhitelistQuery({ graphQLClient, user: vUser, }); const addOnlyAppWhitelists = getUserAppWhitelistQueryResponse.addOnlyAppWhitelists.map((addOnlyAppWhitelist) => ({ address: addOnlyAppWhitelist.id, owner: addOnlyAppWhitelist.owner.id, apps: addOnlyAppWhitelist.apps.map((app) => ({ address: app.id, })), })); return { addOnlyAppWhitelists, }; } catch (e) { throw new WorkflowError({ message: 'Failed to get user addOnlyAppWhitelists information', errorCause: e, }); } }; //# sourceMappingURL=getUserAddOnlyAppWhitelist.js.map