1 |
|
2 |
|
3 | ecc=require('eosjs').modules.ecc
|
4 |
|
5 |
|
6 | pubkey=ecc.privateToPublic('5Kf6Aa3LwLePRyTkxd5629mz8FY2p24EADAaTvK3XiXepWxWhu1')
|
7 |
|
8 | b=ecc.PublicKey(pubkey).toBuffer()
|
9 |
|
10 |
|
11 | c=require('create-hash')('rmd160').update(b).digest().slice(0, 4)
|
12 |
|
13 |
|
14 |
|
15 | keya='6QU58BmoskyzzotbHPBRjNTcaSxoETEaiNaA6GYen4n4TYR9Hb'
|
16 |
|
17 |
|
18 |
|
19 | keyb=require('bs58').encode(Buffer.concat([b, Buffer.from('550e696a', 'hex')]))
|
20 |
|
21 |
|
22 | assert.equal('EOS' + keyb, pubkey)
|
23 | assert.notEqual('EOS' + keya, pubkey)
|
24 |
|
25 |
|
26 | require('bs58').decode(keya).slice(-4)
|
27 |
|
28 |
|
29 | require('bs58').decode(keyb).slice(-4)
|
30 |
|
31 |
|
32 |
|
33 |
|
34 | parseInt('550e6412', 16).toString(2)
|
35 |
|
36 |
|
37 | parseInt('550e696a', 16).toString(2)
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 | ---------------
|
46 | pubkey='EOS5C5ZwtkorPABzdVdak9nUC2Yiv5avEDhfMJWob1c5aAoYauNeT'
|
47 |
|
48 | pubkeyCheck = require('bs58').decode(pubkey.substring(3)).slice(-4)
|
49 | pubkeyData = require('bs58').decode(pubkey.substring(3)).slice(0,-4)
|
50 |
|
51 | fixkey = ecc.PublicKey.fromBuffer(pubkeyData).toString()
|
52 | fixkeyCheck = require('bs58').decode(fixkey.substring(3)).slice(-4)
|
53 | fixkeyData = require('bs58').decode(fixkey.substring(3)).slice(0,-4)
|
54 |
|
55 | parseInt(pubkeyCheck.toString('hex'), 16).toString(2)
|
56 | parseInt(fixkeyCheck.toString('hex'), 16).toString(2)
|
57 |
|
58 |
|
59 | 010 0110 1111 0001 0100 1101 0000 0000
|
60 | 111 0110 1110 0010 1101 1101 1000 0001
|
61 |
|