@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.
36 lines • 1.51 kB
JavaScript
import { CompassCallError } from 'iexec/errors';
export async function resolveDappAddressFromCompass(compassUrl, chainId) {
if (!compassUrl) {
return undefined;
}
return (fetch(`${compassUrl}/${chainId}/iapps/web3telegram`)
// Handle network errors
.catch((error) => {
throw new CompassCallError(`Connection to ${compassUrl} failed with a network error`, error);
})
// Handle server errors
.then((response) => {
if (response.status >= 500 && response.status <= 599) {
throw new CompassCallError(`Server at ${compassUrl} encountered an internal error`, Error(`Server internal error: ${response.status} ${response.statusText}`));
}
return response;
})
// Handle unexpected response formats
.then((response) => {
if (response.status !== 200) {
throw new Error(`Failed to fetch dapp address from compass: ${response.statusText}`);
}
const contentType = response.headers.get('Content-Type');
if (!contentType || contentType.indexOf('application/json') === -1) {
throw new Error('Failed to fetch dapp address from compass: response is not JSON');
}
return response.json();
})
.then((data) => {
if (!data || !data.address) {
throw new Error(`No dapp address found in compass response`);
}
return data.address;
}));
}
//# sourceMappingURL=resolveDappAddressFromCompass.js.map