-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathiz3-bitcore-front-sign.js
51 lines (42 loc) · 1.21 KB
/
iz3-bitcore-front-sign.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
const bitcore = require("bitcore-lib");
const Message = require('bitcore-message');
const ADDRESS_PREFIX = 'iz';
/**
* Public key 2 address
* @param pub
* @return {*}
*/
function public2address(pub) {
pub = pub.substr(1);
pub = ADDRESS_PREFIX + pub;
return pub;
}
/**
* Sign data function
* @param data
* @param privateKeyData
* @return {string}
*/
function sign(data, privateKeyData) {
privateKeyData = String(privateKeyData);
data = String(data);
let privateKey = new bitcore.PrivateKey(privateKeyData);
let message = new Message(data);
return message.sign(privateKey).toString();
}
/**
* Generate wallet from configured credentials
* @param {object} config
* @return {{keysPair: {private: {senderContainerName, certificateName}, public: *}}}
*/
function generateWallet() {
let hash = bitcore.crypto.Hash.sha256(Buffer.from(String(Math.random()) + String(Math.random()) + String(Math.random())));
let privateKey = bitcore.crypto.BN.fromBuffer(hash).toString('hex');
let address = new bitcore.PrivateKey(privateKey).toAddress().toString();
return {
keysPair: {
private: privateKey,
public: public2address(address)
}
}
}