dpos-offline
Version:
Offline Signing Transactions for DPOS Blockchains
41 lines (40 loc) • 1.32 kB
JavaScript
;
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);
},
};