{"id":26684314,"url":"https://github.com/subscan-explorer/network-runtime-check","last_synced_at":"2025-06-24T23:07:29.239Z","repository":{"id":36949990,"uuid":"503580896","full_name":"subscan-explorer/network-runtime-check","owner":"subscan-explorer","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-01T08:43:48.000Z","size":66,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-26T09:19:43.098Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/subscan-explorer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-15T01:57:56.000Z","updated_at":"2023-04-29T07:21:29.000Z","dependencies_parsed_at":"2023-11-17T08:54:51.232Z","dependency_job_id":"a68bee5c-2280-4519-9efc-5c40c820c204","html_url":"https://github.com/subscan-explorer/network-runtime-check","commit_stats":{"total_commits":17,"total_committers":2,"mean_commits":8.5,"dds":"0.11764705882352944","last_synced_commit":"f09b378d7b734ca30f0169721fcd3cb01150766a"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/subscan-explorer/network-runtime-check","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subscan-explorer%2Fnetwork-runtime-check","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subscan-explorer%2Fnetwork-runtime-check/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subscan-explorer%2Fnetwork-runtime-check/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subscan-explorer%2Fnetwork-runtime-check/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/subscan-explorer","download_url":"https://codeload.github.com/subscan-explorer/network-runtime-check/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subscan-explorer%2Fnetwork-runtime-check/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261771111,"owners_count":23207218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-26T09:19:46.243Z","updated_at":"2025-06-24T23:07:29.208Z","avatar_url":"https://github.com/subscan-explorer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# network-runtime-check\n\n### Build\n\n##### build binary\n\n`make build`\n\n##### build docker image\n\n`make image`\n\n### Running Help\n\n`./runtime-check -h`\n\n### Configure the configuration file\n\npath `conf/config.yaml`\n\n### Subscab\n\nsubscan supported networks\n\n#### Pallet match\n\n##### Shows all pallets supported by the Network Runtime\n\n`-w` query subscan network name, support websocket address, default all subscan network name  \n`-p` matching pallet, default all  \n`-e` Exclude supported pallets, default empty\n`-o` output to file path\n\n##### Example\n\n`./runtime-check pallet match`\n\n`docker run --name runtime-check --rm runtime-check bin/runtime-check pallet match`\n\n##### output\n\n| Network  | Pallet                                        | \n|----------|-----------------------------------------------|\n| polkadot | System Scheduler ... Preimage  Babe XcmPallet |\n| kusama   | System Babe ... Timestamp Indices Balances    |\n| ...      | ...                                           |\n\n##### Example\n\n`./runtime-check pallet match -w stafi,sora,wss://astar.api.onfinality.io/public-ws`\n\n`docker run --name runtime-check --rm runtime-check bin/runtime-check pallet match -w stafi,sora,wss://astar.api.onfinality.io/public-ws`\n\n##### output\n\n| Network                 | Pallet                                        | \n|-------------------------|-----------------------------------------------|\n| polkadot                | System Scheduler ... Preimage  Babe XcmPallet |\n| kusama                  | System Babe ... Timestamp Indices Balances    |\n| astar.api.onfinality.io | System  Utility ... Identity  Timestamp       |\n\n##### Check if the network runtime supports a pallet\n\n`./runtime-check pallet match -p System,Babe`\n\n`docker run --name runtime-check --rm runtime-check bin/runtime-check pallet match -p System,Babe`\n\n##### output\n\n| Network   | Pallet       | \n|-----------|--------------|\n| polkadot  | System  Babe |\n| kusama    | System  Babe |\n| acala     | System       |\n| darwinia  | System  Babe |\n| alephzero | System       |\n| altair    | System       |\n| ...       | ...          |\n\n##### Exclude supported pallets\n\n`./runtime-check pallet match -e babe,timestamp -p preimage,xcmpallet`\n\n`docker run --name runtime-check --rm runtime-check bin/runtime-check pallet match -e babe,timestamp -p preimage,xcmpallet`\n\n##### output\n\n| Network  | Pallet              | \n|----------|---------------------|\n| polkadot | Preimage  XcmPallet |\n| kusama   | Preimage  XcmPallet |\n| acala    | Preimage            |\n| ...      | ...                 |\n\n#### Pallet compare\n\n##### Network comparison with substrate standard pallet\n\n`-w` query subscan network name, support websocket address, default all subscan network name   \n`-o` output to file path\n\n##### Example\n\n`./runtime-check pallet compare`\n\n`docker run --name runtime-check --rm runtime-check bin/runtime-check pallet compare`\n\n###### output\n\n|         | statemint | stafi | sora |\n|---------|-----------|-------|------|\n| System  | O         | O     | O    |\n| Utility | O         | O     | O    |\n| Babe    | X         | O     | O    | \n| ...     | ...       | ...   | ...  |\n\n##### Example\n\n`./runtime-check pallet compare -w stafi,sora,wss://astar.api.onfinality.io/public-ws`\n\n`docker run --name runtime-check --rm runtime-check bin/runtime-check pallet compare -w stafi,sora,wss://astar.api.onfinality.io/public-ws`\n\n###### output\n\n|         | stafi | sora | astar.api.onfinality.io |\n|---------|-------|------|-------------------------|\n| System  | O     | O    | O                       |\n| Utility | O     | O    | O                       |\n| Babe    | O     | O    | X                       |\n| ...     | ...   |      |                         |\n\n#### Param\n\n##### Check whether the extrinsic and event in the pallet conform to the parameter definition\n\n`-r` rule configuration file path\n`-o` output to file path\n\n##### Config file rule\n\n```yaml\nrule:\n  - name: common\n    pallet:\n      - name: Balances\n        event:\n          - name: Transfer\n            param: [ AccountId,AccountId,Balance ]\n        extrinsic:\n          - name: Transfer\n            param: [ Address, Balance ]\n      - name: System\n        event:\n          - name: ExtrinsicSuccess\n            param: [ DispatchInfo ]\n          - name: ExtrinsicFailed\n            param: [ DispatchError,DispatchInfo ]\n  - name: pmk\n    pallet:\n      - name: PredictionMarkets\n        event:\n          - name: MarketDisputed\n            param: [ \"MarketIdOf\",\"MarketStatus\",\"MarketDispute\u003cAccountId, BlockNumber\u003e\" ]\n          - name: MarketRejected\n            param: [ MarketIdOf ]\n        extrinsic:\n          - name: buy_complete_set\n            param: [ MarketIdOf,BalanceOf ]\n      - name: ParachainSystem\n        event:\n          - name: DownwardMessagesProcessed\n            param: [ Weight,relay_chain::Hash ]\n\nnetwork:\n  - name: polkadot # name key\n    domain: polkadot # subscan domain\n    wsAddr: wss://rpc.polkadot.io/ # websocket addr  Priority use\n    rule_inherit: [ common,pmk ]    # inherit rules from `rule` field\n    pallet:\n      - name: Treasury\n        event:\n          - name: Deposit # event id\n            param: [ BalanceOf ]\n        extrinsic:\n          - name: Awarded # extrinsic id\n            param: [ ProposalIndex, BalanceOf, AccountId ]\n```\n\n##### Example\n\n`./runtime-check param -r rule.yml`\n\n`docker run --name runtime-check --rm runtime-check bin/runtime-check param -r rule.yml`\n\n###### output\n\n| Network  | Pallet   | Event    | Check | Note |\n|----------|----------|----------|-------|------|\n| polkadot | Balances | Transfer | O     |      |\n| khala    | Balances | Transfer | O     |      |\n| ...      | ...      |          |       |      |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubscan-explorer%2Fnetwork-runtime-check","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsubscan-explorer%2Fnetwork-runtime-check","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubscan-explorer%2Fnetwork-runtime-check/lists"}