@streamr/trackerless-network 100.0.0-testnet-three.4 → 100.0.0-testnet-three.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/trackerless-network",
3
- "version": "100.0.0-testnet-three.4",
3
+ "version": "100.0.0-testnet-three.6",
4
4
  "description": "Minimal and extendable implementation of the Streamr Network node.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,11 +30,11 @@
30
30
  "dependencies": {
31
31
  "@protobuf-ts/runtime": "^2.8.2",
32
32
  "@protobuf-ts/runtime-rpc": "^2.8.2",
33
- "@streamr/dht": "100.0.0-testnet-three.4",
34
- "@streamr/proto-rpc": "100.0.0-testnet-three.4",
35
- "@streamr/protocol": "100.0.0-testnet-three.4",
36
- "@streamr/test-utils": "100.0.0-testnet-three.4",
37
- "@streamr/utils": "100.0.0-testnet-three.4",
33
+ "@streamr/dht": "100.0.0-testnet-three.6",
34
+ "@streamr/proto-rpc": "100.0.0-testnet-three.6",
35
+ "@streamr/protocol": "100.0.0-testnet-three.6",
36
+ "@streamr/test-utils": "100.0.0-testnet-three.6",
37
+ "@streamr/utils": "100.0.0-testnet-three.6",
38
38
  "eventemitter3": "^5.0.0",
39
39
  "lodash": "^4.17.21",
40
40
  "uuid": "^9.0.1",
@@ -43,9 +43,9 @@
43
43
  "devDependencies": {
44
44
  "@streamr/browser-test-runner": "^0.0.1",
45
45
  "@types/lodash": "^4.14.202",
46
- "@types/uuid": "^9.0.7",
46
+ "@types/uuid": "^9.0.8",
47
47
  "@types/yallist": "^4.0.1",
48
- "commander": "^11.1.0",
48
+ "commander": "^12.0.0",
49
49
  "expect": "^29.6.2",
50
50
  "express": "^4.17.1",
51
51
  "ts-essentials": "^9.4.1",
@@ -1,8 +1,8 @@
1
1
  import { StreamMessage, StreamPartID } from '@streamr/protocol';
2
2
  import { DhtAddress, PeerDescriptor } from '@streamr/dht';
3
- import { NetworkOptions, NetworkStack } from './NetworkStack';
3
+ import { NetworkOptions, NetworkStack, NodeInfo } from './NetworkStack';
4
4
  import { EthereumAddress, MetricsContext } from '@streamr/utils';
5
- import { NodeInfoResponse, ProxyDirection } from './proto/packages/trackerless-network/protos/NetworkRpc';
5
+ import { ProxyDirection } from './proto/packages/trackerless-network/protos/NetworkRpc';
6
6
  export declare const createNetworkNode: (opts: NetworkOptions) => NetworkNode;
7
7
  /**
8
8
  * Convenience wrapper for building client-facing functionality. Used by client.
@@ -32,6 +32,6 @@ export declare class NetworkNode {
32
32
  getNodeId(): DhtAddress;
33
33
  getOptions(): NetworkOptions;
34
34
  getStreamParts(): StreamPartID[];
35
- fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfoResponse>;
35
+ fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfo>;
36
36
  getDiagnosticInfo(): Record<string, unknown>;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface NetworkOptions {
9
9
  networkNode?: StreamrNodeConfig;
10
10
  metricsContext?: MetricsContext;
11
11
  }
12
+ export type NodeInfo = Required<NodeInfoResponse>;
12
13
  export declare class NetworkStack {
13
14
  private layer0Node?;
14
15
  private streamrNode?;
@@ -28,7 +29,8 @@ export declare class NetworkStack {
28
29
  getStreamrNode(): StreamrNode;
29
30
  getLayer0Node(): Layer0Node;
30
31
  getMetricsContext(): MetricsContext;
31
- fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfoResponse>;
32
+ fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfo>;
33
+ createNodeInfo(): NodeInfo;
32
34
  getOptions(): NetworkOptions;
33
35
  private getConnectionManager;
34
36
  stop(): Promise<void>;
@@ -9,6 +9,7 @@ const NetworkRpc_1 = require("./proto/packages/trackerless-network/protos/Networ
9
9
  const lodash_1 = require("lodash");
10
10
  const NodeInfoRpcLocal_1 = require("./logic/node-info/NodeInfoRpcLocal");
11
11
  const NodeInfoClient_1 = require("./logic/node-info/NodeInfoClient");
12
+ const package_json_1 = require("../package.json");
12
13
  const logger = new utils_1.Logger(module);
13
14
  const instances = [];
14
15
  const stopInstances = async () => {
@@ -121,7 +122,23 @@ class NetworkStack {
121
122
  return this.metricsContext;
122
123
  }
123
124
  async fetchNodeInfo(node) {
124
- return this.nodeInfoClient.getInfo(node);
125
+ if (!(0, dht_1.areEqualPeerDescriptors)(node, this.getLayer0Node().getLocalPeerDescriptor())) {
126
+ return this.nodeInfoClient.getInfo(node);
127
+ }
128
+ else {
129
+ return this.createNodeInfo();
130
+ }
131
+ }
132
+ createNodeInfo() {
133
+ return {
134
+ peerDescriptor: this.getLayer0Node().getLocalPeerDescriptor(),
135
+ controlLayer: {
136
+ connections: this.getLayer0Node().getConnections(),
137
+ neighbors: this.getLayer0Node().getNeighbors()
138
+ },
139
+ streamPartitions: this.getStreamrNode().getNodeInfo(),
140
+ version: package_json_1.version
141
+ };
125
142
  }
126
143
  getOptions() {
127
144
  return this.options;
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":";;;AAAA,sCAA4I;AAC5I,qDAAoE;AACpE,0CAAyE;AACzE,gDAA0E;AAC1E,uFAA2I;AAE3I,mCAA6B;AAC7B,yEAA+F;AAC/F,qEAAiE;AAQjE,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAM,SAAS,GAAmB,EAAE,CAAA;AACpC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IAC7B,sGAAsG;IACtG,+CAA+C;IAC/C,MAAM,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;IACtC,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AACzE,CAAC,CAAA;AACD,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAA;AAClH,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,CAAC,KAAK,KAAK,mBAAmB,CAAC,IAAI,CAAC,KAAK,KAAK,oBAAoB,CAAC,CAAA;QACnF,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAA;QAClD,CAAC;QACD,MAAM,aAAa,EAAE,CAAA;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC7B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,aAAa,EAAE,CAAA;IACzB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAa,YAAY;IAEb,UAAU,CAAa;IACvB,WAAW,CAAc;IACzB,OAAO,GAAG,KAAK,CAAA;IACN,cAAc,CAAgB;IAC9B,OAAO,CAAgB;IAChC,gBAAgB,CAAmB;IACnC,cAAc,CAAiB;IAEvC,YAAY,OAAuB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,sBAAc,EAAE,CAAA;QACpE,IAAI,CAAC,UAAU,GAAG,IAAI,aAAO,CAAC;YAC1B,GAAG,OAAO,CAAC,MAAM;YACjB,cAAc,EAAE,IAAI,CAAC,cAAc;SACtC,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC;YAC/B,GAAG,OAAO,CAAC,WAAW;YACtB,cAAc,EAAE,IAAI,CAAC,cAAc;SACtC,CAAC,CAAA;QACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAA0B,EAAE,mBAA2D;QACxG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,kBAAkB,YAAY,qCAAqC,CAAC,CAAA;QACxF,CAAC;QACD,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAA;QAC1C,IAAI,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;QAClD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAA,wBAAgB,EAAC,GAAG,EAAE;gBACxB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAA;YAClG,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAkB;QAC9B,MAAM,YAAY,GAAG,IAAA,yBAAc,EAAC,GAAG,CAAC,SAAU,CAAC,QAAoB,EAAE,GAAG,CAAC,SAAU,CAAC,eAAe,CAAC,CAAA;QACxG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,2BAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,8BAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvI,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,+CAA+C,CAAC,CAAA;QACvG,CAAC;QACD,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,WAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAA;QAC9C,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI;QACrB,MAAM,IAAI,CAAC,UAAW,CAAC,KAAK,EAAE,CAAA;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAW,CAAC,YAAY,EAAuB,CAAA;QAC9E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACzG,IAAA,6BAAuB,EAAC,UAAU,EAAE,IAAI,CAAC,UAAW,CAAC,sBAAsB,EAAE,CAAC,CACjF,CAAC,EAAE,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,MAAM,EAAE,CAAC;gBACT,sFAAsF;gBACtF,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAA;YAC9C,CAAC;QACL,CAAC;QACD,wGAAwG;QACxG,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,UAAW,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;QACrF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,mBAAmB,GAAG,IAAI,8BAAwB,CAAC,2CAAwB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;YAC/G,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;YACvE,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CACpC,IAAI,CAAC,UAAW,CAAC,sBAAsB,EAAE,EACzC,mBAAmB,CACtB,CAAA;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,6BAA6B;QACvC,0FAA0F;QAC1F,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YAChC,YAAY,CAAC,KAAK,IAAI,EAAE;gBACpB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;oBACjD,wCAAwC;oBACxC,oFAAoF;oBACpF,8GAA8G;oBAC9G,MAAM,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;gBACnE,CAAC;YACL,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,UAAW,CAAC,0BAA0B,EAAE,CAAA;QACvD,CAAC;IACL,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,WAAY,CAAA;IAC5B,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAW,CAAA;IAC3B,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAoB;QACpC,OAAO,IAAI,CAAC,cAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAEO,oBAAoB;QACxB,OAAO,IAAI,CAAC,UAAW,CAAC,YAAY,EAAuB,CAAA;IAC/D,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAA,aAAI,EAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YACrB,MAAM,IAAI,CAAC,WAAY,CAAC,OAAO,EAAE,CAAA;YACjC,MAAM,IAAI,CAAC,UAAW,CAAC,IAAI,EAAE,CAAA;YAC7B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;YAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC/B,CAAC;IACL,CAAC;CAEJ;AA5HD,oCA4HC"}
1
+ {"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- export { NetworkStack, NetworkOptions } from './NetworkStack';
1
+ export { NetworkStack, NetworkOptions, NodeInfo } from './NetworkStack';
2
2
  export { NetworkNode, createNetworkNode } from './NetworkNode';
3
3
  export { StreamrNodeConfig } from './logic/StreamrNode';
4
- export { ProxyDirection, NodeInfoResponse } from './proto/packages/trackerless-network/protos/NetworkRpc';
4
+ export { ProxyDirection } from './proto/packages/trackerless-network/protos/NetworkRpc';
5
5
  export { streamPartIdToDataKey } from './logic/EntryPointDiscovery';
6
6
  export { convertStreamMessageToBytes, convertBytesToStreamMessage } from './logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertBytesToStreamMessage = exports.convertStreamMessageToBytes = exports.streamPartIdToDataKey = exports.NodeInfoResponse = exports.ProxyDirection = exports.createNetworkNode = exports.NetworkNode = exports.NetworkStack = void 0;
3
+ exports.convertBytesToStreamMessage = exports.convertStreamMessageToBytes = exports.streamPartIdToDataKey = exports.ProxyDirection = exports.createNetworkNode = exports.NetworkNode = exports.NetworkStack = void 0;
4
4
  var NetworkStack_1 = require("./NetworkStack");
5
5
  Object.defineProperty(exports, "NetworkStack", { enumerable: true, get: function () { return NetworkStack_1.NetworkStack; } });
6
6
  var NetworkNode_1 = require("./NetworkNode");
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "NetworkNode", { enumerable: true, get: function
8
8
  Object.defineProperty(exports, "createNetworkNode", { enumerable: true, get: function () { return NetworkNode_1.createNetworkNode; } });
9
9
  var NetworkRpc_1 = require("./proto/packages/trackerless-network/protos/NetworkRpc");
10
10
  Object.defineProperty(exports, "ProxyDirection", { enumerable: true, get: function () { return NetworkRpc_1.ProxyDirection; } });
11
- Object.defineProperty(exports, "NodeInfoResponse", { enumerable: true, get: function () { return NetworkRpc_1.NodeInfoResponse; } });
12
11
  var EntryPointDiscovery_1 = require("./logic/EntryPointDiscovery");
13
12
  Object.defineProperty(exports, "streamPartIdToDataKey", { enumerable: true, get: function () { return EntryPointDiscovery_1.streamPartIdToDataKey; } });
14
13
  var oldStreamMessageBinaryUtils_1 = require("./logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils");
@@ -1 +1 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,+CAA6D;AAApD,4GAAA,YAAY,OAAA;AACrB,6CAA8D;AAArD,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAEvC,qFAAyG;AAAhG,4GAAA,cAAc,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AACzC,mEAAmE;AAA1D,4HAAA,qBAAqB,OAAA;AAC9B,uHAGgF;AAF5E,0IAAA,2BAA2B,OAAA;AAC3B,0IAAA,2BAA2B,OAAA"}
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,6CAA8D;AAArD,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAEvC,qFAAuF;AAA9E,4GAAA,cAAc,OAAA;AACvB,mEAAmE;AAA1D,4HAAA,qBAAqB,OAAA;AAC9B,uHAGgF;AAF5E,0IAAA,2BAA2B,OAAA;AAC3B,0IAAA,2BAA2B,OAAA"}
@@ -1,9 +1,9 @@
1
1
  import { DhtCallContext, PeerDescriptor } from '@streamr/dht';
2
- import { NodeInfoResponse } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
3
2
  import { RpcCommunicator } from '@streamr/proto-rpc';
3
+ import { NodeInfo } from '../../NetworkStack';
4
4
  export declare class NodeInfoClient {
5
5
  private readonly ownPeerDescriptor;
6
6
  private readonly rpcCommunicator;
7
7
  constructor(ownPeerDescriptor: PeerDescriptor, rpcCommunicator: RpcCommunicator<DhtCallContext>);
8
- getInfo(node: PeerDescriptor): Promise<NodeInfoResponse>;
8
+ getInfo(node: PeerDescriptor): Promise<NodeInfo>;
9
9
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeInfoClient = void 0;
4
- const NodeInfoRpcRemote_1 = require("./NodeInfoRpcRemote");
5
4
  const NetworkRpc_client_1 = require("../../proto/packages/trackerless-network/protos/NetworkRpc.client");
5
+ const NodeInfoRpcRemote_1 = require("./NodeInfoRpcRemote");
6
6
  class NodeInfoClient {
7
7
  ownPeerDescriptor;
8
8
  rpcCommunicator;
@@ -12,6 +12,8 @@ class NodeInfoClient {
12
12
  }
13
13
  async getInfo(node) {
14
14
  const remote = new NodeInfoRpcRemote_1.NodeInfoRpcRemote(this.ownPeerDescriptor, node, this.rpcCommunicator, NetworkRpc_client_1.NodeInfoRpcClient);
15
+ // TODO remove casting when we validate NodeInfoResponse messages and therefore can annotate
16
+ // each of the field as required in the decorated type
15
17
  return remote.getInfo();
16
18
  }
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NodeInfoClient.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoClient.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AAEvD,yGAAqG;AAErG,MAAa,cAAc;IACN,iBAAiB,CAAgB;IACjC,eAAe,CAAiC;IAEjE,YAAY,iBAAiC,EAAE,eAAgD;QAC3F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB;QAC9B,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,qCAAiB,CAAC,CAAA;QAC3G,OAAO,MAAM,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;CAEJ;AAdD,wCAcC"}
1
+ {"version":3,"file":"NodeInfoClient.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoClient.ts"],"names":[],"mappings":";;;AAGA,yGAAqG;AACrG,2DAAuD;AAEvD,MAAa,cAAc;IACN,iBAAiB,CAAgB;IACjC,eAAe,CAAiC;IAEjE,YAAY,iBAAiC,EAAE,eAAgD;QAC3F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB;QAC9B,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,qCAAiB,CAAC,CAAA;QAC3G,4FAA4F;QAC5F,sDAAsD;QACtD,OAAO,MAAM,CAAC,OAAO,EAAyB,CAAA;IAClD,CAAC;CAEJ;AAhBD,wCAgBC"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeInfoRpcLocal = exports.NODE_INFO_RPC_SERVICE_ID = void 0;
4
4
  const NetworkRpc_1 = require("../../proto/packages/trackerless-network/protos/NetworkRpc");
5
- const package_json_1 = require("../../../package.json");
6
5
  exports.NODE_INFO_RPC_SERVICE_ID = 'system/node-info-rpc';
7
6
  class NodeInfoRpcLocal {
8
7
  stack;
@@ -16,15 +15,7 @@ class NodeInfoRpcLocal {
16
15
  this.rpcCommunicator.registerRpcMethod(NetworkRpc_1.NodeInfoRequest, NetworkRpc_1.NodeInfoResponse, 'getInfo', () => this.getInfo());
17
16
  }
18
17
  async getInfo() {
19
- return {
20
- peerDescriptor: this.stack.getLayer0Node().getLocalPeerDescriptor(),
21
- controlLayer: {
22
- connections: this.stack.getLayer0Node().getConnections(),
23
- neighbors: this.stack.getLayer0Node().getNeighbors()
24
- },
25
- streamPartitions: this.stack.getStreamrNode().getNodeInfo(),
26
- version: package_json_1.version
27
- };
18
+ return this.stack.createNodeInfo();
28
19
  }
29
20
  }
30
21
  exports.NodeInfoRpcLocal = NodeInfoRpcLocal;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeInfoRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoRpcLocal.ts"],"names":[],"mappings":";;;AAAA,2FAA8G;AAI9G,wDAA+D;AAElD,QAAA,wBAAwB,GAAG,sBAAsB,CAAA;AAE9D,MAAa,gBAAgB;IAER,KAAK,CAAc;IACnB,eAAe,CAA0B;IAE1D,YAAY,KAAmB,EAAE,eAAyC;QACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,4BAA4B,EAAE,CAAA;IACvC,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,4BAAe,EAAE,6BAAgB,EAAE,SAAS,EAC/E,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO;YACH,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,sBAAsB,EAAE;YACnE,YAAY,EAAE;gBACV,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,cAAc,EAAE;gBACxD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE;aACvD;YACD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE;YAC3D,OAAO,EAAE,sBAAY;SACxB,CAAA;IACL,CAAC;CAEJ;AA5BD,4CA4BC"}
1
+ {"version":3,"file":"NodeInfoRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoRpcLocal.ts"],"names":[],"mappings":";;;AAAA,2FAA8G;AAKjG,QAAA,wBAAwB,GAAG,sBAAsB,CAAA;AAE9D,MAAa,gBAAgB;IAER,KAAK,CAAc;IACnB,eAAe,CAA0B;IAE1D,YAAY,KAAmB,EAAE,eAAyC;QACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,4BAA4B,EAAE,CAAA;IACvC,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,4BAAe,EAAE,6BAAgB,EAAE,SAAS,EAC/E,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;IACtC,CAAC;CAEJ;AApBD,4CAoBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/trackerless-network",
3
- "version": "100.0.0-testnet-three.4",
3
+ "version": "100.0.0-testnet-three.6",
4
4
  "description": "Minimal and extendable implementation of the Streamr Network node.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,11 +30,11 @@
30
30
  "dependencies": {
31
31
  "@protobuf-ts/runtime": "^2.8.2",
32
32
  "@protobuf-ts/runtime-rpc": "^2.8.2",
33
- "@streamr/dht": "100.0.0-testnet-three.4",
34
- "@streamr/proto-rpc": "100.0.0-testnet-three.4",
35
- "@streamr/protocol": "100.0.0-testnet-three.4",
36
- "@streamr/test-utils": "100.0.0-testnet-three.4",
37
- "@streamr/utils": "100.0.0-testnet-three.4",
33
+ "@streamr/dht": "100.0.0-testnet-three.6",
34
+ "@streamr/proto-rpc": "100.0.0-testnet-three.6",
35
+ "@streamr/protocol": "100.0.0-testnet-three.6",
36
+ "@streamr/test-utils": "100.0.0-testnet-three.6",
37
+ "@streamr/utils": "100.0.0-testnet-three.6",
38
38
  "eventemitter3": "^5.0.0",
39
39
  "lodash": "^4.17.21",
40
40
  "uuid": "^9.0.1",
@@ -43,9 +43,9 @@
43
43
  "devDependencies": {
44
44
  "@streamr/browser-test-runner": "^0.0.1",
45
45
  "@types/lodash": "^4.14.202",
46
- "@types/uuid": "^9.0.7",
46
+ "@types/uuid": "^9.0.8",
47
47
  "@types/yallist": "^4.0.1",
48
- "commander": "^11.1.0",
48
+ "commander": "^12.0.0",
49
49
  "expect": "^29.6.2",
50
50
  "express": "^4.17.1",
51
51
  "ts-essentials": "^9.4.1",
@@ -1,9 +1,9 @@
1
1
  import { StreamMessage, StreamPartID } from '@streamr/protocol'
2
2
  import { DhtAddress, PeerDescriptor } from '@streamr/dht'
3
3
  import { StreamMessageTranslator } from './logic/protocol-integration/stream-message/StreamMessageTranslator'
4
- import { NetworkOptions, NetworkStack } from './NetworkStack'
4
+ import { NetworkOptions, NetworkStack, NodeInfo } from './NetworkStack'
5
5
  import { EthereumAddress, Logger, MetricsContext } from '@streamr/utils'
6
- import { NodeInfoResponse, ProxyDirection } from './proto/packages/trackerless-network/protos/NetworkRpc'
6
+ import { ProxyDirection } from './proto/packages/trackerless-network/protos/NetworkRpc'
7
7
  import { pull } from 'lodash'
8
8
 
9
9
  export const createNetworkNode = (opts: NetworkOptions): NetworkNode => {
@@ -73,7 +73,7 @@ export class NetworkNode {
73
73
  }
74
74
 
75
75
  setStreamPartEntryPoints(streamPartId: StreamPartID, contactPeerDescriptors: PeerDescriptor[]): void {
76
- this.stack.getStreamrNode()!.setStreamPartEntryPoints(streamPartId, contactPeerDescriptors)
76
+ this.stack.getStreamrNode().setStreamPartEntryPoints(streamPartId, contactPeerDescriptors)
77
77
  }
78
78
 
79
79
  removeMessageListener(cb: (msg: StreamMessage) => void): void {
@@ -120,7 +120,7 @@ export class NetworkNode {
120
120
  return this.stack.getStreamrNode().getStreamParts()
121
121
  }
122
122
 
123
- async fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfoResponse> {
123
+ async fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfo> {
124
124
  return this.stack.fetchNodeInfo(node)
125
125
  }
126
126
 
@@ -1,4 +1,11 @@
1
- import { ConnectionManager, DhtNode, DhtNodeOptions, ListeningRpcCommunicator, PeerDescriptor, areEqualPeerDescriptors } from '@streamr/dht'
1
+ import {
2
+ ConnectionManager,
3
+ DhtNode,
4
+ DhtNodeOptions,
5
+ ListeningRpcCommunicator,
6
+ PeerDescriptor,
7
+ areEqualPeerDescriptors
8
+ } from '@streamr/dht'
2
9
  import { StreamrNode, StreamrNodeConfig } from './logic/StreamrNode'
3
10
  import { Logger, MetricsContext, waitForCondition } from '@streamr/utils'
4
11
  import { StreamID, StreamPartID, toStreamPartID } from '@streamr/protocol'
@@ -7,6 +14,7 @@ import { Layer0Node } from './logic/Layer0Node'
7
14
  import { pull } from 'lodash'
8
15
  import { NODE_INFO_RPC_SERVICE_ID, NodeInfoRpcLocal } from './logic/node-info/NodeInfoRpcLocal'
9
16
  import { NodeInfoClient } from './logic/node-info/NodeInfoClient'
17
+ import { version as localVersion } from '../package.json'
10
18
 
11
19
  export interface NetworkOptions {
12
20
  layer0?: DhtNodeOptions
@@ -41,6 +49,8 @@ if (typeof window === 'object') {
41
49
  })
42
50
  }
43
51
 
52
+ export type NodeInfo = Required<NodeInfoResponse>
53
+
44
54
  export class NetworkStack {
45
55
 
46
56
  private layer0Node?: Layer0Node
@@ -142,8 +152,24 @@ export class NetworkStack {
142
152
  return this.metricsContext
143
153
  }
144
154
 
145
- async fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfoResponse> {
146
- return this.nodeInfoClient!.getInfo(node)
155
+ async fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfo> {
156
+ if (!areEqualPeerDescriptors(node, this.getLayer0Node().getLocalPeerDescriptor())) {
157
+ return this.nodeInfoClient!.getInfo(node)
158
+ } else {
159
+ return this.createNodeInfo()
160
+ }
161
+ }
162
+
163
+ createNodeInfo(): NodeInfo {
164
+ return {
165
+ peerDescriptor: this.getLayer0Node().getLocalPeerDescriptor(),
166
+ controlLayer: {
167
+ connections: this.getLayer0Node().getConnections(),
168
+ neighbors: this.getLayer0Node().getNeighbors()
169
+ },
170
+ streamPartitions: this.getStreamrNode().getNodeInfo(),
171
+ version: localVersion
172
+ }
147
173
  }
148
174
 
149
175
  getOptions(): NetworkOptions {
package/src/exports.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { NetworkStack, NetworkOptions } from './NetworkStack'
1
+ export { NetworkStack, NetworkOptions, NodeInfo } from './NetworkStack'
2
2
  export { NetworkNode, createNetworkNode } from './NetworkNode'
3
3
  export { StreamrNodeConfig } from './logic/StreamrNode'
4
- export { ProxyDirection, NodeInfoResponse } from './proto/packages/trackerless-network/protos/NetworkRpc'
4
+ export { ProxyDirection } from './proto/packages/trackerless-network/protos/NetworkRpc'
5
5
  export { streamPartIdToDataKey } from './logic/EntryPointDiscovery'
6
6
  export {
7
7
  convertStreamMessageToBytes,
@@ -1,8 +1,8 @@
1
1
  import { DhtCallContext, PeerDescriptor } from '@streamr/dht'
2
- import { NodeInfoResponse } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
3
- import { NodeInfoRpcRemote } from './NodeInfoRpcRemote'
4
2
  import { RpcCommunicator } from '@streamr/proto-rpc'
3
+ import { NodeInfo } from '../../NetworkStack'
5
4
  import { NodeInfoRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
5
+ import { NodeInfoRpcRemote } from './NodeInfoRpcRemote'
6
6
 
7
7
  export class NodeInfoClient {
8
8
  private readonly ownPeerDescriptor: PeerDescriptor
@@ -13,9 +13,11 @@ export class NodeInfoClient {
13
13
  this.rpcCommunicator = rpcCommunicator
14
14
  }
15
15
 
16
- async getInfo(node: PeerDescriptor): Promise<NodeInfoResponse> {
16
+ async getInfo(node: PeerDescriptor): Promise<NodeInfo> {
17
17
  const remote = new NodeInfoRpcRemote(this.ownPeerDescriptor, node, this.rpcCommunicator, NodeInfoRpcClient)
18
- return remote.getInfo()
18
+ // TODO remove casting when we validate NodeInfoResponse messages and therefore can annotate
19
+ // each of the field as required in the decorated type
20
+ return remote.getInfo() as unknown as NodeInfo
19
21
  }
20
22
 
21
23
  }
@@ -2,7 +2,6 @@ import { NodeInfoRequest, NodeInfoResponse } from '../../proto/packages/trackerl
2
2
  import { INodeInfoRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server'
3
3
  import { NetworkStack } from '../../NetworkStack'
4
4
  import { ListeningRpcCommunicator } from '@streamr/dht'
5
- import { version as localVersion } from '../../../package.json'
6
5
 
7
6
  export const NODE_INFO_RPC_SERVICE_ID = 'system/node-info-rpc'
8
7
 
@@ -23,15 +22,7 @@ export class NodeInfoRpcLocal implements INodeInfoRpc {
23
22
  }
24
23
 
25
24
  async getInfo(): Promise<NodeInfoResponse> {
26
- return {
27
- peerDescriptor: this.stack.getLayer0Node().getLocalPeerDescriptor(),
28
- controlLayer: {
29
- connections: this.stack.getLayer0Node().getConnections(),
30
- neighbors: this.stack.getLayer0Node().getNeighbors()
31
- },
32
- streamPartitions: this.stack.getStreamrNode().getNodeInfo(),
33
- version: localVersion
34
- }
25
+ return this.stack.createNodeInfo()
35
26
  }
36
27
 
37
28
  }
@@ -96,9 +96,9 @@ describe('inspect', () => {
96
96
  await inspectedNode.start()
97
97
  await inspectorNode.start()
98
98
 
99
- publisherNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
100
- inspectedNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
101
- inspectorNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
99
+ publisherNode.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
100
+ inspectedNode.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
101
+ inspectorNode.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
102
102
 
103
103
  await waitForCondition(() =>
104
104
  publisherNode.stack.getStreamrNode().getNeighbors(STREAM_PART_ID).length === 2
@@ -65,11 +65,11 @@ describe('proxy and full node', () => {
65
65
  }
66
66
  })
67
67
  await proxyNode.start()
68
- proxyNode.stack.getStreamrNode()!.joinStreamPart(proxiedStreamPart)
69
- proxyNode.stack.getStreamrNode()!.joinStreamPart(regularStreamPart1)
70
- proxyNode.stack.getStreamrNode()!.joinStreamPart(regularStreamPart2)
71
- proxyNode.stack.getStreamrNode()!.joinStreamPart(regularStreamPart3)
72
- proxyNode.stack.getStreamrNode()!.joinStreamPart(regularStreamPart4)
68
+ proxyNode.stack.getStreamrNode().joinStreamPart(proxiedStreamPart)
69
+ proxyNode.stack.getStreamrNode().joinStreamPart(regularStreamPart1)
70
+ proxyNode.stack.getStreamrNode().joinStreamPart(regularStreamPart2)
71
+ proxyNode.stack.getStreamrNode().joinStreamPart(regularStreamPart3)
72
+ proxyNode.stack.getStreamrNode().joinStreamPart(regularStreamPart4)
73
73
 
74
74
  proxiedNode = createNetworkNode({
75
75
  layer0: {
@@ -90,14 +90,14 @@ describe('proxy and full node', () => {
90
90
  expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(false)
91
91
 
92
92
  await Promise.all([
93
- waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage'),
93
+ waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage'),
94
94
  proxiedNode.broadcast(createMessage(regularStreamPart1))
95
95
  ])
96
96
 
97
97
  expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(true)
98
98
 
99
99
  await Promise.all([
100
- waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage'),
100
+ waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage'),
101
101
  proxiedNode.broadcast(createMessage(proxiedStreamPart))
102
102
  ])
103
103
 
@@ -110,13 +110,13 @@ describe('proxy and full node', () => {
110
110
  expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(false)
111
111
 
112
112
  await Promise.all([
113
- waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage', 5000,
113
+ waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage', 5000,
114
114
  (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart1)),
115
- waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage', 5000,
115
+ waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage', 5000,
116
116
  (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart2)),
117
- waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage', 5000,
117
+ waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage', 5000,
118
118
  (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart3)),
119
- waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage', 5000,
119
+ waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage', 5000,
120
120
  (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart4)),
121
121
  proxiedNode.broadcast(createMessage(regularStreamPart1)),
122
122
  proxiedNode.broadcast(createMessage(regularStreamPart2)),
@@ -127,7 +127,7 @@ describe('proxy and full node', () => {
127
127
  expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(true)
128
128
 
129
129
  await Promise.all([
130
- waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage'),
130
+ waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage'),
131
131
  proxiedNode.broadcast(createMessage(proxiedStreamPart))
132
132
  ])
133
133
 
@@ -46,14 +46,14 @@ describe('Proxy connections', () => {
46
46
  let proxiedNode: NetworkNode
47
47
 
48
48
  const hasConnectionFromProxy = (proxyNode: NetworkNode): boolean => {
49
- const delivery = proxyNode.stack.getStreamrNode()!.getStreamPartDelivery(STREAM_PART_ID)
49
+ const delivery = proxyNode.stack.getStreamrNode().getStreamPartDelivery(STREAM_PART_ID)
50
50
  return (delivery !== undefined)
51
51
  ? ((delivery as { node: RandomGraphNode }).node).hasProxyConnection(proxiedNode.getNodeId())
52
52
  : false
53
53
  }
54
54
 
55
55
  const hasConnectionToProxy = (proxyNodeId: DhtAddress, direction: ProxyDirection): boolean => {
56
- const client = (proxiedNode.stack.getStreamrNode()!.getStreamPartDelivery(STREAM_PART_ID) as { client: ProxyClient }).client
56
+ const client = (proxiedNode.stack.getStreamrNode().getStreamPartDelivery(STREAM_PART_ID) as { client: ProxyClient }).client
57
57
  return client.hasConnection(proxyNodeId, direction)
58
58
  }
59
59
 
@@ -77,7 +77,7 @@ describe('Proxy connections', () => {
77
77
  })
78
78
  await proxyNode1.start()
79
79
  proxyNode1.setStreamPartEntryPoints(STREAM_PART_ID, [proxyNodeDescriptor1])
80
- proxyNode1.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
80
+ proxyNode1.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
81
81
  proxyNode2 = createNetworkNode({
82
82
  layer0: {
83
83
  entryPoints: [proxyNodeDescriptor1],
@@ -90,7 +90,7 @@ describe('Proxy connections', () => {
90
90
  })
91
91
  await proxyNode2.start()
92
92
  proxyNode2.setStreamPartEntryPoints(STREAM_PART_ID, [proxyNodeDescriptor1])
93
- proxyNode2.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
93
+ proxyNode2.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
94
94
  proxiedNode = createNetworkNode({
95
95
  layer0: {
96
96
  entryPoints: [proxyNode1.getPeerDescriptor()],
@@ -109,7 +109,7 @@ describe('Proxy connections', () => {
109
109
  it('happy path publishing', async () => {
110
110
  await proxiedNode.setProxies(STREAM_PART_ID, [proxyNode1.getPeerDescriptor()], ProxyDirection.PUBLISH, PROXIED_NODE_USER_ID, 1)
111
111
  await Promise.all([
112
- waitForEvent3(proxyNode1.stack.getStreamrNode()! as any, 'newMessage'),
112
+ waitForEvent3(proxyNode1.stack.getStreamrNode() as any, 'newMessage'),
113
113
  proxiedNode.broadcast(MESSAGE)
114
114
  ])
115
115
  })
@@ -117,7 +117,7 @@ describe('Proxy connections', () => {
117
117
  it('happy path subscribing', async () => {
118
118
  await proxiedNode.setProxies(STREAM_PART_ID, [proxyNode1.getPeerDescriptor()], ProxyDirection.SUBSCRIBE, PROXIED_NODE_USER_ID, 1)
119
119
  await Promise.all([
120
- waitForEvent3(proxiedNode.stack.getStreamrNode()! as any, 'newMessage'),
120
+ waitForEvent3(proxiedNode.stack.getStreamrNode() as any, 'newMessage'),
121
121
  proxyNode1.broadcast(MESSAGE)
122
122
  ])
123
123
  })
@@ -196,7 +196,7 @@ describe('Proxy connections', () => {
196
196
  await proxyNode1.leave(STREAM_PART_ID)
197
197
  await waitForCondition(() => hasConnectionToProxy(proxyNode1.getNodeId(), ProxyDirection.SUBSCRIBE))
198
198
  expect(hasConnectionFromProxy(proxyNode1)).toBe(false)
199
- proxyNode1.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
199
+ proxyNode1.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
200
200
  await waitForCondition(() => hasConnectionToProxy(proxyNode1.getNodeId(), ProxyDirection.SUBSCRIBE), 25000)
201
201
  // TODO why wait is needed?
202
202
  await wait(100)
@@ -44,7 +44,7 @@ describe('proxy group key exchange', () => {
44
44
  })
45
45
  await proxyNode.start()
46
46
  proxyNode.setStreamPartEntryPoints(STREAM_PART_ID, [proxyNodeDescriptor])
47
- proxyNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
47
+ proxyNode.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
48
48
  publisher = createNetworkNode({
49
49
  layer0: {
50
50
  entryPoints: [proxyNodeDescriptor],
@@ -98,7 +98,7 @@ describe('proxy group key exchange', () => {
98
98
  })
99
99
 
100
100
  await Promise.all([
101
- waitForEvent3(publisher.stack.getStreamrNode()! as any, 'newMessage'),
101
+ waitForEvent3(publisher.stack.getStreamrNode() as any, 'newMessage'),
102
102
  subscriber.broadcast(request)
103
103
  ])
104
104
  })
@@ -130,7 +130,7 @@ describe('proxy group key exchange', () => {
130
130
  })
131
131
 
132
132
  await Promise.all([
133
- waitForEvent3(subscriber.stack.getStreamrNode()! as any, 'newMessage'),
133
+ waitForEvent3(subscriber.stack.getStreamrNode() as any, 'newMessage'),
134
134
  publisher.broadcast(response)
135
135
  ])
136
136
  })
@@ -33,8 +33,8 @@ describe('Full node network with WebRTC connections', () => {
33
33
  }
34
34
  })
35
35
  await entryPoint.start()
36
- entryPoint.getStreamrNode()!.setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
37
- entryPoint.getStreamrNode()!.joinStreamPart(streamPartId)
36
+ entryPoint.getStreamrNode().setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
37
+ entryPoint.getStreamrNode().joinStreamPart(streamPartId)
38
38
 
39
39
  await Promise.all(range(NUM_OF_NODES).map(async () => {
40
40
  const peerDescriptor = createMockPeerDescriptor()
@@ -62,15 +62,15 @@ describe('Full node network with WebRTC connections', () => {
62
62
  it('happy path', async () => {
63
63
  await Promise.all(nodes.map((node) =>
64
64
  waitForCondition(() => {
65
- return node.getStreamrNode()!.getNeighbors(streamPartId).length >= 3
65
+ return node.getStreamrNode().getNeighbors(streamPartId).length >= 3
66
66
  }
67
67
  , 30000)
68
68
  ))
69
69
  let receivedMessageCount = 0
70
70
  const successIds: string[] = []
71
71
  nodes.forEach((node) => {
72
- node.getStreamrNode()!.on('newMessage', () => {
73
- successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode()!.getPeerDescriptor()))
72
+ node.getStreamrNode().on('newMessage', () => {
73
+ successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode().getPeerDescriptor()))
74
74
  receivedMessageCount += 1
75
75
  })
76
76
  })
@@ -79,7 +79,7 @@ describe('Full node network with WebRTC connections', () => {
79
79
  streamPartId,
80
80
  randomEthereumAddress()
81
81
  )
82
- entryPoint.getStreamrNode()!.broadcast(msg)
82
+ entryPoint.getStreamrNode().broadcast(msg)
83
83
  await waitForCondition(() => receivedMessageCount === NUM_OF_NODES)
84
84
  }, 120000)
85
85
 
@@ -30,8 +30,8 @@ describe('Full node network with WebSocket connections only', () => {
30
30
  }
31
31
  })
32
32
  await entryPoint.start()
33
- entryPoint.getStreamrNode()!.setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
34
- entryPoint.getStreamrNode()!.joinStreamPart(streamPartId)
33
+ entryPoint.getStreamrNode().setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
34
+ entryPoint.getStreamrNode().joinStreamPart(streamPartId)
35
35
 
36
36
  await Promise.all(range(NUM_OF_NODES).map(async (i) => {
37
37
  const node = new NetworkStack({
@@ -60,15 +60,15 @@ describe('Full node network with WebSocket connections only', () => {
60
60
  it('happy path', async () => {
61
61
  await Promise.all(nodes.map((node) =>
62
62
  waitForCondition(() => {
63
- return node.getStreamrNode()!.getNeighbors(streamPartId).length >= 4
63
+ return node.getStreamrNode().getNeighbors(streamPartId).length >= 4
64
64
  }
65
65
  , 30000)
66
66
  ))
67
67
  let receivedMessageCount = 0
68
68
  const successIds: string[] = []
69
69
  nodes.forEach((node) => {
70
- node.getStreamrNode()!.on('newMessage', () => {
71
- successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode()!.getPeerDescriptor()))
70
+ node.getStreamrNode().on('newMessage', () => {
71
+ successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode().getPeerDescriptor()))
72
72
  receivedMessageCount += 1
73
73
  })
74
74
  })
@@ -78,7 +78,7 @@ describe('Full node network with WebSocket connections only', () => {
78
78
  streamPartId,
79
79
  randomEthereumAddress()
80
80
  )
81
- entryPoint.getStreamrNode()!.broadcast(msg)
81
+ entryPoint.getStreamrNode().broadcast(msg)
82
82
  await waitForCondition(() => receivedMessageCount === NUM_OF_NODES)
83
83
  }, 220000)
84
84
 
@@ -98,12 +98,16 @@ describe('NetworkNode', () => {
98
98
  await node2.join(STREAM_PART_ID)
99
99
  const result1 = await node1.fetchNodeInfo(pd2)
100
100
  const result2 = await node2.fetchNodeInfo(pd1)
101
+ const result3 = await node1.fetchNodeInfo(node1.getPeerDescriptor())
101
102
  expect(result1.streamPartitions.length).toEqual(1)
102
103
  expect(result2.streamPartitions.length).toEqual(1)
103
- expect(result1.controlLayer!.connections.length).toEqual(1)
104
- expect(result2.controlLayer!.connections.length).toEqual(1)
105
- expect(result1.controlLayer!.neighbors.length).toEqual(1)
106
- expect(result2.controlLayer!.neighbors.length).toEqual(1)
104
+ expect(result3.streamPartitions.length).toEqual(1)
105
+ expect(result1.controlLayer.connections.length).toEqual(1)
106
+ expect(result2.controlLayer.connections.length).toEqual(1)
107
+ expect(result3.controlLayer.connections.length).toEqual(1)
108
+ expect(result1.controlLayer.neighbors.length).toEqual(1)
109
+ expect(result2.controlLayer.neighbors.length).toEqual(1)
110
+ expect(result3.controlLayer.neighbors.length).toEqual(1)
107
111
  })
108
112
 
109
113
  })
@@ -34,9 +34,9 @@ describe('NetworkStack', () => {
34
34
  })
35
35
 
36
36
  await stack1.start()
37
- stack1.getStreamrNode()!.setStreamPartEntryPoints(STREAM_PART_ID, [epDescriptor])
37
+ stack1.getStreamrNode().setStreamPartEntryPoints(STREAM_PART_ID, [epDescriptor])
38
38
  await stack2.start()
39
- stack2.getStreamrNode()!.setStreamPartEntryPoints(STREAM_PART_ID, [epDescriptor])
39
+ stack2.getStreamrNode().setStreamPartEntryPoints(STREAM_PART_ID, [epDescriptor])
40
40
  })
41
41
 
42
42
  afterEach(async () => {
@@ -15,7 +15,7 @@ describe('GroupKeyResponseTranslator', () => {
15
15
  })
16
16
  const newGroupKey: GroupKey = {
17
17
  id: 'id',
18
- data: hexToBinary('0000')!
18
+ data: hexToBinary('0000')
19
19
  }
20
20
  const newGroupKeyResponse: GroupKeyResponse = {
21
21
  requestId: 'request',