UNPKG

whoisens-lib

Version:

Whois for ENS (Ethereum Name Service) lookup service

53 lines 1.98 kB
import utils from '../utils/index.js'; import jsonRCP from '../utils/json-rpc.js'; import ENSRoot from './ENSRoot.js'; import BaseClass from './BaseClass.js'; import { ResolverNotSetError, ResolveType } from './types.js'; export default class ReverseResolver extends BaseClass { constructor(address) { super(); this.address = address; this.reverseAddress = this.getReverseAddress(utils.remove0x(this.address)); this.reverseAddressNode = utils.node(this.reverseAddress); } async getName() { await this.init(); if (!utils.isResult(this.contractAddress)) throw new ResolverNotSetError(); const method = 'name(bytes32)'; const methodId = utils.getMethodID(method); const reverseAddressNode = utils.remove0x(this.reverseAddressNode); const data = [methodId, reverseAddressNode].join(''); const result = await jsonRCP.getInstance().makeRequest({ to: this.contractAddress, data }); return this.returnResult({ contractAddress: this.contractAddress, contractMethod: method, payload: data, parameters: { methodId, reverseAddressNode }, jsonRCPResult: result, result: utils.hexToAscii(utils.byteToString(result.result, true)), data: { resolveType: ResolveType.reverse, reverseAddress: this.reverseAddress } }); } async findContractAddress() { const ensRoot = new ENSRoot(); return (await ensRoot.getResolver(this.reverseAddress)).result; } getReverseAddress(address) { return `${address}.${ReverseResolver.REVERSE_DOMAIN}`; } async init() { this.contractAddress = await this.findContractAddress(); } } ReverseResolver.REVERSE_DOMAIN = 'addr.reverse'; //# sourceMappingURL=ReverseResolver.js.map