UNPKG

whoisens-lib

Version:

Whois for ENS (Ethereum Name Service) lookup service

59 lines 2.45 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const index_js_1 = __importDefault(require("../utils/index.js")); const json_rpc_js_1 = __importDefault(require("../utils/json-rpc.js")); const ENSRoot_js_1 = __importDefault(require("./ENSRoot.js")); const BaseClass_js_1 = __importDefault(require("./BaseClass.js")); const types_js_1 = require("./types.js"); class ReverseResolver extends BaseClass_js_1.default { constructor(address) { super(); this.address = address; this.reverseAddress = this.getReverseAddress(index_js_1.default.remove0x(this.address)); this.reverseAddressNode = index_js_1.default.node(this.reverseAddress); } async getName() { await this.init(); if (!index_js_1.default.isResult(this.contractAddress)) throw new types_js_1.ResolverNotSetError(); const method = 'name(bytes32)'; const methodId = index_js_1.default.getMethodID(method); const reverseAddressNode = index_js_1.default.remove0x(this.reverseAddressNode); const data = [methodId, reverseAddressNode].join(''); const result = await json_rpc_js_1.default.getInstance().makeRequest({ to: this.contractAddress, data }); return this.returnResult({ contractAddress: this.contractAddress, contractMethod: method, payload: data, parameters: { methodId, reverseAddressNode }, jsonRCPResult: result, result: index_js_1.default.hexToAscii(index_js_1.default.byteToString(result.result, true)), data: { resolveType: types_js_1.ResolveType.reverse, reverseAddress: this.reverseAddress } }); } async findContractAddress() { const ensRoot = new ENSRoot_js_1.default(); 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'; exports.default = ReverseResolver; //# sourceMappingURL=ReverseResolver.js.map