mirror of
https://github.com/pezkuwichain/pezkuwi-telegram-miniapp.git
synced 2026-04-22 03:07:55 +00:00
fix: use Kurdish terminology (Xal instead of Puanlar)
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pezkuwi-telegram-miniapp",
|
"name": "pezkuwi-telegram-miniapp",
|
||||||
"version": "1.0.124",
|
"version": "1.0.125",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Pezkuwichain Telegram Mini App - Forum, Announcements, Rewards",
|
"description": "Pezkuwichain Telegram Mini App - Forum, Announcements, Rewards",
|
||||||
"author": "Pezkuwichain Team",
|
"author": "Pezkuwichain Team",
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
import { ApiPromise, WsProvider } from '@pezkuwi/api';
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
console.log('Connecting to People Chain...');
|
||||||
|
const api = await ApiPromise.create({
|
||||||
|
provider: new WsProvider('wss://people-rpc.pezkuwichain.io')
|
||||||
|
});
|
||||||
|
await api.isReady;
|
||||||
|
console.log('Connected!\n');
|
||||||
|
|
||||||
|
const pallets = ['trust', 'referral', 'stakingScore', 'tiki'];
|
||||||
|
|
||||||
|
for (const pallet of pallets) {
|
||||||
|
console.log(`========== ${pallet} ==========`);
|
||||||
|
|
||||||
|
if (api.tx[pallet]) {
|
||||||
|
console.log('Extrinsics (tx):');
|
||||||
|
const txMethods = Object.keys(api.tx[pallet]);
|
||||||
|
for (const method of txMethods) {
|
||||||
|
const fn = api.tx[pallet][method];
|
||||||
|
console.log(` - ${pallet}.${method}`);
|
||||||
|
// Try to get method info
|
||||||
|
if (fn.meta) {
|
||||||
|
const args = fn.meta.args.map(a => `${a.name}: ${a.type}`).join(', ');
|
||||||
|
console.log(` Args: (${args})`);
|
||||||
|
if (fn.meta.docs.length > 0) {
|
||||||
|
console.log(` Docs: ${fn.meta.docs[0].toString().substring(0, 100)}...`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log('No extrinsics available');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (api.query[pallet]) {
|
||||||
|
console.log('\nStorage:');
|
||||||
|
const storageMethods = Object.keys(api.query[pallet]);
|
||||||
|
console.log(` ${storageMethods.join(', ')}`);
|
||||||
|
}
|
||||||
|
console.log('');
|
||||||
|
}
|
||||||
|
|
||||||
|
await api.disconnect();
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
main().catch(console.error);
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
import { ApiPromise, WsProvider } from '@pezkuwi/api';
|
||||||
|
|
||||||
|
const ADDRESS = '5CyuFfbF95rzBxru7c9yEsX4XmQXUxpLUcbj9RLg9K1cGiiF';
|
||||||
|
|
||||||
|
async function checkChain(name, endpoint) {
|
||||||
|
console.log(`\n========== ${name} ==========`);
|
||||||
|
console.log(`Connecting to ${endpoint}...`);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const provider = new WsProvider(endpoint);
|
||||||
|
const api = await ApiPromise.create({ provider });
|
||||||
|
await api.isReady;
|
||||||
|
console.log('Connected!\n');
|
||||||
|
|
||||||
|
// List all available pallets
|
||||||
|
console.log('Available Pallets:');
|
||||||
|
const pallets = Object.keys(api.query);
|
||||||
|
console.log(pallets.join(', '));
|
||||||
|
console.log('');
|
||||||
|
|
||||||
|
// Check specific pallets
|
||||||
|
const checkPallets = ['trust', 'referral', 'stakingScore', 'tiki', 'assetRewards', 'staking'];
|
||||||
|
|
||||||
|
for (const pallet of checkPallets) {
|
||||||
|
if (api.query[pallet]) {
|
||||||
|
console.log(`✓ ${pallet} pallet exists`);
|
||||||
|
console.log(` Storage: ${Object.keys(api.query[pallet]).join(', ')}`);
|
||||||
|
|
||||||
|
// Try to query user data
|
||||||
|
if (pallet === 'trust' && api.query.trust.trustScores) {
|
||||||
|
const score = await api.query.trust.trustScores(ADDRESS);
|
||||||
|
console.log(` Your trust score: ${score.toString()}`);
|
||||||
|
}
|
||||||
|
if (pallet === 'referral' && api.query.referral.referralCount) {
|
||||||
|
const count = await api.query.referral.referralCount(ADDRESS);
|
||||||
|
console.log(` Your referral count: ${count.toString()}`);
|
||||||
|
}
|
||||||
|
if (pallet === 'stakingScore') {
|
||||||
|
for (const storage of Object.keys(api.query.stakingScore)) {
|
||||||
|
try {
|
||||||
|
const val = await api.query.stakingScore[storage](ADDRESS);
|
||||||
|
console.log(` ${storage}: ${val.toString()}`);
|
||||||
|
} catch {
|
||||||
|
console.log(` ${storage}: (requires different args)`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pallet === 'staking' && api.query.staking.ledger) {
|
||||||
|
const ledger = await api.query.staking.ledger(ADDRESS);
|
||||||
|
console.log(` Your staking ledger: ${ledger.toString()}`);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log(`✗ ${pallet} pallet NOT available`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await api.disconnect();
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Error: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
await checkChain('Relay Chain', 'wss://rpc.pezkuwichain.io');
|
||||||
|
await checkChain('People Chain', 'wss://people-rpc.pezkuwichain.io');
|
||||||
|
await checkChain('Asset Hub', 'wss://asset-hub-rpc.pezkuwichain.io');
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
main().catch(console.error);
|
||||||
+1
-1
@@ -389,7 +389,7 @@ export async function getAllScoresWithFallback(
|
|||||||
const stakingScore = stakingResult.score;
|
const stakingScore = stakingResult.score;
|
||||||
const referralScore = calculateReferralScore(referralCount);
|
const referralScore = calculateReferralScore(referralCount);
|
||||||
|
|
||||||
// If staking score is 0, trust score is 0 (matches pallet logic)
|
// Ger staking 0 be, trust jî 0 be (matches pallet logic)
|
||||||
if (stakingScore === 0) {
|
if (stakingScore === 0) {
|
||||||
return {
|
return {
|
||||||
...emptyResult,
|
...emptyResult,
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ export function RewardsSection() {
|
|||||||
{[
|
{[
|
||||||
{ id: 'overview' as const, label: 'Geşbîn' },
|
{ id: 'overview' as const, label: 'Geşbîn' },
|
||||||
{ id: 'referrals' as const, label: 'Referral' },
|
{ id: 'referrals' as const, label: 'Referral' },
|
||||||
{ id: 'scores' as const, label: 'Puanlar' },
|
{ id: 'scores' as const, label: 'Xal' },
|
||||||
].map(({ id, label }) => (
|
].map(({ id, label }) => (
|
||||||
<button
|
<button
|
||||||
key={id}
|
key={id}
|
||||||
|
|||||||
+3
-3
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": "1.0.124",
|
"version": "1.0.125",
|
||||||
"buildTime": "2026-02-06T22:20:16.985Z",
|
"buildTime": "2026-02-06T22:33:15.711Z",
|
||||||
"buildNumber": 1770416416986
|
"buildNumber": 1770417195712
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,18 +2,12 @@ import { serve } from 'https://deno.land/std@0.177.0/http/server.ts';
|
|||||||
import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
|
import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
|
||||||
import { createHmac } from 'https://deno.land/std@0.177.0/node/crypto.ts';
|
import { createHmac } from 'https://deno.land/std@0.177.0/node/crypto.ts';
|
||||||
|
|
||||||
// CORS - Production domain only
|
// CORS - Only allow our Telegram MiniApp domain
|
||||||
const ALLOWED_ORIGINS = [
|
const ALLOWED_ORIGIN = 'https://telegram.pezkuwichain.io';
|
||||||
'https://telegram.pezkuwichain.io',
|
|
||||||
'https://t.me', // Telegram WebApp iframe
|
|
||||||
];
|
|
||||||
|
|
||||||
function getCorsHeaders(origin: string | null): Record<string, string> {
|
function getCorsHeaders(origin: string | null): Record<string, string> {
|
||||||
const allowedOrigin =
|
|
||||||
origin && ALLOWED_ORIGINS.some((o) => origin.startsWith(o)) ? origin : ALLOWED_ORIGINS[0];
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'Access-Control-Allow-Origin': allowedOrigin,
|
'Access-Control-Allow-Origin': ALLOWED_ORIGIN,
|
||||||
'Access-Control-Allow-Headers':
|
'Access-Control-Allow-Headers':
|
||||||
'authorization, x-client-info, apikey, content-type, x-supabase-client-platform',
|
'authorization, x-client-info, apikey, content-type, x-supabase-client-platform',
|
||||||
'Access-Control-Allow-Methods': 'POST, OPTIONS',
|
'Access-Control-Allow-Methods': 'POST, OPTIONS',
|
||||||
@@ -145,8 +139,7 @@ function verifySessionToken(token: string, botToken: string): number | null {
|
|||||||
}
|
}
|
||||||
|
|
||||||
serve(async (req) => {
|
serve(async (req) => {
|
||||||
const origin = req.headers.get('origin');
|
const corsHeaders = getCorsHeaders(req.headers.get('origin'));
|
||||||
const corsHeaders = getCorsHeaders(origin);
|
|
||||||
|
|
||||||
// Handle CORS preflight
|
// Handle CORS preflight
|
||||||
if (req.method === 'OPTIONS') {
|
if (req.method === 'OPTIONS') {
|
||||||
|
|||||||
Reference in New Issue
Block a user