@streamr/dht 100.0.0-testnet-two.4 → 100.0.0-testnet-three.1

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.
Files changed (306) hide show
  1. package/dist/package.json +8 -9
  2. package/dist/src/connection/Connection.d.ts +1 -0
  3. package/dist/src/connection/Connection.js +10 -3
  4. package/dist/src/connection/Connection.js.map +1 -1
  5. package/dist/src/connection/ConnectionLockHandler.d.ts +3 -3
  6. package/dist/src/connection/ConnectionLockHandler.js +8 -10
  7. package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
  8. package/dist/src/connection/ConnectionLockRpcLocal.js +5 -4
  9. package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
  10. package/dist/src/connection/ConnectionLockRpcRemote.js +4 -4
  11. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  12. package/dist/src/connection/ConnectionManager.d.ts +8 -8
  13. package/dist/src/connection/ConnectionManager.js +54 -55
  14. package/dist/src/connection/ConnectionManager.js.map +1 -1
  15. package/dist/src/connection/ConnectorFacade.d.ts +3 -2
  16. package/dist/src/connection/ConnectorFacade.js +7 -0
  17. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  18. package/dist/src/connection/Handshaker.js +3 -1
  19. package/dist/src/connection/Handshaker.js.map +1 -1
  20. package/dist/src/connection/IConnection.d.ts +2 -7
  21. package/dist/src/connection/IConnection.js +1 -8
  22. package/dist/src/connection/IConnection.js.map +1 -1
  23. package/dist/src/connection/ManagedConnection.js +23 -15
  24. package/dist/src/connection/ManagedConnection.js.map +1 -1
  25. package/dist/src/connection/ManagedWebrtcConnection.js.map +1 -1
  26. package/dist/src/connection/connectivityChecker.d.ts +1 -1
  27. package/dist/src/connection/connectivityChecker.js +9 -2
  28. package/dist/src/connection/connectivityChecker.js.map +1 -1
  29. package/dist/src/connection/connectivityRequestHandler.js +8 -2
  30. package/dist/src/connection/connectivityRequestHandler.js.map +1 -1
  31. package/dist/src/connection/simulator/Simulator.js +32 -20
  32. package/dist/src/connection/simulator/Simulator.js.map +1 -1
  33. package/dist/src/connection/simulator/SimulatorConnection.js +13 -10
  34. package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
  35. package/dist/src/connection/simulator/SimulatorConnector.js +9 -6
  36. package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
  37. package/dist/src/connection/simulator/pings.js.map +1 -1
  38. package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +1 -1
  39. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +26 -14
  40. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
  41. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -1
  42. package/dist/src/connection/webrtc/WebrtcConnector.js +18 -17
  43. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
  44. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +10 -9
  45. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
  46. package/dist/src/connection/webrtc/iceServerAsString.js.map +1 -1
  47. package/dist/src/connection/websocket/AutoCertifierClientFacade.js +3 -0
  48. package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
  49. package/dist/src/connection/websocket/ClientWebsocket.js +7 -4
  50. package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
  51. package/dist/src/connection/websocket/ServerWebsocket.d.ts +1 -0
  52. package/dist/src/connection/websocket/ServerWebsocket.js +22 -3
  53. package/dist/src/connection/websocket/ServerWebsocket.js.map +1 -1
  54. package/dist/src/connection/websocket/WebsocketConnector.d.ts +2 -1
  55. package/dist/src/connection/websocket/WebsocketConnector.js +27 -16
  56. package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
  57. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +2 -1
  58. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +3 -1
  59. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
  60. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +2 -2
  61. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
  62. package/dist/src/connection/websocket/WebsocketServer.js +6 -3
  63. package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
  64. package/dist/src/dht/DhtNode.d.ts +18 -19
  65. package/dist/src/dht/DhtNode.js +56 -65
  66. package/dist/src/dht/DhtNode.js.map +1 -1
  67. package/dist/src/dht/DhtNodeRpcLocal.d.ts +1 -1
  68. package/dist/src/dht/DhtNodeRpcLocal.js +5 -4
  69. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  70. package/dist/src/dht/DhtNodeRpcRemote.d.ts +2 -1
  71. package/dist/src/dht/DhtNodeRpcRemote.js +5 -3
  72. package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
  73. package/dist/src/dht/ExternalApiRpcLocal.d.ts +1 -1
  74. package/dist/src/dht/ExternalApiRpcLocal.js +4 -3
  75. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
  76. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  77. package/dist/src/dht/PeerManager.d.ts +5 -5
  78. package/dist/src/dht/PeerManager.js +31 -24
  79. package/dist/src/dht/PeerManager.js.map +1 -1
  80. package/dist/src/dht/contact/Contact.js +3 -2
  81. package/dist/src/dht/contact/Contact.js.map +1 -1
  82. package/dist/src/dht/contact/ContactList.js +9 -5
  83. package/dist/src/dht/contact/ContactList.js.map +1 -1
  84. package/dist/src/dht/contact/RandomContactList.js +1 -0
  85. package/dist/src/dht/contact/RandomContactList.js.map +1 -1
  86. package/dist/src/dht/contact/RpcRemote.d.ts +2 -1
  87. package/dist/src/dht/contact/RpcRemote.js +4 -0
  88. package/dist/src/dht/contact/RpcRemote.js.map +1 -1
  89. package/dist/src/dht/contact/SortedContactList.js +3 -2
  90. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  91. package/dist/src/dht/discovery/DiscoverySession.js +8 -8
  92. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  93. package/dist/src/dht/discovery/PeerDiscovery.d.ts +8 -2
  94. package/dist/src/dht/discovery/PeerDiscovery.js +26 -17
  95. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  96. package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +1 -1
  97. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +9 -9
  98. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
  99. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +3 -2
  100. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -1
  101. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +6 -5
  102. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -1
  103. package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +2 -1
  104. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +26 -20
  105. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
  106. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +4 -2
  107. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +5 -2
  108. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -1
  109. package/dist/src/dht/routing/DuplicateDetector.d.ts +2 -4
  110. package/dist/src/dht/routing/DuplicateDetector.js +10 -15
  111. package/dist/src/dht/routing/DuplicateDetector.js.map +1 -1
  112. package/dist/src/dht/routing/Router.d.ts +1 -1
  113. package/dist/src/dht/routing/Router.js +20 -15
  114. package/dist/src/dht/routing/Router.js.map +1 -1
  115. package/dist/src/dht/routing/RouterRpcLocal.js +4 -4
  116. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
  117. package/dist/src/dht/routing/RouterRpcRemote.js +11 -9
  118. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
  119. package/dist/src/dht/routing/RoutingSession.d.ts +2 -0
  120. package/dist/src/dht/routing/RoutingSession.js +27 -9
  121. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  122. package/dist/src/dht/store/LocalDataStore.js +5 -4
  123. package/dist/src/dht/store/LocalDataStore.js.map +1 -1
  124. package/dist/src/dht/store/StoreManager.js +8 -8
  125. package/dist/src/dht/store/StoreManager.js.map +1 -1
  126. package/dist/src/dht/store/StoreRpcLocal.js +1 -0
  127. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  128. package/dist/src/dht/store/StoreRpcRemote.js +3 -3
  129. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
  130. package/dist/src/exports.d.ts +1 -4
  131. package/dist/src/exports.js +4 -7
  132. package/dist/src/exports.js.map +1 -1
  133. package/dist/src/helpers/AddressTools.js.map +1 -1
  134. package/dist/src/helpers/Connectivity.js.map +1 -1
  135. package/dist/src/helpers/MapWithTtl.js +2 -1
  136. package/dist/src/helpers/MapWithTtl.js.map +1 -1
  137. package/dist/src/helpers/createPeerDescriptor.d.ts +3 -0
  138. package/dist/src/helpers/createPeerDescriptor.js +56 -0
  139. package/dist/src/helpers/createPeerDescriptor.js.map +1 -0
  140. package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +2 -0
  141. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +30 -0
  142. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +1 -0
  143. package/dist/src/helpers/debugHelpers.js.map +1 -1
  144. package/dist/src/helpers/errors.js +2 -0
  145. package/dist/src/helpers/errors.js.map +1 -1
  146. package/dist/src/helpers/offering.d.ts +4 -0
  147. package/dist/src/helpers/offering.js +18 -0
  148. package/dist/src/helpers/offering.js.map +1 -0
  149. package/dist/src/helpers/protoToString.js.map +1 -1
  150. package/dist/src/identifiers.d.ts +3 -0
  151. package/dist/src/identifiers.js +9 -1
  152. package/dist/src/identifiers.js.map +1 -1
  153. package/dist/src/proto/google/protobuf/any.js +8 -8
  154. package/dist/src/proto/google/protobuf/any.js.map +1 -1
  155. package/dist/src/proto/google/protobuf/empty.js +2 -4
  156. package/dist/src/proto/google/protobuf/empty.js.map +1 -1
  157. package/dist/src/proto/google/protobuf/timestamp.js +10 -10
  158. package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
  159. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -5
  160. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +38 -29
  161. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  162. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +26 -12
  163. package/dist/src/proto/packages/dht/protos/DhtRpc.js +12 -16
  164. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  165. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -3
  166. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  167. package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -1
  168. package/dist/src/rpc-protocol/DhtCallContext.js +8 -0
  169. package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
  170. package/dist/src/transport/ITransport.d.ts +1 -1
  171. package/dist/src/transport/ListeningRpcCommunicator.js +2 -0
  172. package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
  173. package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -1
  174. package/dist/src/transport/RoutingRpcCommunicator.js +2 -0
  175. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  176. package/package.json +8 -9
  177. package/protos/DhtRpc.proto +8 -4
  178. package/src/connection/Connection.ts +6 -1
  179. package/src/connection/ConnectionLockHandler.ts +3 -3
  180. package/src/connection/ConnectionLockRpcLocal.ts +1 -5
  181. package/src/connection/ConnectionLockRpcRemote.ts +1 -1
  182. package/src/connection/ConnectionManager.ts +24 -38
  183. package/src/connection/ConnectorFacade.ts +3 -2
  184. package/src/connection/Handshaker.ts +4 -4
  185. package/src/connection/IConnection.ts +2 -8
  186. package/src/connection/ManagedConnection.ts +3 -3
  187. package/src/connection/connectivityChecker.ts +9 -2
  188. package/src/connection/connectivityRequestHandler.ts +10 -3
  189. package/src/connection/simulator/Simulator.ts +1 -2
  190. package/src/connection/simulator/SimulatorConnection.ts +1 -1
  191. package/src/connection/simulator/SimulatorConnector.ts +1 -2
  192. package/src/connection/webrtc/BrowserWebrtcConnection.ts +4 -3
  193. package/src/connection/webrtc/NodeWebrtcConnection.ts +5 -4
  194. package/src/connection/webrtc/WebrtcConnector.ts +9 -17
  195. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +9 -9
  196. package/src/connection/websocket/ClientWebsocket.ts +3 -2
  197. package/src/connection/websocket/ServerWebsocket.ts +17 -1
  198. package/src/connection/websocket/WebsocketConnector.ts +16 -13
  199. package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +4 -2
  200. package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +1 -1
  201. package/src/connection/websocket/WebsocketServer.ts +2 -2
  202. package/src/dht/DhtNode.ts +63 -86
  203. package/src/dht/DhtNodeRpcLocal.ts +5 -5
  204. package/src/dht/DhtNodeRpcRemote.ts +3 -3
  205. package/src/dht/ExternalApiRpcLocal.ts +3 -4
  206. package/src/dht/PeerManager.ts +14 -20
  207. package/src/dht/contact/Contact.ts +1 -2
  208. package/src/dht/contact/RpcRemote.ts +2 -1
  209. package/src/dht/discovery/DiscoverySession.ts +2 -3
  210. package/src/dht/discovery/PeerDiscovery.ts +16 -9
  211. package/src/dht/recursive-operation/RecursiveOperationManager.ts +12 -6
  212. package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +1 -1
  213. package/src/dht/recursive-operation/RecursiveOperationRpcRemote.ts +3 -2
  214. package/src/dht/recursive-operation/RecursiveOperationSession.ts +19 -9
  215. package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +13 -3
  216. package/src/dht/routing/DuplicateDetector.ts +9 -21
  217. package/src/dht/routing/Router.ts +12 -11
  218. package/src/dht/routing/RouterRpcLocal.ts +1 -2
  219. package/src/dht/routing/RouterRpcRemote.ts +5 -5
  220. package/src/dht/routing/RoutingSession.ts +22 -2
  221. package/src/dht/store/StoreManager.ts +1 -2
  222. package/src/dht/store/StoreRpcRemote.ts +1 -1
  223. package/src/exports.ts +9 -4
  224. package/src/helpers/createPeerDescriptor.ts +56 -0
  225. package/src/helpers/createPeerDescriptorSignaturePayload.ts +28 -0
  226. package/src/helpers/offering.ts +15 -0
  227. package/src/identifiers.ts +10 -1
  228. package/src/proto/google/protobuf/any.ts +4 -4
  229. package/src/proto/google/protobuf/empty.ts +2 -4
  230. package/src/proto/google/protobuf/timestamp.ts +4 -4
  231. package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -7
  232. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -4
  233. package/src/proto/packages/dht/protos/DhtRpc.ts +37 -20
  234. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  235. package/src/rpc-protocol/DhtCallContext.ts +0 -1
  236. package/src/transport/ITransport.ts +1 -1
  237. package/src/transport/RoutingRpcCommunicator.ts +1 -1
  238. package/test/benchmark/Find.test.ts +6 -8
  239. package/test/benchmark/KademliaCorrectness.test.ts +2 -3
  240. package/test/benchmark/SortedContactListBenchmark.test.ts +16 -16
  241. package/test/benchmark/WebsocketServerMemoryLeak.test.ts +1 -1
  242. package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +8 -8
  243. package/test/benchmark/kademlia-simulation/SimulationNode.ts +8 -8
  244. package/test/end-to-end/Layer0-Layer1.test.ts +1 -1
  245. package/test/end-to-end/Layer0.test.ts +4 -4
  246. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +12 -12
  247. package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +18 -18
  248. package/test/end-to-end/Layer0Webrtc.test.ts +13 -10
  249. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +2 -2
  250. package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +2 -2
  251. package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +1 -1
  252. package/test/end-to-end/WebsocketConnectionRequest.test.ts +3 -3
  253. package/test/end-to-end/memory-leak.test.ts +2 -2
  254. package/test/integration/ConnectionLocking.test.ts +60 -47
  255. package/test/integration/ConnectionManager.test.ts +8 -7
  256. package/test/integration/ConnectivityChecking.test.ts +64 -0
  257. package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -2
  258. package/test/integration/DhtNodeExternalAPI.test.ts +1 -2
  259. package/test/integration/DhtNodeRpcRemote.test.ts +4 -3
  260. package/test/integration/DhtRpc.test.ts +4 -3
  261. package/test/integration/Find.test.ts +4 -6
  262. package/test/integration/Layer1-scale.test.ts +7 -7
  263. package/test/integration/Mock-Layer1-Layer0.test.ts +21 -24
  264. package/test/integration/MultipleEntryPointJoining.test.ts +7 -7
  265. package/test/integration/ReplicateData.test.ts +52 -161
  266. package/test/integration/RouteMessage.test.ts +24 -47
  267. package/test/integration/RouterRpcRemote.test.ts +7 -4
  268. package/test/integration/ScaleDownDht.test.ts +2 -3
  269. package/test/integration/SimultaneousConnections.test.ts +9 -8
  270. package/test/integration/Store.test.ts +1 -2
  271. package/test/integration/StoreAndDelete.test.ts +5 -0
  272. package/test/integration/StoreOnDhtWithThreeNodes.test.ts +59 -0
  273. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +1 -1
  274. package/test/integration/StoreRpcRemote.test.ts +4 -4
  275. package/test/integration/WebrtcConnectionManagement.test.ts +6 -5
  276. package/test/integration/WebrtcConnectorRpc.test.ts +3 -2
  277. package/test/integration/WebsocketConnectionManagement.test.ts +27 -15
  278. package/test/integration/WebsocketConnectorRpc.test.ts +3 -2
  279. package/test/integration/{RpcErrors.test.ts → rpc-connections-over-webrpc.test.ts} +6 -3
  280. package/test/unit/DuplicateDetector.test.ts +2 -2
  281. package/test/unit/LocalDataStore.test.ts +1 -4
  282. package/test/unit/RandomContactList.test.ts +2 -4
  283. package/test/unit/RecursiveOperationManager.test.ts +5 -6
  284. package/test/unit/RecursiveOperationSession.test.ts +5 -4
  285. package/test/unit/Router.test.ts +25 -8
  286. package/test/unit/RoutingSession.test.ts +3 -3
  287. package/test/unit/SortedContactList.test.ts +2 -4
  288. package/test/unit/connectivityRequestHandler.test.ts +7 -3
  289. package/test/unit/createPeerDescriptor.test.ts +63 -0
  290. package/test/utils/FakeTransport.ts +7 -4
  291. package/test/utils/mock/Transport.ts +1 -1
  292. package/test/utils/utils.ts +6 -6
  293. package/dist/src/helpers/PeerID.d.ts +0 -27
  294. package/dist/src/helpers/PeerID.js +0 -87
  295. package/dist/src/helpers/PeerID.js.map +0 -1
  296. package/dist/src/helpers/UUID.d.ts +0 -8
  297. package/dist/src/helpers/UUID.js +0 -36
  298. package/dist/src/helpers/UUID.js.map +0 -1
  299. package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +0 -7
  300. package/dist/src/helpers/peerIdFromPeerDescriptor.js +0 -23
  301. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +0 -1
  302. package/src/helpers/PeerID.ts +0 -97
  303. package/src/helpers/UUID.ts +0 -35
  304. package/src/helpers/peerIdFromPeerDescriptor.ts +0 -20
  305. package/test/unit/PeerID.test.ts +0 -22
  306. package/test/unit/UUID.test.ts +0 -55
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/dht",
3
- "version": "100.0.0-testnet-two.4",
3
+ "version": "100.0.0-testnet-three.1",
4
4
  "description": "Streamr Network DHT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,7 +18,6 @@
18
18
  "check": "tsc -p ./tsconfig.jest.json --noEmit",
19
19
  "clean": "jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true",
20
20
  "eslint": "eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'",
21
- "prepublishOnly": "npm run clean && NODE_ENV=production tsc -b tsconfig.node.json",
22
21
  "test": "npm run test-unit && npm run test-integration && npm run test-end-to-end",
23
22
  "test-browser": "karma start karma.config.js",
24
23
  "test-unit": "jest test/unit",
@@ -31,9 +30,9 @@
31
30
  "dependencies": {
32
31
  "@protobuf-ts/runtime": "^2.8.2",
33
32
  "@protobuf-ts/runtime-rpc": "^2.8.2",
34
- "@streamr/autocertifier-client": "100.0.0-testnet-two.4",
35
- "@streamr/proto-rpc": "100.0.0-testnet-two.4",
36
- "@streamr/utils": "100.0.0-testnet-two.4",
33
+ "@streamr/autocertifier-client": "100.0.0-testnet-three.1",
34
+ "@streamr/proto-rpc": "100.0.0-testnet-three.1",
35
+ "@streamr/utils": "100.0.0-testnet-three.1",
37
36
  "eventemitter3": "^5.0.0",
38
37
  "heap": "^0.2.6",
39
38
  "ipaddr.js": "^2.0.1",
@@ -45,19 +44,19 @@
45
44
  },
46
45
  "devDependencies": {
47
46
  "@streamr/browser-test-runner": "^0.0.1",
48
- "@streamr/test-utils": "100.0.0-testnet-two.4",
47
+ "@streamr/test-utils": "100.0.0-testnet-three.1",
49
48
  "@types/express": "^4.17.21",
50
49
  "@types/heap": "^0.2.34",
51
50
  "@types/k-bucket": "^5.0.1",
52
51
  "@types/lodash": "^4.14.202",
53
- "@types/sinon": "^10.0.15",
52
+ "@types/sinon": "^17.0.3",
54
53
  "@types/uuid": "^9.0.7",
55
- "@types/websocket": "^1.0.3",
54
+ "@types/websocket": "^1.0.10",
56
55
  "express": "^4.17.1",
57
56
  "jest-leak-detector": "^27.3.1",
58
57
  "patch-package": "^8.0.0",
59
58
  "ts-essentials": "^9.4.1",
60
- "ts-node": "^10.9.1"
59
+ "ts-node": "^10.9.2"
61
60
  },
62
61
  "optionalDependencies": {
63
62
  "bufferutil": "^4.0.8",
@@ -9,3 +9,4 @@ export declare class Connection extends EventEmitter<ConnectionEvents> {
9
9
  setPeerDescriptor(peerDescriptor: PeerDescriptor): void;
10
10
  getPeerDescriptor(): PeerDescriptor | undefined;
11
11
  }
12
+ export declare const createRandomConnectionId: () => ConnectionID;
@@ -3,13 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Connection = void 0;
6
+ exports.createRandomConnectionId = exports.Connection = void 0;
7
7
  const eventemitter3_1 = __importDefault(require("eventemitter3"));
8
- const IConnection_1 = require("./IConnection");
8
+ const uuid_1 = require("uuid");
9
9
  class Connection extends eventemitter3_1.default {
10
+ connectionId;
11
+ connectionType;
12
+ peerDescriptor;
10
13
  constructor(connectionType) {
11
14
  super();
12
- this.connectionId = new IConnection_1.ConnectionID();
15
+ this.connectionId = (0, exports.createRandomConnectionId)();
13
16
  this.connectionType = connectionType;
14
17
  }
15
18
  setPeerDescriptor(peerDescriptor) {
@@ -20,4 +23,8 @@ class Connection extends eventemitter3_1.default {
20
23
  }
21
24
  }
22
25
  exports.Connection = Connection;
26
+ const createRandomConnectionId = () => {
27
+ return (0, uuid_1.v4)();
28
+ };
29
+ exports.createRandomConnectionId = createRandomConnectionId;
23
30
  //# sourceMappingURL=Connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../src/connection/Connection.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAExC,+CAA8E;AAE9E,MAAa,UAAW,SAAQ,uBAA8B;IAK1D,YAAY,cAA8B;QACtC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,0BAAY,EAAE,CAAA;QACtC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB,CAAC,cAA8B;QAC5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;CACJ;AAlBD,gCAkBC"}
1
+ {"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../src/connection/Connection.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAGxC,+BAAiC;AAEjC,MAAa,UAAW,SAAQ,uBAA8B;IACnD,YAAY,CAAc;IAC1B,cAAc,CAAgB;IAC7B,cAAc,CAAiB;IAEvC,YAAY,cAA8B;QACtC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,YAAY,GAAG,IAAA,gCAAwB,GAAE,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB,CAAC,cAA8B;QAC5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;CACJ;AAlBD,gCAkBC;AAEM,MAAM,wBAAwB,GAAG,GAAiB,EAAE;IACvD,OAAO,IAAA,SAAI,GAAkB,CAAA;AACjC,CAAC,CAAA;AAFY,QAAA,wBAAwB,4BAEpC"}
@@ -4,9 +4,9 @@ export declare class ConnectionLockHandler {
4
4
  private localLocks;
5
5
  private remoteLocks;
6
6
  private weakLocks;
7
- getNumberOfLocalLockedConnections(): number;
8
- getNumberOfRemoteLockedConnections(): number;
9
- getNumberOfWeakLockedConnections(): number;
7
+ getLocalLockedConnectionCount(): number;
8
+ getRemoteLockedConnectionCount(): number;
9
+ getWeakLockedConnectionCount(): number;
10
10
  isLocalLocked(id: DhtAddress, lockId?: LockID): boolean;
11
11
  isRemoteLocked(id: DhtAddress, lockId?: LockID): boolean;
12
12
  private isWeakLocked;
@@ -4,20 +4,18 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.ConnectionLockHandler = void 0;
6
6
  class ConnectionLockHandler {
7
- constructor() {
8
- this.localLocks = new Map();
9
- this.remoteLocks = new Map();
10
- // TODO: remove weakLocks use localLocks instead. When opening weakLocks from the ConnectioManager,
11
- // simply do not send lock requests.
12
- this.weakLocks = new Set();
13
- }
14
- getNumberOfLocalLockedConnections() {
7
+ localLocks = new Map();
8
+ remoteLocks = new Map();
9
+ // TODO: remove weakLocks use localLocks instead. When opening weakLocks from the ConnectioManager,
10
+ // simply do not send lock requests.
11
+ weakLocks = new Set();
12
+ getLocalLockedConnectionCount() {
15
13
  return this.localLocks.size;
16
14
  }
17
- getNumberOfRemoteLockedConnections() {
15
+ getRemoteLockedConnectionCount() {
18
16
  return this.remoteLocks.size;
19
17
  }
20
- getNumberOfWeakLockedConnections() {
18
+ getWeakLockedConnectionCount() {
21
19
  return this.weakLocks.size;
22
20
  }
23
21
  isLocalLocked(id, lockId) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionLockHandler.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionLockHandler.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockHandler.ts"],"names":[],"mappings":"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"}
@@ -2,23 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectionLockRpcLocal = void 0;
4
4
  const utils_1 = require("@streamr/utils");
5
- const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
6
5
  const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
7
6
  const ConnectionManager_1 = require("./ConnectionManager");
7
+ const identifiers_1 = require("../identifiers");
8
8
  const logger = new utils_1.Logger(module);
9
9
  class ConnectionLockRpcLocal {
10
+ config;
10
11
  constructor(config) {
11
12
  this.config = config;
12
13
  }
13
14
  async lockRequest(lockRequest, context) {
14
15
  const senderPeerDescriptor = context.incomingSourceDescriptor;
15
- if ((0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(senderPeerDescriptor, this.config.getLocalPeerDescriptor())) {
16
+ if ((0, identifiers_1.areEqualPeerDescriptors)(senderPeerDescriptor, this.config.getLocalPeerDescriptor())) {
16
17
  const response = {
17
18
  accepted: false
18
19
  };
19
20
  return response;
20
21
  }
21
- const remoteNodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
22
+ const remoteNodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
22
23
  this.config.addRemoteLocked(remoteNodeId, lockRequest.lockId);
23
24
  const response = {
24
25
  accepted: true
@@ -27,7 +28,7 @@ class ConnectionLockRpcLocal {
27
28
  }
28
29
  async unlockRequest(unlockRequest, context) {
29
30
  const senderPeerDescriptor = context.incomingSourceDescriptor;
30
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
31
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
31
32
  this.config.removeRemoteLocked(nodeId, unlockRequest.lockId);
32
33
  return {};
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionLockRpcLocal.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,kFAG4C;AAE5C,gEAO4C;AAG5C,2DAA0E;AAW1E,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,sBAAsB;IAI/B,YAAY,MAAoC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAwB,EAAE,OAA0B;QAClE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,IAAI,IAAA,kDAAuB,EAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAAE;YACrF,MAAM,QAAQ,GAAiB;gBAC3B,QAAQ,EAAE,KAAK;aAClB,CAAA;YACD,OAAO,QAAQ,CAAA;SAClB;QACD,MAAM,YAAY,GAAG,IAAA,sDAA2B,EAAC,oBAAoB,CAAC,CAAA;QACtE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAiB;YAC3B,QAAQ,EAAE,IAAI;SACjB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAA4B,EAAE,OAA0B;QACxE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,MAAM,GAAG,IAAA,sDAA2B,EAAC,oBAAoB,CAAC,CAAA;QAChE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC5D,OAAO,EAAE,CAAA;IACb,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,gBAAkC,EAAE,OAA0B;QACnF,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,CAAC,KAAK,CAAC,IAAA,wDAAoC,EAAC,oBAAoB,CAAC,GAAG,qCAAqC,CAAC,CAAA;QAEhH,IAAI,gBAAgB,CAAC,cAAc,KAAK,uBAAc,CAAC,OAAO,EAAE;YAC5D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAA;SACrF;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAA;SAC3F;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AA1CD,wDA0CC"}
1
+ {"version":3,"file":"ConnectionLockRpcLocal.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AAEvC,gEAO4C;AAG5C,2DAA0E;AAE1E,gDAAiG;AASjG,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,sBAAsB;IAEd,MAAM,CAA8B;IAErD,YAAY,MAAoC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAwB,EAAE,OAA0B;QAClE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,IAAI,IAAA,qCAAuB,EAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC;YACtF,MAAM,QAAQ,GAAiB;gBAC3B,QAAQ,EAAE,KAAK;aAClB,CAAA;YACD,OAAO,QAAQ,CAAA;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CAAA;QACtE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAiB;YAC3B,QAAQ,EAAE,IAAI;SACjB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAA4B,EAAE,OAA0B;QACxE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,MAAM,GAAG,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CAAA;QAChE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC5D,OAAO,EAAE,CAAA;IACb,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,gBAAkC,EAAE,OAA0B;QACnF,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,CAAC,KAAK,CAAC,IAAA,wDAAoC,EAAC,oBAAoB,CAAC,GAAG,qCAAqC,CAAC,CAAA;QAEhH,IAAI,gBAAgB,CAAC,cAAc,KAAK,uBAAc,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAA;QACtF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AA1CD,wDA0CC"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectionLockRpcRemote = void 0;
4
4
  const utils_1 = require("@streamr/utils");
5
5
  const RpcRemote_1 = require("../dht/contact/RpcRemote");
6
- const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
6
+ const identifiers_1 = require("../identifiers");
7
7
  const logger = new utils_1.Logger(module);
8
8
  class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
9
9
  async lockRequest(lockId) {
10
- logger.trace(`Requesting locked connection to ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
10
+ logger.trace(`Requesting locked connection to ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
11
11
  const request = {
12
12
  lockId
13
13
  };
@@ -22,7 +22,7 @@ class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
22
22
  }
23
23
  }
24
24
  unlockRequest(lockId) {
25
- logger.trace(`Requesting connection to be unlocked from ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
25
+ logger.trace(`Requesting connection to be unlocked from ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
26
26
  const request = {
27
27
  lockId
28
28
  };
@@ -34,7 +34,7 @@ class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
34
34
  });
35
35
  }
36
36
  async gracefulDisconnect(disconnectMode) {
37
- logger.trace(`Notifying a graceful disconnect to ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
37
+ logger.trace(`Notifying a graceful disconnect to ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
38
38
  const request = {
39
39
  disconnectMode
40
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionLockRpcRemote.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,wDAAoD;AACpD,kFAAiF;AAKjF,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,uBAAwB,SAAQ,qBAAkC;IAEpE,KAAK,CAAC,WAAW,CAAC,MAAc;QACnC,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAA,sDAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QACxG,MAAM,OAAO,GAAgB;YACzB,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAChE,OAAO,GAAG,CAAC,QAAQ,CAAA;SACtB;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACxD,OAAO,KAAK,CAAA;SACf;IACL,CAAC;IAEM,aAAa,CAAC,MAAc;QAC/B,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAA,sDAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAAkB;YAC3B,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YAC1D,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,cAA8B;QAC1D,MAAM,CAAC,KAAK,CAAC,sCAAsC,IAAA,sDAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3G,MAAM,OAAO,GAAqB;YAC9B,cAAc;SACjB,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI,CAAE,4CAA4C;SAC9D,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AA1CD,0DA0CC"}
1
+ {"version":3,"file":"ConnectionLockRpcRemote.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,wDAAoD;AAIpD,gDAA4D;AAE5D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,uBAAwB,SAAQ,qBAAkC;IAEpE,KAAK,CAAC,WAAW,CAAC,MAAc;QACnC,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QACxG,MAAM,OAAO,GAAgB;YACzB,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAChE,OAAO,GAAG,CAAC,QAAQ,CAAA;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACxD,OAAO,KAAK,CAAA;QAChB,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,MAAc;QAC/B,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAAkB;YAC3B,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YAC1D,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,cAA8B;QAC1D,MAAM,CAAC,KAAK,CAAC,sCAAsC,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3G,MAAM,OAAO,GAAqB;YAC9B,cAAc;SACjB,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI,CAAE,4CAA4C;SAC9D,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AA1CD,0DA0CC"}
@@ -45,17 +45,17 @@ export declare class ConnectionManager extends EventEmitter<TransportEvents> imp
45
45
  garbageCollectConnections(maxConnections: number, lastUsedLimit: number): void;
46
46
  start(): Promise<void>;
47
47
  stop(): Promise<void>;
48
- getNumberOfLocalLockedConnections(): number;
49
- getNumberOfRemoteLockedConnections(): number;
50
- getNumberOfWeakLockedConnections(): number;
48
+ getLocalLockedConnectionCount(): number;
49
+ getRemoteLockedConnectionCount(): number;
50
+ getWeakLockedConnectionCount(): number;
51
51
  send(message: Message, opts?: SendOptions): Promise<void>;
52
52
  private isConnectionToSelf;
53
53
  private isOwnWebsocketServer;
54
- getConnection(peerDescriptor: PeerDescriptor): ManagedConnection | undefined;
54
+ getConnection(nodeId: DhtAddress): ManagedConnection | undefined;
55
55
  getLocalPeerDescriptor(): PeerDescriptor;
56
- hasConnection(peerDescriptor: PeerDescriptor): boolean;
57
- hasLocalLockedConnection(peerDescriptor: PeerDescriptor): boolean;
58
- hasRemoteLockedConnection(peerDescriptor: PeerDescriptor): boolean;
56
+ hasConnection(nodeId: DhtAddress): boolean;
57
+ hasLocalLockedConnection(nodeId: DhtAddress): boolean;
58
+ hasRemoteLockedConnection(nodeId: DhtAddress): boolean;
59
59
  handleMessage(message: Message): void;
60
60
  private onData;
61
61
  private onConnected;
@@ -69,6 +69,6 @@ export declare class ConnectionManager extends EventEmitter<TransportEvents> imp
69
69
  weakUnlockConnection(nodeId: DhtAddress): void;
70
70
  private gracefullyDisconnectAsync;
71
71
  private doGracefullyDisconnectAsync;
72
- getAllConnectionPeerDescriptors(): PeerDescriptor[];
72
+ getConnections(): PeerDescriptor[];
73
73
  private onConnectionCountChange;
74
74
  }
@@ -29,7 +29,6 @@ const eventemitter3_1 = require("eventemitter3");
29
29
  const SortedContactList_1 = require("../dht/contact/SortedContactList");
30
30
  const DuplicateDetector_1 = require("../dht/routing/DuplicateDetector");
31
31
  const Err = __importStar(require("../helpers/errors"));
32
- const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
33
32
  const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
34
33
  const DhtRpc_client_1 = require("../proto/packages/dht/protos/DhtRpc.client");
35
34
  const ITransport_1 = require("../transport/ITransport");
@@ -38,6 +37,8 @@ const ConnectionLockHandler_1 = require("./ConnectionLockHandler");
38
37
  const ConnectionLockRpcRemote_1 = require("./ConnectionLockRpcRemote");
39
38
  const NodeWebrtcConnection_1 = require("./webrtc/NodeWebrtcConnection");
40
39
  const ConnectionLockRpcLocal_1 = require("./ConnectionLockRpcLocal");
40
+ const identifiers_1 = require("../identifiers");
41
+ const offering_1 = require("../helpers/offering");
41
42
  var NatType;
42
43
  (function (NatType) {
43
44
  NatType["OPEN_INTERNET"] = "open_internet";
@@ -63,7 +64,7 @@ const INTERNAL_SERVICE_ID = 'system/connection-manager';
63
64
  // - if ManagedConnection#peerDescriptor is never undefined
64
65
  const getNodeIdOrUnknownFromPeerDescriptor = (peerDescriptor) => {
65
66
  if (peerDescriptor !== undefined) {
66
- return (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
67
+ return (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
67
68
  }
68
69
  else {
69
70
  return 'unknown';
@@ -71,13 +72,19 @@ const getNodeIdOrUnknownFromPeerDescriptor = (peerDescriptor) => {
71
72
  };
72
73
  exports.getNodeIdOrUnknownFromPeerDescriptor = getNodeIdOrUnknownFromPeerDescriptor;
73
74
  class ConnectionManager extends eventemitter3_1.EventEmitter {
75
+ config;
76
+ metricsContext;
77
+ // TODO use config option or named constant?
78
+ duplicateMessageDetector = new DuplicateDetector_1.DuplicateDetector(100000);
79
+ metrics;
80
+ locks = new ConnectionLockHandler_1.ConnectionLockHandler();
81
+ connections = new Map();
82
+ connectorFacade;
83
+ rpcCommunicator;
84
+ disconnectorIntervalRef;
85
+ state = ConnectionManagerState.IDLE;
74
86
  constructor(config) {
75
87
  super();
76
- // TODO use config option or named constant?
77
- this.duplicateMessageDetector = new DuplicateDetector_1.DuplicateDetector(100000, 100);
78
- this.locks = new ConnectionLockHandler_1.ConnectionLockHandler();
79
- this.connections = new Map();
80
- this.state = ConnectionManagerState.IDLE;
81
88
  this.config = config;
82
89
  this.onData = this.onData.bind(this);
83
90
  this.send = this.send.bind(this);
@@ -108,15 +115,15 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
108
115
  });
109
116
  this.rpcCommunicator.registerRpcMethod(DhtRpc_1.LockRequest, DhtRpc_1.LockResponse, 'lockRequest', (req, context) => lockRpcLocal.lockRequest(req, context));
110
117
  this.rpcCommunicator.registerRpcNotification(DhtRpc_1.UnlockRequest, 'unlockRequest', (req, context) => lockRpcLocal.unlockRequest(req, context));
111
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.DisconnectNotice, DhtRpc_1.DisconnectNoticeResponse, 'gracefulDisconnect', (req, context) => lockRpcLocal.gracefulDisconnect(req, context));
118
+ this.rpcCommunicator.registerRpcNotification(DhtRpc_1.DisconnectNotice, 'gracefulDisconnect', (req, context) => lockRpcLocal.gracefulDisconnect(req, context));
112
119
  }
113
120
  garbageCollectConnections(maxConnections, lastUsedLimit) {
114
121
  if (this.connections.size <= maxConnections) {
115
122
  return;
116
123
  }
117
124
  const disconnectionCandidates = new SortedContactList_1.SortedContactList({
118
- referenceId: (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()),
119
- maxSize: 100000,
125
+ referenceId: (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()),
126
+ maxSize: 100000, // TODO use config option or named constant?
120
127
  allowToContainReferenceId: false,
121
128
  emitEvents: false
122
129
  });
@@ -130,7 +137,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
130
137
  const targetNum = this.connections.size - maxConnections;
131
138
  for (let i = 0; i < sortedCandidates.length && i < targetNum; i++) {
132
139
  const peerDescriptor = sortedCandidates[sortedCandidates.length - 1 - i].getPeerDescriptor();
133
- logger.trace('garbageCollecting ' + (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor));
140
+ logger.trace('garbageCollecting ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor));
134
141
  this.gracefullyDisconnectAsync(peerDescriptor, DhtRpc_1.DisconnectMode.NORMAL).catch((_e) => { });
135
142
  }
136
143
  }
@@ -140,7 +147,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
140
147
  }
141
148
  this.state = ConnectionManagerState.RUNNING;
142
149
  logger.trace(`Starting ConnectionManager...`);
143
- await this.connectorFacade.start((connection) => this.onNewConnection(connection), (peerDescriptor) => this.hasConnection(peerDescriptor), this);
150
+ await this.connectorFacade.start((connection) => this.onNewConnection(connection), (nodeId) => this.hasConnection(nodeId), this);
144
151
  // Garbage collection of connections
145
152
  this.disconnectorIntervalRef = setInterval(() => {
146
153
  logger.trace('disconnectorInterval');
@@ -192,24 +199,24 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
192
199
  // (i.e the this.gracefullyDisconnectAsync() calls above)
193
200
  NodeWebrtcConnection_1.WEBRTC_CLEANUP.cleanUp();
194
201
  }
195
- getNumberOfLocalLockedConnections() {
196
- return this.locks.getNumberOfLocalLockedConnections();
202
+ getLocalLockedConnectionCount() {
203
+ return this.locks.getLocalLockedConnectionCount();
197
204
  }
198
- getNumberOfRemoteLockedConnections() {
199
- return this.locks.getNumberOfRemoteLockedConnections();
205
+ getRemoteLockedConnectionCount() {
206
+ return this.locks.getRemoteLockedConnectionCount();
200
207
  }
201
- getNumberOfWeakLockedConnections() {
202
- return this.locks.getNumberOfWeakLockedConnections();
208
+ getWeakLockedConnectionCount() {
209
+ return this.locks.getWeakLockedConnectionCount();
203
210
  }
204
211
  async send(message, opts = ITransport_1.DEFAULT_SEND_OPTIONS) {
205
- if (this.state === ConnectionManagerState.STOPPED && !opts.sendIfStopped) {
212
+ if ((this.state === ConnectionManagerState.STOPPED || this.state === ConnectionManagerState.STOPPING) && !opts.sendIfStopped) {
206
213
  return;
207
214
  }
208
215
  const peerDescriptor = message.targetDescriptor;
209
216
  if (this.isConnectionToSelf(peerDescriptor)) {
210
217
  throw new Err.CannotConnectToSelf('Cannot send to self');
211
218
  }
212
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
219
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
213
220
  logger.trace(`Sending message to: ${nodeId}`);
214
221
  message = {
215
222
  ...message,
@@ -229,7 +236,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
229
236
  return connection.send(binary, opts.connect);
230
237
  }
231
238
  isConnectionToSelf(peerDescriptor) {
232
- return (0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(peerDescriptor, this.getLocalPeerDescriptor()) || this.isOwnWebsocketServer(peerDescriptor);
239
+ return (0, identifiers_1.areEqualPeerDescriptors)(peerDescriptor, this.getLocalPeerDescriptor()) || this.isOwnWebsocketServer(peerDescriptor);
233
240
  }
234
241
  isOwnWebsocketServer(peerDescriptor) {
235
242
  const localPeerDescriptor = this.getLocalPeerDescriptor();
@@ -241,23 +248,19 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
241
248
  return false;
242
249
  }
243
250
  }
244
- getConnection(peerDescriptor) {
245
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
251
+ getConnection(nodeId) {
246
252
  return this.connections.get(nodeId);
247
253
  }
248
254
  getLocalPeerDescriptor() {
249
255
  return this.connectorFacade.getLocalPeerDescriptor();
250
256
  }
251
- hasConnection(peerDescriptor) {
252
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
257
+ hasConnection(nodeId) {
253
258
  return this.connections.has(nodeId);
254
259
  }
255
- hasLocalLockedConnection(peerDescriptor) {
256
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
260
+ hasLocalLockedConnection(nodeId) {
257
261
  return this.locks.isLocalLocked(nodeId);
258
262
  }
259
- hasRemoteLockedConnection(peerDescriptor) {
260
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
263
+ hasRemoteLockedConnection(nodeId) {
261
264
  return this.locks.isRemoteLocked(nodeId);
262
265
  }
263
266
  handleMessage(message) {
@@ -267,7 +270,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
267
270
  return;
268
271
  }
269
272
  if (this.duplicateMessageDetector.isMostLikelyDuplicate(message.messageId)) {
270
- logger.trace('handleMessage filtered duplicate ' + (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
273
+ logger.trace('handleMessage filtered duplicate ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
271
274
  + ' ' + message.serviceId + ' ' + message.messageId);
272
275
  return;
273
276
  }
@@ -276,7 +279,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
276
279
  this.rpcCommunicator?.handleMessageFromPeer(message);
277
280
  }
278
281
  else {
279
- logger.trace('emit "message" ' + (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
282
+ logger.trace('emit "message" ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
280
283
  + ' ' + message.serviceId + ' ' + message.messageId);
281
284
  this.emit('message', message);
282
285
  }
@@ -306,14 +309,14 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
306
309
  onConnected(connection) {
307
310
  const peerDescriptor = connection.getPeerDescriptor();
308
311
  this.emit('connected', peerDescriptor);
309
- logger.trace((0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor) + ' onConnected() ' + connection.connectionType);
312
+ logger.trace((0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor) + ' onConnected() ' + connection.connectionType);
310
313
  this.onConnectionCountChange();
311
314
  }
312
315
  onDisconnected(connection, gracefulLeave) {
313
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(connection.getPeerDescriptor());
316
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(connection.getPeerDescriptor());
314
317
  logger.trace(nodeId + ' onDisconnected() gracefulLeave: ' + gracefulLeave);
315
318
  const storedConnection = this.connections.get(nodeId);
316
- if (storedConnection && storedConnection.connectionId.equals(connection.connectionId)) {
319
+ if (storedConnection && (storedConnection.connectionId === connection.connectionId)) {
317
320
  this.locks.clearAllLocks(nodeId);
318
321
  this.connections.delete(nodeId);
319
322
  logger.trace(nodeId + ' deleted connection in onDisconnected() gracefulLeave: ' + gracefulLeave);
@@ -323,8 +326,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
323
326
  else {
324
327
  logger.trace(nodeId + ' onDisconnected() did nothing, no such connection in connectionManager');
325
328
  if (storedConnection) {
326
- const connectionId = storedConnection.connectionId.toString();
327
- logger.trace(nodeId + ' connectionIds do not match ' + connectionId + ' ' + connection.connectionId.toString());
329
+ logger.trace(nodeId + ' connectionIds do not match ' + storedConnection.connectionId + ' ' + connection.connectionId.toString());
328
330
  }
329
331
  }
330
332
  }
@@ -351,11 +353,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
351
353
  return true;
352
354
  }
353
355
  acceptNewConnection(newConnection) {
354
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(newConnection.getPeerDescriptor());
356
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(newConnection.getPeerDescriptor());
355
357
  logger.trace(nodeId + ' acceptIncomingConnection()');
356
358
  if (this.connections.has(nodeId)) {
357
- const newPeerID = (0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(newConnection.getPeerDescriptor());
358
- if (newPeerID.hasSmallerHashThan((0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
359
+ if ((0, offering_1.getOfferer)((0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()), nodeId) === 'remote') {
359
360
  logger.trace(nodeId + ' acceptIncomingConnection() replace current connection');
360
361
  // replace the current connection
361
362
  const oldConnection = this.connections.get(nodeId);
@@ -376,7 +377,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
376
377
  return true;
377
378
  }
378
379
  async closeConnection(peerDescriptor, gracefulLeave, reason) {
379
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
380
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
380
381
  logger.trace(nodeId + ' ' + 'closeConnection() ' + reason);
381
382
  this.locks.clearAllLocks(nodeId);
382
383
  if (this.connections.has(nodeId)) {
@@ -389,10 +390,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
389
390
  }
390
391
  }
391
392
  lockConnection(targetDescriptor, lockId) {
392
- if (this.state === ConnectionManagerState.STOPPED || (0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
393
+ if (this.state === ConnectionManagerState.STOPPED || (0, identifiers_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
393
394
  return;
394
395
  }
395
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
396
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
396
397
  const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
397
398
  this.locks.addLocalLocked(nodeId, lockId);
398
399
  rpcRemote.lockRequest(lockId)
@@ -400,10 +401,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
400
401
  .catch((err) => { logger.debug(err); });
401
402
  }
402
403
  unlockConnection(targetDescriptor, lockId) {
403
- if (this.state === ConnectionManagerState.STOPPED || (0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
404
+ if (this.state === ConnectionManagerState.STOPPED || (0, identifiers_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
404
405
  return;
405
406
  }
406
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
407
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
407
408
  this.locks.removeLocalLocked(nodeId, lockId);
408
409
  const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
409
410
  if (this.connections.has(nodeId)) {
@@ -411,19 +412,19 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
411
412
  }
412
413
  }
413
414
  weakLockConnection(nodeId) {
414
- if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
415
+ if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
415
416
  return;
416
417
  }
417
418
  this.locks.addWeakLocked(nodeId);
418
419
  }
419
420
  weakUnlockConnection(nodeId) {
420
- if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
421
+ if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
421
422
  return;
422
423
  }
423
424
  this.locks.removeWeakLocked(nodeId);
424
425
  }
425
426
  async gracefullyDisconnectAsync(targetDescriptor, disconnectMode) {
426
- const connection = this.connections.get((0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(targetDescriptor));
427
+ const connection = this.connections.get((0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor));
427
428
  if (!connection) {
428
429
  logger.debug('gracefullyDisconnectedAsync() tried on a non-existing connection');
429
430
  return;
@@ -445,15 +446,13 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
445
446
  resolve();
446
447
  });
447
448
  });
448
- this.doGracefullyDisconnectAsync(targetDescriptor, disconnectMode)
449
- .then(() => { return; })
450
- .catch((e) => {
451
- logger.error(e);
452
- });
453
- await promise;
449
+ await Promise.all([
450
+ promise,
451
+ this.doGracefullyDisconnectAsync(targetDescriptor, disconnectMode)
452
+ ]);
454
453
  }
455
454
  async doGracefullyDisconnectAsync(targetDescriptor, disconnectMode) {
456
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
455
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
457
456
  logger.trace(nodeId + ' gracefullyDisconnectAsync()');
458
457
  const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
459
458
  try {
@@ -463,7 +462,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
463
462
  logger.trace(nodeId + ' remote.gracefulDisconnect() failed' + ex);
464
463
  }
465
464
  }
466
- getAllConnectionPeerDescriptors() {
465
+ getConnections() {
467
466
  return Array.from(this.connections.values())
468
467
  .filter((managedConnection) => managedConnection.isHandshakeCompleted())
469
468
  .map((managedConnection) => managedConnection.getPeerDescriptor());