Skip to content
This repository was archived by the owner on Feb 11, 2020. It is now read-only.

Commit 1d86918

Browse files
mkg20001vasco-santos
authored andcommittedOct 31, 2019
feat: add get by multiaddrs (#47)
1 parent f2f4add commit 1d86918

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed
 

‎README.md

+3
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,12 @@ Gets the peerInfo using it's peerId
6161
`peerIdLike` can be:
6262
- A base58 peerId string
6363
- 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`
6466
- A peerId buffer
6567
- 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>`
6668
- 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_
6770
- A [PeerInfo](https://www.npmjs.com/package/peer-info#api) object
6871

6972
# License

‎src/index.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,25 @@
33
const bs58 = require('bs58')
44
const PeerId = require('peer-id')
55
const PeerInfo = require('peer-info')
6+
const Multiaddr = require('multiaddr')
67

78
function getB58Str (peer) {
89
let b58Str
910

1011
if (typeof peer === 'string') {
11-
b58Str = peer
12+
if (peer.startsWith('/')) {
13+
b58Str = Multiaddr(peer).getPeerId()
14+
} else {
15+
b58Str = peer
16+
}
1217
} else if (Buffer.isBuffer(peer)) {
1318
b58Str = bs58.encode(peer).toString()
1419
} else if (PeerId.isPeerId(peer)) {
1520
b58Str = peer.toB58String()
1621
} else if (PeerInfo.isPeerInfo(peer)) {
1722
b58Str = peer.id.toB58String()
23+
} else if (Multiaddr.isMultiaddr(peer)) {
24+
b58Str = peer.getPeerId()
1825
} else {
1926
throw new Error('not valid PeerId or PeerInfo, or B58Str')
2027
}

‎test/peer-book.spec.js

+14
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ describe('peer-book', () => {
2020
let p3
2121
let p4
2222

23+
let p1fullAddr
24+
2325
before((done) => {
2426
async.parallel([
2527
(cb) => createPeerInfo([
@@ -48,6 +50,8 @@ describe('peer-book', () => {
4850
p3 = infos[2]
4951
p4 = infos[3]
5052

53+
p1fullAddr = p1.multiaddrs.toArray()[0].encapsulate('/ipfs/' + p1.id.toB58String())
54+
5155
done()
5256
})
5357
})
@@ -77,6 +81,16 @@ describe('peer-book', () => {
7781
expect(peer).to.eql(p1)
7882
})
7983

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+
8094
it('.get by B58String ', () => {
8195
const b58Str = p1.id.toB58String()
8296
const peer = pb.get(b58Str)

0 commit comments

Comments
 (0)
This repository has been archived.