Polkadot/Substrate extrinsics debugging toolkit.
bun cli.ts help- Show helpbun cli.ts decode <extrinsic-hex> [--chain <name>] [--name <string>]- Decode extrinsicbun cli.ts decode-call <call-hex> [--chain <name>] [--name <string>]- Decode call (without extrinsic wrapper)bun cli.ts build --address <hex> --call <hex> [--nonce <n>] [--tip <n>] [--era immortal|mortal]- Build extrinsicbun cli.ts build-with-extensions --address <hex> --call <hex> --extensions <hex> [--signature <hex>] [--chain <name>] [--decode]- Build extrinsic with custom signed extensionsbun cli.ts compare <hex1> <hex2> [--name1 <s>] [--name2 <s>]- Compare two extrinsicsbun cli.ts query-fees --address <hex> --call <hex> [--chain <name>]- Query feesbun cli.ts query-extrinsic-fees <extrinsic-hex> [--chain <name>]- Query fees for existing extrinsicbun cli.ts compact-scale --encode <n> | --decode <hex>- Encode/decode SCALE compactbun cli.ts get-storage <key> [block] [--chain <name>]- Query storagebun cli.ts get-block [--hash <hash>] [--chain <name>]- Get block databun cli.ts list-pallets [--chain <name>]- List palletsbun cli.ts list-calls [--chain <name>] [--pallets <names>]- List callsbun cli.ts list-types [--chain <name>]- List typesbun cli.ts describe-type <type-name> [--chain <name>]- Show type structurebun cli.ts list-signed-extensions [--chain <name>] [--live] [--verbose]- List signed extensions order/encodingbun cli.ts list-constants [--chain <name>] [--pallet <name>]- List constantsbun cli.ts describe-constant <pallet> <constant> [--chain <name>]- Show constant infobun cli.ts add-chain --name <name> --ws-url <url> [--display-name <name>] [--papi-key <key>] [--set-default]- Add chain
bun cli.ts get-validators [--chain <name>] [--indices <list>]- Get session validators with indicesbun cli.ts get-disputes [--chain <name>] [--block <hash>]- Get disputes from block/storagebun cli.ts analyze-dispute-votes --file <json> [--validators <csv>]- Analyze dispute vote patternsbun cli.ts get-session-info [--chain <name>]- Get session info and dispute parametersbun cli.ts check-para-validation --para-id <n> [--chain <name>]- Check para validation status
See docs/dispute-investigation.md for detailed guide.
bun installcli.ts # CLI entry point
lib/extrinsic-utils.ts # Decoder and builder
lib/extensions-parser.ts # Dynamic extensions parser
extensions.json # Chain-specific extensions config
chains.json # Chain RPC endpoints
commands/ # CLI command implementations
docs/ # Documentation
.papi/ # Auto-generated by polkadot-api CLI (do not edit manually)
-
Add chain to chains.json:
{ "name": "enjin-relay", "displayName": "Enjin Relay", "wsUrl": "wss://archive.relay.blockchain.enjin.io", "papiKey": "enjinRelay" } -
Generate metadata and descriptors:
bunx papi add <chain> -n <papiKey>
-
(Optional) Add signed extensions to extensions.json for extrinsic building/decoding.
- EVENTS:
0x26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7 - SYSTEM_ACCOUNT:
0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9
- TypeScript:
strict: true, ESNext target noUncheckedIndexedAccess: true(require undefined checks for array access)allowImportingTsExtensions: true