UNPKG

@authereum/resolution

Version:
34 lines (33 loc) 1.51 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var _1 = require("."); var js_sha3_1 = require("js-sha3"); var recoverSignature_1 = require("./recoverSignature"); var Cns_1 = __importDefault(require("../Cns")); var standardKeys_1 = __importDefault(require("./standardKeys")); var bn_js_1 = __importDefault(require("bn.js")); exports.isValidTwitterSignature = function (_a) { var tokenId = _a.tokenId, owner = _a.owner, twitterHandle = _a.twitterHandle, validationSignature = _a.validationSignature; var tokenIdInDecimals = fromHexStringToDecimals(tokenId); var message = [ tokenIdInDecimals, owner, standardKeys_1.default.twitter_username, twitterHandle, ] .map(function (value) { return '0x' + js_sha3_1.keccak256(value.startsWith('0x') ? _1.hexToBytes(value) : value); }) .reduce(function (message, hashedValue) { return message + hashedValue; }, ''); var signerAddress = recoverSignature_1.recover(message, validationSignature); return signerAddress === Cns_1.default.TwitterVerificationAddress; }; var fromHexStringToDecimals = function (value) { if (value.startsWith('0x')) { var valueWithoutPrefix = value.slice(2, value.length); var bn = new bn_js_1.default(valueWithoutPrefix, 16); return bn.toString(10); } return value; };