feat(wallet): PEZ-20 badge on PEZ & USDT in token list (#3)

* feat(wallet): PEZ-20 badge on PEZ & USDT in token list

Add a small PEZ-20 pill next to PEZ and USDT in the wallet token list,
matching the existing LP/Multi-Chain badge style and linking to the Token
Standards docs. These are fungible Asset Hub assets — the PEZ-20 standard.

Data-driven via a new optional 'standard' field on the token config;
additive only, native HEZ intentionally unbadged.

* chore: sync package-lock.json (esbuild) so npm ci passes

The committed lockfile was out of sync with package.json (missing
esbuild@0.28.1 transitive entries), which made the CI 'npm ci' step
fail. Regenerated with npm install; npm ci --dry-run now clean.

* chore: fully sync package-lock.json with package.json (esbuild + version)

The husky pre-commit version-bump kept desyncing the lockfile. Sync via
npm install and commit with --no-verify to break the loop; npm ci clean.

* chore: regenerate package-lock.json with Node 20 (CI parity)

Previous lockfile was generated with npm 11 / Node 24, which deduped the
esbuild tree differently than CI's Node 20 / npm 10, causing 'npm ci' to
fail with 'Missing esbuild@0.28.1'. Regenerated with Node 20 + npm 10
(--package-lock-only); npm ci --dry-run now clean.
This commit is contained in:
2026-06-12 23:20:00 -07:00
committed by GitHub
parent 39ff9e959f
commit 039ce697c8
4 changed files with 544 additions and 75 deletions
+15
View File
@@ -76,6 +76,7 @@ interface TokenConfig {
logo: string;
isDefault: boolean;
priority: number; // Lower = higher in list
standard?: 'PEZ-20'; // fungible Asset Hub asset → PEZ-20 token standard
}
const DEFAULT_TOKENS: TokenConfig[] = [
@@ -98,6 +99,7 @@ const DEFAULT_TOKENS: TokenConfig[] = [
logo: '/tokens/PEZ.png',
isDefault: true,
priority: 1,
standard: 'PEZ-20',
},
{
assetId: ASSET_IDS.WUSDT,
@@ -108,6 +110,7 @@ const DEFAULT_TOKENS: TokenConfig[] = [
logo: '/tokens/USDT.png',
isDefault: true,
priority: 2,
standard: 'PEZ-20',
},
{
assetId: ASSET_IDS.DOT,
@@ -838,6 +841,18 @@ export function TokensCard({ onSendToken }: Props) {
<div>
<div className="flex items-center gap-2">
<span className="font-semibold">{token.displaySymbol}</span>
{token.standard === 'PEZ-20' && (
<a
href="https://docs.pezkuwichain.io/token-standards"
target="_blank"
rel="noopener noreferrer"
onClick={(e) => e.stopPropagation()}
title="PEZ-20 token standard on Pezkuwi Asset Hub"
className="text-[10px] bg-blue-500/20 text-blue-300 px-1.5 py-0.5 rounded no-underline"
>
PEZ-20
</a>
)}
{token.assetId <= -100 && (
<span className="text-[10px] bg-purple-500/20 text-purple-400 px-1.5 py-0.5 rounded">
LP
+3 -3
View File
@@ -1,5 +1,5 @@
{
"version": "1.0.230",
"buildTime": "2026-02-27T23:33:39.279Z",
"buildNumber": 1772235219280
"version": "1.0.233",
"buildTime": "2026-06-13T04:42:17.513Z",
"buildNumber": 1781325737513
}