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
  • kusama example fails. js/apps can't connect

    kusama example fails. js/apps can't connect

    > yarn start dev --config=configs/kusama.yml
    [12:06:18.867] INFO (6524): Args
        endpoint: "wss://kusama-rpc.dwellir.com"
        block: 15571512
        import-storage: {
          "System": {
            "Account": [
              [
                [
                  "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"
                ],
                {
                  "data": {
                    "free": "10000000000000000000"
                  }
                }
              ]
            ]
          },
          "Council": {
            "Members": [
              "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"
            ]
          },
          "PhragmenElection": {
            "Members": [
              {
                "who": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
                "stake": 1000000000000,
                "deposit": 1000000000000
              }
            ]
          },
          "TechnicalCommittee": {
            "Members": [
              "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"
            ]
          },
          "TechnicalMembership": {
            "Members": [
              "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"
            ]
          }
        }
        mock-signature-host: true
        db: "./db.sqlite"
        _: [
          "dev"
        ]
        config: "configs/kusama.yml"
        $0: "node_modules/ts-node/dist/bin.js"
        blockHash: "0x5c6d7556c1e0905f7ae6cce5b3ffa11b894727bb46cae724d27645a96b6deb9d"
    [12:06:21.225] INFO (task/6524): Mock signature host enabled
    

    ws://localhost:8000 stays unresponsive, although

    > netstat -tulpen
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
    tcp        0      0 127.0.0.1:40783         0.0.0.0:*               LISTEN      1000       22887      5479/node
    tcp6       0      0 :::8000                 :::*                    LISTEN      1000       20878      5933/node
    
    opened by brenzi 8
  • support fellowship

    support fellowship

    The config file can override council and technical committee members. Would be great if the kusama config could be extended to override the fellowship. I'd like to test the whitelisted_caller flow for gov2

    opened by brenzi 6
  • put/get for `0x` doesn't seem to work as expected

    put/get for `0x` doesn't seem to work as expected

    In our randomness inherent, we put an empty value to a storage item (used to ensure the inherent was set) (see https://github.com/PureStake/moonbeam/blob/master/pallets/randomness/src/lib.rs#L258 for put and https://github.com/PureStake/moonbeam/blob/master/pallets/randomness/src/lib.rs#L306 for the check)

    The logs are showing the value being set:

        4: [
          "0x7a414cb008e0e61e46722aa60abdd672e071d663aecfe81953e36656ddea98c6",
          "0x"
        ]
    

    and retrieved later:

    [11:30:41.067] TRACE (rpc-exec/23305): exec_storageGet
        blockHash: "0xb535900000000000000000000000000000000000000000000000000000000000"
        key: "0x7a414cb008e0e61e46722aa60abdd672e071d663aecfe81953e36656ddea98c6"
        value: "0x"
    

    Howerver the runtime still crashes with

    [ERROR] 11:30:41 Error: Error while executing Wasm VM: Trap: Unreachable
    "panicked at 'Mandatory randomness inherent not included; InherentIncluded storage item is empty', /build/pallets/randomness/src/lib.rs:305:13"
    
    opened by crystalin 5
  • Request: Support for rolling back

    Request: Support for rolling back

    Having the possibility to resume operation at a previous block could be a great feature (for testing mostly). Ex:

    • You generate few blocks to achieve a given state s0
    • You run 1 test specific to that state
    • you rollback to s0
    • You run another test
    • and ...
    opened by crystalin 3
  • Missing validationData when producing block

    Missing validationData when producing block

    I've tried chopstick with Moonriver and it is not able to produce a block after sending a Tx: yarn start dev --endpoint=wss://moonriver.kaki.dev

    [15:10:29.155] INFO (txpool/4523): Building block
        hash: "0x6d31aa900f8334cbb623ab538ee633337bb7c2e3b4a1340c4f76678ddbc366d7"
        number: 3202514
        extrinsicsCount: 1
        tempHash: "0x5d42540000000000000000000000000000000000000000000000000000000000"
        timeValue: 1671199810076
        expectedSlot: 835599905038
    /home/hello/projects/chopsticks/src/blockchain/inherents.ts:123
            extrinsic.validationData.relayParentStorageRoot as HexString,
                                     ^
    TypeError: Cannot read properties of undefined (reading 'relayParentStorageRoot')
        at SetValidationData.createInherents (/home/hello/projects/chopsticks/src/blockchain/inherents.ts:123:34)
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
        at async Promise.all (index 0)
        at async InherentProviders.createInherents (/home/hello/projects/chopsticks/src/blockchain/inherents.ts:71:19)
        at async TxPool.#buildBlock (/home/hello/projects/chopsticks/src/blockchain/txpool.ts:125:23)
        at async TxPool.buildBlock (/home/hello/projects/chopsticks/src/blockchain/txpool.ts:62:5)
    
    opened by crystalin 2
  • 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
  • Fix Kusama block building

    Fix Kusama block building

    The consensus digest isn't exactly right. The 2nd new block building for some reason takes forever. It is iterating all the offensive.reports and some other big storage maps and takes very long time to down all of those storages one by one.

    opened by xlc 1
  • instructions do not work

    instructions do not work

    Tried the README examples without success

    > yarn install
    ➤ YN0000: ┌ Resolution step
    ➤ YN0002: │ ts-node-dev@npm:2.0.0 [cb6f5] doesn't provide @types/node (pcc22c), requested by ts-node
    ➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
    ➤ YN0000: └ Completed in 3s 398ms
    ➤ YN0000: ┌ Fetch step
    ➤ YN0013: │ yargs@npm:17.6.0 can't be found in the cache and will be fetched from the remote registry
    ➤ YN0013: │ yargs@npm:17.6.2 can't be found in the cache and will be fetched from the remote registry
    ➤ YN0013: │ yn@npm:3.1.1 can't be found in the cache and will be fetched from the remote registry
    ➤ YN0013: │ yocto-queue@npm:0.1.0 can't be found in the cache and will be fetched from the remote registry
    ➤ YN0013: │ zod@npm:3.19.1 can't be found in the cache and will be fetched from the remote registry
    ➤ YN0000: └ Completed in 34s 257ms
    ➤ YN0000: ┌ Link step
    ➤ YN0007: │ wasm-pack@npm:0.10.3 must be built because it never has been before or the last one failed
    ➤ YN0007: │ sqlite3@npm:5.1.2 [cb6f5] must be built because it never has been before or the last one failed
    ➤ YN0007: │ esbuild@npm:0.15.12 must be built because it never has been before or the last one failed
    ➤ YN0007: │ bufferutil@npm:4.0.7 must be built because it never has been before or the last one failed
    ➤ YN0007: │ es5-ext@npm:0.10.62 must be built because it never has been before or the last one failed
    ➤ YN0007: │ utf-8-validate@npm:5.0.10 must be built because it never has been before or the last one failed
    ➤ YN0000: └ Completed in 12s 142ms
    ➤ YN0000: Done with warnings in 49s 883ms
    
    > yarn start dev --config=configs/kusama.yml
    Error: Cannot find module '../executor/pkg'
    Require stack:
    - /home/abrenzikofer/chopsticks/src/executor.ts
    - /home/abrenzikofer/chopsticks/src/blockchain/block.ts
    - /home/abrenzikofer/chopsticks/src/blockchain/index.ts
    - /home/abrenzikofer/chopsticks/src/index.ts
        at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
        at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/home/abrenzikofer/chopsticks/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
        at Function.Module._load (internal/modules/cjs/loader.js:746:27)
        at Module.require (internal/modules/cjs/loader.js:974:19)
        at require (internal/modules/cjs/helpers.js:101:18)
        at Object.<anonymous> (/home/abrenzikofer/chopsticks/src/executor.ts:7:1)
        at Module._compile (internal/modules/cjs/loader.js:1085:14)
        at Module.m._compile (/home/abrenzikofer/chopsticks/node_modules/ts-node/src/index.ts:1618:23)
        at Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
        at Object.require.extensions.<computed> [as .ts] (/home/abrenzikofer/chopsticks/node_modules/ts-node/src/index.ts:1621:12) {
      code: 'MODULE_NOT_FOUND',
      requireStack: [
        '/home/abrenzikofer/chopsticks/src/executor.ts',
        '/home/abrenzikofer/chopsticks/src/blockchain/block.ts',
        '/home/abrenzikofer/chopsticks/src/blockchain/index.ts',
        '/home/abrenzikofer/chopsticks/src/index.ts'
      ]
    }
    
    opened by brenzi 1
  • Add sudo to a non-sudo chain

    Add sudo to a non-sudo chain

    What would it take for this tool to add sudo privilleges even if the sudo pallet isn't included in the chain we are forking? The approach used by fork-off-substrate was to download the current state as a chainspec and start a dev chain with it. In our case fork-off-substrate did not produce blocks so wasn't very useful.

    opened by daniel-savu 1
  • dev_newBlock to take additional arguments for inherents

    dev_newBlock to take additional arguments for inherents

    allow pass additional arguments to dev_newBlock and forward them to inherents builder. this should allow customization on next block time, UMP/DMP/HRMP messages, etc

    opened by xlc 0
  • Request: Support timed based sealing

    Request: Support timed based sealing

    Like the dev service, it would be great to support time based sealing like --sealing=2000 which would try to produce a block 2000ms after the previous one (every 2s basically but if the block production is slow; it might be more)

    opened by crystalin 0
  • [WIP] Add support for Moonriver

    [WIP] Add support for Moonriver

    Status: Working, missing better fix for Randomness pallet VRF

    It adds:

    • Inherent => Nimbus - Author Inherent
    • Inherent => Pallet Randomness - Babe Randomness Result
    • Consensus => nmbs pre-digest
    • Config => Moonriver, Moonbeam, Moonbase Alpha

    Broken:

    • The Randomness verification is not passing (temp solution, delete NotFirstBlock at each block)
    opened by crystalin 25
Releases(0.2.3)
  • 0.2.3(Dec 19, 2022)

    What's Changed

    • update license by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/96
    • Adds support for validation data different indexes by @crystalin in https://github.com/AcalaNetwork/chopsticks/pull/94
    • Wasm js bindings by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/93
    • truncate storageDiff and wasm by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/98
    • handle empty value by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/99
    • fix pkg import by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/100

    Full Changelog: https://github.com/AcalaNetwork/chopsticks/compare/0.2.2...0.2.3

    Source code(tar.gz)
    Source code(zip)
  • 0.2.2(Dec 14, 2022)

  • 0.2.1(Dec 13, 2022)

    What's Changed

    • add test by @ntduan in https://github.com/AcalaNetwork/chopsticks/pull/3
    • github action by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/4
    • run wasm_executor from js by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/2
    • update smoldot by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/5
    • storage tests by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/6
    • New block by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/7
    • Improves installation doc by @crystalin in https://github.com/AcalaNetwork/chopsticks/pull/9
    • fix subscription by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/10
    • add option for output file by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/11
    • make wasm-executor default one by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/8
    • fix block production by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/29
    • Update tests by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/30
    • set storages by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/31
    • option to pre-define or override state by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/32
    • support relaychain by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/35
    • able to disable signature verification by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/36
    • Update sig by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/37
    • update storage import by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/38
    • update smotldot by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/39
    • accept config from config file by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/40
    • Db backend by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/41
    • override sudo by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/42
    • replay old validation data by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/43
    • override wasm by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/44
    • Refactor api by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/45
    • fix missing storages by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/46
    • refactor api by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/47
    • refactor runtime version & improvements by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/48
    • add option to define signed extensions and pass registry to future block by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/49
    • Bump @typescript-eslint/parser from 5.40.1 to 5.43.0 by @dependabot in https://github.com/AcalaNetwork/chopsticks/pull/51
    • Bump husky from 8.0.1 to 8.0.2 by @dependabot in https://github.com/AcalaNetwork/chopsticks/pull/54
    • Bump prettier from 2.7.1 to 2.8.0 by @dependabot in https://github.com/AcalaNetwork/chopsticks/pull/58
    • Bump lint-staged from 13.0.3 to 13.0.4 by @dependabot in https://github.com/AcalaNetwork/chopsticks/pull/59
    • Bump @typescript-eslint/eslint-plugin from 5.40.1 to 5.45.0 by @dependabot in https://github.com/AcalaNetwork/chopsticks/pull/62
    • Bump eslint from 8.25.0 to 8.28.0 by @dependabot in https://github.com/AcalaNetwork/chopsticks/pull/61
    • Bump @typescript-eslint/parser from 5.43.0 to 5.45.0 by @dependabot in https://github.com/AcalaNetwork/chopsticks/pull/60
    • added #composable chains by @dzmitry-lahoda in https://github.com/AcalaNetwork/chopsticks/pull/64
    • allow to run wasm anyway by @dzmitry-lahoda in https://github.com/AcalaNetwork/chopsticks/pull/67
    • start chain using genesis config by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/55
    • Fix request check properties by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/68
    • Test wasm override by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/69
    • bump deps by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/72
    • able to clear storage map by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/73
    • fast forward by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/74
    • fix state_call by @shunjizhan in https://github.com/AcalaNetwork/chopsticks/pull/75
    • Pkg build by @ntduan in https://github.com/AcalaNetwork/chopsticks/pull/78
    • decode key by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/81
    • support upgrade by @ermalkaleci in https://github.com/AcalaNetwork/chopsticks/pull/85
    • allow metadata to access storage by @xlc in https://github.com/AcalaNetwork/chopsticks/pull/86

    New Contributors

    • @ntduan made their first contribution in https://github.com/AcalaNetwork/chopsticks/pull/3
    • @xlc made their first contribution in https://github.com/AcalaNetwork/chopsticks/pull/4
    • @ermalkaleci made their first contribution in https://github.com/AcalaNetwork/chopsticks/pull/2
    • @crystalin made their first contribution in https://github.com/AcalaNetwork/chopsticks/pull/9
    • @dependabot made their first contribution in https://github.com/AcalaNetwork/chopsticks/pull/51
    • @dzmitry-lahoda made their first contribution in https://github.com/AcalaNetwork/chopsticks/pull/64

    Full Changelog: https://github.com/AcalaNetwork/chopsticks/commits/0.2.1

    Source code(tar.gz)
    Source code(zip)
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 19 Dec 16, 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 56 Dec 28, 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 Dec 15, 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 7 Dec 21, 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 29 Nov 27, 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 34 Jan 4, 2023
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 Dec 31, 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