UNPKG

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