Socket
Socket
Sign inDemoInstall

multiaddr

Package Overview
Dependencies
Maintainers
2
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

multiaddr - npm Package Compare versions

Comparing version 1.1.3 to 1.2.0

4

package.json
{
"name": "multiaddr",
"version": "1.1.3",
"version": "1.2.0",
"description": "multiaddr implementation (binary + string representation of network addresses)",

@@ -39,6 +39,6 @@ "main": "src/index.js",

"dependencies": {
"buffer-equal": "1.0.0",
"ip": "^1.0.2",
"lodash.filter": "^4.2.1",
"lodash.map": "^4.2.1",
"varint": "^4.0.0",
"xtend": "^4.0.1"

@@ -45,0 +45,0 @@ },

var map = require('lodash.map')
var filter = require('lodash.filter')
// var log = console.log
var convert = require('./convert')
var protocols = require('./protocols')
var varint = require('varint')

@@ -43,3 +43,4 @@ // export codec

if (proto.size === 0) {
return [part]
tuples.push([part])
return tuples
}

@@ -67,2 +68,6 @@

})
if (parts[parts.length - 1] === '') {
parts.pop()
}
return '/' + parts.join('/')

@@ -74,2 +79,5 @@ }

return map(tuples, function (tup) {
if (!Array.isArray(tup)) {
tup = [tup]
}
var proto = protoFromTuple(tup)

@@ -98,3 +106,3 @@ if (tup.length > 1) {

var proto = protoFromTuple(tup)
var buf = new Buffer([proto.code])
var buf = new Buffer(varint.encode(proto.code))
if (tup.length > 1) {

@@ -111,3 +119,4 @@ buf = Buffer.concat([buf, tup[1]]) // add address buffer

for (var i = 0; i < buf.length;) {
var code = buf[i]
var code = varint.decode(buf, i)
var proto = protocols(code)

@@ -119,3 +128,3 @@ if (!proto) {

var size = (proto.size / 8)
code = 0 + buf[i]
code = Number(code)
var addr = buf.slice(i + 1, i + 1 + size)

@@ -129,2 +138,3 @@ i += 1 + size

tuples.push([code, addr])
i = i + varint.decode.bytes - 1
}

@@ -184,6 +194,3 @@ return tuples

var proto = protocols(tup[0])
if (tup.length > 1 && proto.size === 0) {
throw ParseError('tuple has address but protocol size is 0')
}
return proto
}
var map = require('lodash.map')
var extend = require('xtend')
var codec = require('./codec')
var bufeq = require('buffer-equal')
var protocols = require('./protocols')

@@ -10,4 +9,2 @@ var NotImplemented = new Error('Sorry, Not Implemented Yet.')

exports.Buffer = Buffer
function Multiaddr (addr) {

@@ -30,3 +27,3 @@ if (!(this instanceof Multiaddr)) {

} else {
throw new Error('addr must be a string, Buffer, or Multiaddr')
throw new Error('addr must be a string, Buffer, or another Multiaddr')
}

@@ -52,3 +49,3 @@ }

Multiaddr.prototype.inspect = function inspect () {
return '<Mutliaddr ' +
return '<Multiaddr ' +
this.buffer.toString('hex') + ' - ' +

@@ -70,3 +67,3 @@ codec.bufferToString(this.buffer) + '>'

return extend(protocols(code))
// copy to prevent users from modifying the internal objs.
// copy to prevent users from modifying the internal objs.
})

@@ -121,3 +118,3 @@ }

Multiaddr.prototype.equals = function equals (addr) {
return bufeq(this.buffer, addr.buffer)
return this.buffer.equals(addr.buffer)
}

@@ -124,0 +121,0 @@

@@ -34,6 +34,8 @@ var map = require('lodash.map')

[41, 128, 'ip6'],
// these require varint:
[132, 16, 'sctp']
// [480, 0, 'http'],
// [443, 0, 'https'],
[132, 16, 'sctp'],
// these require varint for the protocol code
[302, 0, 'utp'],
[480, 0, 'http'],
[443, 0, 'https'],
[477, 0, 'websockets']
]

@@ -40,0 +42,0 @@

@@ -45,2 +45,41 @@ /* eslint-env mocha */

describe('requiring varint', (done) => {
var uTPAddr
it('create multiaddr', (done) => {
uTPAddr = multiaddr('/ip4/127.0.0.1/udp/1234/utp')
expect(uTPAddr instanceof multiaddr).to.equal(true)
done()
})
it('clone multiaddr', (done) => {
const uTPAddrClone = multiaddr(uTPAddr)
expect(uTPAddrClone !== uTPAddr).to.equal(true)
done()
})
it('reconstruct with buffer', (done) => {
expect(multiaddr(uTPAddr.buffer).buffer === uTPAddr.buffer).to.equal(false)
expect(multiaddr(uTPAddr.buffer).buffer).to.deep.equal(uTPAddr.buffer)
done()
})
it('reconstruct with string', (done) => {
expect(multiaddr(uTPAddr.toString()).buffer === uTPAddr.buffer).to.equal(false)
expect(multiaddr(uTPAddr.toString()).buffer).to.deep.equal(uTPAddr.buffer)
done()
})
it('reconstruct with object', (done) => {
expect(multiaddr(uTPAddr).buffer === uTPAddr.buffer).to.equal(false)
expect(multiaddr(uTPAddr).buffer).to.deep.equal(uTPAddr.buffer)
done()
})
it('empty construct still works', (done) => {
expect(multiaddr('').toString()).to.equal('/')
done()
})
})
describe('manipulation', () => {

@@ -71,1 +110,121 @@ it('basic', (done) => {

})
describe('variants', () => {
it('ip4', (done) => {
const str = '/ip4/127.0.0.1'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip6', (done) => {
const str = '/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip4 + tcp', (done) => {
const str = '/ip4/127.0.0.1/tcp/5000'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip6 + tcp', (done) => {
const str = '/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/5000'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip4 + udp', (done) => {
const str = '/ip4/127.0.0.1/udp/5000'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip6 + udp', (done) => {
const str = '/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/udp/5000'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it.skip('ip4 + dccp', (done) => {})
it.skip('ip6 + dccp', (done) => {})
it.skip('ip4 + sctp', (done) => {})
it.skip('ip6 + sctp', (done) => {})
it('ip4 + udp + utp', (done) => {
const str = '/ip4/127.0.0.1/udp/5000/utp'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip6 + udp + utp', (done) => {
const str = '/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/udp/5000/utp'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip4 + tcp + http', (done) => {
const str = '/ip4/127.0.0.1/tcp/8000/http'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip6 + tcp + http', (done) => {
const str = '/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/8000/http'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip4 + tcp + https', (done) => {
const str = '/ip4/127.0.0.1/tcp/8000/https'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip6 + tcp + https', (done) => {
const str = '/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/8000/https'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip4 + tcp + websockets', (done) => {
const str = '/ip4/127.0.0.1/tcp/8000/websockets'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
it('ip6 + tcp + websockets', (done) => {
const str = '/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/8000/websockets'
const addr = multiaddr(str)
expect(addr).to.have.property('buffer')
expect(addr.toString()).to.equal(str)
done()
})
})

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc