Skip to content

Missing RPC methods when using Chopsticks fork (getReadProof and others) #953

@nhussein11

Description

@nhussein11

Description

When connecting to a live Kusama endpoint, all expected RPC methods are available through api.rpc.state. However, when using Chopsticks to fork the same network locally, several RPC methods are missing, including getReadProof which is required for my use case.

Steps to Reproduce

  1. Create a simple script to check available RPC methods:
import { ApiPromise, WsProvider } from "@polkadot/api";

try {
  // Toggle between live endpoint and chopsticks
  const kusamaProvider = new WsProvider("wss://kusama.dotters.network");
  // const kusamaProvider = new WsProvider('ws://localhost:8000');

  const kusamaApi = await ApiPromise.create({ provider: kusamaProvider });

  const result = await kusamaApi.rpc.state;
  console.log('result', result)

  await kusamaApi.disconnect();
} catch (error) {
  console.error("Remote proxy execution failed:", error.message);
}
  1. Run Chopsticks with Kusama fork:
LOG_LEVEL=trace chopsticks -c kusama
  1. Execute the script with both endpoints

Expected Behavior

When using wss://kusama.dotters.network, the following RPC methods are available:

result {
  call: [Getter],
  getChildReadProof: [Getter],
  getKeys: [Getter],
  getKeysPaged: [Getter],
  getMetadata: [Getter],
  getPairs: [Getter],
  getReadProof: [Getter],
  getRuntimeVersion: [Getter],
  getStorage: [Getter],
  getStorageHash: [Getter],
  getStorageSize: [Getter],
  queryStorage: [Getter],
  queryStorageAt: [Getter],
  subscribeRuntimeVersion: [Getter],
  subscribeStorage: [Getter],
  traceBlock: [Getter],
  trieMigrationStatus: [Getter]
}

Actual Behavior

When using Chopsticks (ws://localhost:8000), several methods are missing:

result {
  call: [Getter],
  getKeysPaged: [Getter],
  getMetadata: [Getter],
  getRuntimeVersion: [Getter],
  getStorage: [Getter],
  queryStorageAt: [Getter],
  subscribeRuntimeVersion: [Getter],
  subscribeStorage: [Getter]
}

Missing Methods

The following RPC methods are missing in Chopsticks:

  • getChildReadProof
  • getKeys
  • getPairs
  • getReadProof ⚠️ Required for my use case
  • getStorageHash
  • getStorageSize
  • queryStorage
  • traceBlock
  • trieMigrationStatus

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions