@1hive/connect-core
Version:
Access and interact with Aragon Organizations and their apps.
26 lines • 1.06 kB
JavaScript
import { isAddress } from '@ethersproject/address';
import { ErrorInvalidLocation } from '../errors';
export const ANY_ENTITY = '0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF';
// Check address equality without checksums
export function addressesEqual(first, second) {
first = first && first.toLowerCase();
second = second && second.toLowerCase();
return first === second;
}
// "Safer" version of [].includes() for addresses
export function includesAddress(arr, address) {
return arr.some((a) => addressesEqual(a, address));
}
export async function resolveAddress(ethersProvider, location) {
const isLocationAddress = isAddress(location);
const address = isLocationAddress
? location
: await ethersProvider.resolveName(location);
if (address && isAddress(address)) {
return address;
}
throw new ErrorInvalidLocation(isLocationAddress
? `The address (${address}) is not valid.`
: `The ENS domain (${location}) doesn’t seem to resolve to an address.`);
}
//# sourceMappingURL=address.js.map