Create parallel reality of your Substrate network.

Overview

Chopsticks

Create parallel reality of your Substrate network.

Install

Make sure you have setup Rust environment (>= 1.64).

  • Clone repository with submodules (smoldot)
    • git clone --recurse-submodules https://github.com/AcalaNetwork/chopsticks.git && cd chopsticks
  • Install deps
    • yarn
  • Build wasm
    • yarn build-wasm

Run

  • Replay latest block

    • yarn start run-block --endpoint=wss://acala-rpc-2.aca-api.network/ws
    • This will replay the last block and print out the changed storages
    • Use option --output-path=<file_path> to print out JSON file
  • Run a test node

    • yarn start dev --endpoint=wss://acala-rpc-2.aca-api.network/ws
    • You have a test node running at ws://localhost:8000
    • You can use Polkadot.js Apps to connect to this node
    • Submit any transaction to produce a new block in the in parallel reality
    • (Optional) Pre-define/override storage using option --import-storage=storage.[json/yaml]. See example storage below.
    // prettier-ignore
    {
      "Sudo": {
        "Key": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"
      },
      "TechnicalCommittee": {
        "Members": ["5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"]
      },
      "Tokens": {
        "Accounts": [
          [
            ["5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", { "token": "KAR" }],
            {
              "free": 1000000000000000,
            }
          ]
        ]
      }
    }
Comments
  • Bump @polkadot/rpc-provider from 9.5.2 to 9.8.1

    Bump @polkadot/rpc-provider from 9.5.2 to 9.8.1

    Bumps @polkadot/rpc-provider from 9.5.2 to 9.8.1.

    Release notes

    Sourced from @​polkadot/rpc-provider's releases.

    v9.8.1

    Contributed:

    Changes:

    • Cater for TransactionPaymentApi/2 runtime calls
    • Add getters for has{DryRun, PaymentInfo} on submittables (feature detection)
    • Polkadot 9300, Kusama 9300 & Westend 9310/9320 upgrade blocks
    • Update to latest Polkadot, Kusama & Substrate metadata

    v9.7.1

    Contributed:

    Changes:

    • Align ScProvider code structure with other providers
    • Add isClonable getter on providers (some, e.g. sc doesn't support this)
    • Update to latest Substrate metadata

    v9.6.2

    Changes:

    • Adjust historic DispatchError type for statemint/statemine

    v9.6.1

    Contributed:

    Changes:

    • Cater for latest Substrate DispatchError (additional preimage statuses)
    • Adjust api.derive.democracy.* to return imageHash as HexString (as applicable, supports current-gen preimages)
    • Adjust api.derive.preimages.* to retrieve via democracy or preimage pallets
    • Ensure apiAt.<section>.<method>.key(...) passes through the correct arguments
    • Apply fallback for Weight downgrades (V2 >> V1 detection)
    • Update to latest Substrate metadata
    • Polkadot 9291 & Westend 9300 upgrade blocks
    Changelog

    Sourced from @​polkadot/rpc-provider's changelog.

    9.8.1 Nov 13, 2022

    Contributed:

    Changes:

    • Cater for TransactionPaymentApi/2 runtime calls
    • Add getters for has{DryRun, PaymentInfo} on submittables (feature detection)
    • Polkadot 9300, Kusama 9300 & Westend 9310/9320 upgrade blocks
    • Update to latest Polkadot, Kusama & Substrate metadata

    9.7.1 Nov 6, 2022

    Contributed:

    Changes:

    • Align ScProvider code structure with other providers
    • Add isClonable getter on providers (some, e.g. sc doesn't support this)
    • Update to latest Substrate metadata

    9.6.2 Oct 30, 2022

    Changes:

    • Adjust historic DispatchError type for statemint/statemine

    9.6.1 Oct 23, 2022

    Contributed:

    Changes:

    • Cater for latest Substrate DispatchError (additional preimage statuses)
    • Adjust api.derive.democracy.* to return imageHash as HexString (as applicable, supports current-gen preimages)
    • Adjust api.derive.preimages.* to retrieve via democracy or preimage pallets
    • Ensure apiAt.<section>.<method>.key(...) passes through the correct arguments
    • Apply fallback for Weight downgrades (V2 >> V1 detection)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump @polkadot/api from 9.5.2 to 9.8.1

    Bump @polkadot/api from 9.5.2 to 9.8.1

    Bumps @polkadot/api from 9.5.2 to 9.8.1.

    Release notes

    Sourced from @​polkadot/api's releases.

    v9.8.1

    Contributed:

    Changes:

    • Cater for TransactionPaymentApi/2 runtime calls
    • Add getters for has{DryRun, PaymentInfo} on submittables (feature detection)
    • Polkadot 9300, Kusama 9300 & Westend 9310/9320 upgrade blocks
    • Update to latest Polkadot, Kusama & Substrate metadata

    v9.7.1

    Contributed:

    Changes:

    • Align ScProvider code structure with other providers
    • Add isClonable getter on providers (some, e.g. sc doesn't support this)
    • Update to latest Substrate metadata

    v9.6.2

    Changes:

    • Adjust historic DispatchError type for statemint/statemine

    v9.6.1

    Contributed:

    Changes:

    • Cater for latest Substrate DispatchError (additional preimage statuses)
    • Adjust api.derive.democracy.* to return imageHash as HexString (as applicable, supports current-gen preimages)
    • Adjust api.derive.preimages.* to retrieve via democracy or preimage pallets
    • Ensure apiAt.<section>.<method>.key(...) passes through the correct arguments
    • Apply fallback for Weight downgrades (V2 >> V1 detection)
    • Update to latest Substrate metadata
    • Polkadot 9291 & Westend 9300 upgrade blocks
    Changelog

    Sourced from @​polkadot/api's changelog.

    9.8.1 Nov 13, 2022

    Contributed:

    Changes:

    • Cater for TransactionPaymentApi/2 runtime calls
    • Add getters for has{DryRun, PaymentInfo} on submittables (feature detection)
    • Polkadot 9300, Kusama 9300 & Westend 9310/9320 upgrade blocks
    • Update to latest Polkadot, Kusama & Substrate metadata

    9.7.1 Nov 6, 2022

    Contributed:

    Changes:

    • Align ScProvider code structure with other providers
    • Add isClonable getter on providers (some, e.g. sc doesn't support this)
    • Update to latest Substrate metadata

    9.6.2 Oct 30, 2022

    Changes:

    • Adjust historic DispatchError type for statemint/statemine

    9.6.1 Oct 23, 2022

    Contributed:

    Changes:

    • Cater for latest Substrate DispatchError (additional preimage statuses)
    • Adjust api.derive.democracy.* to return imageHash as HexString (as applicable, supports current-gen preimages)
    • Adjust api.derive.preimages.* to retrieve via democracy or preimage pallets
    • Ensure apiAt.<section>.<method>.key(...) passes through the correct arguments
    • Apply fallback for Weight downgrades (V2 >> V1 detection)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump @polkadot/util from 10.1.11 to 10.1.12

    Bump @polkadot/util from 10.1.11 to 10.1.12

    Bumps @polkadot/util from 10.1.11 to 10.1.12.

    Release notes

    Sourced from @​polkadot/util's releases.

    v10.1.12

    Changes:

    • Upgrade dependencies to latest stable versions
    Changelog

    Sourced from @​polkadot/util's changelog.

    10.1.12 Nov 13, 2022

    Changes:

    • Upgrade dependencies to latest stable versions
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump husky from 8.0.1 to 8.0.2

    Bump husky from 8.0.1 to 8.0.2

    Bumps husky from 8.0.1 to 8.0.2.

    Release notes

    Sourced from husky's releases.

    v8.0.2

    • docs: remove deprecated npm set-script
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump @typescript-eslint/parser from 5.40.1 to 5.43.0

    Bump @typescript-eslint/parser from 5.40.1 to 5.43.0

    Bumps @typescript-eslint/parser from 5.40.1 to 5.43.0.

    Release notes

    Sourced from @​typescript-eslint/parser's releases.

    v5.43.0

    5.43.0 (2022-11-14)

    Bug Fixes

    • eslint-plugin: [no-shadow] handle false positives on generics and parameters (#5902) (769e8c8)
    • eslint-plugin: [promise-function-async] handle keyword token (#5907) (f25a94f)

    Features

    • eslint-plugin: [consistent-type-imports] support fixing to inline types (#5050) (75dcdf1)
    • eslint-plugin: [naming-convention] add support for "override" and "async" modifiers (#5310) (#5610) (c759da1)
    • eslint-plugin: [prefer-optional-chain] support suggesting !foo || !foo.bar as a valid match for the rule (#5594) (923d486)

    v5.42.1

    5.42.1 (2022-11-07)

    Bug Fixes

    • ast-spec: correct misnamed ExportNamedDeclaration AST type (#5913) (e88f4fa)
    • eslint-plugin: isTypeReadonly stack overflow (#5875) (#5876) (2d9a33c)

    v5.42.0

    5.42.0 (2022-10-31)

    Bug Fixes

    • ast-spec: add TSQualifiedName to TypeNode union (#5906) (5c316c1)
    • eslint-plugin: [no-extra-parens] handle type assertion in extends clause (#5901) (8ed7219)
    • typescript-estree: don't allow single-run unless we're in type-aware linting mode (#5893) (891b087)

    Features

    • eslint-plugin: [member-ordering] add natural sort order (#5662) (1eaae09)
    • eslint-plugin: [no-invalid-void-type] better report message for void used as a constituent inside a function return type (#5274) (d806bda)
    • typescript-estree: clarify docs and error for program project without matching TSConfig (#5762) (67744db)
    • utils: add RuleTester API for top-level dependency constraints (#5896) (0520d53)

    v5.41.0

    5.41.0 (2022-10-24)

    ... (truncated)

    Changelog

    Sourced from @​typescript-eslint/parser's changelog.

    5.43.0 (2022-11-14)

    Note: Version bump only for package @​typescript-eslint/parser

    5.42.1 (2022-11-07)

    Note: Version bump only for package @​typescript-eslint/parser

    5.42.0 (2022-10-31)

    Features

    Reverts

    5.41.0 (2022-10-24)

    Note: Version bump only for package @​typescript-eslint/parser

    Commits
    • 8af1b4d chore: publish v5.43.0
    • b8b24c2 chore: publish v5.42.1
    • 1e5e9ea chore: publish v5.42.0
    • 2ee81df Revert "feat(scope-manager): ignore ECMA version" (#5888)
    • 3b8d449 feat(scope-manager): ignore ECMA version (#5881)
    • fcf3f9d docs: Mention wide globs performance implications in monorepos docs and parse...
    • 9eea5f4 chore: publish v5.41.0
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Followup of #32

    Followup of #32

    Followup of #32

    • [ ] Support yaml instead of json
    • [ ] Improve error handling error message
    • [ ] Update the RPC to also accept the string format
    • [ ] Add some tests
    opened by xlc 0
  • Implement subscribeRuntimeVersion

    Implement subscribeRuntimeVersion

    https://github.com/AcalaNetwork/chopsticks/blob/bddcdabeaf3409d07c40946de02816fa878b2ed2/src/blockchain/head-state.ts#L43-L52

    And reuse runtime version across block

    opened by xlc 0
Owner
Acala Foundation
Cross-chain DeFi Hub & stablecoin based on #Substrate.
Acala Foundation
GPU-accelerated Augmented Reality for the web.

MARTINS.js WebAR engine Create amazing Augmented Reality experiences with MARTINS.js, a GPU-accelerated Augmented Reality engine for the web. Get star

Alexandre Martins 18 Sep 9, 2022
Mixed Reality Capture module for WebXR and Three.js

Reality Mixer JS This is a small Mixed Reality Capture module for WebXR + Three.js. You can use this module to allow users to record your WebXR experi

Fabio 51 Nov 11, 2022
Simple but Complete & Fast network monitor for your home network

netmon Netmon is an opensource project for protecting and monitoring your home network. Netmon is written to run on a Raspberry PI and is optimized to

Tommaso Ventafridda 9 Jul 6, 2022
Resolve parallel promises in key-value pairs whilst maintaining type information

async-kv Resolves promises in key-value pairs maintaining type information. Prerequisites NodeJS 12 or later Installation npm i async-kv yarn add asyn

Tony Tamplin 4 Feb 17, 2022
Parallel/concurrent async work, optionally using multiple threads or processes

parallel-park Parallel/concurrent async work, optionally using multiple processes Usage parallel-park exports two functions: runJobs and inChildProces

Lily Scott 10 Mar 1, 2022
Course material for a ~10 hours introductionary course for Julia. Topics: Introduction, Parallel Programming, Data Science

Development We use Franklin.jl to generate the lecture material. To do so, simply activate the environment, use Franklin and run the local server: act

GregorE 3 Jul 21, 2022
Talk to anyone connected to your network, be it LAN or your hotspot. Doesn't require internet.

Apophis CLI to talk to anyone connected to your network, be it LAN or your hotspot. Doesn't require internet. Installation Make sure you have NodeJS (

Saurav Pal 3 Oct 16, 2022
A social network that simulates a personal blog, where people post "What's on your mind?". Tweteroo is a Twitter clone.

Tweteroo About A social network that simulates a personal blog, where people post "What's on your mind?". Tweteroo is a Twitter clone. ?? Features ☑️

Luiza Santiago 5 Apr 13, 2022
A social network where you can share posts, view your profile metrics and follow other users.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Rui Neto 16 Aug 21, 2022
Diush - a secure funnel for selling items to your friends and network

diush a secure funnel for selling items to your friends and network. learn more at diush.xyz » diush is an open-source mobile platform that acts as a

diush 6 Sep 4, 2022
Decentralized Social Network Money Frauds/Scams including BitClout, Twetch, Steemit, PeakD

Decentralized Social Network Money Frauds and DAOs: BitClout, Twetch, PeakD, Steemit ... Updates 4/29/2021 https://www.coindesk.com/wyoming-dao-llc-la

Scott Stirling 28 Nov 7, 2022
A simple way to share files and clipboard within a local network.

Shortcut Simple way to share files and clipboard with devices within a local network. Usage Run the ./shortcut executable. A browser window will be op

Dhamith Hewamullage 17 Mar 13, 2022
This Project is made with HTML5, CSS3, ReactJS, Axios, MetaMask, thirdweb, Rinkeby Test Network, Web 3.0 Technologies, and OpenSea API.

Abstract Collections This Project is made with HTML5, CSS3, ReactJS, Axios, MetaMask, thirdweb, Rinkeby Test Network, Web 3.0 Technologies, and OpenSe

Shobhit Gupta 32 Sep 29, 2022
Anagolay Network Javascript SDK written in Typescript

Anagolay Network Javascript SDK written in Typescript. This repo will contain the bindings to Anagolay Network with the sane defaults for pallet usage

Anagolay Network 4 Nov 26, 2022
Hundreds of Offensive and Useful Docker Images for Network Intrusion. The name says it all.

?? HOUDINI: Hundreds of Offensive and Useful Docker Images for Network Intrusion HOUDINI is a curated list of Network Security related Docker Images f

SecSI 1.1k Nov 25, 2022
A lazy plugin for printing local network when starting NodeJS server. I made this so you don't have to.

lazy-net A simple, lightweight plugin for printing local network when starting Node.js or Express.js server. I made this so you don't have to. There a

Trần Quang Kha (始) 1 Feb 10, 2022
Awesome TV is the First and Original streaming entertainment network for Global Africa from United States of America (USA).

LEADBOARD APP Awesome TV is the First and Original streaming entertainment network for Global Africa from United States of America (USA). Built With H

Aime Malaika 9 Apr 4, 2022
A super simple web3 API to allow crypto interactions with the Solana Network 🔑🌐

orca.js A JavaScript API for web3 Transaction and Authenticating PLEASE NOTE: orca.js is still in development! And comming soon in 2022. Stay tuned on

null 3 Mar 20, 2022
A super simple web3 API to allow crypto interactions with the Solana Network 🔑🌐

orca.js A JavaScript API for web3 Transaction and Authenticating PLEASE NOTE: orca.js is still in development! And comming soon in 2022. Stay tuned on

null 3 Mar 20, 2022