SenShaMart/chain-util.js
Josip Milovac 9847b2056b miner mines continuously,
moved to an account model,
transactions working,
querying working,
more checking of valid data
2023-01-10 17:11:56 +11:00

32 lines
No EOL
706 B
JavaScript

const EC = require('elliptic').ec;
const SHA256 = require('crypto-js/sha256');
const { v1 : uuidV1 } = require ('uuid');
const ec = new EC('secp256k1');
class ChainUtil {
static genKeyPair() {
return ec.genKeyPair();
}
static id() {
return uuidV1();
}
static hash(data) {
return SHA256(JSON.stringify(data)).toString();
}
static verifySignature(publicKey, signature, dataHash) {
return ec.keyFromPublic(publicKey, 'hex').verify(dataHash, signature);
}
static deserializeKeyPair(serialized) {
return ec.keyFromPrivate(serialized, 'hex');
}
static serializeKeyPair(keyPair) {
return keyPair.getPrivate().toString('hex');
}
}
module.exports = ChainUtil;