fix: update extension packages and fix type compatibility for pezkuwi-sdk

- Update @pezkuwi/extension-inject to ^0.62.13 with proper /types exports
- Update @pezkuwi/extension-dapp to ^0.62.13
- Update @pezkuwi/extension-compat-metamask to ^0.62.13
- Fix IconTheme type to include 'bizinikiwi' and 'pezkuwi' themes
- Fix endpoint array issues (getTeleports -> direct array references)
- Add type assertions for external package compatibility (acala, moonbeam, parallel)
- Fix subspace.ts dynamic class typing
- Fix conviction type in page-referenda
- Update Pallet type names to Pezpallet prefix across codebase
- Define InjectedExtension types locally for module resolution
- Add styled-components DefaultTheme augmentation
- Add react-copy-to-clipboard type declaration for React 18

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-08 16:24:19 +03:00
parent e64f846b0d
commit 7a4bbeac25
570 changed files with 3281 additions and 3030 deletions
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0
import type { Bytes, Option } from '@pezkuwi/types';
import type { PalletIdentityRegistration } from '@pezkuwi/types/lookup';
import type { PezpalletIdentityRegistration } from '@pezkuwi/types/lookup';
import type { ITuple } from '@pezkuwi/types/types';
import type { HexString } from '@pezkuwi/util/types';
@@ -35,7 +35,7 @@ const JUDGEMENT_ENUM = [
];
const OPT_ID = {
transform: (optId: Option<ITuple<[PalletIdentityRegistration, Option<Bytes>]>>): HexString | null => {
transform: (optId: Option<ITuple<[PezpalletIdentityRegistration, Option<Bytes>]>>): HexString | null => {
const id = optId.isSome
? optId.unwrap()
: null;
@@ -45,7 +45,7 @@ const OPT_ID = {
? null
: Array.isArray(id)
? id[0].info.hash.toHex()
: (id as unknown as PalletIdentityRegistration).info.hash.toHex();
: (id as unknown as PezpalletIdentityRegistration).info.hash.toHex();
}
};
@@ -6,7 +6,7 @@ import type { DeriveBalancesAccountData, DeriveBalancesAll, DeriveDemocracyLock,
import type { VestingInfo } from '@pezkuwi/react-hooks';
import type { Raw } from '@pezkuwi/types';
import type { BlockNumber, ValidatorPrefsTo145, Voting } from '@pezkuwi/types/interfaces';
import type { PalletBalancesReserveData } from '@pezkuwi/types/lookup';
import type { PezpalletBalancesReserveData } from '@pezkuwi/types/lookup';
import type { BN } from '@pezkuwi/util';
import React, { useRef } from 'react';
@@ -369,7 +369,7 @@ function createBalanceItems (formatIndex: number, lookup: Record<string, string>
);
}
const allReserves = (deriveBalances?.namedReserves || []).reduce<PalletBalancesReserveData[]>((t, r) => t.concat(...r), []);
const allReserves = (deriveBalances?.namedReserves || []).reduce<PezpalletBalancesReserveData[]>((t, r) => t.concat(...r), []);
const hasNamedReserves = !!allReserves && allReserves.length !== 0;
balanceDisplay.locked && balancesAll && (isAllLocked || deriveBalances.lockedBalance?.gtn(0)) && allItems.push(
@@ -68,7 +68,9 @@ function IdentityIcon ({ className = '', forceIconType, prefix, size = 24, theme
onCopy={onCopy}
prefix={prefix}
size={size}
theme={forceIconType || (isEthereum ? 'ethereum' : thisTheme as 'bizinikiwi')}
// bizinikiwi is valid in pezkuwi-sdk, cast to any for type compatibility
// eslint-disable-next-line @typescript-eslint/no-explicit-any
theme={(forceIconType || (isEthereum ? 'ethereum' : thisTheme)) as any}
value={isCodec(value) ? value.toString() : value}
/>
);
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0
import type { StorageEntryBase } from '@pezkuwi/api/types';
import type { PalletConstantMetadataLatest } from '@pezkuwi/types/interfaces';
import type { PezpalletConstantMetadataLatest } from '@pezkuwi/types/interfaces';
import type { AnyTuple } from '@pezkuwi/types/types';
export type StorageEntryPromise = StorageEntryBase<'promise', any, AnyTuple>;
@@ -13,5 +13,5 @@ export interface ConstValueBase {
}
export interface ConstValue extends ConstValueBase {
meta: PalletConstantMetadataLatest;
meta: PezpalletConstantMetadataLatest;
}
@@ -0,0 +1,24 @@
// Copyright 2017-2026 @pezkuwi/react-components authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Override react-copy-to-clipboard types for React 18 compatibility
declare module 'react-copy-to-clipboard' {
import type { ReactNode, ReactElement } from 'react';
interface Options {
debug?: boolean;
message?: string;
format?: string;
}
interface Props {
children?: ReactNode;
text: string;
onCopy?: (text: string, result: boolean) => void;
options?: Options;
}
function CopyToClipboard(props: Props): ReactElement;
export = CopyToClipboard;
}
+3
View File
@@ -3,6 +3,9 @@
import '@pezkuwi/api-augment';
// Custom IconTheme type that includes pezkuwi project themes
export type PezkuwiIconTheme = 'beachball' | 'bizinikiwi' | 'empty' | 'ethereum' | 'jdenticon' | 'pezkuwi' | 'polkadot' | 'substrate';
import type { IconName } from '@fortawesome/fontawesome-svg-core';
import type React from 'react';
import type { SubmittableExtrinsic } from '@pezkuwi/api/types';