mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-27 17:27:54 +00:00
feat: align frontend scoring with People Chain pallet queries
- Update staking score/tracking calls from relayApi to peopleApi - Fix referral score to use on-chain tiered scoring with penalties - Fix perwerde score to query studentCourses + enrollments storage - Update Dashboard and StakingDashboard for People Chain API
This commit is contained in:
@@ -361,7 +361,7 @@ export const StakingDashboard: React.FC = () => {
|
||||
};
|
||||
|
||||
const handleStartScoreTracking = async () => {
|
||||
if (!api || !selectedAccount) return;
|
||||
if (!peopleApi || !selectedAccount) return;
|
||||
|
||||
if (!stakingInfo || parseFloat(stakingInfo.bonded) === 0) {
|
||||
toast.error('You must bond tokens before starting score tracking');
|
||||
@@ -371,7 +371,8 @@ export const StakingDashboard: React.FC = () => {
|
||||
setIsLoading(true);
|
||||
try {
|
||||
const injector = await web3FromAddress(selectedAccount.address);
|
||||
const tx = api.tx.stakingScore.startScoreTracking();
|
||||
// stakingScore pallet is on People Chain - uses cached staking data from Asset Hub
|
||||
const tx = peopleApi.tx.stakingScore.startScoreTracking();
|
||||
|
||||
await tx.signAndSend(
|
||||
selectedAccount.address,
|
||||
@@ -381,7 +382,7 @@ export const StakingDashboard: React.FC = () => {
|
||||
if (dispatchError) {
|
||||
let errorMessage = 'Failed to start score tracking';
|
||||
if (dispatchError.isModule) {
|
||||
const decoded = api.registry.findMetaError(dispatchError.asModule);
|
||||
const decoded = peopleApi.registry.findMetaError(dispatchError.asModule);
|
||||
errorMessage = `${decoded.section}.${decoded.name}: ${decoded.docs.join(' ')}`;
|
||||
}
|
||||
toast.error(errorMessage);
|
||||
|
||||
@@ -117,8 +117,8 @@ export default function Dashboard() {
|
||||
const allScores = await getAllScores(peopleApi, selectedAccount.address);
|
||||
setScores(allScores);
|
||||
|
||||
// Fetch staking score tracking status (from Relay Chain where stakingScore pallet lives)
|
||||
const stakingStatusResult = await getStakingScoreStatus(api, selectedAccount.address);
|
||||
// Fetch staking score tracking status (People Chain - uses cached staking data from Asset Hub)
|
||||
const stakingStatusResult = await getStakingScoreStatus(peopleApi, selectedAccount.address);
|
||||
setStakingStatus(stakingStatusResult);
|
||||
|
||||
// Fetch tikis from People Chain (tiki pallet is on People Chain)
|
||||
@@ -144,7 +144,7 @@ export default function Dashboard() {
|
||||
}, [selectedAccount, api, peopleApi]);
|
||||
|
||||
const handleStartScoreTracking = async () => {
|
||||
if (!api || !selectedAccount) {
|
||||
if (!peopleApi || !selectedAccount) {
|
||||
toast({
|
||||
title: "Hata",
|
||||
description: "Lütfen önce cüzdanınızı bağlayın",
|
||||
@@ -156,9 +156,8 @@ export default function Dashboard() {
|
||||
setStartingScoreTracking(true);
|
||||
try {
|
||||
const injector = await web3FromAddress(selectedAccount.address);
|
||||
// startScoreTracking must use Relay Chain API (api), not People Chain (peopleApi),
|
||||
// because the stakingScore pallet needs access to staking.ledger on Relay Chain
|
||||
const result = await startScoreTracking(api, selectedAccount.address, injector.signer);
|
||||
// startScoreTracking on People Chain - staking data comes from Asset Hub via XCM
|
||||
const result = await startScoreTracking(peopleApi, selectedAccount.address, injector.signer);
|
||||
|
||||
if (result.success) {
|
||||
toast({
|
||||
|
||||
Reference in New Issue
Block a user