JSPM

scale-decode

1.3.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q8754F
  • License MIT

A CLI tool to decode SCALE compact-encoded integers

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (scale-decode) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    SCALE Compact Encoder / Decoder (Node.js)

    A simple and accurate SCALE Compact Integer decoder implementation in Node.js — built from scratch to help understand and work with SCALE encoding used in Substrate-based blockchains (like Polkadot, Kusama, etc.).

    • A set of interactive CLI tools to encode and decode SCALE compact integers — used in blockchains.

    🚀 Features

    • Encodes / Decodes SCALE compact-encoded integers (all 4 modes: single-byte, two-byte, four-byte, big-integer).
    • Fully little-endian aware.
    • Helpful debug logs for educational purposes.
    • Interactive CLI tool for learners
    • Designed for manual testing and prototyping.

    📦 Installation

    Clone the repository:

    git clone https://github.com/pallasite99/scale-nodejs.git
    cd scale-nodejs

    Usage (basic example)

    node scale.js

    Example Output (Decoding)

    Parsed bytes: <Buffer 04>
    Decoded 0x04 => 1
    
    Parsed bytes: <Buffer 08>
    Decoded 0x08 => 2
    
    Parsed bytes: <Buffer fc>
    Decoded 0xfc => 63
    
    Parsed bytes: <Buffer fc 01>
    Decoded 0xfc01 => 127

    Supported SCALE Compact modes

    | Mode Bits | Bytes Used | Max Value | Description        |
    |-----------|------------|-----------|--------------------|
    | `00`      | 1 byte     | up to 63  | Single-byte mode   |
    | `01`      | 2 bytes    | up to 16K | Two-byte mode      |
    | `10`      | 4 bytes    | up to 1B  | Four-byte mode     |
    | `11`      | N+5 bytes  | BigInt    | Big-integer mode   |

    Local CLI usage

    node ./bin/scale-decode.js
    node ./bin/scale-encode.js

    Screenshot 2025-03-26 123921 Screenshot 2025-03-27 103502

    Running local WebApp

    1. Navigate to scale-web directory
    2. Run npm run dev command after installing all dependencies via npm install in scale-web directory
    3. Visit 'localhost:5173' to interact with React + Vite WebApp

    Web UI

    image image