feat: complete Pezkuwi rebrand - remove other networks

- Remove all Polkadot ecosystem networks from chain selector
- Keep only: Pezkuwi Relay Chain, Zagros Relay Chain, Pezkuwi Beta Testnet
- Update extension ID from polkadot-js to pezkuwi
- Update PhishingDetected to use Pezkuwi branding
- Update metadataMock: Westend → Zagros, WND → ZGR
- Disable Ledger chains (no Pezkuwi Ledger app yet)
- Update Identicon to handle pezkuwi icon theme
- Clean up translation files

Breaking: Extension now only supports Pezkuwi networks
This commit is contained in:
2026-01-08 23:46:06 +03:00
parent 868937ad12
commit ea2db6558f
42 changed files with 348 additions and 75 deletions
@@ -27,14 +27,14 @@ function PhishingDetected ({ className }: Props): React.ReactElement<Props> {
<Header text={t('Phishing detected')} />
<div className={className}>
<p>
{t('You have been redirected because the Polkadot{.js} extension believes that this website could compromise the security of your accounts and your tokens.')}
{t('You have been redirected because the Pezkuwi extension believes that this website could compromise the security of your accounts and your tokens.')}
</p>
<p className='websiteAddress'>
{decodedWebsite}
</p>
<p>
<Trans i18nKey='phishing.incorrect'>
Note that this website was reported on a community-driven, curated list. It might be incomplete or inaccurate. If you think that this website was flagged incorrectly, <a href='https://github.com/polkadot-js/phishing/issues/new'>please open an issue by clicking here</a>.
Note that this website was reported on a community-driven, curated list. It might be incomplete or inaccurate. If you think that this website was flagged incorrectly, <a href='https://github.com/pezkuwichain/phishing/issues/new'>please open an issue by clicking here</a>.
</Trans>
</p>
</div>
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

@@ -144,7 +144,7 @@ function Address ({ actions, address, children, className, genesisHash, isExtern
const theme = (
type === 'ethereum'
? 'ethereum'
: (chain?.icon || 'polkadot')
: (chain?.icon || 'jdenticon')
) as IconTheme;
const _onClick = useCallback(
@@ -19,6 +19,11 @@ interface Props {
}
function Identicon ({ className, iconTheme, onCopy, prefix, value }: Props): React.ReactElement<Props> {
// Use jdenticon as default for Pezkuwi
const theme = iconTheme === 'polkadot' || iconTheme === 'substrate' || iconTheme === 'pezkuwi' || !iconTheme
? 'jdenticon'
: iconTheme;
return (
<div className={className}>
<Icon
@@ -26,7 +31,7 @@ function Identicon ({ className, iconTheme, onCopy, prefix, value }: Props): Rea
onCopy={onCopy}
prefix={prefix}
size={64}
theme={iconTheme}
theme={theme}
value={value}
/>
</div>
@@ -0,0 +1,45 @@
// Copyright 2019-2025 @pezkuwi/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
interface Props {
address: string;
className?: string;
size: number;
}
// Pezkuwi branded icon component
// Uses green (#86e62a) background with white 'P' letter
function PezkuwiIcon ({ className = '', size }: Props): React.ReactElement<Props> {
return (
<div className={`container ${className}`}>
<svg
height={size}
viewBox="0 0 64 64"
width={size}
>
<circle
cx="32"
cy="32"
fill="#86e62a"
r="32"
/>
<text
dominantBaseline="central"
fill="#ffffff"
fontFamily="Arial, sans-serif"
fontSize="32"
fontWeight="bold"
textAnchor="middle"
x="32"
y="32"
>
P
</text>
</svg>
</div>
);
}
export default React.memo(PezkuwiIcon);
@@ -5,7 +5,7 @@ import { faArrowLeft, faCog, faPlusCircle, faSearch } from '@fortawesome/free-so
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
import logo from '../assets/pjs.svg';
import logo from '../assets/pezkuwi-logo.png';
import { ActionContext } from '../components/index.js';
import InputFilter from '../components/InputFilter.js';
import Link from '../components/Link.js';
@@ -113,7 +113,7 @@ function Header ({ children, className = '', onFilter, showAdd, showBackArrow, s
/>
)
}
<span className='logoText'>{text || 'polkadot{.js}'}</span>
<span className='logoText'>{text || 'Pezkuwi'}</span>
</div>
{showSearch && (
<div className={`searchBarWrapper ${isSearchOpen ? 'selected' : ''}`}>
+22 -11
View File
@@ -3,15 +3,26 @@
import type { MetadataDefBase } from '@pezkuwi/extension-inject/types';
import { selectableNetworks } from '@pezkuwi/networks';
// Pezkuwi networks only - clean and focused
const pezkuwiNetworks: MetadataDefBase[] = [
{
chain: 'Pezkuwi Relay Chain',
genesisHash: '0x0000000000000000000000000000000000000000000000000000000000000001',
icon: 'pezkuwi',
ss58Format: 42
},
{
chain: 'Zagros Relay Chain',
genesisHash: '0x0000000000000000000000000000000000000000000000000000000000000003',
icon: 'pezkuwi',
ss58Format: 42
},
{
chain: 'Pezkuwi Beta Testnet',
genesisHash: '0x0000000000000000000000000000000000000000000000000000000000000002',
icon: 'pezkuwi',
ss58Format: 42
}
];
const hashes: MetadataDefBase[] = selectableNetworks
.filter(({ genesisHash }) => !!genesisHash.length)
.map((network) => ({
chain: network.displayName,
genesisHash: network.genesisHash[0],
icon: network.icon,
ss58Format: network.prefix
}));
export default hashes;
export default pezkuwiNetworks;
@@ -18,6 +18,26 @@ export default function getLanguageOptions (): Option[] {
text: 'English',
value: 'en'
},
{
text: 'Kurmancî',
value: 'ku'
},
{
text: 'سۆرانی',
value: 'ckb'
},
{
text: 'Türkçe',
value: 'tr'
},
{
text: 'العربية',
value: 'ar'
},
{
text: 'فارسی',
value: 'fa'
},
{
text: '汉语',
value: 'zh'
@@ -26,10 +46,6 @@ export default function getLanguageOptions (): Option[] {
text: 'Français',
value: 'fr'
},
{
text: 'Türkce',
value: 'tr'
},
{
text: 'Polski',
value: 'pl'
@@ -1,6 +1,6 @@
// Copyright 2019-2025 @pezkuwi/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { selectableNetworks } from '@pezkuwi/networks';
export default selectableNetworks.filter((network) => network.hasLedgerSupport);
// Pezkuwi networks - Ledger support will be added in future versions
// For now, return empty array as Pezkuwi doesn't have Ledger app yet
export default [];