Compare commits

..
269 Commits
Author SHA1 Message Date
grenadeandClaude Opus 5 160d97c19b build: declare @quantus/crypto as a ui-keyring dev dependency
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
grenadeandClaude Opus 5 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
grenadeandClaude Opus 5 2d6a9ad1b3 build: consume the forks at 14.0.3-quantus.2
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 thijssenandClaude Opus 5 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 thijssenandClaude Opus 5 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 thijssenandClaude Opus 5 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
Lock Threads / lock (push) Has been cancelled
skip-checks: true
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
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
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
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
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
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
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
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
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
2025-06-18 12:35:16 +00:00
Arjun Porwal 86fb5edec7 3.15.1 (#837) 2025-06-18 18:03:57 +05:30
github-actions[bot] d5ab7e64aa [CI Skip] bump/beta 3.14.2-0-x
skip-checks: true
2025-06-18 12:28:42 +00:00
Arjun Porwal 421ccb322a Upgrade polkadot deps (#836)
* chore: upgrade deps

* fix: correct capitalization of "Overview" in README

* fix: correct capitalization of "overview" in README

* fix: update typescript version in package.json and yarn.lock

* fix: downgrade typescript version to 5.5.4
2025-06-18 17:57:21 +05:30
github-actions[bot] 648c379c28 [CI Skip] release/stable 3.14.1
skip-checks: true
2025-05-23 15:27:16 +00:00
Tarik Gul 8541e93c8d 3.14.1 (#835) 2025-05-23 18:25:59 +03:00
github-actions[bot] d94ab0f523 [CI Skip] bump/beta 3.13.2-1-x
skip-checks: true
2025-05-23 15:10:03 +00:00
Tarik Gul 9ceb37eacf Upgrade polkadot-js/common to 13.5.1 (#834) 2025-05-23 18:08:41 +03:00
github-actions[bot] 9bab143e63 [CI Skip] bump/beta 3.13.2-0-x
skip-checks: true
2025-05-23 14:46:53 +00:00
Tarik Gul 2071d3a7d8 Add the type field to external keypair accounts (#833) 2025-05-23 17:45:29 +03:00
github-actions[bot] 36a18e7621 [CI Skip] release/stable 3.13.1
skip-checks: true
2025-04-16 13:01:27 +00:00
Arjun Porwal 41c35eaa37 3.13.1 (#832)
* 3.13.1

* 3.13.1
2025-04-16 18:30:08 +05:30
github-actions[bot] 090ed57255 [CI Skip] bump/beta 3.12.3-1-x
skip-checks: true
2025-04-16 12:00:38 +00:00
Arjun Porwal 905ef46b1f chore: upgrade polkadot deps (#831) 2025-04-16 17:29:16 +05:30
github-actions[bot] 2022f0e3ec [CI Skip] bump/beta 3.12.3-0-x
skip-checks: true
2025-04-02 14:02:33 +00:00
Tarik Gul 1a6fde78fd Add key validation for FileStore (#830) 2025-04-02 17:01:11 +03:00
github-actions[bot] 4dc82926f2 [CI Skip] release/stable 3.12.2
skip-checks: true
2025-02-18 14:14:03 +00:00
Valentin Fernandez 2c3566cad5 3.12.2 2025-02-18 11:12:39 -03:00
github-actions[bot] 146f63fd96 [CI Skip] bump/beta 3.12.2-1-x
skip-checks: true
2025-02-18 13:56:13 +00:00
Valentin Fernandez 12a496bf7b bump common 13.4.3 (#828) 2025-02-18 10:54:45 -03:00
github-actions[bot] 9c4f3b204b [CI Skip] bump/beta 3.12.2-0-x
skip-checks: true
2025-01-17 20:58:59 +00:00
Tarik Gul 5a8666ca0d Bump dev to 0.83.2 (#827) 2025-01-17 22:57:34 +02:00
github-actions[bot] 2e4eaf5c08 [CI Skip] release/stable 3.12.1
skip-checks: true
2025-01-08 16:37:39 +00:00
Tarik Gul 882984d2b3 3.12.1 (#825) 2025-01-08 18:36:13 +02:00
github-actions[bot] 3fde3865d5 [CI Skip] bump/beta 3.11.4-2-x
skip-checks: true
2025-01-08 16:28:49 +00:00
Tarik Gul aa3b0e806a Upgrade common to 13.3.1 (#824) 2025-01-08 18:27:18 +02:00
github-actions[bot] 14ca62de7a [CI Skip] bump/beta 3.11.4-1-x
skip-checks: true
2025-01-08 16:22:05 +00:00
Tarik Gul d9ffc2e697 Bump dev w/ ts (#823) 2025-01-08 18:20:38 +02:00
github-actions[bot] 0986382e72 [CI Skip] bump/beta 3.11.4-0-x
skip-checks: true
2025-01-02 23:08:34 +00:00
Tarik Gul caa0ceea23 2025 (#822)
* 2025

* update License
2025-01-03 01:07:08 +02:00
github-actions[bot] 0b6c1028a7 [CI Skip] release/stable 3.11.3
skip-checks: true
2024-11-12 15:31:31 +00:00
Tarik Gul 0a8c410387 3.11.3 (#820) 2024-11-12 17:29:57 +02:00
github-actions[bot] 80a19f1797 [CI Skip] bump/beta 3.11.3-1-x
skip-checks: true
2024-11-12 14:44:40 +00:00
Tarik Gul a2bfdaaacc Bump common to 13.2.3 (#817) 2024-11-12 16:43:14 +02:00
github-actions[bot] 97a288dbe0 [CI Skip] bump/beta 3.11.3-0-x
skip-checks: true
2024-11-12 14:35:36 +00:00
Tarik Gul 4f5a7d01fd Bump dev to 0.82.1 w/ tslib (#816) 2024-11-12 16:34:07 +02:00
github-actions[bot] 34a0e5a4cc [CI Skip] release/stable 3.11.2
skip-checks: true
2024-10-30 13:39:23 +00:00
Tarik Gul 066f9445b4 3.11.2 (#815) 2024-10-30 15:38:02 +02:00
github-actions[bot] 3bf9a3091b [CI Skip] bump/beta 3.11.2-0-x
skip-checks: true
2024-10-30 13:31:35 +00:00
Tarik Gul 146f6ff5d7 Upgrade common to 13.2.2 (#814) 2024-10-30 15:30:08 +02:00
github-actions[bot] 7faab2b89f [CI Skip] release/stable 3.11.1
skip-checks: true
2024-10-23 12:47:59 +00:00
Tarik Gul f4281ec6d9 3.11.1 (#813) 2024-10-23 15:46:28 +03:00
github-actions[bot] f46de4a524 [CI Skip] bump/beta 3.10.2-2-x
skip-checks: true
2024-10-23 00:49:10 +00:00
Tarik Gul 69e99c95bc Bump yarn to 4.5.1 (#812) 2024-10-23 03:47:43 +03:00
github-actions[bot] 3befcc2e69 [CI Skip] bump/beta 3.10.2-1-x
skip-checks: true
2024-10-23 00:23:35 +00:00
Tarik Gul e5a2337a14 Update polkadot common to 13.2.1 (#811) 2024-10-23 03:22:09 +03:00
github-actions[bot] 8410d5062e [CI Skip] bump/beta 3.10.2-0-x
skip-checks: true
2024-10-22 20:21:58 +00:00
Tarik Gul defe24c202 Bump dev to 0.81.2 (#810) 2024-10-22 23:20:33 +03:00
github-actions[bot] b5713564f6 [CI Skip] release/stable 3.10.1
skip-checks: true
2024-09-20 13:00:22 +00:00
Tarik Gul ec861d8314 3.10.1 (#809) 2024-09-20 15:58:56 +03:00
github-actions[bot] def96e5862 [CI Skip] bump/beta 3.9.2-1-x
skip-checks: true
2024-09-19 00:09:55 +00:00
Tarik Gul 45f4619995 Upgrade polkadot/common to 13.1.1 (#808) 2024-09-19 03:08:25 +03:00
github-actions[bot] 16ca4b0233 [CI Skip] bump/beta 3.9.2-0-x
skip-checks: true
2024-08-13 14:07:33 +00:00
Tarik Gul 43b5831e87 Bump yarn to 4.4.0 (#806) 2024-08-13 17:06:06 +03:00
github-actions[bot] 4952af75b0 [CI Skip] release/stable 3.9.1
skip-checks: true
2024-08-13 13:42:09 +00:00
Tarik Gul 41bab9b8c9 3.9.1 (#805) 2024-08-13 16:40:45 +03:00
github-actions[bot] 9fd024b4d8 [CI Skip] bump/beta 3.8.4-1-x
skip-checks: true
2024-08-13 13:19:55 +00:00
Tarik Gul 8d05c67577 Add chainSpecific option for ledger (#804) 2024-08-13 09:18:28 -04:00
github-actions[bot] 61a28eb333 [CI Skip] bump/beta 3.8.4-0-x
skip-checks: true
2024-08-08 01:52:37 +00:00
Tarik Gul 9930b83e87 Upgrade @polkadot/dev (#803) 2024-08-08 04:51:09 +03:00
github-actions[bot] 616b5d945c [CI Skip] release/stable 3.8.3
skip-checks: true
2024-08-01 00:30:40 +00:00
Tarik Gul b81fc14777 3.8.3 (#802)
* 3.8.3

* credit
2024-07-31 20:29:16 -04:00
github-actions[bot] 7d252ec039 [CI Skip] bump/beta 3.8.3-0-x
skip-checks: true
2024-08-01 00:13:20 +00:00
Ryan Lee 3c890a3e59 fix: qr-code (#801)
* fix: qr-code

* fix: linter warning
2024-07-31 20:11:51 -04:00
github-actions[bot] f08670ba14 [CI Skip] release/stable 3.8.2
skip-checks: true
2024-07-23 22:55:14 +00:00
Tarik Gul 62f86ab9d8 3.8.2 (#799) 2024-07-24 01:53:55 +03:00
github-actions[bot] 5cc4d12685 [CI Skip] bump/beta 3.8.2-0-x
skip-checks: true
2024-07-23 22:45:28 +00:00
Tarik Gul 04c00c675f Fix ledgerApp bug, and remove legacy (#798) 2024-07-23 18:44:03 -04:00
github-actions[bot] 482dcc0ddf [CI Skip] release/stable 3.8.1
skip-checks: true
2024-07-22 20:55:18 +00:00
Tarik Gul 37f22ae0de 3.8.1 (#797) 2024-07-22 23:53:58 +03:00
github-actions[bot] 940bbdf949 [CI Skip] bump/beta 3.7.2-0-x
skip-checks: true
2024-07-22 20:29:20 +00:00
Tarik Gul 0f03a8c2bf Add new ledger app settings (#796)
* Add ledger app settings

* Add ledgerApp

* Add to setting struct

* add available ledger apps

* fix info
2024-07-22 16:27:58 -04:00
github-actions[bot] b61b7f25b8 [CI Skip] release/stable 3.7.1
skip-checks: true
2024-07-13 23:21:58 +00:00
Tarik Gul f887590fec 3.7.1 (#795) 2024-07-14 02:20:38 +03:00
github-actions[bot] f3473159ac [CI Skip] bump/beta 3.6.7-1-x
skip-checks: true
2024-07-13 23:11:38 +00:00
Tarik Gul 248a5c2208 Bump yarn to 4.3.1 (#794) 2024-07-14 02:10:18 +03:00
github-actions[bot] 7e98a6727d [CI Skip] bump/beta 3.6.7-0-x
skip-checks: true
2024-07-13 23:02:47 +00:00
Tarik Gul 4724ddee1f Upgrade common to 13.0.2 (#793) 2024-07-14 02:01:21 +03:00
github-actions[bot] 06c2fe0463 [CI Skip] release/stable 3.6.6
skip-checks: true
2024-04-17 19:24:26 +00:00
Tarik Gul 31c6e597ea 3.6.6 (#790) 2024-04-17 22:23:07 +03:00
github-actions[bot] 0a70f8b412 [CI Skip] bump/beta 3.6.6-2-x
skip-checks: true
2024-04-17 17:02:48 +00:00
Viki Val a694afc240 Add compatibility layer for H160 addresses (#789)
*  compatibilty layer for H160 addresses

* :broom linter

* 🧼 space before (
2024-04-17 13:01:24 -04:00
github-actions[bot] c77e8d3c4a [CI Skip] bump/beta 3.6.6-1-x
skip-checks: true
2024-04-08 16:50:48 +00:00
Tarik Gul 7511d4c27f Update ci checkout and setup_node to v4 (#788) 2024-04-08 19:49:15 +03:00
github-actions[bot] 66d0d632df [CI Skip] bump/beta 3.6.6-0-x
skip-checks: true
2024-03-26 01:32:02 +00:00
Tarik Gul 76e77cfc2e Bump yarn to 4.1.1 (#787) 2024-03-26 03:30:38 +02:00
github-actions[bot] 91f8cddb3c [CI Skip] release/stable 3.6.5
skip-checks: true
2024-02-28 16:47:06 +00:00
Tarik Gul 254409f486 3.6.5 (#785) 2024-02-28 18:45:49 +02:00
github-actions[bot] 607abcbd86 [CI Skip] bump/beta 3.6.5-6-x
skip-checks: true
2024-02-17 13:44:01 +00:00
Tarik Gul b2126c3db6 chore(yarn): update yarn to 4.1.0 (#783) 2024-02-17 15:42:40 +02:00
github-actions[bot] 3313bd38ca [CI Skip] bump/beta 3.6.5-5-x
skip-checks: true
2024-02-17 01:57:34 +00:00
Tarik Gul 062f9f37f7 ci: add user (TarikGul) to auto-approve (#784) 2024-02-17 03:56:11 +02:00
github-actions[bot] 143cce1cb8 [CI Skip] bump/beta 3.6.5-4-x
skip-checks: true
2024-01-12 10:45:05 +00:00
Jaco 9ec68688d6 Adjust Vue peerDependency, >= 2.7 for defineComponent (#782)
* Adjust Vue peerDependency, >= 2.7 for defineComponent

* Bump to dev dep to vue 2.7.16
2024-01-12 12:43:40 +02:00
github-actions[bot] 6670bf75f6 [CI Skip] bump/beta 3.6.5-3-x
skip-checks: true
2024-01-08 13:06:43 +00:00
Jaco d2029bdf5b 2024 (#781) 2024-01-08 15:05:20 +02:00
github-actions[bot] 64c4abe645 [CI Skip] bump/beta 3.6.5-2-x
skip-checks: true
2023-12-19 08:57:33 +00:00
Jaco c3b826c3a4 Bump dev w/ packageDetect adjustments (#779) 2023-12-19 10:56:09 +02:00
github-actions[bot] 90a87ebb5b [CI Skip] bump/beta 3.6.5-1-x
skip-checks: true
2023-12-19 06:17:09 +00:00
Jaco 3937b36260 Bump deps (#778) 2023-12-19 08:15:36 +02:00
github-actions[bot] 8557dfd53a [CI Skip] bump/beta 3.6.5-0-x
skip-checks: true
2023-12-18 08:26:32 +00:00
Jaco aef29db995 Bump yarn berry, bump deps (#777) 2023-12-18 10:25:09 +02:00
github-actions[bot] 8d762218b4 [CI Skip] release/stable 3.6.4
skip-checks: true
2023-11-18 08:38:49 +00:00
Jaco 63be1a965b 3.6.4 (#776) 2023-11-18 10:37:12 +02:00
github-actions[bot] 0837376d00 [CI Skip] bump/beta 3.6.4-0-x
skip-checks: true
2023-10-15 10:43:44 +00:00
Jaco 1fbb4d67bb Bump TS (#775) 2023-10-15 13:41:12 +03:00
github-actions[bot] dd83ad69a9 [CI Skip] release/stable 3.6.3
skip-checks: true
2023-09-15 06:58:37 +00:00
Jaco ff73cc86fb 3.6.3 (#774) 2023-09-15 09:56:27 +03:00
github-actions[bot] c93438754f [CI Skip] release/stable 3.6.2
skip-checks: true
2023-08-23 10:37:54 +00:00
Jaco 3b542acc47 3.6.2 (#773) 2023-08-23 13:35:47 +03:00
github-actions[bot] 473b455373 [CI Skip] bump/beta 3.6.2-0-x
skip-checks: true
2023-08-22 11:40:56 +00:00
Jeeyong Um 4ecdd4d803 Fix outdated links in README.md (#772) 2023-08-22 14:38:40 +03:00
github-actions[bot] 9a67ff2fc1 [CI Skip] release/stable 3.6.1
skip-checks: true
2023-08-21 07:48:06 +00:00
Jaco eebe754c92 3.6.1 (#771) 2023-08-21 10:45:53 +03:00
github-actions[bot] f285f2ff58 [CI Skip] bump/beta 3.5.2-3-x
skip-checks: true
2023-08-20 06:49:25 +00:00
Jaco cf28882540 Bump deps (#770) 2023-08-20 09:47:09 +03:00
github-actions[bot] fc08babdaf [CI Skip] bump/beta 3.5.2-2-x
skip-checks: true
2023-08-18 07:24:30 +00:00
Jaco 666fc8f702 Bump deps (#769) 2023-08-18 10:22:13 +03:00
github-actions[bot] d2a28ca315 [CI Skip] bump/beta 3.5.2-1-x
skip-checks: true
2023-07-06 07:46:28 +00:00
Jaco 67e867a72e Bump deps (#768)
* Bump deps

* Fix build
2023-07-06 10:44:14 +03:00
github-actions[bot] abe4e5b340 [CI Skip] bump/beta 3.5.2-0-x
skip-checks: true
2023-06-18 08:40:11 +00:00
Jaco a5fdaf1f1c Bump deps (#767) 2023-06-18 11:37:13 +03:00
github-actions[bot] 3b7b85e835 [CI Skip] release/stable 3.5.1
skip-checks: true
2023-06-11 14:32:41 +00:00
Jaco 6119c57d46 3.5.1 (#766) 2023-06-11 17:30:29 +03:00
github-actions[bot] 6279b3b926 [CI Skip] bump/beta 3.4.3-0-x
skip-checks: true
2023-06-11 07:19:04 +00:00
Jaco 50b4e2bd07 Adjust object index typings (#765)
* Adjust object index typings

* CHANGELOG

* Bump common
2023-06-11 10:16:28 +03:00
github-actions[bot] 252a8a8554 [CI Skip] release/stable 3.4.2
skip-checks: true
2023-06-05 04:55:41 +00:00
Jaco 83fd6ad0c0 3.4.2 (#764)
* 3.4.2

* Correct CHANGELOG
2023-06-05 07:53:12 +03:00
github-actions[bot] 420f8f095b [CI Skip] bump/beta 3.4.2-3-x
skip-checks: true
2023-06-02 10:22:02 +00:00
Jaco 8a3ee3588d Bump deps (w/ TS 5.1) (#763) 2023-06-02 13:19:08 +03:00
github-actions[bot] 62e5e5e23e [CI Skip] bump/beta 3.4.2-2-x
skip-checks: true
2023-05-25 07:27:44 +00:00
Jaco a456a4c9df jg-bump-deps (#762) 2023-05-25 10:25:30 +03:00
github-actions[bot] 9a9c1f50ee [CI Skip] bump/beta 3.4.2-1-x
skip-checks: true
2023-05-21 09:41:53 +00:00
Jaco 7ad8333f2e Bump dev (w/ eslint config adj) (#761) 2023-05-21 12:39:43 +03:00
github-actions[bot] ec99102a78 [CI Skip] bump/beta 3.4.2-0-x
skip-checks: true
2023-05-18 09:13:06 +00:00
Jaco 36c7da623b Adjust tsconfig usage (#760) 2023-05-18 12:10:56 +03:00
github-actions[bot] 7bb148eea9 [CI Skip] release/stable 3.4.1
skip-checks: true
2023-05-13 08:55:51 +00:00
Jaco ee039545be 3.4.1 (#759) 2023-05-13 11:53:20 +03:00
github-actions[bot] e15651ac9c [CI Skip] bump/beta 3.3.2-0-x
skip-checks: true
2023-05-09 06:06:40 +00:00
Jaco f92e276a0d Bump deps (#758) 2023-05-09 09:04:24 +03:00
github-actions[bot] a51ef7bccc [CI Skip] release/stable 3.3.1
skip-checks: true
2023-05-07 11:13:05 +00:00
Jaco bf8a295d64 3.3.1 (#757) 2023-05-07 14:10:54 +03:00
github-actions[bot] d2bbf6bb0e [CI Skip] bump/beta 3.2.3-1-x
skip-checks: true
2023-05-05 06:31:40 +00:00
Jaco 60cc5fbd4b Bump deps & adjust CHANGELOG (#756) 2023-05-05 09:29:17 +03:00
github-actions[bot] dae851297b [CI Skip] bump/beta 3.2.3-0-x
skip-checks: true
2023-05-05 06:00:24 +00:00
Zenandgithub-actions[bot] fa9eef757a feat: adapt Vue 3.x (#755)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-05 08:57:35 +03:00
github-actions[bot] 84c36c5c68 [CI Skip] release/stable 3.2.2
skip-checks: true
2023-04-29 06:49:06 +00:00
Jaco 4a71023452 3.2.2 (#754) 2023-04-29 09:47:02 +03:00
github-actions[bot] 359230bfb3 [CI Skip] bump/beta 3.2.2-0-x
skip-checks: true
2023-04-24 10:50:36 +00:00
Jaco 19fa38e441 Update dependencies (w/ react-is as peer) (#753)
* Update dependencies (w/ react-is as peer)

* Update styled-components deps
2023-04-24 13:48:24 +03:00
github-actions[bot] e6105e19a5 [CI Skip] release/stable 3.2.1
skip-checks: true
2023-04-22 09:32:36 +00:00
Jaco e8b9f2aafc 3.2.1 (#752) 2023-04-22 12:30:25 +03:00
github-actions[bot] bcdd6e42ec [CI Skip] bump/beta 3.1.5-4-x
skip-checks: true
2023-04-14 09:22:19 +00:00
Jaco b14dc3bcc3 Bump deps (#751) 2023-04-14 12:20:04 +03:00
github-actions[bot] 798a9fb453 [CI Skip] bump/beta 3.1.5-3-x
skip-checks: true
2023-04-10 07:23:33 +00:00
Jaco c81c08271b Bump dev (w/ eslint adjustments) (#750) 2023-04-10 10:21:15 +03:00
github-actions[bot] 0957599bdb [CI Skip] bump/beta 3.1.5-2-x
skip-checks: true
2023-04-08 07:06:11 +00:00
Jaco 4ec2f6730b Bump TypeScript (#749) 2023-04-08 10:03:58 +03:00
github-actions[bot] 701439d6bc [CI Skip] bump/beta 3.1.5-1-x
skip-checks: true
2023-04-04 05:31:11 +00:00
Jaco cade4a9051 Update lock wf (#748) 2023-04-04 08:27:57 +03:00
github-actions[bot] d4bec36fa7 [CI Skip] bump/beta 3.1.5-0-x
skip-checks: true
2023-04-02 08:54:33 +00:00
Jaco b83073f588 Move type-only imports (w/ verbatimModuleSyntax) (#746) 2023-04-02 11:51:38 +03:00
github-actions[bot] f36a80ad8b [CI Skip] release/stable 3.1.4
skip-checks: true
2023-04-01 07:31:31 +00:00
Jaco e2f16b8e2e 3.1.4 (#745) 2023-04-01 10:29:22 +03:00
github-actions[bot] 8470b347a4 [CI Skip] bump/beta 3.1.4-0-x
skip-checks: true
2023-03-25 15:43:07 +00:00
Jaco 24f1cf7e17 Add repo dev req. for Node.js (#744) 2023-03-25 17:40:48 +02:00
github-actions[bot] aac0aa43d0 [CI Skip] release/stable 3.1.3
skip-checks: true
2023-03-25 10:59:42 +00:00
Jaco 2c5db364ba Bump dev (w/ some node:test adjustments) (#743)
* Bump dev (w/ some node:test adjustments)

* Adjust EventEmitter import

* 3.1.3
2023-03-25 12:57:09 +02:00
github-actions[bot] bbf77d7b84 [CI Skip] release/stable 3.1.2
skip-checks: true
2023-03-25 08:06:33 +00:00
Jaco 3250187fbb 3.1.2 (#742)
* 3.1.2

* Remove assert usage

* Unsubscribe on open observable

* Attempt a clear

* Final attempt before skip

* .skip for problematic
2023-03-25 10:04:20 +02:00
github-actions[bot] e3168c8231 [CI Skip] bump/beta 3.1.2-1-x
skip-checks: true
2023-03-23 10:45:06 +00:00
Jaco 6d98c56e7a Small adjustments to icon calculations (#741)
* Small adjustments to icon calculations

* Keep original naming
2023-03-23 12:42:16 +02:00
github-actions[bot] bf986c079f [CI Skip] bump/beta 3.1.2-0-x
skip-checks: true
2023-03-23 09:09:10 +00:00
Jaco f0d21fa985 Cater for Ethereum-compatible multisig addresses (#740) 2023-03-23 11:06:46 +02:00
github-actions[bot] aad690bfda [CI Skip] release/stable 3.1.1
skip-checks: true
2023-03-19 08:12:45 +00:00
Jaco 6e30befa0f 3.1.1 (#739) 2023-03-19 10:10:29 +02:00
github-actions[bot] 4217c67acd [CI Skip] bump/beta 3.0.3-7-x
skip-checks: true
2023-03-18 10:42:30 +00:00
Jaco b181da4919 Bump dev deps (#738) 2023-03-18 12:39:38 +02:00
github-actions[bot] 6907d0c30a [CI Skip] bump/beta 3.0.3-6-x
skip-checks: true
2023-03-17 06:00:24 +00:00
Jaco 22c8d7ac0c Bump to TS 5.0 (#737)
* Bump to TS 5.0

* Adjust global dev-test imports
2023-03-17 07:58:03 +02:00
github-actions[bot] a3a918b2cb [CI Skip] bump/beta 3.0.3-5-x
skip-checks: true
2023-03-15 15:16:52 +00:00
Jaco 656be6550a Bump dev (#736)
* Bump dev

* Adjust types ref
2023-03-15 17:14:16 +02:00
github-actions[bot] fa8697331b [CI Skip] bump/beta 3.0.3-4-x
skip-checks: true
2023-03-14 10:55:42 +00:00
Jaco e392d52924 Remove stale workflow (#735) 2023-03-14 12:53:13 +02:00
github-actions[bot] 975b0a9fa2 [CI Skip] bump/beta 3.0.3-3-x
skip-checks: true
2023-03-13 12:58:31 +00:00
Jaco 8bd9b7b908 Adjust default.ts exports (#734) 2023-03-13 14:56:04 +02:00
github-actions[bot] 1a230f95f6 [CI Skip] bump/beta 3.0.3-2-x
skip-checks: true
2023-03-13 10:57:53 +00:00
Jaco c1b3cc87ee Swap from color to colord for color manipulation (#733) 2023-03-13 12:55:30 +02:00
github-actions[bot] e1f96f1fcf [CI Skip] bump/beta 3.0.3-1-x
skip-checks: true
2023-03-12 11:32:18 +00:00
Jaco 45b330aa90 Swap to using defineComponent for Vue (req. 2.7+) (#732)
* Swap to using definedComponent for Vue (req. 2.7+)

* Adjust

* Adjust

* CHANGELOG
2023-03-12 13:29:49 +02:00
github-actions[bot] 172051cedc [CI Skip] bump/beta 3.0.3-0-x
skip-checks: true
2023-03-12 10:03:45 +00:00
Jaco 0310baa9ee Bump dev (#731)
* Bump dev

* Adjust dev/node/test/node.d.ts imports

* Node resolution

* Revert dev/node/test/node.d.ts import
2023-03-12 12:01:20 +02:00
github-actions[bot] 78029388e5 [CI Skip] release/stable 3.0.2
skip-checks: true
2023-03-11 09:25:49 +00:00
Jaco b9b1b296a3 3.0.2 (#730) 2023-03-11 11:23:35 +02:00
github-actions[bot] 32086c0fc7 [CI Skip] bump/beta 3.0.2-4-x
skip-checks: true
2023-03-10 06:23:20 +00:00
Jaco 01d7661a5f Update GH actions (#729) 2023-03-10 08:19:48 +02:00
github-actions[bot] 6e97f75824 [CI Skip] bump/beta 3.0.2-3-x
skip-checks: true
2023-03-09 14:56:44 +00:00
Jaco 86281dca3a Align tsconfig to allow moduleResolution: nodenext (#728)
* Align tsconfig to allow moduleResolution: nodenext

* Adjust

* Default target flag
2023-03-09 16:53:32 +02:00
github-actions[bot] faed5b1474 [CI Skip] bump/beta 3.0.2-2-x
skip-checks: true
2023-03-09 08:46:02 +00:00
Jaco 0e0de28da4 Use .js imports in src (#727)
* Use .js in src imports

* Bump dev
2023-03-09 10:43:31 +02:00
github-actions[bot] 2e99e0154f [CI Skip] bump/beta 3.0.2-1-x
skip-checks: true
2023-03-06 12:12:52 +00:00
Jaco 0cbf187979 Bump dev deps (#726) 2023-03-06 14:10:28 +02:00
github-actions[bot] 0aee857525 [CI Skip] bump/beta 3.0.2-0-x
skip-checks: true
2023-03-05 11:40:46 +00:00
Jaco 306f30d2b5 Update dev 2023-03-05 13:38:19 +02:00
github-actions[bot] 2259e05088 [CI Skip] release/stable 3.0.1
skip-checks: true
2023-03-05 09:04:53 +00:00
Jaco 581a360226 3.0.1 (#725) 2023-03-05 11:02:25 +02:00
github-actions[bot] a3b5206107 [CI Skip] bump/beta 2.12.2-5-x
skip-checks: true
2023-03-03 09:24:35 +00:00
Jaco dcef4deb2a Bump dev & update gh workflows (#724) 2023-03-03 11:21:34 +02:00
github-actions[bot] 6629fc6a11 [CI Skip] bump/beta 2.12.2-4-x
skip-checks: true
2023-03-01 12:08:54 +00:00
Jaco 0173205f4b Add wf continue-on-error: true (#723) 2023-03-01 14:06:14 +02:00
github-actions[bot] 001793c937 [CI Skip] bump/beta 2.12.2-3-x
skip-checks: true
2023-02-27 11:23:03 +00:00
Jaco 583f3416a6 Remove @polkadot/ui-assets package (#722) 2023-02-27 13:20:27 +02:00
github-actions[bot] 7913cfda05 [CI Skip] bump/beta 2.12.2-2-x
skip-checks: true
2023-02-25 10:12:23 +00:00
Jaco 9b7f4bf62f Adjust tests for node:test env (#721) 2023-02-25 12:09:05 +02:00
github-actions[bot] 9b3785b8f6 [CI Skip] bump/beta 2.12.2-1-x
skip-checks: true
2023-02-22 07:40:37 +00:00
Jaco 83c21fc185 Bump deps (#720) 2023-02-22 09:37:37 +02:00
github-actions[bot] 4baccadf26 [CI Skip] bump/beta 2.12.2-0-x
skip-checks: true
2023-02-20 10:45:10 +00:00
Jaco e83da1449d Swap Jest test runner (#719) 2023-02-20 12:42:11 +02:00
github-actions[bot] c488094732 [CI Skip] release/stable 2.12.1
skip-checks: true
2023-02-20 08:48:11 +00:00
Jaco c25fefa16f 2.12.1 (#718) 2023-02-20 10:45:38 +02:00
215 changed files with 8195 additions and 12214 deletions
-19
View File
@@ -1,19 +0,0 @@
// Copyright 2017-2023 @polkadot/ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
const base = require('@polkadot/dev/config/eslint.cjs');
module.exports = {
...base,
ignorePatterns: [
...base.ignorePatterns,
'jest/**/*',
'**/*.d.ts'
],
parserOptions: {
...base.parserOptions,
project: [
'./tsconfig.eslint.json'
]
}
};
+1 -1
View File
@@ -11,6 +11,6 @@ jobs:
steps:
- uses: jacogr/action-approve@795afd1dd096a2071d7ec98740661af4e853b7da
with:
authors: jacogr
authors: jacogr, TarikGul
labels: -auto
token: ${{ secrets.GH_PAT_BOT }}
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
steps:
- uses: jacogr/action-merge@d2d64b4545acd93b0a9575177d3d215ae3f92029
with:
checks: build,lint,test
checks: pr (build),pr (lint),pr (test)
labels: -auto
strategy: squash
token: ${{ secrets.GH_PAT_BOT }}
+5 -5
View File
@@ -10,16 +10,16 @@ jobs:
env:
YARN_ENABLE_SCRIPTS: false
steps:
- uses: dessant/lock-threads@f1a42f0f44eb83361d617a014663e1a76cf282d2
- uses: dessant/lock-threads@c1b35aecc5cdb1a34539d14196df55838bb2f836
with:
github-token: ${{ secrets.GH_PAT_BOT }}
issue-lock-inactive-days: '7'
issue-lock-comment: >
issue-inactive-days: '7'
issue-comment: >
This thread has been automatically locked since there has not been
any recent activity after it was closed. Please open a new issue
if you think you have a related problem or query.
pr-lock-inactive-days: '2'
pr-lock-comment: >
pr-inactive-days: '2'
pr-comment: >
This pull request has been automatically locked since there
has not been any recent activity after it was closed.
Please open a new issue for related bugs.
+4 -4
View File
@@ -3,19 +3,19 @@ on: [pull_request]
jobs:
pr:
continue-on-error: true
strategy:
matrix:
step: ['lint', 'test', 'build']
name: ${{ matrix.step }}
runs-on: ubuntu-latest
env:
YARN_ENABLE_SCRIPTS: false
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: ${{ matrix.step }}
run: |
yarn install --immutable | grep -v 'YN0013'
yarn install --immutable
yarn ${{ matrix.step }}
+3 -4
View File
@@ -10,7 +10,6 @@ jobs:
strategy:
matrix:
step: ['build:release']
name: ${{ matrix.step }}
runs-on: ubuntu-latest
env:
YARN_ENABLE_SCRIPTS: false
@@ -19,14 +18,14 @@ jobs:
GH_RELEASE_GITHUB_API_TOKEN: ${{ secrets.GH_PAT_BOT }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_PAT_BOT }}
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: ${{ matrix.step }}
run: |
yarn install --immutable | grep -v 'YN0013'
yarn install --immutable
yarn ${{ matrix.step }}
-19
View File
@@ -1,19 +0,0 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '40 2/3 * * *'
jobs:
stale:
runs-on: ubuntu-latest
env:
YARN_ENABLE_SCRIPTS: false
steps:
- uses: actions/stale@98ed4cb500039dbcccf4bd9bedada4d0187f2757
with:
repo-token: ${{ secrets.GH_PAT_BOT }}
stale-issue-message: 'This issue has been open for 21 days with no activity and is not labelled as an enhancement. It will be closed in 7 days.'
stale-issue-label: 'stale'
exempt-issue-labels: '-size-l,-size-m,-size-s,-size-xl,-size-xs,[bug]'
days-before-stale: 21
days-before-close: 7
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2023 @polkadot/ui authors & contributors
// Copyright 2017-2026 @polkadot/ui-shared authors & contributors
// SPDX-License-Identifier: Apache-2.0
module.exports = require('@polkadot/dev/config/prettier.cjs');
+4
View File
@@ -0,0 +1,4 @@
{
"eslint.enable": true,
"eslint.experimental.useFlatConfig": true
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-785
View File
File diff suppressed because one or more lines are too long
+934
View File
File diff suppressed because one or more lines are too long
+16 -6
View File
@@ -1,13 +1,23 @@
compressionLevel: mixed
enableGlobalCache: false
enableImmutableInstalls: false
enableProgressBars: false
logFilters:
- code: YN0013
level: discard
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: "@yarnpkg/plugin-interactive-tools"
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
spec: "@yarnpkg/plugin-version"
yarnPath: .yarn/releases/yarn-4.5.1.cjs
yarnPath: .yarn/releases/yarn-3.2.0.cjs
# @quantus packages come from the Gitea registry — safe as a whole-scope route
# because we own every name in it. The forked @polkadot packages cannot be routed
# the same way (most of that scope is unforked and lives on npm), so they are
# pinned to tarball URLs in package.json resolutions instead.
npmScopes:
quantus:
npmRegistryServer: "https://git.lair.cafe/api/packages/quantus/npm/"
+337
View File
@@ -1,5 +1,342 @@
# CHANGELOG
## 3.16.7 Mar 25, 2026
Changes:
- Bump common to 14.0.3 ([#860](https://github.com/polkadot-js/ui/pull/860))
- Set headers for 2026 ([#859](https://github.com/polkadot-js/ui/pull/859))
## 3.16.6 Dec 10, 2025
Changes:
- Upgraded polkadot-js dependencies ([#855](https://github.com/polkadot-js/ui/pull/855))
## 3.16.5 Dec 10, 2025
Changes:
- Upgraded polkadot-js dependencies ([#855](https://github.com/polkadot-js/ui/pull/855))
## 3.16.4 Nov 25, 2025
Changes:
- Upgraded polkadot-js dependencies ([#853](https://github.com/polkadot-js/ui/pull/853))
## 3.16.3 Nov 12, 2025
Changes:
- Upgraded polkadot-js dependencies ([#850](https://github.com/polkadot-js/ui/pull/850))
## 3.16.2 Oct 22, 2025
Changes:
- Upgraded polkadot-js dependencies ([#848](https://github.com/polkadot-js/ui/pull/848))
## 3.16.1 Aug 27, 2025
Changes:
- 3.15.5 ([#846](https://github.com/polkadot-js/ui/pull/846))
- Upgraded polkadot deps ([#845](https://github.com/polkadot-js/ui/pull/845))
## 3.15.4 Aug 13, 2025
Changes:
- Upgraded polkadot deps ([#843](https://github.com/polkadot-js/ui/pull/843))
## 3.15.3 July 30, 2025
Changes:
- Update Beachball.tsx to remove duplication in strict mode ([#840](https://github.com/polkadot-js/ui/pull/840))
- Bump polkadot deps ([#841](https://github.com/polkadot-js/ui/pull/841))
## 3.15.2 July 2, 2025
Changes:
- Upgraded polkadot deps ([#838](https://github.com/polkadot-js/ui/pull/838))
## 3.15.1 Jun 18, 2025
Changes:
- Upgraded polkadot deps ([#831](https://github.com/polkadot-js/ui/pull/831))
## 3.14.1 May 23, 2025
Changes:
- Add the type field to external keypair accounts ([#833](https://github.com/polkadot-js/ui/pull/833))
- Upgrade polkadot-js/common to 13.5.1 ([#834](https://github.com/polkadot-js/ui/pull/834))
## 3.13.1 Apr 16, 2025
Changes:
- Add key validation for FileStore ([#830](https://github.com/polkadot-js/ui/pull/830))
- Upgraded polkadot deps ([#831](https://github.com/polkadot-js/ui/pull/831))
## 3.12.2 Feb 18, 2025
Changes:
- Bump dev to v0.83.2 ([#827](https://github.com/polkadot-js/ui/pull/827))
- Bump common to v13.4.3 ([#828](https://github.com/polkadot-js/ui/pull/828))
## 3.12.1 Jan 8, 2025
Changes:
- Upgrade common to 13.3.1 ([#824](https://github.com/polkadot-js/ui/pull/824))
- Bump dev w/ ts ([#823](https://github.com/polkadot-js/ui/pull/823))
- Update headers to 2025 ([#822](https://github.com/polkadot-js/ui/pull/822))
## 3.11.3 Nov 12, 2024
Changes:
- Upgrade polkadot/common to 13.2.3 ([817](https://github.com/polkadot-js/ui/pull/#))
- Bump dev to 0.82.1 w/ tslib ([#816](https://github.com/polkadot-js/ui/pull/816))
## 3.11.2 Oct 30, 2024
Changes:
- Upgrade polkadot/common to 13.2.2 ([#814](https://github.com/polkadot-js/ui/pull/814))
## 3.11.1 Oct 23, 2024
Changes:
- Upgrade polkadot/common to 13.2.1 ([#811](https://github.com/polkadot-js/ui/pull/811))
- Bump yarn to 4.5.1 ([#812](https://github.com/polkadot-js/ui/pull/812))
- Bump dev 0.81.2 ([#810](https://github.com/polkadot-js/ui/pull/810))
- Correctly exports CJS and ESM
## 3.10.1 Sep 20, 2024
Changes:
- Upgrade polkadot/common to 13.1.1 ([#808](https://github.com/polkadot-js/ui/pull/808))
- Bump yarn to 4.4.0 ([#806](https://github.com/polkadot-js/ui/pull/806))
## 3.9.1 Aug 13, 2024
Changes:
- Upgrade @polkadot/dev to 0.79.3 ([#803](https://github.com/polkadot-js/ui/pull/803))
- Add chainSpecific option for ledger ([#804](https://github.com/polkadot-js/ui/pull/804))
## 3.8.3 July 31, 2024
Changes:
- Fix Qr Scanner (Thanks to https://github.com/ryanleecode)
## 3.8.2 July 22, 2024
Changes:
- Fix ledgerApp bug, and remove legacy
## 3.8.1 July 22, 2024
Changes:
- Add new ledger app settings
## 3.7.1 July 13, 2024
Changes:
- Upgrade polkadot/common 13.0.2
- Bump yarn to 4.3.1
## 3.6.6 Apr 17, 2024
Contributed:
- Add compatibility layer for H160 addresses (Thanks to https://github.com/vikiival)
Changes:
- Update ci checkout and setup_node to v4
- Bump yarn to 4.1.1
## 3.6.5 Feb 28, 2024
Changes
- Bump to `@polkadot/util` 12.6.2
- Bump to `react-native-svg` 14.1.0
- Adjust `Vue` peerDependency, >= 2.7 for defineComponent
## 3.6.4 Nov 18, 2023
Changes:
- Bump to `@polkadot/util` 12.6.1
## 3.6.3 Sep 15, 2023
Changes:
- Bump to `@polkadot/util` 12.5.1
## 3.6.2 Aug 23, 2023
Changes:
- Bump to `@polkadot/util` 12.4.2
## 3.6.1 Aug 21, 2023
Changes:
- Update to latest React `styled-components`
- Bump to `@polkadot/util` 12.4.1
## 3.5.1 Jun 11, 2023
Changes:
- Adjust object index access for stricter tsconfig settings
- Bump to `@polkadot/util` 12.3.1
## 3.4.2 Jun 5, 2023
- Bump to `@polkadot/util` 12.2.2
## 3.4.1 May 13, 2023
Changes:
- Add `module` to `package.json` export map (ESM-only)
- Bump to `@polkadot/util` 12.2.1
## 3.3.1 May 7, 2023
Contributed:
- Adjust `vue-identicon` to be Vue 3 compatible (Thanks to https://github.com/Gavin-Gong)
Changes:
- Bump to `@polkadot/util` 12.1.2
## 3.2.2 Apr 29, 2023
Changes:
- Add missing `react-is` peer dependency for `styled-components`
- Adjust compilation output for `__internal__` class fields
- Bump to `@polkadot/util` 12.1.1
## 3.2.1 Apr 22, 2023
Changes:
- Bump to `@polkadot/util` 12.0.1
## 3.1.4 Apr 1, 2023
Changes:
- Bump to `@polkadot/util` 11.1.3
## 3.1.3 Mar 25, 2023
Changes:
- Align `eventemitter` version with `@polkadot/api`
## 3.1.2 Mar 25, 2023
Changes:
- Cater for Ethereum-compatible multisig addresses
- Bump to `@polkadot/util` 11.1.2
## 3.1.1 Mar 19, 2023
Changes:
- Swap `vue-identitycon` to use `defineComponent` (requires vue 2.7+)
- Swap `BeachballIcon` to use `colord` library (ESM + CJS, smaller)
- Bump to `@polkadot/util` 11.1.1
## 3.0.2 Mar 11, 2023
Changes:
- Use consistent `.js` imports in source files (TS moduleResolution)
- Bump to `@polkadot/util` 11.0.2
## 3.0.1 Mar 5, 2023
Changes:
- Remove `@polkadot/ui-assets` package
- Swap TS -> JS compiler to use tsc (from babel)
- Adjust all tests to use `node:test` runner (ESM variants)
- Bump to `@polkadot/util` 11.0.1
## 2.12.1 Feb 20, 2023
Changes:
- Adjust `styled-components` usage to cater for server-based environments
## 2.11.3 Feb 19, 2023
Changes:
+9 -2
View File
@@ -1,4 +1,6 @@
673 Jaco 2.11.3 (#717)
735 Jaco Adjust Vue peerDependency, >= 2.7 for defineComponent (#782)
41 Tarik Gul 3.16.7 (#861)
22 Arjun Porwal 3.16.6 (#857)
7 YJ fix #224: decrease frame size to 1024, set multipart bool (#225)
4 Antoine Estienne Refactor logic to better use prefix (#491)
4 kwingram25 fix ff api url issue (#289)
@@ -8,6 +10,8 @@
2 Drew Stone Add Edgeware testnet and mainnet updated endpoints (#274)
2 Hanwen Cheng allow qr to scan seed qr (#330)
2 Nikos Kontakis Fix undefined process error that may appear when using ui (#524)
2 Valentin Fernandez 3.12.2
2 Viki Val Add compatibility layer for H160 addresses (#789)
2 Vlad Proshchavaiev Add Subsocial to ss58 defaults (#358)
2 Xiliang Chen Update UNfrastructure node label (#160)
2 雪霁 Batch export patch up (#455)
@@ -21,16 +25,19 @@
1 Derek Colley Remove redundant `div` wrappers in vue-identicon (#643)
1 Harry Liu Update README.md (#166)
1 Jake Naviasky Add Edgeware chain prefix to settings. (#317)
1 Jeeyong Um Fix outdated links in README.md (#772)
1 Logan Saether Propose W3F node (#188)
1 Lovesh Harchandani Allow Ledger support for Dock (#425)
1 Luke Schoen Fix typo in heading (#114)
1 Nantian fix bigint type (#510)
1 Nikhil Ranjan Updated to valid javascript (#271)
1 Niklas P Update Beachball.tsx to remove duplication in strict mode (#840)
1 omahs Fix: typos (#709)
1 Ryan Lee fix: qr-code (#801)
1 Shawn Tabrizi Add a new `notification` setting (#498)
1 Viki Val :bug: identicon has isAlternative both as data and prop (#668)
1 Wei Tang Add Kulupu to the network selection list (#254)
1 WoeOm add darwinia ss58 (#379)
1 yuhui1208 [Stores] make FileStroe read key safely (#338)
1 Yuri Add webpack 5 support (#557)
1 Zen feat: adapt Vue 3.x (#755)
1 菩提 fix some bugs (#260)
+1 -9
View File
@@ -13,14 +13,6 @@ The following UI components are currently available -
Additionally some shared libraries, that are not dependent on any framework -
- [ui-assets](packages/ui-assets/) Static assets, images and others, shared across projects
- [ui-keyring](packages/ui-keyring/) A browser-specific wrapper around the base [@polkadot/util-keyring](https://github.com/polkadot-js/util/) library
- [ui-keyring](packages/ui-keyring/) A browser-specific wrapper around the base [@polkadot/keyring](https://github.com/polkadot-js/common/) library
- [ui-settings](packages/ui-settings/) A browser local storage wrapper for app settings & configuration
- [ui-shared](packages/ui-shared) Shared logic that is used across UI components, e.g. for icon generation
## examples
In addition to the above packages, there are examples available for integration of `ui-keyring`, `ui-settings` & the relevant `*-identicon` package. These are
- [example-react](packages/example-react) - start with `yarn example:react` and view on `http://localhost:8080`
- [example-vue](packages/example-vue) - start with `yarn example:vue` and view on `http://localhost:8080`
-16
View File
@@ -1,16 +0,0 @@
// Copyright 2017-2023 @polkadot/ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
const base = require('@polkadot/dev/config/babel-config-cjs.cjs');
module.exports = Object.keys(base).reduce((config, key) => {
config[key] = base[key];
if (key === 'plugins') {
config[key] = config[key].concat([
'transform-vue-template'
]);
}
return config;
}, {});
+8
View File
@@ -0,0 +1,8 @@
// Copyright 2017-2026 @polkadot/ui-shared authors & contributors
// SPDX-License-Identifier: Apache-2.0
import baseConfig from '@polkadot/dev/config/eslint';
export default [
...baseConfig
];
-17
View File
@@ -1,17 +0,0 @@
// Copyright 2017-2023 @polkadot/ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
const config = require('@polkadot/dev/config/jest.cjs');
module.exports = {
...config,
moduleNameMapper: {
'@polkadot/react-(identicon|qr)(.*)$': '<rootDir>/packages/react-$1/src/$2',
'@polkadot/reactnative-(identicon)(.*)$': '<rootDir>/packages/reactnative-$1/src/$2',
'@polkadot/ui-(assets|keyring|settings|shared)(.*)$': '<rootDir>/packages/ui-$1/src/$2',
'\\.(css|less)$': 'empty/object',
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': 'empty/object'
},
setupFilesAfterEnv: ['<rootDir>/jest/setupEnv.js'],
testEnvironment: 'jsdom'
};
-10
View File
@@ -1,10 +0,0 @@
// Copyright 2017-2023 @polkadot/ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
import nodeCrypto from 'crypto';
window.crypto ??= {
getRandomValues: function (buffer) {
return nodeCrypto.randomFillSync(buffer);
}
};
+17 -21
View File
@@ -1,9 +1,12 @@
{
"author": "Jaco Greeff <jacogr@gmail.com>",
"bugs": "https://github.com/polkadot-js/ui/issues",
"engines": {
"node": ">=18.14"
},
"homepage": "https://github.com/polkadot-js/ui#readme",
"license": "Apache-2.0",
"packageManager": "yarn@3.2.0",
"packageManager": "yarn@4.5.1",
"private": true,
"repository": {
"type": "git",
@@ -11,10 +14,10 @@
},
"sideEffects": false,
"type": "module",
"version": "2.11.3",
"version": "3.16.7",
"versions": {
"git": "2.11.3",
"npm": "2.11.3"
"git": "3.16.7",
"npm": "3.16.7"
},
"workspaces": [
"packages/*"
@@ -24,31 +27,24 @@
"build:release": "polkadot-ci-ghact-build",
"build:rollup": "polkadot-exec-rollup --config",
"clean": "polkadot-dev-clean-build",
"example:react": "yarn build && cd packages/example-react && yarn polkadot-exec-webpack --config webpack.config.cjs",
"example:vue": "yarn build && cd packages/example-vue && yarn polkadot-exec-webpack --config webpack.config.cjs",
"lint": "polkadot-dev-run-lint",
"postinstall": "polkadot-dev-yarn-only",
"test": "polkadot-dev-run-test --env jest -- --coverage --runInBand",
"test:one": "polkadot-dev-run-test"
"test": "polkadot-dev-run-test --env browser",
"test:one": "polkadot-dev-run-test --env browser"
},
"devDependencies": {
"@babel/core": "^7.20.12",
"@babel/runtime": "^7.20.13",
"@polkadot/dev": "^0.68.38",
"@polkadot/x-bundle": "^10.4.2",
"@types/jest": "^29.4.0",
"babel-loader": "^8.3.0",
"babel-plugin-transform-vue-template": "^0.4.2",
"empty": "^0.10.1",
"process": "^0.11.10",
"@polkadot/dev": "^0.83.3",
"@polkadot/x-bundle": "^14.0.3",
"@types/node": "^22.10.5",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-is": "^18.2.0",
"react-native": "^0.71.3",
"stream-browserify": "^3.0.0",
"vue-template-compiler": "^2.7.14"
"react-native": "^0.73.1"
},
"resolutions": {
"typescript": "^4.9.5"
"@polkadot/keyring": "https://git.lair.cafe/api/packages/quantus/npm/%40polkadot%2Fkeyring/-/14.0.3-quantus.3/keyring-14.0.3-quantus.3.tgz",
"@polkadot/networks": "https://git.lair.cafe/api/packages/quantus/npm/%40polkadot%2Fnetworks/-/14.0.3-quantus.3/networks-14.0.3-quantus.3.tgz",
"@polkadot/util-crypto": "https://git.lair.cafe/api/packages/quantus/npm/%40polkadot%2Futil-crypto/-/14.0.3-quantus.3/util-crypto-14.0.3-quantus.3.tgz",
"typescript": "5.5.4"
}
}
View File
-3
View File
@@ -1,3 +0,0 @@
# @polkadot/example-react
A versy basic React example with `@polkadot/ui-keyring`, `@polkadot/ui-settings` & `@polkadot/react-identicon`
-37
View File
@@ -1,37 +0,0 @@
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css" />
<style>
#example {
padding: 0.5em;
}
button {
cursor: pointer;
padding: 0.5rem 0.75rem;
}
label {
display: block;
margin: 0.25rem 0;
opacity: 0.5;
}
section {
padding: 0.5rem 1rem;
}
textarea {
resize: none;
}
.icon {
margin-right: 0.75rem;
}
</style>
</head>
<body>
<div id="example"></div>
<script src="./build/main.js"></script>
</body>
</html>
-22
View File
@@ -1,22 +0,0 @@
{
"author": "Jaco Greeff <jacogr@gmail.com>",
"bugs": "https://github.com/polkadot-js/ui/issues",
"contributors": [],
"description": "A very basic example with ui-* & react-* packages",
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/example-react#readme",
"license": "Apache-2.0",
"maintainers": [],
"name": "@polkadot/example-react",
"private": true,
"repository": {
"directory": "packages/example-react",
"type": "git",
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": false,
"version": "2.11.3",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.20.13"
}
}
@@ -1,6 +0,0 @@
// Copyright 2017-2023 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Empty template, auto-generated by @polkadot/dev
export default [];
@@ -1,11 +0,0 @@
// Copyright 2017-2023 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
import { detectPackage } from '@polkadot/util';
import others from './detectOther';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, null, others);
-121
View File
@@ -1,121 +0,0 @@
// Copyright 2017-2023 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback, useEffect, useState } from 'react';
import ReactDOM from 'react-dom';
import { Identicon } from '@polkadot/react-identicon';
import { keyring } from '@polkadot/ui-keyring';
import { settings } from '@polkadot/ui-settings';
import { cryptoWaitReady, mnemonicGenerate } from '@polkadot/util-crypto';
interface Props {
className?: string;
}
const rootElement = document.getElementById('example');
if (!rootElement) {
throw new Error('Unable to find element with id \'example\'');
}
function App ({ className }: Props): React.ReactElement<Props> | null {
const [address, setAddress] = useState<string | null>(null);
const [phrase, setPhrase] = useState<string | null>(null);
const [ss58Format, setSS58Format] = useState(42);
const _onClickNew = useCallback(
(): void => {
const phrase = mnemonicGenerate(12);
const { address } = keyring.createFromUri(phrase);
setAddress(keyring.encodeAddress(address, ss58Format));
setPhrase(phrase);
},
[ss58Format]
);
const _onChangeSS58Format = useCallback(
({ currentTarget: { value } }: React.SyntheticEvent<HTMLSelectElement>): void => {
setSS58Format(parseInt(value, 10));
},
[]
);
useEffect((): void => {
_onClickNew();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
useEffect((): void => {
address && setAddress(keyring.encodeAddress(address, ss58Format));
}, [address, ss58Format]);
if (!address || !phrase) {
return null;
}
return (
<div className={className}>
<section>
<button onClick={_onClickNew}>another random address</button>
</section>
<section>
<label>phrase</label>
<textarea
cols={40}
readOnly
rows={4}
value={phrase}
/>
</section>
<section>
<label>icons</label>
<Identicon
className='icon'
value={address}
/>
<Identicon
className='icon'
theme='polkadot'
value={address}
/>
<Identicon
className='icon'
theme='beachball'
value={address}
/>
</section>
<section>
<label>address</label>
{address}
</section>
<section>
<label>ss58 format</label>
<select
onChange={_onChangeSS58Format}
value={ss58Format}
>
{settings.availablePrefixes
.filter((_, index): boolean => index !== 0)
.map(({ text, value }): React.ReactNode => (
<option
key={value}
value={value}
>
{text}
</option>
))
}
</select>
</section>
</div>
);
}
cryptoWaitReady()
.then((): void => {
keyring.loadAll({ ss58Format: 42, type: 'sr25519' });
ReactDOM.render(<App />, rootElement);
})
.catch(console.error);
@@ -1,6 +0,0 @@
// Copyright 2017-2023 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/example-react', path: 'auto', type: 'auto', version: '2.11.3' };
-53
View File
@@ -1,53 +0,0 @@
// Copyright 2017-2023 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
const path = require('path');
const { WebpackPluginServe } = require('webpack-plugin-serve');
module.exports = {
context: __dirname,
devtool: 'eval-cheap-source-map',
entry: './src/index.tsx',
mode: 'development',
module: {
rules: [
{
exclude: /(node_modules)/,
test: /\.(ts|tsx)$/,
use: [
{
loader: 'babel-loader',
options: require('../../babel.config.cjs')
}
]
}
]
},
output: {
chunkFilename: '[name].[chunkhash:8].js',
filename: '[name].js',
globalObject: '(typeof self !== \'undefined\' ? self : this)',
path: path.join(__dirname, 'build')
},
plugins: [
new WebpackPluginServe({
hmr: false, // switch off, Chrome WASM memory leak
liveReload: false, // explict off, overrides hmr
port: 8080,
progress: false, // since we have hmr off, disable
static: __dirname
})
],
resolve: {
alias: {
'@polkadot/react-identicon': path.resolve(__dirname, '../react-identicon/build'),
'@polkadot/ui-keyring': path.resolve(__dirname, '../ui-keyring/build'),
'@polkadot/ui-settings': path.resolve(__dirname, '../ui-settings/build'),
'@polkadot/ui-shared': path.resolve(__dirname, '../ui-shared/build')
},
extensions: ['.js', '.ts', '.tsx'],
fallback: {}
},
target: 'web',
watch: true
};
View File
View File
-3
View File
@@ -1,3 +0,0 @@
# @polkadot/example-vue
A versy basic Vue.js example with `@polkadot/ui-keyring`, `@polkadot/ui-settings` & `@polkadot/vue-identicon`
-38
View File
@@ -1,38 +0,0 @@
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css" />
<style>
#example {
padding: 0.5em;
}
button {
cursor: pointer;
padding: 0.5rem 0.75rem;
}
label {
display: block;
margin: 0.25rem 0;
opacity: 0.5;
}
section {
padding: 0.5rem 1rem;
}
textarea {
resize: none;
}
.icon {
display: inline-block;
margin-right: 0.75rem;
}
</style>
</head>
<body>
<div id="example"></div>
<script src="./build/main.js"></script>
</body>
</html>
-22
View File
@@ -1,22 +0,0 @@
{
"author": "Jaco Greeff <jacogr@gmail.com>",
"bugs": "https://github.com/polkadot-js/ui/issues",
"contributors": [],
"description": "A very basic example with ui-* & vue-* packages",
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/example-vue#readme",
"license": "Apache-2.0",
"maintainers": [],
"name": "@polkadot/example-vue",
"private": true,
"repository": {
"directory": "packages/example-vue",
"type": "git",
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": false,
"version": "2.11.3",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.20.13"
}
}
-6
View File
@@ -1,6 +0,0 @@
// Copyright 2017-2023 @polkadot/example-vue authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Empty template, auto-generated by @polkadot/dev
export default [];
-11
View File
@@ -1,11 +0,0 @@
// Copyright 2017-2023 @polkadot/example-vue authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
import { detectPackage } from '@polkadot/util';
import others from './detectOther';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, null, others);
-99
View File
@@ -1,99 +0,0 @@
// Copyright 2017-2023 @polkadot/example-vue authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Prefix } from '@polkadot/util-crypto/address/types';
import Vue, { VNode } from 'vue';
import { keyring } from '@polkadot/ui-keyring';
import { settings } from '@polkadot/ui-settings';
import { cryptoWaitReady, mnemonicGenerate } from '@polkadot/util-crypto';
import Identicon from '@polkadot/vue-identicon';
interface Account {
address: string;
phrase: string;
}
interface Data extends Account {
ss58Format: Prefix;
ss58Options: { text: string; value: string | number }[];
}
const ss58Options = settings.availablePrefixes.filter((_, index): boolean => index !== 0);
function generateAccount (ss58Format: Prefix = 42): Account {
const phrase = mnemonicGenerate(12);
const { address } = keyring.createFromUri(phrase);
return {
address: keyring.encodeAddress(address, ss58Format),
phrase
};
}
const Example = Vue.extend({
components: {
Identicon
},
data: function (): Data {
return {
...generateAccount(),
ss58Format: 42,
ss58Options
};
},
methods: {
onClickNew: function (): void {
const { address, phrase } = generateAccount(this.ss58Format);
this.address = address;
this.phrase = phrase;
}
},
name: 'Example',
template: `
<div id="example">
<section>
<button v-on:click="onClickNew">another random address</button>
</section>
<section>
<label>phrase</label>
<textarea :cols="40" :rows="4" readonly v-model="phrase" />
</section>
<section>
<label>icons</label>
<Identicon class='icon' :value="address" />
<Identicon class='icon' :value="address" :theme="'polkadot'" />
<Identicon class='icon' :value="address" :theme="'beachball'" />
</section>
<section>
<label>address</label>
{{ address }}
</section>
<section>
<label>ss58 format</label>
<select v-model="ss58Format">
<option v-for="option in ss58Options" v-bind:value="option.value">
{{ option.text }}
</option>
</select>
</section>
</div>
`,
watch: {
ss58Format: function (): void {
this.address = keyring.encodeAddress(this.address, this.ss58Format);
}
}
});
cryptoWaitReady()
.then((): void => {
keyring.loadAll({ ss58Format: 42, type: 'sr25519' });
new Vue({
render: (h): VNode => h(Example)
}).$mount('#example');
})
.catch(console.error);
-6
View File
@@ -1,6 +0,0 @@
// Copyright 2017-2023 @polkadot/example-vue authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/example-vue', path: 'auto', type: 'auto', version: '2.11.3' };
-12
View File
@@ -1,12 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"baseUrl": "..",
"outDir": "./build",
"rootDir": "./src"
},
"references": [
{ "path": "../ui-keyring/tsconfig.build.json" },
{ "path": "../vue-identicon/tsconfig.build.json" }
]
}
-52
View File
@@ -1,52 +0,0 @@
// Copyright 2017-2023 @polkadot/example-vue authors & contributors
// SPDX-License-Identifier: Apache-2.0
const path = require('path');
const { WebpackPluginServe } = require('webpack-plugin-serve');
module.exports = {
context: __dirname,
devtool: 'eval-cheap-source-map',
entry: './src/index.ts',
mode: 'development',
module: {
rules: [
{
exclude: /(node_modules)/,
test: /\.(ts|tsx)$/,
use: [
{
loader: 'babel-loader',
options: require('../../babel.config.cjs')
}
]
}
]
},
output: {
chunkFilename: '[name].[chunkhash:8].js',
filename: '[name].js',
globalObject: '(typeof self !== \'undefined\' ? self : this)',
path: path.join(__dirname, 'build')
},
plugins: [
new WebpackPluginServe({
hmr: false, // switch off, Chrome WASM memory leak
liveReload: false, // explict off, overrides hmr
port: 8080,
progress: false, // since we have hmr off, disable
static: __dirname
})
],
resolve: {
alias: {
'@polkadot/ui-keyring': path.resolve(__dirname, '../ui-keyring/build'),
'@polkadot/ui-settings': path.resolve(__dirname, '../ui-settings/build'),
'@polkadot/ui-shared': path.resolve(__dirname, '../ui-shared/build'),
'@polkadot/vue-identicon': path.resolve(__dirname, '../vue-identicon/build')
},
extensions: ['.js', '.ts', '.tsx']
},
target: 'web',
watch: true
};
+16 -19
View File
@@ -1,11 +1,12 @@
{
"author": "Jaco Greeff <jacogr@gmail.com>",
"bugs": "https://github.com/polkadot-js/ui/issues",
"contributors": [],
"description": "Renders an SVG picture representing an address",
"engines": {
"node": ">=18"
},
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/react-identicon#readme",
"license": "Apache-2.0",
"maintainers": [],
"name": "@polkadot/react-identicon",
"repository": {
"directory": "packages/react-identicon",
@@ -13,30 +14,27 @@
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": [
"./detectPackage.js",
"./detectPackage.cjs"
"./packageDetect.js",
"./packageDetect.cjs"
],
"type": "module",
"version": "2.11.3",
"version": "3.16.7",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/keyring": "^10.4.2",
"@polkadot/ui-settings": "2.11.3",
"@polkadot/ui-shared": "2.11.3",
"@polkadot/util": "^10.4.2",
"@polkadot/util-crypto": "^10.4.2",
"color": "^3.2.1",
"@polkadot/keyring": "^14.0.3",
"@polkadot/ui-settings": "3.16.7",
"@polkadot/ui-shared": "3.16.7",
"@polkadot/util": "^14.0.3",
"@polkadot/util-crypto": "^14.0.3",
"ethereum-blockies-base64": "^1.0.2",
"jdenticon": "3.2.0",
"react-copy-to-clipboard": "^5.1.0",
"styled-components": "^5.3.6"
"styled-components": "^6.1.1",
"tslib": "^2.8.1"
},
"devDependencies": {
"@types/react-copy-to-clipboard": "^5.0.4",
"@types/react-dom": "^18.0.11",
"@types/styled-components": "^5.1.26",
"styled-components": "^5.3.6",
"@types/react-copy-to-clipboard": "^5.0.7",
"@types/react-dom": "^18.2.18",
"xmlserializer": "^0.6.1"
},
"peerDependencies": {
@@ -45,7 +43,6 @@
"@polkadot/util-crypto": "*",
"react": "*",
"react-dom": "*",
"react-is": "*",
"styled-components": "*"
"react-is": "*"
}
}
+6 -6
View File
@@ -1,18 +1,18 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Prefix } from '@polkadot/util-crypto/address/types';
import type { IdentityProps as Props, Props as ComponentProps } from './types';
import type { IdentityProps as Props, Props as ComponentProps } from './types.js';
import React from 'react';
import CopyToClipboard from 'react-copy-to-clipboard';
import styled from 'styled-components';
import { ICON_DEFAULT_HOST, settings } from '@polkadot/ui-settings';
import { isHex, isU8a, u8aToHex } from '@polkadot/util';
import { decodeAddress, encodeAddress, ethereumEncode } from '@polkadot/util-crypto';
import { Beachball, Empty, Ethereum, Jdenticon, Polkadot } from './icons';
import { Beachball, Empty, Ethereum, Jdenticon, Polkadot } from './icons/index.js';
import { styled } from './styled.js';
const Fallback = Beachball;
@@ -64,7 +64,7 @@ class BaseIcon extends React.PureComponent<Props, State> {
address,
publicKey
};
} catch (error) {
} catch {
return {
address: '',
publicKey: '0x'
@@ -89,7 +89,7 @@ class BaseIcon extends React.PureComponent<Props, State> {
}
private getWrapped ({ address, publicKey }: State, { Custom }: Props): React.ReactNode {
const { className = '', isAlternative, isHighlight, size = DEFAULT_SIZE, style, theme = settings.icon } = this.props;
const { className = '', isAlternative, isHighlight, size = DEFAULT_SIZE, style = {}, theme = settings.icon } = this.props;
const Component = !address
? Empty
: Custom || Components[theme === 'default' ? ICON_DEFAULT_HOST : theme] || Fallback;
+4 -5
View File
@@ -1,7 +1,6 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export * from './icons';
export { Identicon } from './Identicon';
export { packageInfo } from './packageInfo';
export * from './icons/index.js';
export { Identicon } from './Identicon.js';
export { packageInfo } from './packageInfo.js';
@@ -1,7 +0,0 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { packageInfo as settingsInfo } from '@polkadot/ui-settings/packageInfo';
import { packageInfo as sharedInfo } from '@polkadot/ui-shared/packageInfo';
export default [settingsInfo, sharedInfo];
@@ -1,11 +0,0 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
import { detectPackage } from '@polkadot/util';
import others from './detectOther';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, null, others);
@@ -1,18 +1,21 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Props } from '../types';
import type { Props } from '../types.js';
import React, { useCallback } from 'react';
import { beachballIcon } from '@polkadot/ui-shared';
function Identicon ({ address, className = '', size, style }: Props): React.ReactElement<Props> {
function Identicon ({ address, className = '', size, style = {} }: Props): React.ReactElement<Props> {
const updateElem = useCallback(
(node: HTMLDivElement): void => {
node && node.appendChild(
beachballIcon(address, { isAlternative: false, size })
);
if (node) {
node.innerHTML = '';
node.appendChild(
beachballIcon(address, { isAlternative: false, size })
);
}
},
[address, size]
);
+3 -3
View File
@@ -1,11 +1,11 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Props } from '../types';
import type { Props } from '../types.js';
import React from 'react';
function Identicon ({ className = '', size, style }: Props): React.ReactElement<Props> {
function Identicon ({ className = '', size, style = {} }: Props): React.ReactElement<Props> {
return (
<svg
className={className}
@@ -1,17 +1,18 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Props } from '../types';
import type { Props } from '../types.js';
import makeBlockie from 'ethereum-blockies-base64';
import React, { useMemo } from 'react';
import styled from 'styled-components';
import { styled } from '../styled.js';
interface ImgProps {
size: number;
}
function Identicon ({ address, className = '', size, style }: Props): React.ReactElement<Props> {
function Identicon ({ address, className = '', size, style = {} }: Props): React.ReactElement<Props> {
const imgSrc = useMemo(
() => makeBlockie(address),
[address]
@@ -27,7 +28,7 @@ function Identicon ({ address, className = '', size, style }: Props): React.Reac
);
}
const StyledImg = styled.img(({ size }: ImgProps) => `
const StyledImg = styled.img<ImgProps>(({ size }) => `
display: block;
height: ${size}px;
width: ${size}px;
@@ -1,12 +1,12 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Props } from '../types';
import type { Props } from '../types.js';
import * as jdenticon from 'jdenticon';
import React, { useMemo } from 'react';
function Identicon ({ className = '', publicKey, size, style }: Props): React.ReactElement<Props> {
function Identicon ({ className = '', publicKey, size, style = {} }: Props): React.ReactElement<Props> {
const html = useMemo(
() => ({ __html: jdenticon.toSvg(publicKey.substring(2), size) }),
[publicKey, size]
@@ -1,4 +1,4 @@
// Copyright 2018-2023 @polkadot/react-identicon authors & contributors
// Copyright 2018-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Copyright 2018 Paritytech via paritytech/oo7/polkadot-identicon
@@ -17,7 +17,7 @@
// - Overall it is now just a static component, expecting an address as an input value
import type { Circle } from '@polkadot/ui-shared/icons/types';
import type { Props } from '../types';
import type { Props } from '../types.js';
import React, { useMemo } from 'react';
@@ -35,7 +35,7 @@ function renderCircle ({ cx, cy, fill, r }: Circle, key: number): React.ReactNod
);
}
function Identicon ({ address, className = '', isAlternative = false, size, style }: Props): React.ReactElement<Props> {
function Identicon ({ address, className = '', isAlternative = false, size, style = {} }: Props): React.ReactElement<Props> {
const circles = useMemo(
() => polkadotIcon(address, { isAlternative }),
[address, isAlternative]
+6 -6
View File
@@ -1,8 +1,8 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { Beachball } from './Beachball';
export { Empty } from './Empty';
export { Ethereum } from './Ethereum';
export { Jdenticon } from './Jdenticon';
export { Polkadot } from './Polkadot';
export { Beachball } from './Beachball.js';
export { Empty } from './Empty.js';
export { Ethereum } from './Ethereum.js';
export { Jdenticon } from './Jdenticon.js';
export { Polkadot } from './Polkadot.js';
+4 -4
View File
@@ -1,10 +1,10 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import './detectPackage';
import './packageDetect.js';
import { Identicon } from './bundle';
import { Identicon } from './bundle.js';
export * from './bundle';
export * from './bundle.js';
export default Identicon;
@@ -0,0 +1,13 @@
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
// (packageInfo imports will be kept as-is, user-editable)
import { packageInfo as settingsInfo } from '@polkadot/ui-settings/packageInfo';
import { packageInfo as sharedInfo } from '@polkadot/ui-shared/packageInfo';
import { detectPackage } from '@polkadot/util';
import { packageInfo } from './packageInfo.js';
detectPackage(packageInfo, null, [settingsInfo, sharedInfo]);
+2 -2
View File
@@ -1,6 +1,6 @@
// Copyright 2017-2023 @polkadot/react-identicon authors & contributors
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/react-identicon', path: 'auto', type: 'auto', version: '2.11.3' };
export const packageInfo = { name: '@polkadot/react-identicon', path: 'auto', type: 'auto', version: '3.16.7' };
+4
View File
@@ -0,0 +1,4 @@
// Copyright 2017-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { styled } from 'styled-components';
+3 -6
View File
@@ -1,10 +1,9 @@
// Copyright 2018-2023 @polkadot/react-identicon authors & contributors
// Copyright 2018-2026 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type React from 'react';
import type { Prefix } from '@polkadot/util-crypto/address/types';
import React from 'react';
export interface BaseProps {
className?: string;
style?: React.CSSProperties;
@@ -12,11 +11,9 @@ export interface BaseProps {
export interface Props extends BaseProps {
address: string;
isAlternative?: boolean;
className?: string;
isAlternative?: boolean | undefined;
publicKey: string;
size: number;
style?: React.CSSProperties;
}
export interface IdentityProps extends BaseProps {
+14 -16
View File
@@ -1,11 +1,12 @@
{
"author": "Jaco Greeff <jacogr@gmail.com>",
"bugs": "https://github.com/polkadot-js/ui/issues",
"contributors": [],
"description": "Generates and reads QR codes",
"engines": {
"node": ">=18"
},
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/react-qr#readme",
"license": "Apache-2.0",
"maintainers": [],
"name": "@polkadot/react-qr",
"repository": {
"directory": "packages/react-qr",
@@ -13,30 +14,27 @@
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": [
"./detectPackage.js",
"./detectPackage.cjs"
"./packageDetect.js",
"./packageDetect.cjs"
],
"type": "module",
"version": "2.11.3",
"version": "3.16.7",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/ui-settings": "2.11.3",
"@polkadot/util": "^10.4.2",
"@polkadot/util-crypto": "^10.4.2",
"@polkadot/ui-settings": "3.16.7",
"@polkadot/util": "^14.0.3",
"@polkadot/util-crypto": "^14.0.3",
"@zxing/browser": "^0.1.5",
"@zxing/library": "^0.21.2",
"qrcode-generator": "^1.4.4",
"react-qr-reader": "^2.2.1",
"styled-components": "^5.3.6"
},
"devDependencies": {
"@types/react-qr-reader": "^2.1.4",
"@types/styled-components": "^5.1.26"
"styled-components": "^6.1.1",
"tslib": "^2.8.1"
},
"peerDependencies": {
"@polkadot/util": "*",
"@polkadot/util-crypto": "*",
"react": "*",
"react-dom": "*",
"styled-components": "*"
"react-is": "*"
}
}
+11 -11
View File
@@ -1,21 +1,21 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useEffect, useMemo, useRef, useState } from 'react';
import styled from 'styled-components';
import { objectSpread } from '@polkadot/util';
import { xxhashAsHex } from '@polkadot/util-crypto';
import { qrcode } from './qrcode';
import { createFrames, createImgSize } from './util';
import { qrcode } from './qrcode.js';
import { styled } from './styled.js';
import { createFrames, createImgSize } from './util.js';
interface Props {
className?: string;
size?: string | number;
className?: string | undefined;
size?: string | number | undefined;
skipEncoding?: boolean;
style?: React.CSSProperties;
timerDelay?: number;
style?: React.CSSProperties | undefined;
timerDelay?: number | undefined;
value: Uint8Array;
}
@@ -28,7 +28,7 @@ interface FrameState {
interface TimerState {
timerDelay: number;
timerId: number | null;
timerId: ReturnType<typeof setTimeout> | null;
}
const DEFAULT_FRAME_DELAY = 2750;
@@ -45,7 +45,7 @@ function getDataUrl (value: Uint8Array): string {
return qr.createDataURL(16, 0);
}
function Display ({ className, size, skipEncoding, style, timerDelay = DEFAULT_FRAME_DELAY, value }: Props): React.ReactElement<Props> | null {
function Display ({ className = '', size, skipEncoding, style = {}, timerDelay = DEFAULT_FRAME_DELAY, value }: Props): React.ReactElement<Props> | null {
const [{ image }, setFrameState] = useState<FrameState>({ frameIdx: 0, frames: [], image: null, valueHash: null });
const timerRef = useRef<TimerState>({ timerDelay, timerId: null });
@@ -84,7 +84,7 @@ function Display ({ className, size, skipEncoding, style, timerDelay = DEFAULT_F
return newState;
});
timerRef.current.timerId = window.setTimeout(nextFrame, timerRef.current.timerDelay);
timerRef.current.timerId = setTimeout(nextFrame, timerRef.current.timerDelay);
return (): void => {
// eslint-disable-next-line react-hooks/exhaustive-deps
+3 -3
View File
@@ -1,10 +1,10 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useMemo } from 'react';
import { QrDisplay } from './Display';
import { createAddressPayload } from './util';
import { QrDisplay } from './Display.js';
import { createAddressPayload } from './util.js';
interface Props {
address: string;
+3 -3
View File
@@ -1,10 +1,10 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useMemo } from 'react';
import { QrDisplay } from './Display';
import { createSignPayload } from './util';
import { QrDisplay } from './Display.js';
import { createSignPayload } from './util.js';
interface Props {
address: string;
+3 -3
View File
@@ -1,12 +1,12 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { NetworkSpecsStruct } from '@polkadot/ui-settings/types';
import React, { useMemo } from 'react';
import { QrDisplay } from './Display';
import { encodeString } from './util';
import { QrDisplay } from './Display.js';
import { encodeString } from './util.js';
interface Props {
className?: string;
+52 -22
View File
@@ -1,19 +1,19 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback, useMemo } from 'react';
import Reader from 'react-qr-reader';
import styled from 'styled-components';
import { BrowserQRCodeReader, type IScannerControls } from '@zxing/browser';
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
import { createImgSize } from './util';
import { styled } from './styled.js';
import { createImgSize } from './util.js';
interface Props {
className?: string;
className?: string | undefined;
delay?: number;
onError?: (error: Error) => void;
onError?: undefined | ((error: Error) => void);
onScan: (data: string) => void;
size?: string | number;
style?: React.CSSProperties;
size?: string | number | undefined;
style?: React.CSSProperties | undefined;
}
const DEFAULT_DELAY = 150;
@@ -22,7 +22,10 @@ const DEFAULT_ERROR = (error: Error): void => {
console.error('@polkadot/react-qr:Scan', error.message);
};
function Scan ({ className, delay = DEFAULT_DELAY, onError = DEFAULT_ERROR, onScan, size, style }: Props): React.ReactElement<Props> {
function Scan ({ className = '', delay = DEFAULT_DELAY, onError = DEFAULT_ERROR, onScan, size, style = {} }: Props): React.ReactElement<Props> {
const videoRef = useRef<HTMLVideoElement>(null);
const controlsRef = useRef<IScannerControls | null>(null);
const containerStyle = useMemo(
() => createImgSize(size),
[size]
@@ -33,21 +36,52 @@ function Scan ({ className, delay = DEFAULT_DELAY, onError = DEFAULT_ERROR, onSc
[onError]
);
const _onScan = useCallback(
(data: string | null) => data && onScan(data),
[onScan]
);
useEffect(() => {
const codeReader = new BrowserQRCodeReader();
const startScanning = async () => {
try {
const videoInputDevices = await BrowserQRCodeReader.listVideoInputDevices();
const selectedDeviceId = videoInputDevices[0].deviceId;
controlsRef.current = await codeReader.decodeFromVideoDevice(
selectedDeviceId,
videoRef.current ?? undefined,
(result, error) => {
if (result) {
onScan(result.getText());
}
if (error && !(error instanceof Error)) {
_onError(new Error(error));
}
}
);
} catch (error) {
_onError(error instanceof Error ? error : new Error('Unknown error occurred'));
}
};
// eslint-disable-next-line @typescript-eslint/no-misused-promises
const timeoutId = setTimeout(startScanning, delay);
return () => {
clearTimeout(timeoutId);
if (controlsRef.current) {
controlsRef.current.stop();
}
};
}, [onScan, _onError, delay]);
return (
<StyledDiv
className={className}
style={containerStyle}
>
<Reader
<video
className='ui--qr-Scan'
delay={delay}
onError={_onError}
onScan={_onScan}
ref={videoRef}
style={style}
/>
</StyledDiv>
@@ -60,10 +94,6 @@ const StyledDiv = styled.div`
height: 100%;
transform: matrix(-1, 0, 0, 1, 0, 0);
width: 100%;
video {
margin: 0;
}
}
`;
+16 -10
View File
@@ -1,19 +1,20 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { HexString } from '@polkadot/util/types';
import React, { useCallback } from 'react';
import { assert } from '@polkadot/util';
import { decodeAddress } from '@polkadot/util-crypto';
import { ADDRESS_PREFIX, SEED_PREFIX } from './constants';
import { QrScan } from './Scan';
import { ADDRESS_PREFIX, SEED_PREFIX } from './constants.js';
import { QrScan } from './Scan.js';
interface ScanType {
isAddress: boolean;
content: string;
genesisHash: string;
name?: string;
genesisHash: HexString | null;
name?: string | undefined;
}
interface Props {
@@ -30,20 +31,25 @@ function ScanAddress ({ className, isEthereum, onError, onScan, size, style }: P
(data: string | null): void => {
if (data) {
try {
let prefix: string, content: string, genesisHash: string, name: string[];
let prefix: string;
let content: string;
let genesisHash: string | null;
let name: string[];
if (!isEthereum) {
[prefix, content, genesisHash, ...name] = data.split(':');
} else {
[prefix, content, ...name] = data.split(':');
genesisHash = '';
genesisHash = null;
content = content.substring(0, 42);
}
const expectedPrefix = (isEthereum ? 'ethereum' : ADDRESS_PREFIX);
const isValidPrefix = (prefix === expectedPrefix) || (prefix === SEED_PREFIX);
assert(isValidPrefix, `Invalid prefix received, expected '${expectedPrefix} or ${SEED_PREFIX}' , found '${prefix}'`);
if (!isValidPrefix) {
throw new Error(`Invalid prefix received, expected '${expectedPrefix} or ${SEED_PREFIX}' , found '${prefix}'`);
}
const isAddress = prefix === expectedPrefix;
@@ -51,7 +57,7 @@ function ScanAddress ({ className, isEthereum, onError, onScan, size, style }: P
decodeAddress(content);
}
onScan({ content, genesisHash, isAddress, name: name?.length ? name.join(':') : undefined });
onScan({ content, genesisHash: genesisHash as HexString, isAddress, name: name?.length ? name.join(':') : undefined });
} catch (error) {
onError && onError(error as Error);
+2 -2
View File
@@ -1,11 +1,11 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { HexString } from '@polkadot/util/types';
import React, { useCallback } from 'react';
import { QrScan } from './Scan';
import { QrScan } from './Scan.js';
interface ScanType {
signature: HexString;
+7 -7
View File
@@ -1,9 +1,9 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { QrDisplayAddress } from './DisplayAddress';
export { QrDisplayPayload } from './DisplayPayload';
export { QrScanAddress } from './ScanAddress';
export { QrScanSignature } from './ScanSignature';
export { QrNetworkSpecs } from './NetworkSpecs';
export { packageInfo } from './packageInfo';
export { QrDisplayAddress } from './DisplayAddress.js';
export { QrDisplayPayload } from './DisplayPayload.js';
export { QrNetworkSpecs } from './NetworkSpecs.js';
export { packageInfo } from './packageInfo.js';
export { QrScanAddress } from './ScanAddress.js';
export { QrScanSignature } from './ScanSignature.js';
+10 -22
View File
@@ -1,24 +1,12 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
const ADDRESS_PREFIX = 'substrate';
const SEED_PREFIX = 'secret';
const FRAME_SIZE = 1024;
const SUBSTRATE_ID = new Uint8Array([0x53]);
const CRYPTO_SR25519 = new Uint8Array([0x01]);
const CMD_SIGN_TX = new Uint8Array([0]);
const CMD_SIGN_TX_HASH = new Uint8Array([1]);
const CMD_SIGN_IMMORTAL_TX = new Uint8Array([2]);
const CMD_SIGN_MSG = new Uint8Array([3]);
export {
ADDRESS_PREFIX,
CMD_SIGN_TX,
CMD_SIGN_TX_HASH,
CMD_SIGN_IMMORTAL_TX,
CMD_SIGN_MSG,
CRYPTO_SR25519,
FRAME_SIZE,
SEED_PREFIX,
SUBSTRATE_ID
};
export const ADDRESS_PREFIX = 'substrate';
export const SEED_PREFIX = 'secret';
export const FRAME_SIZE = 1024;
export const SUBSTRATE_ID = new Uint8Array([0x53]);
export const CRYPTO_SR25519 = new Uint8Array([0x01]);
export const CMD_SIGN_TX = new Uint8Array([0]);
export const CMD_SIGN_TX_HASH = new Uint8Array([1]);
export const CMD_SIGN_IMMORTAL_TX = new Uint8Array([2]);
export const CMD_SIGN_MSG = new Uint8Array([3]);
-6
View File
@@ -1,6 +0,0 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Empty template, auto-generated by @polkadot/dev
export default [];
-11
View File
@@ -1,11 +0,0 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
import { detectPackage } from '@polkadot/util';
import others from './detectOther';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, null, others);
+3 -3
View File
@@ -1,6 +1,6 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import './detectPackage';
import './packageDetect.js';
export * from './bundle';
export * from './bundle.js';
+11
View File
@@ -0,0 +1,11 @@
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
// (packageInfo imports will be kept as-is, user-editable)
import { detectPackage } from '@polkadot/util';
import { packageInfo } from './packageInfo.js';
detectPackage(packageInfo, null, []);
+2 -2
View File
@@ -1,6 +1,6 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/react-qr', path: 'auto', type: 'auto', version: '2.11.3' };
export const packageInfo = { name: '@polkadot/react-qr', path: 'auto', type: 'auto', version: '3.16.7' };
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import _qrcode from 'qrcode-generator';
+4
View File
@@ -0,0 +1,4 @@
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { styled } from 'styled-components';
+4 -2
View File
@@ -1,10 +1,12 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals.d.ts" />
import { u8aConcat, u8aToHex, u8aToString } from '@polkadot/util';
import { randomAsU8a } from '@polkadot/util-crypto';
import { createAddressPayload, createFrames, createSignPayload, decodeString, encodeNumber, encodeString } from './util';
import { createAddressPayload, createFrames, createSignPayload, decodeString, encodeNumber, encodeString } from './util.js';
describe('util', (): void => {
describe('Uint8Array <-> string', (): void => {
+5 -4
View File
@@ -1,10 +1,10 @@
// Copyright 2017-2023 @polkadot/react-qr authors & contributors
// Copyright 2017-2026 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { isString, u8aConcat, u8aToU8a } from '@polkadot/util';
import { decodeAddress } from '@polkadot/util-crypto';
import { ADDRESS_PREFIX, CRYPTO_SR25519, FRAME_SIZE, SUBSTRATE_ID } from './constants';
import { ADDRESS_PREFIX, CRYPTO_SR25519, FRAME_SIZE, SUBSTRATE_ID } from './constants.js';
const MULTIPART = new Uint8Array([0]);
@@ -13,9 +13,10 @@ export function encodeNumber (value: number): Uint8Array {
}
export function encodeString (value: string): Uint8Array {
const u8a = new Uint8Array(value.length);
const count = value.length;
const u8a = new Uint8Array(count);
for (let i = 0; i < value.length; i++) {
for (let i = 0; i < count; i++) {
u8a[i] = value.charCodeAt(i);
}
+3
View File
@@ -5,6 +5,9 @@
"outDir": "./build",
"rootDir": "./src"
},
"exclude": [
"**/*.spec.ts"
],
"references": [
{ "path": "../ui-settings/tsconfig.build.json" }
]
+16
View File
@@ -0,0 +1,16 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"baseUrl": "..",
"outDir": "./build",
"rootDir": "./src",
"emitDeclarationOnly": false,
"noEmit": true
},
"include": [
"**/*.spec.ts"
],
"references": [
{ "path": "../react-qr/tsconfig.build.json" }
]
}
+12 -11
View File
@@ -1,11 +1,12 @@
{
"author": "Jaco Greeff <jacogr@gmail.com>",
"bugs": "https://github.com/polkadot-js/ui/issues",
"contributors": [],
"description": "Renders an SVG picture representing an address",
"engines": {
"node": ">=18"
},
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/reactnative-identicon#readme",
"license": "Apache-2.0",
"maintainers": [],
"name": "@polkadot/reactnative-identicon",
"repository": {
"directory": "packages/reactnative-identicon",
@@ -13,21 +14,21 @@
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": [
"./detectPackage.js",
"./detectPackage.cjs"
"./packageDetect.js",
"./packageDetect.cjs"
],
"type": "module",
"version": "2.11.3",
"version": "3.16.7",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/ui-shared": "2.11.3",
"@polkadot/util": "^10.4.2",
"@polkadot/util-crypto": "^10.4.2",
"react-native-svg": "^12.5.1"
"@polkadot/ui-shared": "3.16.7",
"@polkadot/util": "^14.0.3",
"@polkadot/util-crypto": "^14.0.3",
"react-native-svg": "^14.1.0",
"tslib": "^2.8.1"
},
"devDependencies": {
"@types/react-native": "^0.71.3"
"@types/react-native": "^0.72.8"
},
"peerDependencies": {
"@polkadot/util": "*",
@@ -1,15 +1,15 @@
// Copyright 2017-2023 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Prefix } from '@polkadot/util-crypto/address/types';
import type { Props as ComponentProps } from './types';
import type { Props as ComponentProps } from './types.js';
import React from 'react';
import { isHex, isU8a, u8aToHex } from '@polkadot/util';
import { decodeAddress, encodeAddress } from '@polkadot/util-crypto';
import { Empty, Polkadot } from './icons';
import { Empty, Polkadot } from './icons/index.js';
const Fallback = Polkadot;
@@ -54,7 +54,7 @@ export default class IdentityIcon extends React.PureComponent<Props, State> {
return address === prevState.address
? null
: { address, publicKey };
} catch (error) {
} catch {
return {
address: '',
publicKey: '0x'
+3 -3
View File
@@ -1,5 +1,5 @@
// Copyright 2017-2023 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export * from './icons';
export { packageInfo } from './packageInfo';
export * from './icons/index.js';
export { packageInfo } from './packageInfo.js';
@@ -1,6 +0,0 @@
// Copyright 2017-2023 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { packageInfo as sharedInfo } from '@polkadot/ui-shared/packageInfo';
export default [sharedInfo];
@@ -1,11 +0,0 @@
// Copyright 2017-2023 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
import { detectPackage } from '@polkadot/util';
import others from './detectOther';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, null, others);
@@ -1,11 +1,11 @@
// Copyright 2017-2023 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Props } from '../types';
import type { Props } from '../types.js';
import React from 'react';
import { View } from 'react-native';
import Svg, { Circle } from 'react-native-svg';
import { Circle, Svg } from 'react-native-svg';
export default function Empty ({ size }: Props): React.ReactElement<Props> {
return (
@@ -1,12 +1,12 @@
// Copyright 2018-2023 @polkadot/reactnative-identicon authors & contributors
// Copyright 2018-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Circle as CircleType } from '@polkadot/ui-shared/icons/types';
import type { Props } from '../types';
import type { Props } from '../types.js';
import React, { useMemo } from 'react';
import { View } from 'react-native';
import Svg, { Circle as SvgCircle } from 'react-native-svg';
import { Circle as SvgCircle, Svg } from 'react-native-svg';
import { polkadotIcon } from '@polkadot/ui-shared';
@@ -1,5 +1,5 @@
// Copyright 2017-2023 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { default as Empty } from './Empty';
export { default as Polkadot } from './Polkadot';
export { default as Empty } from './Empty.js';
export { default as Polkadot } from './Polkadot.js';
+4 -4
View File
@@ -1,10 +1,10 @@
// Copyright 2017-2023 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import './detectPackage';
import './packageDetect.js';
import Identicon from './Identicon';
import Identicon from './Identicon.js';
export * from './bundle';
export * from './bundle.js';
export default Identicon;
@@ -0,0 +1,12 @@
// Copyright 2017-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
// (packageInfo imports will be kept as-is, user-editable)
import { packageInfo as sharedInfo } from '@polkadot/ui-shared/packageInfo';
import { detectPackage } from '@polkadot/util';
import { packageInfo } from './packageInfo.js';
detectPackage(packageInfo, null, [sharedInfo]);
@@ -1,6 +1,6 @@
// Copyright 2017-2023 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/reactnative-identicon', path: 'auto', type: 'auto', version: '2.11.3' };
export const packageInfo = { name: '@polkadot/reactnative-identicon', path: 'auto', type: 'auto', version: '3.16.7' };
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2018-2023 @polkadot/reactnative-identicon authors & contributors
// Copyright 2018-2026 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export interface Props {
View File
-3
View File
@@ -1,3 +0,0 @@
# @polkadot/ui-assets
Static assets including images shared across projects
-22
View File
@@ -1,22 +0,0 @@
{
"author": "Jaco Greeff <jacogr@gmail.com>",
"bugs": "https://github.com/polkadot-js/ui/issues",
"contributors": [],
"description": "Static assets shared accross projects",
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/ui-assets#readme",
"license": "Apache-2.0",
"maintainers": [],
"name": "@polkadot/ui-assets",
"repository": {
"directory": "packages/ui-assets",
"type": "git",
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": false,
"version": "2.11.3",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@polkadot/util": "^10.4.2"
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

-6
View File
@@ -1,6 +0,0 @@
// Copyright 2017-2023 @polkadot/ui-assets authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Empty template, auto-generated by @polkadot/dev
export default [];
-11
View File
@@ -1,11 +0,0 @@
// Copyright 2017-2023 @polkadot/ui-assets authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Do not edit, auto-generated by @polkadot/dev
import { detectPackage } from '@polkadot/util';
import others from './detectOther';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, null, others);
@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512px" height="512px" viewBox="0 0 512 512" version="1.1" style="zoom: 1;"><!-- Generator: Sketch 57.1 (83088) - https://sketch.com --><title>logo-white-with-bg</title><desc>Created with Sketch.</desc><g id="logo-white-with-bg" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><rect fill="#111111" x="0" y="0" width="512" height="512" visibility="hidden"></rect><circle stroke="#000000" id="circle1" stroke-width="3px" cy="256px" fill="#111111" r="250px" cx="256px" transform=""></circle><path d="M160.5,199.5 L160.5,319.5" id="Line" stroke="#FFFFFF" stroke-width="22" stroke-linecap="square"></path><path d="M160.5,199.5 L160.5,319.5" id="Line" stroke="#FFFFFF" stroke-width="22" stroke-linecap="square" transform="translate(160.500000, 259.500000) rotate(60.000000) translate(-160.500000, -259.500000)"></path><path d="M160.5,199.5 L160.5,319.5" id="Line" stroke="#FFFFFF" stroke-width="22" stroke-linecap="square" transform="translate(160.500000, 259.500000) rotate(-60.000000) translate(-160.500000, -259.500000)"></path><path d="M348.5,206.5 L348.5,256.5" id="Line" stroke="#FFFFFF" stroke-width="22" stroke-linecap="square" transform="translate(348.500000, 231.500000) scale(1, -1) translate(-348.500000, -231.500000)"></path><path d="M385.739092,271 L385.739092,321" id="Line" stroke="#FFFFFF" stroke-width="22" stroke-linecap="square" transform="translate(385.739092, 296.000000) scale(-1, 1) rotate(60.000000) translate(-385.739092, -296.000000)"></path><path d="M311.260908,271 L311.260908,321" id="Line" stroke="#FFFFFF" stroke-width="22" stroke-linecap="square" transform="translate(311.260908, 296.000000) scale(-1, 1) rotate(-60.000000) translate(-311.260908, -296.000000)"></path></g></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

Some files were not shown because too many files have changed in this diff Show More