rob thijssen c616a0d949 feat(networks): offer only chains whose accounts are post-quantum
Deployments built on this fork should gate on chains using PQ algorithms, so
`availableNetworks` and `selectableNetworks` now exclude anything whose
standardAccount is a discrete-log scheme. *25519, Ed25519, Sr25519 and secp256k1
are all broken at once by Shor's algorithm, so a chain using one has no
quantum-safe account type to offer whatever else is true of it. A null
standardAccount counts as unsafe: unknown is not the same as safe, and being
wrong in that direction means a user holding funds under a recoverable key.

`allNetworks` is deliberately left complete. Gating what we offer must not gate
what we can read — a pasted Polkadot address has to render as a Polkadot address
so it can be recognised and refused. A wallet that cannot decode an address it
will not accept can only say "invalid", which reads as a typo rather than as a
warning.

Five upstream tests asserted the shape of a list that now holds two entries
instead of a hundred and fifty. Each is rewritten to assert the rule that
displaced it rather than deleted:
  - starting order 0/2/42 and tail 'ZERO'/'Zeitgeist' become "offers only
    post-quantum chains", plus an explicit test that non-PQ chains remain
    decodable, since that distinction is the whole design
  - the ledger slip44 check becomes its inverse: nothing offered should claim
    hardware support, because no PQ chain has a Ledger app — the devices speak
    ed25519 over the Substrate app. knownLedger is left intact rather than
    emptied so a rebase has nothing to reconcile; it simply matches nothing
  - the Polkadot field fixture becomes the Quantus one

Refs quantus/common#1

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
2026-09-10 18:28:13 +03:00
2025-01-17 19:39:05 +02:00
2025-05-19 18:17:15 +03:00
2020-10-23 10:03:23 +02:00
2022-01-13 10:05:40 +02:00
2021-06-08 17:04:13 +02:00
2026-03-12 18:53:56 +02:00
2025-05-19 18:17:15 +03:00
2026-03-23 14:48:13 +02:00
2019-02-28 16:32:31 +01:00
2026-03-23 12:53:26 +00:00
2026-03-12 18:53:56 +02:00
2022-08-12 09:53:00 +03:00
2018-11-21 12:26:38 +01:00
2026-03-23 12:53:26 +00:00
2022-12-08 08:24:41 +02:00
2026-03-12 18:53:56 +02:00
2022-01-11 08:49:59 +02:00
2026-03-23 14:48:13 +02:00

@polkadot/common

Various useful utility functions that are used across all projects in the @polkadot namespace. It provides utility functions with additional safety checks, allowing not only for consistent coding, but also reducing the general boilerplate.

overview

This repository is split up into a number of internal packages, namely utilities -

development

Contributions are welcome!

To start off, this repo (along with others in the @polkadot family) uses yarn workspaces to organise the code. As such, after cloning, its dependencies should be installed via yarn, not via npm; the latter will result in broken dependencies.

To get started -

  1. Clone the repo locally, via git clone https://github.com/polkadot-js/common <optional local path>
  2. Ensure that you have a recent version of Node.js, for development purposes Node 10 is recommended.
  3. Ensure that you have a recent version of Yarn, for development purposes Yarn >=1.10.1 is required.
  4. Install the dependencies by running yarn
  5. Build the everything via yarn run build
  6. You can also launch the API Docs, via yarn vuepress dev docs
  7. Access the docs via http://localhost:8080

tutorials

Looking for tutorials to get started? Look at examples for guides on how to use the base utilities.

Description
Fork of polkadot-js/common. Carries the ML-DSA (Dilithium) keypair types in @polkadot/keyring and @polkadot/util-crypto: Quantus account ids are Poseidon2 hashes of 1952/2592-byte public keys, which upstream's 32-byte assumptions cannot express. Not upstreamable — see quantus/extension#1.
Readme Apache-2.0 54 MiB
Languages
TypeScript 99.7%
JavaScript 0.2%
HTML 0.1%