1693 Commits

Author SHA1 Message Date
160d97c19b build: declare @quantus/crypto as a ui-keyring dev dependency
Some checks failed
Lock Threads / lock (push) Has been cancelled
The ML-DSA restore spec imports contextForSpec from it, and polkadot-dev's
build refuses a package whose sources import something undeclared.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
2026-09-16 21:13:56 +03:00
c7c23b7958 feat!: ui-keyring holds post-quantum keys only
Follows quantus/common#6, which removed ed25519, sr25519, ecdsa and ethereum
from the keyring (forks at 14.0.3-quantus.3).

- restoreAccount now goes through keyring.createFromJson instead of building
  the pair itself. A restored backup therefore gets the same refusal as every
  other entry point: a polkadot{.js} export of an sr25519 or ed25519 account is
  told "<type> keys are not quantum-safe and cannot be held here", not decoded.
- Version-0 JSON, which does not record its key type and so cannot be ML-DSA,
  is refused. Upstream guessed ed25519.
- isEthereum is always false; it's kept so callers written against upstream
  still read a boolean.
- loadAll already skips, with a warning, any stored account the keyring
  refuses, so a profile holding an old classical account still starts.

The spec that pinned sr25519 restore as unchanged is replaced by the two
refusals. ui-keyring 3.16.7-quantus.3, on the quantus.3 forks. yarn test 47
passing; lint clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
2026-09-16 21:13:01 +03:00
2d6a9ad1b3 build: consume the forks at 14.0.3-quantus.2
Some checks failed
Lock Threads / lock (push) Has been cancelled
Picks up the networks fix (the quantum-safe gate moving out of the library list,
which made @polkadot/api importable again) and Heisenberg's corrected HEI symbol.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
2026-09-15 14:15:02 +03:00
rob thijssen
18105d3ced build: pin the forked packages at 14.0.3-quantus.1
Follows the rename in quantus/common. The point is not tidiness: with the forks
numbered 14.0.3, a missing resolution here would have been satisfied from npm by
the unforked upstream package, installing cleanly and silently dropping Quantus
support. Now it fails with "No candidates found" — verified by removing the
@polkadot/networks resolution and running an install.

Refs quantus/extension#2

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
2026-09-15 11:28:03 +03:00
rob thijssen
f2a1ab3a72 build: consume the forked @polkadot packages from the registry, drop the scaffolding
Removes every workaround the symlink approach needed, and reverts tsconfig to
upstream's exactly.

The three forked packages — @polkadot/{networks,util-crypto,keyring} — are now
pinned to Gitea tarball URLs in resolutions. @polkadot/util is not, because this
fork does not modify it; it comes from npm like the rest of the scope.

Tarball URLs rather than routing the @polkadot scope to Gitea, because the scope
is mostly *not* forked: routing it would send yarn looking for dozens of packages
that are not there. @quantus is routed as a whole scope in .yarnrc.yml, which is
safe because we own every name in it.

Four things go away, all of which existed for one reason — node resolves a portal
or link symlink to its realpath, after which @polkadot/util-crypto resolved inside
*common's* tree, where it is a workspace source directory with no exports map:

  - resolutions pointing four packages at ../common/packages/*/build
  - tsconfig.base.json `*.d.ts` path mappings, needed because NodeNext will not
    infer an extension for a bare path and looked for a `types` directory
  - tsconfig.json overriding those with a runtime `.js` view, because
    @polkadot/dev-ts reads that file and tried to import a declaration file as a
    module
  - --preserve-symlinks in the test scripts

Also drops fflate and @quantus/crypto from ui-keyring's devDependencies; they were
there only because `link:` does not install its target's dependencies.

`yarn lint` now reports 0 errors, down from 25 on pristine upstream. Those were
no-unsafe-assignment and no-unsafe-argument on values that were `any` purely
because the types did not resolve.

Refs quantus/extension#2, quantus/ui#1

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
2026-09-15 11:08:43 +03:00
rob thijssen
ec1399f3f3 fix(ui-keyring): restoreAccount cannot rebuild an ML-DSA public key from an address
The mirror of the same mistake in keyring.createFromJson, fixed the same way.

restoreAccount passed `decodeAddress(json.address)` as the public key. For the
curve schemes that is correct — the address *is* the public key. An ML-DSA
account id is a one-way Poseidon2 hash, so this constructed a pair whose "public
key" was a hash of the public key. It did not throw; it produced a pair that was
simply wrong.

The public key is in `json.encoded`, still encrypted, and the pair is returned
*locked* with callers reading `pair.address` off it long before a password
appears. So it now passes an accountId — carried as data, used for the address
while locked, and checked against the real key once decodePkcs8 supplies one.
That check matters here as much as in the keyring: the address field sits outside
the encrypted blob, so a tampered one decodes cleanly and yields an account
displaying an address its key cannot sign for.

The 'ed25519' fallback for version-0 JSON is left alone. Those files predate the
crypto type being recorded and are by definition not Quantus, so the guess is
safe — but it is commented, because quantus/common#6 removes ed25519 from
KeypairType and this becomes a refusal.

Build plumbing, all of it dev-time only and all replaced by publishing these
packages to a registry (quantus/extension#2):

Resolutions point @polkadot/{keyring,util-crypto,networks,util} at the sibling
`common` checkout's build output, and @quantus/crypto at `wasm`.

tsconfig.base.json gains `*.d.ts` path mappings for them. Without these, node
resolves the portal symlink to its realpath and `@polkadot/util-crypto` then
resolves inside *common's* tree, where it is the workspace source directory with
no exports map — so EncryptedJson silently fails to resolve and KeyringPair$Json
loses `encoded` and `encoding`. The `*.d.ts` substitution has to come first
because NodeNext will not infer an extension for a bare path, and looks for a
`types` directory instead of `types.d.ts`.

tsconfig.json overrides those with the runtime `.js` view, because
@polkadot/dev-ts reads that file and would otherwise import a declaration file as
a module ("Debug Failure. Output generation failed"). tsc reads
tsconfig.build.json, which extends the base directly, so each gets the view it
needs.

The test script sets --preserve-symlinks, which yarn itself warns is required for
portals: without it the realpath problem above recurs at runtime.

Incidentally, `yarn lint` errors drop from 25 to 8 — resolving those types
removed a pile of `any`. The remaining 8 are upstream's own, in loadContract and
allowGenesis, and are left alone.

Refs quantus/ui#1

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
2026-09-15 10:40:52 +03:00
github-actions[bot]
1d667d4dc0 [CI Skip] release/stable 3.16.7
Some checks failed
Lock Threads / lock (push) Has been cancelled
skip-checks: true
v3.16.7
2026-03-26 19:24:07 +00:00
Tarik Gul
c60975d532 3.16.7 (#861)
* 3.16.7

* Update Changelog
2026-03-26 21:22:47 +02:00
github-actions[bot]
816d22019b [CI Skip] bump/beta 3.16.7-1-x
skip-checks: true
2026-03-26 13:29:51 +00:00
Tarik Gul
ddca14ece2 Bump common to 14.0.3 (#860) 2026-03-26 15:28:34 +02:00
github-actions[bot]
f5e26741da [CI Skip] bump/beta 3.16.7-0-x
skip-checks: true
2026-03-13 13:57:53 +00:00
Tarik Gul
c5ab15118d Set headers for 2026 (#859)
* Set headers for 2026

* remaining headers
2026-03-13 15:56:35 +02:00
github-actions[bot]
2e00b6e4e4 [CI Skip] release/stable 3.16.6
skip-checks: true
2025-12-10 06:42:02 +00:00
Arjun Porwal
8b483c6a1a 3.16.6 (#857) 2025-12-10 12:10:43 +05:30
github-actions[bot]
1339b6291b [CI Skip] release/stable 3.16.5
skip-checks: true
v3.16.5
2025-12-10 04:58:38 +00:00
Arjun Porwal
0b69a66b73 3.16.5 (#856) 2025-12-10 10:27:22 +05:30
github-actions[bot]
ccb870aec2 [CI Skip] bump/beta 3.16.5-0-x
skip-checks: true
2025-12-10 04:49:08 +00:00
Arjun Porwal
73221469a3 chore: bump polkadot-js deps (#855) 2025-12-10 10:17:49 +05:30
github-actions[bot]
95fccdfc30 [CI Skip] release/stable 3.16.4
skip-checks: true
v3.16.4
2025-11-25 11:56:32 +00:00
Arjun Porwal
078133bc5a 3.16.4 (#854) 2025-11-25 17:25:15 +05:30
github-actions[bot]
c2c4b1a89a [CI Skip] bump/beta 3.16.4-0-x
skip-checks: true
2025-11-25 11:36:11 +00:00
Arjun Porwal
f52e4e5096 chore: bump deps (#853) 2025-11-25 17:04:53 +05:30
github-actions[bot]
292cb319c3 [CI Skip] release/stable 3.16.3
skip-checks: true
v3.16.3
2025-11-12 06:32:14 +00:00
Arjun Porwal
c16d40d3b7 3.16.3 (#851) 2025-11-12 12:00:59 +05:30
github-actions[bot]
9dd1a86b19 [CI Skip] bump/beta 3.16.3-0-x
skip-checks: true
2025-11-12 06:22:10 +00:00
Arjun Porwal
e9dea3bb8a chore: bump deps (#850) 2025-11-12 11:50:51 +05:30
github-actions[bot]
b1f6ca7b95 [CI Skip] release/stable 3.16.2
skip-checks: true
v3.16.2
2025-10-22 12:19:51 +00:00
Arjun Porwal
06449c3ecb 3.16.2 (#849) 2025-10-22 09:18:33 -03:00
github-actions[bot]
62f6cb363e [CI Skip] bump/beta 3.16.2-0-x
skip-checks: true
2025-10-22 12:11:49 +00:00
Arjun Porwal
062d88d9a6 chore: upgrade deps (#848) 2025-10-22 17:40:20 +05:30
github-actions[bot]
9697a311cc [CI Skip] release/stable 3.16.1
skip-checks: true
v3.16.1
2025-08-27 12:53:15 +00:00
Arjun Porwal
f125830e2c 3.16.1 (#847)
* 3.16.1

* 3.16.1
2025-08-27 09:52:00 -03:00
Arjun Porwal
4b5d6b7205 3.15.5 (#846) 2025-08-27 17:45:12 +05:30
github-actions[bot]
c92ff8e3c7 [CI Skip] bump/beta 3.15.5-0-x
skip-checks: true
2025-08-27 12:07:51 +00:00
Arjun Porwal
d974af4c00 chore: upgrade polkadot deps (#845) 2025-08-27 17:36:27 +05:30
github-actions[bot]
50eb62c6dc [CI Skip] release/stable 3.15.4
skip-checks: true
v3.15.4
2025-08-13 14:41:42 +00:00
Arjun Porwal
ae0d6235f9 3.15.4 (#844)
* 3.15.4

* 3.15.4
2025-08-13 20:10:22 +05:30
github-actions[bot]
76e1273188 [CI Skip] bump/beta 3.15.4-0-x
skip-checks: true
2025-08-13 14:31:05 +00:00
Arjun Porwal
15c05ebecb chore: upgrade polkadot dependencies (#843) 2025-08-13 19:59:40 +05:30
github-actions[bot]
6d6ca2326f [CI Skip] release/stable 3.15.3
skip-checks: true
v3.15.3
2025-07-30 05:00:25 +00:00
Arjun Porwal
5a96a6a9bc 3.15.3 (#842) 2025-07-30 10:29:09 +05:30
github-actions[bot]
73e6fcf492 [CI Skip] bump/beta 3.15.3-1-x
skip-checks: true
2025-07-30 04:38:56 +00:00
Arjun Porwal
60bd0a908b chore: bump deps (#841) 2025-07-30 10:07:38 +05:30
github-actions[bot]
0ee31f4005 [CI Skip] bump/beta 3.15.3-0-x
skip-checks: true
2025-07-23 03:47:39 +00:00
Niklas P
9a99507b98 Update Beachball.tsx to remove duplication in strict mode (#840)
in strict mode the beachball gets rendered twice
2025-07-23 09:16:19 +05:30
github-actions[bot]
2b2ec1c6af [CI Skip] release/stable 3.15.2
skip-checks: true
v3.15.2
2025-07-02 12:40:44 +00:00
Arjun Porwal
e16ef30a07 3.15.2 (#839) 2025-07-02 18:09:19 +05:30
github-actions[bot]
f3e23345a5 [CI Skip] bump/beta 3.15.2-0-x
skip-checks: true
2025-07-02 12:32:25 +00:00
Arjun Porwal
61d7383408 chore: upgraded polkadot deps (#838) 2025-07-02 18:00:57 +05:30
github-actions[bot]
54a6be04ca [CI Skip] release/stable 3.15.1
skip-checks: true
v3.15.1
2025-06-18 12:35:16 +00:00