UNPKG

dpos-offline

Version:

Offline Signing Transactions for DPOS Blockchains

41 lines (40 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tweetNACL = require("tweetnacl"); var tweetNACLUtil = require("tweetnacl-util"); // tslint:disable-next-line tweetNACL['util'] = tweetNACLUtil; function toBuffer(ab) { if (ab === null) { return null; } var buf = new Buffer(ab.byteLength); var view = new Uint8Array(ab); for (var i = 0; i < buf.length; ++i) { buf[i] = view[i]; } return buf; } exports.toBuffer = toBuffer; exports.api = { crypto_sign_open: function (signature, publicKey) { return toBuffer(tweetNACL.sign.open(signature, publicKey)); }, crypto_sign: function (message, privateKey) { return toBuffer(tweetNACL.sign(message, privateKey)); }, // tslint:disable-next-line crypto_sign_seed_keypair: function (_32ByteSeed) { var res = tweetNACL.sign.keyPair.fromSeed(_32ByteSeed); return { publicKey: toBuffer(res.publicKey), secretKey: toBuffer(res.secretKey), }; }, crypto_sign_detached: function (msg, privKey) { return toBuffer(tweetNACL.sign.detached(msg, privKey)); }, crypto_sign_verify_detached: function (signature, msg, publicKey) { return tweetNACL.sign.detached.verify(msg, signature, publicKey); }, };