diff --git a/packages/ipfs-core-types/src/bitswap.ts b/packages/ipfs-core-types/src/bitswap.ts index a9c5474d54..a00c8de9b5 100644 --- a/packages/ipfs-core-types/src/bitswap.ts +++ b/packages/ipfs-core-types/src/bitswap.ts @@ -1,10 +1,10 @@ -import BigInteger from 'bignumber.js' -import PeerId from 'peer-id' -import CID from 'cids' -import { Block } from './block-service' -import { AbortOptions, Await } from './basic' -import { MovingAverage } from './bitswap/moving-avarage' -import { StoreReader, StoreExporter, StoreImporter } from './store' +import type BigInteger from 'bignumber.js' +import type PeerId from 'peer-id' +import type CID from 'cids' +import type { Block } from './block-service' +import type { AbortOptions, Await } from './basic' +import type { MovingAverage } from './bitswap/moving-avarage' +import type { StoreReader, StoreExporter, StoreImporter } from './store' export interface Bitswap extends StoreReader, @@ -17,12 +17,12 @@ export interface Bitswap extends disableStats: () => void wantlistForPeer: (peerId: PeerId, options?: AbortOptions) => Map - ledgerForPeer: (peerId: PeerId) => Ledger + ledgerForPeer: (peerId: PeerId) => null|LedgerForPeer put: (block: Block, options?: AbortOptions) => Await - unwant: (cids: Iterable, options?: AbortOptions) => void - cancelWants: (cids: Iterable) => void + unwant: (cids: CID|CID[], options?: AbortOptions) => void + cancelWants: (cids: CID|CID[]) => void getWantlist: (options?: AbortOptions) => Iterable<[string, WantListEntry]> peers: () => PeerId[] stat: () => Stats @@ -30,6 +30,14 @@ export interface Bitswap extends stop: () => void } +export interface LedgerForPeer { + peer: string + value: number + sent: number + recv: number + exchanged: number +} + export interface Ledger { sentBytes: (n: number) => void receivedBytes: (n: number) => void @@ -87,5 +95,5 @@ export interface Stats { stop: () => void readonly snapshot: Record readonly movingAverages: Record> - push: (counter: number, inc: number) => void + push: (peer: string|null, counter: string, inc: number) => void } diff --git a/packages/ipfs-core-types/src/block-service.ts b/packages/ipfs-core-types/src/block-service.ts index 24e03149eb..c9e1271cc5 100644 --- a/packages/ipfs-core-types/src/block-service.ts +++ b/packages/ipfs-core-types/src/block-service.ts @@ -1,7 +1,7 @@ -import CID from 'cids' -import { Await, AbortOptions } from './basic' -import { StoreReader, StoreImporter, StoreExporter, StoreEraser } from './store' -import { Bitswap } from './bitswap' +import type CID from 'cids' +import type { Await, AbortOptions } from './basic' +import type { StoreReader, StoreImporter, StoreExporter, StoreEraser } from './store' +import type { Bitswap } from './bitswap' export interface BlockService extends StoreReader, diff --git a/packages/ipfs-core-types/src/block-store.ts b/packages/ipfs-core-types/src/block-store.ts new file mode 100644 index 0000000000..b34f78fd74 --- /dev/null +++ b/packages/ipfs-core-types/src/block-store.ts @@ -0,0 +1,10 @@ +import type { AbortOptions, Await, AwaitIterable } from './basic' +import type { Block } from './block-service' +import type CID from 'cids' + +export interface BlockStore { + has: (cid: CID, options?: AbortOptions) => Await + get: (cid: CID, options?: AbortOptions) => Await + put: (block: Block, options?: AbortOptions) => Await + putMany: (blocks: AsyncIterable|Iterable, options?: AbortOptions) => AwaitIterable +} diff --git a/packages/ipfs-core-types/src/datastore.ts b/packages/ipfs-core-types/src/datastore.ts index 06d332789a..51e69384bc 100644 --- a/packages/ipfs-core-types/src/datastore.ts +++ b/packages/ipfs-core-types/src/datastore.ts @@ -1,4 +1,4 @@ -import { KeyValueStore, StoreBatch, StoreSelector, Resource } from './store' +import type { KeyValueStore, StoreBatch, StoreSelector, Resource } from './store' export interface DataStore extends KeyValueStore, StoreSelector, diff --git a/packages/ipfs-core-types/src/store.ts b/packages/ipfs-core-types/src/store.ts index 8029e4f7bc..4a8c5048b4 100644 --- a/packages/ipfs-core-types/src/store.ts +++ b/packages/ipfs-core-types/src/store.ts @@ -1,5 +1,5 @@ -import { Await, AwaitIterable, AbortOptions } from './basic' +import type { Await, AwaitIterable, AbortOptions } from './basic' export interface ValueStore { get: (options?: AbortOptions) => Await