@unstoppabledomains/resolution
Version:
Domain Resolution for blockchain domains
26 lines (25 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidTwitterSignature = void 0;
var index_1 = require("./index");
var js_sha3_1 = require("js-sha3");
var recoverSignature_1 = require("./recoverSignature");
var namehash_1 = require("./namehash");
var TwitterVerificationAddress = '0x12cfb13522F13a78b650a8bCbFCf50b7CB899d82';
var isValidTwitterSignature = function (_a) {
var tokenId = _a.tokenId, owner = _a.owner, twitterHandle = _a.twitterHandle, validationSignature = _a.validationSignature;
var tokenIdInDecimals = (0, namehash_1.fromHexStringToDecimals)(tokenId);
var message = [
tokenIdInDecimals,
owner,
'social.twitter.username',
twitterHandle,
]
.map(function (value) {
return '0x' + (0, js_sha3_1.keccak256)(value.startsWith('0x') ? (0, index_1.hexToBytes)(value) : value);
})
.reduce(function (message, hashedValue) { return message + hashedValue; }, '');
var signerAddress = (0, recoverSignature_1.recover)(message, validationSignature);
return signerAddress === TwitterVerificationAddress;
};
exports.isValidTwitterSignature = isValidTwitterSignature;