tokenlon-sdk
Version:
imToken Tokenlon API for node
34 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var ethUtil = require("ethereumjs-util");
var helper_1 = require("./helper");
// sig is buffer
exports.concatSig = function (ecSignatureBuffer) {
var v = ecSignatureBuffer.v, r = ecSignatureBuffer.r, s = ecSignatureBuffer.s;
var vSig = ethUtil.bufferToInt(v);
var rSig = ethUtil.fromSigned(r);
var sSig = ethUtil.fromSigned(s);
var rStr = helper_1.leftPadWith0(ethUtil.toUnsigned(rSig).toString('hex'), 64);
var sStr = helper_1.leftPadWith0(ethUtil.toUnsigned(sSig).toString('hex'), 64);
var vStr = ethUtil.stripHexPrefix(ethUtil.intToHex(vSig));
return ethUtil.addHexPrefix(rStr.concat(sStr, vStr)).toString('hex');
};
exports.personalECSign = function (privateKey, msg) {
var message = ethUtil.toBuffer(msg);
var msgHash = ethUtil.hashPersonalMessage(message);
return ethUtil.ecsign(msgHash, new Buffer(privateKey, 'hex'));
};
exports.personalSign = function (privateKey, msg) {
var sig = exports.personalECSign(privateKey, msg);
return ethUtil.bufferToHex(exports.concatSig(sig));
};
exports.personalECSignHex = function (privateKey, msg) {
var _a = exports.personalECSign(privateKey, msg), r = _a.r, s = _a.s, v = _a.v;
var ecSignature = {
v: v,
r: ethUtil.bufferToHex(r),
s: ethUtil.bufferToHex(s),
};
return ecSignature;
};
//# sourceMappingURL=sign.js.map