smoldot 2.0.33 → 2.0.35

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.
@@ -364,8 +364,10 @@ function startLocalInstance(config, wasmModule, eventCallback) {
364
364
  peekJsonRpcResponse: (chainId) => {
365
365
  if (!state.instance)
366
366
  return null;
367
- const mem = new Uint8Array(state.instance.exports.memory.buffer);
368
367
  const responseInfo = state.instance.exports.json_rpc_responses_peek(chainId) >>> 0;
368
+ // Note that the memory must be created after calling the Wasm function, otherwise
369
+ // it might be invalidated if it is grown.
370
+ const mem = new Uint8Array(state.instance.exports.memory.buffer);
369
371
  const ptr = buffer.readUInt32LE(mem, responseInfo) >>> 0;
370
372
  const len = buffer.readUInt32LE(mem, responseInfo + 4) >>> 0;
371
373
  // `len === 0` means "queue is empty" according to the API.
@@ -389,7 +391,7 @@ function startLocalInstance(config, wasmModule, eventCallback) {
389
391
  console.assert(disableJsonRpc || jsonRpcMaxPendingRequests != 0, "invalid jsonRpcMaxPendingRequests value passed to local-instance::addChain");
390
392
  // `add_chain` unconditionally allocates a chain id. If an error occurs, however, this chain
391
393
  // id will refer to an *erroneous* chain. `chain_is_ok` is used below to determine whether it
392
- // has succeeeded or not.
394
+ // has succeeded or not.
393
395
  state.bufferIndices[0] = new TextEncoder().encode(chainSpec);
394
396
  state.bufferIndices[1] = new TextEncoder().encode(databaseContent);
395
397
  const potentialRelayChainsEncoded = new Uint8Array(potentialRelayChains.length * 4);
@@ -351,7 +351,7 @@ export interface AddChainOptions {
351
351
  * inspecting the chain specification of that parachain (i.e. the `chainSpec` field).
352
352
  *
353
353
  * This poses a problem in situations where the same client is shared between multiple different
354
- * applications: multiple applications could add mutiple different chains with the same `id`,
354
+ * applications: multiple applications could add multiple different chains with the same `id`,
355
355
  * creating an ambiguity, or an application could register malicious chains with small variations
356
356
  * of a popular chain's `id` and try to benefit from a typo in a legitimate application's
357
357
  * `relayChain`.