Fix all ESLint errors in mobile app (157 errors -> 0)

Major fixes:
- Replace `any` types with proper TypeScript types across all files
- Convert require() imports to ES module imports
- Add __DEV__ guards to console statements
- Escape special characters in JSX (' and ")
- Fix unused variables (prefix with _ or remove)
- Fix React hooks violations (useCallback, useMemo patterns)
- Convert wasm-crypto-shim.js to TypeScript
- Add eslint-disable comments for valid setState patterns

Files affected: 50+ screens, components, contexts, and services

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-18 02:55:03 +03:00
parent 6979f36721
commit 40bc15f1f9
54 changed files with 442 additions and 333 deletions
@@ -25,10 +25,10 @@ export function ValidatorSelectionSheet({
onClose,
onConfirmNominations,
}: ValidatorSelectionSheetProps) {
const { api, isApiReady, selectedAccount } = usePezkuwi();
const { api, isApiReady, _selectedAccount } = usePezkuwi();
const [validators, setValidators] = useState<Validator[]>([]);
const [loading, setLoading] = useState(true);
const [processing, setProcessing] = useState(false);
const [processing, _setProcessing] = useState(false);
const [selectedValidators, setSelectedValidators] = useState<string[]>([]);
// Fetch real validators from chain
@@ -44,7 +44,7 @@ export function ValidatorSelectionSheet({
const rawValidators = await api.query.validatorPool.validators();
// Assuming rawValidators is a list of validator addresses or objects
// This parsing logic will need adjustment based on the exact structure returned
for (const rawValidator of rawValidators.toHuman() as any[]) { // Adjust 'any' based on actual type
for (const rawValidator of rawValidators.toHuman() as unknown[]) {
// Placeholder: Assume rawValidator is just an address for now
chainValidators.push({
address: rawValidator.toString(), // or rawValidator.address if it's an object
@@ -56,11 +56,11 @@ export function ValidatorSelectionSheet({
}
} else {
// Fallback to general staking validators if validatorPool pallet is not found/used
const rawStakingValidators = await api.query.staking.validators() as any;
const rawStakingValidators = await api.query.staking.validators() as { keys?: { args: unknown[] }[] };
for (const validatorAddress of (rawStakingValidators.keys || [])) {
const address = validatorAddress.args[0].toString();
// Fetch more details about each validator if needed, e.g., commission, total stake
const validatorPrefs = await api.query.staking.validators(address) as any;
const validatorPrefs = await api.query.staking.validators(address) as { commission: { toNumber: () => number } };
const commission = validatorPrefs.commission.toNumber() / 10_000_000; // Assuming 10^7 for percentage
// For simplicity, total stake and nominators are placeholders for now