smoldot 3.3.2 → 3.4.0

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.
@@ -0,0 +1 @@
1
+ export default function (): string;
@@ -0,0 +1 @@
1
+ export default function () { return "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"; }
@@ -118,7 +118,7 @@ export function connectToInstanceServer(config) {
118
118
  if (!state.connections.has(message.connectionId))
119
119
  return;
120
120
  // The stream might have been reset locally in the past.
121
- if (message.streamId && !state.connections.get(message.connectionId).has(message.streamId))
121
+ if (message.streamId !== undefined && !state.connections.get(message.connectionId).has(message.streamId))
122
122
  return;
123
123
  break;
124
124
  }
@@ -127,7 +127,7 @@ export function connectToInstanceServer(config) {
127
127
  if (!state.connections.has(message.connectionId))
128
128
  return;
129
129
  // The stream might have been reset locally in the past.
130
- if (message.streamId && !state.connections.get(message.connectionId).has(message.streamId))
130
+ if (message.streamId !== undefined && !state.connections.get(message.connectionId).has(message.streamId))
131
131
  return;
132
132
  break;
133
133
  }
@@ -443,7 +443,11 @@ function connect(config) {
443
443
  killAllJs();
444
444
  }
445
445
  else {
446
+ // The stream might have already been reset from the JS side, with the
447
+ // notification still on its way to smoldot.
446
448
  const channel = state.dataChannels.get(streamId);
449
+ if (channel === undefined)
450
+ return;
447
451
  channel.channel.onopen = null;
448
452
  channel.channel.onerror = null;
449
453
  channel.channel.onclose = null;
@@ -454,7 +458,14 @@ function connect(config) {
454
458
  }
455
459
  },
456
460
  send: (data, streamId) => {
461
+ // The stream might have already been reset from the JS side (entry removed),
462
+ // or the channel might have left the `open` state before its `close` event
463
+ // (which reports the reset) is dispatched; sending would then throw. Dropping
464
+ // the data is fine, as the stream is reset or about to be.
465
+ // See <https://github.com/paritytech/smoldot/issues/3322>.
457
466
  const channel = state.dataChannels.get(streamId);
467
+ if (channel === undefined || channel.channel.readyState !== "open")
468
+ return;
458
469
  for (const buffer of data) {
459
470
  channel.bufferedBytes += buffer.length;
460
471
  }
@@ -464,6 +475,13 @@ function connect(config) {
464
475
  openOutSubstream: () => {
465
476
  // `openOutSubstream` can only be called after we have called `config.onOpen`,
466
477
  // therefore `pc` is guaranteed to be non-null.
478
+ // The browser can however move the connection to `closed` before the
479
+ // `connectionstatechange` event (which reports the reset) is dispatched;
480
+ // `createDataChannel` would then throw. Doing nothing is fine, as the
481
+ // connection is about to be reset anyway.
482
+ // See <https://github.com/paritytech/smoldot/issues/3325>.
483
+ if (state.pc.signalingState === "closed")
484
+ return;
467
485
  // Note that the label passed to `createDataChannel` is required to be empty as
468
486
  // per the libp2p WebRTC specification.
469
487
  // TODO: adjusting the options based on the first substream is a bit hacky
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smoldot",
3
- "version": "3.3.2",
3
+ "version": "3.4.0",
4
4
  "description": "Light client that connects to Polkadot and Substrate-based blockchains",
5
5
  "contributors": [
6
6
  "Parity Technologies <admin@parity.io>",