fix: use People Chain API for tiki and identityKyc pallets

- DashboardContext: query tiki/kyc from peopleApi instead of relay api
- KycApprovalTab: use peopleApi for identityKyc.pendingKycApplications
- NewCitizenApplication: all KYC operations now use People Chain

These pallets are on People Chain, not Relay Chain. This fixes the
"mafe te tuneye" error when accessing Citizens portal.
This commit is contained in:
2026-02-10 18:09:26 +03:00
parent 76e024276c
commit e53be65975
3 changed files with 50 additions and 44 deletions
+9 -9
View File
@@ -17,7 +17,7 @@ const DashboardContext = createContext<DashboardData | undefined>(undefined);
export function DashboardProvider({ children }: { children: ReactNode }) {
const { user } = useAuth();
const { api, isApiReady, selectedAccount } = usePezkuwi();
const { peopleApi, isPeopleReady, selectedAccount } = usePezkuwi();
const [profile, setProfile] = useState<Record<string, unknown> | null>(null);
const [nftDetails, setNftDetails] = useState<{ citizenNFT: TikiNFTDetails | null; roleNFTs: TikiNFTDetails[]; totalNFTs: number }>({
citizenNFT: null,
@@ -54,29 +54,29 @@ export function DashboardProvider({ children }: { children: ReactNode }) {
}, [user]);
const fetchScoresAndTikis = useCallback(async () => {
if (!selectedAccount || !api) return;
// tiki and identityKyc pallets are on People Chain, not Relay Chain
if (!selectedAccount || !peopleApi || !isPeopleReady) return;
setLoading(true);
try {
const status = await getKycStatus(api, selectedAccount.address);
const status = await getKycStatus(peopleApi, selectedAccount.address);
setKycStatus(status);
const details = await getAllTikiNFTDetails(api, selectedAccount.address);
const details = await getAllTikiNFTDetails(peopleApi, selectedAccount.address);
setNftDetails(details);
} catch (error) {
if (import.meta.env.DEV) console.error('Error fetching data:', error);
if (import.meta.env.DEV) console.error('Error fetching tiki/kyc data from People Chain:', error);
} finally {
setLoading(false);
}
}, [selectedAccount, api]);
}, [selectedAccount, peopleApi, isPeopleReady]);
useEffect(() => {
fetchProfile();
if (selectedAccount && api && isApiReady) {
if (selectedAccount && peopleApi && isPeopleReady) {
fetchScoresAndTikis();
}
}, [user, selectedAccount, api, isApiReady, fetchProfile, fetchScoresAndTikis]);
}, [user, selectedAccount, peopleApi, isPeopleReady, fetchProfile, fetchScoresAndTikis]);
const citizenNumber = nftDetails.citizenNFT
? generateCitizenNumber(nftDetails.citizenNFT.owner, nftDetails.citizenNFT.collectionId, nftDetails.citizenNFT.itemId)