This repository was archived by the owner on Feb 11, 2020. It is now read-only.
File tree 3 files changed +25
-1
lines changed
3 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -61,9 +61,12 @@ Gets the peerInfo using it's peerId
61
61
` peerIdLike ` can be:
62
62
- A base58 peerId string
63
63
- Example: ` QmfHZLGRxYoF87esc98DetgKwzMhE4gumCC9kq39EBrueM `
64
+ - A [ Multiaddr] ( https://www.npmjs.com/package/multiaddr#api ) string _ with a peer-id_
65
+ - Example: ` /ip4/127.0.0.1/tcp/1/ipfs/QmfHZLGRxYoF87esc98DetgKwzMhE4gumCC9kq39EBrueM `
64
66
- A peerId buffer
65
67
- Example: ` <Buffer 12 20 fb cb db 25 57 c9 4c 7d 73 c6 d9 bb 83 cc e6 4d 7a de 66 59 12 94 bc 8d f3 95 5d 10 e6 ee ce 2e> `
66
68
- A [ PeerId] ( https://www.npmjs.com/package/peer-id#api ) object
69
+ - A [ Multiaddr] ( https://www.npmjs.com/package/multiaddr#api ) object _ with a peer-id_
67
70
- A [ PeerInfo] ( https://www.npmjs.com/package/peer-info#api ) object
68
71
69
72
# License
Original file line number Diff line number Diff line change 3
3
const bs58 = require ( 'bs58' )
4
4
const PeerId = require ( 'peer-id' )
5
5
const PeerInfo = require ( 'peer-info' )
6
+ const Multiaddr = require ( 'multiaddr' )
6
7
7
8
function getB58Str ( peer ) {
8
9
let b58Str
9
10
10
11
if ( typeof peer === 'string' ) {
11
- b58Str = peer
12
+ if ( peer . startsWith ( '/' ) ) {
13
+ b58Str = Multiaddr ( peer ) . getPeerId ( )
14
+ } else {
15
+ b58Str = peer
16
+ }
12
17
} else if ( Buffer . isBuffer ( peer ) ) {
13
18
b58Str = bs58 . encode ( peer ) . toString ( )
14
19
} else if ( PeerId . isPeerId ( peer ) ) {
15
20
b58Str = peer . toB58String ( )
16
21
} else if ( PeerInfo . isPeerInfo ( peer ) ) {
17
22
b58Str = peer . id . toB58String ( )
23
+ } else if ( Multiaddr . isMultiaddr ( peer ) ) {
24
+ b58Str = peer . getPeerId ( )
18
25
} else {
19
26
throw new Error ( 'not valid PeerId or PeerInfo, or B58Str' )
20
27
}
Original file line number Diff line number Diff line change @@ -20,6 +20,8 @@ describe('peer-book', () => {
20
20
let p3
21
21
let p4
22
22
23
+ let p1fullAddr
24
+
23
25
before ( ( done ) => {
24
26
async . parallel ( [
25
27
( cb ) => createPeerInfo ( [
@@ -48,6 +50,8 @@ describe('peer-book', () => {
48
50
p3 = infos [ 2 ]
49
51
p4 = infos [ 3 ]
50
52
53
+ p1fullAddr = p1 . multiaddrs . toArray ( ) [ 0 ] . encapsulate ( '/ipfs/' + p1 . id . toB58String ( ) )
54
+
51
55
done ( )
52
56
} )
53
57
} )
@@ -77,6 +81,16 @@ describe('peer-book', () => {
77
81
expect ( peer ) . to . eql ( p1 )
78
82
} )
79
83
84
+ it ( '.get by multiaddr string' , ( ) => {
85
+ const peer = pb . get ( String ( p1fullAddr ) )
86
+ expect ( peer ) . to . eql ( p1 )
87
+ } )
88
+
89
+ it ( '.get by multiaddr' , ( ) => {
90
+ const peer = pb . get ( p1fullAddr )
91
+ expect ( peer ) . to . eql ( p1 )
92
+ } )
93
+
80
94
it ( '.get by B58String ' , ( ) => {
81
95
const b58Str = p1 . id . toB58String ( )
82
96
const peer = pb . get ( b58Str )
You can’t perform that action at this time.
0 commit comments