whoisens-lib
Version:
Whois for ENS (Ethereum Name Service) lookup service
59 lines • 2.45 kB
JavaScript
;
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