@iexec/web3telegram
Version:
Enables secure, blockchain-based messaging by encrypting Telegram user IDs for privacy. It lets users message Ethereum account holders without knowing their Telegram details.
40 lines (36 loc) • 1.09 kB
text/typescript
import { booleanSchema, throwIfMissing } from '../utils/validators.js';
import { fetchUserContacts } from './fetchUserContacts.js';
import {
DappAddressConsumer,
DappWhitelistAddressConsumer,
IExecConsumer,
SubgraphConsumer,
} from './internalTypes.js';
import { Contact, FetchMyContactsParams } from './types.js';
export type FetchMyContacts = typeof fetchMyContacts;
export const fetchMyContacts = async ({
graphQLClient = throwIfMissing(),
iexec = throwIfMissing(),
dappAddressOrENS = throwIfMissing(),
dappWhitelistAddress = throwIfMissing(),
isUserStrict = false,
bulkOnly = false,
}: IExecConsumer &
SubgraphConsumer &
DappAddressConsumer &
DappWhitelistAddressConsumer &
FetchMyContactsParams): Promise<Contact[]> => {
const vIsUserStrict = booleanSchema()
.label('isUserStrict')
.validateSync(isUserStrict);
const userAddress = await iexec.wallet.getAddress();
return fetchUserContacts({
iexec,
graphQLClient,
dappAddressOrENS,
dappWhitelistAddress,
userAddress,
isUserStrict: vIsUserStrict,
bulkOnly,
});
};