Skip to content

Commit 35be758

Browse files
authoredNov 19, 2021
fix: encode cidv1 prefixes (#383)
The encoding for cidv1 prefixes was incorrect. Also allows passing a hash loader function to the bitswap message deserialiser.
1 parent 76e1839 commit 35be758

31 files changed

+112
-67
lines changed
 

‎package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
},
2323
"ignorePatterns": [
2424
"scripts/*",
25-
"src/types/message/message.*",
25+
"src/message/message.*",
2626
"*.test-d.ts"
2727
]
2828
},
2929
"scripts": {
3030
"generate": "run-s generate:*",
31-
"generate:proto": "pbjs -t static-module -w es6 -r ipfs-bitswap --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/types/message/message.js src/types/message/message.proto",
32-
"generate:proto-types": "pbts -o src/types/message/message.d.ts src/types/message/message.js",
31+
"generate:proto": "pbjs -t static-module -w es6 -r ipfs-bitswap --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/message/message.js src/message/message.proto",
32+
"generate:proto-types": "pbts -o src/message/message.d.ts src/message/message.js",
3333
"build": "aegir build",
3434
"clean": "rimraf dist types",
3535
"lint": "aegir ts -p check && aegir lint",
@@ -91,8 +91,7 @@
9191
"stats-lite": "^2.2.0",
9292
"url": "^0.11.0",
9393
"util": "^0.12.3",
94-
"uuid": "^8.3.2",
95-
"varint": "^6.0.0"
94+
"uuid": "^8.3.2"
9695
},
9796
"dependencies": {
9897
"@vascosantos/moving-average": "^1.1.0",
@@ -112,6 +111,7 @@
112111
"protobufjs": "^6.10.2",
113112
"readable-stream": "^3.6.0",
114113
"uint8arrays": "^3.0.0",
114+
"varint": "^6.0.0",
115115
"varint-decoder": "^1.0.0"
116116
},
117117
"contributors": [

‎src/bitswap.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ import { CID } from 'multiformats/cid'
1111

1212
/**
1313
* @typedef {import('./types').IPFSBitswap} IPFSBitswap
14+
* @typedef {import('./types').MultihashHasherLoader} MultihashHasherLoader
15+
* @typedef {import('./message').BitswapMessage} BitswapMessage
1416
* @typedef {import('peer-id')} PeerId
15-
* @typedef {import('./types/message').BitswapMessage} BitswapMessage
1617
* @typedef {import('interface-blockstore').Blockstore} Blockstore
1718
* @typedef {import('interface-blockstore').Pair} Pair
1819
* @typedef {import('interface-blockstore').Options} Options
19-
* @typedef {import('multiformats/hashes/interface').MultihashHasher} MultihashHasher
2020
*/
2121

2222
const defaultOptions = {
@@ -50,7 +50,7 @@ export class Bitswap extends BaseBlockstore {
5050
* @param {boolean} [options.statsEnabled=false]
5151
* @param {number} [options.statsComputeThrottleTimeout=1000]
5252
* @param {number} [options.statsComputeThrottleMaxQueueSize=1000]
53-
* @param {Record<number, MultihashHasher>} [options.hashers]
53+
* @param {MultihashHasherLoader} [options.hashLoader]
5454
*/
5555
constructor (libp2p, blockstore, options = {}) {
5656
super()
@@ -69,7 +69,7 @@ export class Bitswap extends BaseBlockstore {
6969

7070
// the network delivers messages
7171
this.network = new Network(libp2p, this, this._stats, {
72-
hashers: options.hashers
72+
hashLoader: options.hashLoader
7373
})
7474

7575
// local database

‎src/decision-engine/index.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { CID } from 'multiformats/cid'
22
import { base58btc } from 'multiformats/bases/base58'
3-
import { BitswapMessage as Message } from '../types/message/index.js'
4-
import { Wantlist } from '../types/wantlist/index.js'
3+
import { BitswapMessage as Message } from '../message/index.js'
4+
import { Wantlist } from '../wantlist/index.js'
55
import { Ledger } from './ledger.js'
66
import { RequestQueue } from './req-queue.js'
77
import { TaskMerger } from './task-merger.js'
88
import { logger } from '../utils/index.js'
99

1010
/**
11-
* @typedef {import('../types/message/entry').BitswapMessageEntry} BitswapMessageEntry
11+
* @typedef {import('../message/entry').BitswapMessageEntry} BitswapMessageEntry
1212
* @typedef {import('peer-id')} PeerId
1313
*/
1414

@@ -163,7 +163,7 @@ export class DecisionEngine {
163163

164164
/**
165165
* @param {PeerId} peerId
166-
* @returns {Map<string, import('../types/wantlist/entry').WantListEntry>}
166+
* @returns {Map<string, import('../wantlist/entry').WantListEntry>}
167167
*/
168168
wantlistForPeer (peerId) {
169169
const peerIdStr = peerId.toB58String()
@@ -373,7 +373,7 @@ export class DecisionEngine {
373373

374374
/**
375375
* @private
376-
* @param {import('../types/message/message').Message.Wantlist.WantType} wantType
376+
* @param {import('../message/message').Message.Wantlist.WantType} wantType
377377
* @param {number} blockSize
378378
*/
379379
_sendAsBlock (wantType, blockSize) {

‎src/decision-engine/ledger.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Wantlist } from '../types/wantlist/index.js'
1+
import { Wantlist } from '../wantlist/index.js'
22

33
/**
44
* @typedef {import('multiformats').CID} CID
@@ -43,7 +43,7 @@ export class Ledger {
4343
*
4444
* @param {CID} cid
4545
* @param {number} priority
46-
* @param {import('../types/message/message').Message.Wantlist.WantType} wantType
46+
* @param {import('../message/message').Message.Wantlist.WantType} wantType
4747
* @returns {void}
4848
*/
4949
wants (cid, priority, wantType) {

‎src/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import { Bitswap } from './bitswap.js'
22

33
/**
44
* @typedef {import('./types').IPFSBitswap} IPFSBitswap
5+
* @typedef {import('./types').MultihashHasherLoader} MultihashHasherLoader
56
* @typedef {import('peer-id')} PeerId
6-
* @typedef {import('./types/message')} BitswapMessage
7+
* @typedef {import('./message')} BitswapMessage
78
* @typedef {import('interface-blockstore').Blockstore} Blockstore
89
* @typedef {import('interface-blockstore').Pair} Pair
910
* @typedef {import('interface-blockstore').Options} Options
10-
* @typedef {import('multiformats/hashes/interface').MultihashHasher} MultihashHasher
1111
*/
1212

1313
/**
@@ -17,7 +17,7 @@ import { Bitswap } from './bitswap.js'
1717
* @param {boolean} [options.statsEnabled=false]
1818
* @param {number} [options.statsComputeThrottleTimeout=1000]
1919
* @param {number} [options.statsComputeThrottleMaxQueueSize=1000]
20-
* @param {Record<number, MultihashHasher>} [options.hashers]
20+
* @param {MultihashHasherLoader} [options.hashLoader]
2121
* @returns {IPFSBitswap}
2222
*/
2323
export const createBitswap = (libp2p, blockstore, options = {}) => {
File renamed without changes.

‎src/types/message/index.js renamed to ‎src/message/index.js

+13-11
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ import { sha256 } from 'multiformats/hashes/sha2'
33
import { base58btc } from 'multiformats/bases/base58'
44
// @ts-ignore
55
import vd from 'varint-decoder'
6-
import { isMapEqual } from '../../utils/index.js'
6+
import ve from '../utils/varint-encoder.js'
7+
import { isMapEqual } from '../utils/index.js'
78
import { Message } from './message.js'
89
import { BitswapMessageEntry as Entry } from './entry.js'
9-
import { concat as uint8ArrayConcat } from 'uint8arrays/concat'
1010
import errcode from 'err-code'
1111

1212
/**
13-
* @typedef {import('multiformats/hashes/interface').MultihashHasher} MultihashHasher
13+
* @typedef {import('../types').MultihashHasherLoader} MultihashHasherLoader
1414
*/
1515

1616
export class BitswapMessage {
@@ -174,11 +174,13 @@ export class BitswapMessage {
174174

175175
for (const [cidStr, data] of this.blocks.entries()) {
176176
const cid = CID.parse(cidStr)
177-
const codec = Uint8Array.from([cid.code])
178-
const multihash = cid.multihash.bytes.subarray(0, 2)
179-
const prefix = uint8ArrayConcat([
180-
[cid.version], codec, multihash
181-
], 1 + codec.byteLength + multihash.byteLength)
177+
const version = cid.version
178+
const codec = cid.code
179+
const multihash = cid.multihash.code
180+
const digestLength = cid.multihash.digest.length
181+
const prefix = ve([
182+
version, codec, multihash, digestLength
183+
])
182184

183185
msg.payload.push(
184186
new Message.Block({
@@ -230,9 +232,9 @@ export class BitswapMessage {
230232

231233
/**
232234
* @param {Uint8Array} raw
233-
* @param {Record<number, MultihashHasher>} [hashers]
235+
* @param {MultihashHasherLoader} [hashLoader]
234236
*/
235-
BitswapMessage.deserialize = async (raw, hashers = {}) => {
237+
BitswapMessage.deserialize = async (raw, hashLoader) => {
236238
const decoded = Message.decode(raw)
237239

238240
const isFull = (decoded.wantlist && decoded.wantlist.full) || false
@@ -286,7 +288,7 @@ BitswapMessage.deserialize = async (raw, hashers = {}) => {
286288
const cidVersion = values[0]
287289
const multicodec = values[1]
288290
const hashAlg = values[2]
289-
const hasher = hashAlg === sha256.code ? sha256 : hashers[hashAlg]
291+
const hasher = hashAlg === sha256.code ? sha256 : hashLoader && await hashLoader.getHasher(hashAlg)
290292

291293
if (!hasher) {
292294
throw errcode(new Error('Unknown hash algorithm'), 'ERR_UNKNOWN_HASH_ALG')
File renamed without changes.
File renamed without changes.
File renamed without changes.

‎src/network.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import lp from 'it-length-prefixed'
22
import { pipe } from 'it-pipe'
33
import MulticodecTopology from 'libp2p-interfaces/src/topology/multicodec-topology.js'
4-
import { BitswapMessage as Message } from './types/message/index.js'
4+
import { BitswapMessage as Message } from './message/index.js'
55
import * as CONSTANTS from './constants.js'
66
import { logger } from './utils/index.js'
77

@@ -11,7 +11,7 @@ import { logger } from './utils/index.js'
1111
* @typedef {import('multiaddr').Multiaddr} Multiaddr
1212
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
1313
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
14-
* @typedef {import('multiformats/hashes/interface').MultihashHasher} MultihashHasher
14+
* @typedef {import('./types').MultihashHasherLoader} MultihashHasherLoader
1515
*
1616
* @typedef {Object} Provider
1717
* @property {PeerId} id
@@ -33,7 +33,7 @@ export class Network {
3333
* @param {import('./stats').Stats} stats
3434
* @param {Object} [options]
3535
* @param {boolean} [options.b100Only]
36-
* @param {Record<number, MultihashHasher>} [options.hashers]
36+
* @param {MultihashHasherLoader} [options.hashLoader]
3737
*/
3838
constructor (libp2p, bitswap, stats, options = {}) {
3939
this._log = logger(libp2p.peerId, 'network')
@@ -54,7 +54,7 @@ export class Network {
5454
this._onPeerConnect = this._onPeerConnect.bind(this)
5555
this._onPeerDisconnect = this._onPeerDisconnect.bind(this)
5656
this._onConnection = this._onConnection.bind(this)
57-
this._hashers = options.hashers || {}
57+
this._hashLoader = options.hashLoader
5858
}
5959

6060
start () {
@@ -114,7 +114,7 @@ export class Network {
114114
async (source) => {
115115
for await (const data of source) {
116116
try {
117-
const message = await Message.deserialize(data.slice(), this._hashers)
117+
const message = await Message.deserialize(data.slice(), this._hashLoader)
118118
await this._bitswap._receiveMessage(connection.remotePeer, message)
119119
} catch (/** @type {any} */ err) {
120120
this._bitswap._receiveError(err)

‎src/types.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import type { Blockstore } from 'interface-blockstore'
22
import type PeerId from 'peer-id'
33
import type { CID } from 'multiformats/cid'
4-
import type { Message } from './types/message/message'
4+
import type { Message } from './message/message'
55
import type { IMovingAverage } from '@vascosantos/moving-average'
6+
import type { MultihashHasher } from 'multiformats/hashes/interface'
67

78
export interface WantListEntry {
89
cid: CID
@@ -67,3 +68,7 @@ export interface IPFSBitswap extends Blockstore {
6768
stop: () => void
6869
unwrap: () => Blockstore
6970
}
71+
72+
export interface MultihashHasherLoader {
73+
getHasher: (codeOrName: number | string) => Promise<MultihashHasher>
74+
}

‎src/utils/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import debug from 'debug'
22
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
3-
import { BitswapMessageEntry } from '../types/message/entry.js'
3+
import { BitswapMessageEntry } from '../message/entry.js'
44

55
/**
66
* Creates a logger for the given subsystem

‎src/utils/varint-encoder.js

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import * as varint from 'varint'
2+
3+
/**
4+
* @param {Array<number>} buf
5+
* @returns {Uint8Array}
6+
*/
7+
function varintEncoder (buf) {
8+
let out = new Uint8Array(buf.reduce((acc, curr) => {
9+
// @ts-expect-error types are wrong
10+
return acc + varint.default.encodingLength(curr)
11+
}, 0))
12+
let offset = 0
13+
14+
for (const num of buf) {
15+
out = varint.encode(num, out, offset)
16+
17+
// @ts-expect-error types are wrong
18+
offset += varint.default.encodingLength(num)
19+
}
20+
21+
return out
22+
}
23+
24+
export default varintEncoder

‎src/want-manager/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

2-
import { BitswapMessage as Message } from '../types/message/index.js'
3-
import { Wantlist } from '../types/wantlist/index.js'
2+
import { BitswapMessage as Message } from '../message/index.js'
3+
import { Wantlist } from '../wantlist/index.js'
44
import * as CONSTANTS from '../constants.js'
55
import { MsgQueue } from './msg-queue.js'
66
import { logger } from '../utils/index.js'

‎src/want-manager/msg-queue.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
// @ts-ignore
33
import debounce from 'just-debounce-it'
4-
import { BitswapMessage as Message } from '../types/message/index.js'
4+
import { BitswapMessage as Message } from '../message/index.js'
55
import { logger } from '../utils/index.js'
66
import { wantlistSendDebounceMs } from '../constants.js'
77

File renamed without changes.

‎src/types/wantlist/index.js renamed to ‎src/wantlist/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const sortBy = (fn, list) => {
2929
export class Wantlist {
3030
/**
3131
*
32-
* @param {import('../../stats').Stats} [stats]
32+
* @param {import('../stats').Stats} [stats]
3333
*/
3434
constructor (stats) {
3535
/** @type {Map<string, Entry>} */

‎test/bitswap-mock-internals.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { expect } from 'aegir/utils/chai.js'
55
import PeerId from 'peer-id'
66
import all from 'it-all'
77
import drain from 'it-drain'
8-
import { BitswapMessage as Message } from '../src/types/message/index.js'
8+
import { BitswapMessage as Message } from '../src/message/index.js'
99
import { Bitswap } from '../src/bitswap.js'
1010
import { CID } from 'multiformats/cid'
1111
import { AbortController } from 'native-abort-controller'

‎test/bitswap-stats.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import { expect } from 'aegir/utils/chai.js'
44
import pEvent from 'p-event'
5-
import { BitswapMessage as Message } from '../src/types/message/index.js'
5+
import { BitswapMessage as Message } from '../src/message/index.js'
66
import { Bitswap } from '../src/bitswap.js'
77

88
import { MemoryBlockstore } from 'blockstore-core/memory'

‎test/bitswap.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { MemoryBlockstore } from 'blockstore-core/memory'
99
import { createLibp2pNode } from './utils/create-libp2p-node.js'
1010
import { makeBlocks } from './utils/make-blocks.js'
1111
import { orderedFinish } from './utils/helpers.js'
12-
import { BitswapMessage as Message } from '../src/types/message/index.js'
12+
import { BitswapMessage as Message } from '../src/message/index.js'
1313

1414
/**
1515
* @typedef {import('libp2p')} Libp2p

‎test/decision-engine/decision-engine.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
1616
import drain from 'it-drain'
1717
import defer from 'p-defer'
1818

19-
import { BitswapMessage as Message } from '../../src/types/message/index.js'
19+
import { BitswapMessage as Message } from '../../src/message/index.js'
2020
import { DecisionEngine } from '../../src/decision-engine/index.js'
2121
import { Stats } from '../../src/stats/index.js'
2222
import { MemoryBlockstore } from 'blockstore-core/memory'

‎test/network/network.node.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import pDefer from 'p-defer'
77
import { createLibp2pNode } from '../utils/create-libp2p-node.js'
88
import { makeBlocks } from '../utils/make-blocks.js'
99
import { Network } from '../../src/network.js'
10-
import { BitswapMessage as Message } from '../../src/types/message/index.js'
10+
import { BitswapMessage as Message } from '../../src/message/index.js'
1111
import { Stats } from '../../src/stats/index.js'
1212
import sinon from 'sinon'
1313
import { CID } from 'multiformats/cid'

‎test/types/message.spec.js

+13-12
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ import { base32 } from 'multiformats/bases/base32'
66
import { base64 } from 'multiformats/bases/base64'
77
import { base58btc } from 'multiformats/bases/base58'
88
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
9-
import { concat as uint8ArrayConcat } from 'uint8arrays/concat'
109
import loadFixture from 'aegir/utils/fixtures.js'
11-
import varint from 'varint'
12-
import { Message } from '../../src/types/message/message.js'
13-
import { BitswapMessage } from '../../src/types/message/index.js'
10+
import { Message } from '../../src/message/message.js'
11+
import { BitswapMessage } from '../../src/message/index.js'
1412
import { makeBlocks } from '../utils/make-blocks.js'
13+
import varintEncoder from '../../src/utils/varint-encoder.js'
1514

1615
const testDataPath = 'test/fixtures/serialized-from-go'
1716
const rawMessageFullWantlist = loadFixture(testDataPath + '/bitswap110-message-full-wantlist')
@@ -184,17 +183,19 @@ describe('BitswapMessage', () => {
184183
},
185184
payload: [{
186185
data: b1.data,
187-
prefix: uint8ArrayConcat([
188-
[cid1.version],
189-
varint.encode(cid1.code),
190-
cid1.multihash.bytes.subarray(0, 2)
186+
prefix: varintEncoder([
187+
cid1.version,
188+
cid1.code,
189+
cid1.multihash.code,
190+
cid1.multihash.digest.length
191191
])
192192
}, {
193193
data: b2.data,
194-
prefix: uint8ArrayConcat([
195-
[cid2.version],
196-
varint.encode(cid2.code),
197-
cid2.multihash.bytes.subarray(0, 2)
194+
prefix: varintEncoder([
195+
cid2.version,
196+
cid2.code,
197+
cid2.multihash.code,
198+
cid2.multihash.digest.length
198199
])
199200
}],
200201
blockPresences: [{

‎test/types/wantlist.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { sha256 } from 'multiformats/hashes/sha2'
66
import { base58btc } from 'multiformats/bases/base58'
77
import { base64 } from 'multiformats/bases/base64'
88

9-
import { Wantlist } from '../../src/types/wantlist/index.js'
10-
import { BitswapMessage as Message } from '../../src/types/message/index.js'
9+
import { Wantlist } from '../../src/wantlist/index.js'
10+
import { BitswapMessage as Message } from '../../src/message/index.js'
1111
import { makeBlocks } from '../utils/make-blocks.js'
1212

1313
const DAG_PB_CODEC = 0x70

‎test/utils.spec.js

+15-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
import { expect } from 'aegir/utils/chai.js'
44
import { CID } from 'multiformats/cid'
55
import { sha256 } from 'multiformats/hashes/sha2'
6-
import { BitswapMessageEntry } from '../src/types/message/entry.js'
6+
import { BitswapMessageEntry } from '../src/message/entry.js'
77
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
8-
import { BitswapMessage } from '../src/types/message/index.js'
8+
import { BitswapMessage } from '../src/message/index.js'
99

1010
import { groupBy, uniqWith, pullAllWith, includesWith, sortBy, isMapEqual } from '../src/utils/index.js'
1111
import { SortedMap } from '../src/utils/sorted-map.js'
12+
import varintEncoder from '../src/utils/varint-encoder.js'
13+
// @ts-expect-error no types
14+
import varintDecoder from 'varint-decoder'
1215

1316
const DAG_PB_CODEC = 0x70
1417

@@ -356,3 +359,13 @@ describe('utils spec', function () {
356359
})
357360
})
358361
})
362+
363+
describe('varint encoder', () => {
364+
it('should encode and decode', () => {
365+
const input = [1, 112, 18]
366+
const encoded = varintEncoder(input)
367+
const decoded = varintDecoder(encoded)
368+
369+
expect(decoded).to.deep.equal(input)
370+
})
371+
})

‎test/utils/mocks.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { Stats } from '../../src/stats/index.js'
1010
/**
1111
* @typedef {import('interface-blockstore').Blockstore} BlockStore
1212
* @typedef {import('interface-blockstore').Pair} Pair
13-
* @typedef {import('../../src/types/message').BitswapMessage} Message
13+
* @typedef {import('../../src/message').BitswapMessage} Message
1414
* @typedef {import('multiformats/cid').CID} CID
1515
* @typedef {import('multiaddr').Multiaddr} Multiaddr
1616
* @typedef {import('libp2p')} Libp2p

‎test/utils/store-has-blocks.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { expect } from 'aegir/utils/chai.js'
22
import { CID } from 'multiformats/cid'
33

44
/**
5-
* @param {import('../../src/types/message').BitswapMessage} message
5+
* @param {import('../../src/message').BitswapMessage} message
66
* @param {import('interface-blockstore').Blockstore} store
77
*/
88
export async function storeHasBlocks (message, store) {

‎test/wantmanager/index.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import { expect } from 'aegir/utils/chai.js'
44
import * as CONSTANTS from '../../src/constants.js'
5-
import { BitswapMessage as Message } from '../../src/types/message/index.js'
5+
import { BitswapMessage as Message } from '../../src/message/index.js'
66
import { WantManager } from '../../src/want-manager/index.js'
77
import { Stats } from '../../src/stats/index.js'
88
import { mockNetwork } from '../utils/mocks.js'

‎test/wantmanager/msg-queue.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import { expect } from 'aegir/utils/chai.js'
44
import PeerId from 'peer-id'
5-
import { BitswapMessage as Message } from '../../src/types/message/index.js'
5+
import { BitswapMessage as Message } from '../../src/message/index.js'
66
import { MsgQueue } from '../../src/want-manager/msg-queue.js'
77
import defer from 'p-defer'
88
import { mockNetwork } from '../utils/mocks.js'

‎tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"test"
99
],
1010
"exclude": [
11-
"src/types/message/message.js", // generated file
11+
"src/message/message.js", // generated file
1212
"test/types.test-d.ts"
1313
]
1414
}

0 commit comments

Comments
 (0)
Please sign in to comment.