devbro468/Dev_x_store_botPublic · Bot Template

AIThis bot operates a digital storefront (DEV X STORE) selling subscription-based products — likely game hacks, accounts, or access keys — categorized by platform (Android Root, Non-Root, iPhone). It features a reseller program with discounted pricing, a dual-currency wallet (INR balance + Telegram Stars/XTR), and a full admin/co-admin panel for managing products, plans, per-plan pricing, stock (keys/accounts), coupons, and API endpoints. Purchases flow through a plan selection screen offering wallet payment, Stars invoices (sendInvoice with XTR currency), and coupon application. Successful Stars payments are handled via successful_payment webhook, crediting wallet or delivering keys directly. Admin tools include user listing with chunked messaging, stock viewing/deletion with inline keyboards, co-admin management, and API registry updates. The bot registers users on first interaction and

Commercecommercedigital-goodsstars-paymentreseller-systemadmin-panelstock-management
ProfileTelegram
119 commands0 envUpdated 15d agoCreated Aug 23, 2026
Back to folder

commands/_checkbal.js

javascript · 73 lines

Raw
1/**#command2name: /checkbal3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12try {13  // ✅ FIXED (v3): dynamic owner_id + co-admin check (same fix as /addbal).14  var adminId = Bot.getProperty("owner_id") || "8875810358";15  var isCoAdmin = Bot.getProperty("co_admin_" + String(chat.chatid));16  if (String(chat.chatid) !== adminId && !isCoAdmin) return;17 18  // ✅ FIXED: instantly ack the button press so it doesn't feel stuck/slow.19  if (request && request.id) {20    try {21      HTTP.post({22        url: "https://api.telegram.org/bot" + bot.token + "/answerCallbackQuery",23        body: { callback_query_id: request.id }24      });25    } catch (ackErr) {}26  }27 28  // Expected Usage: /checkbalance USER_ID29  var targetId = params ? params.trim() : null;30 31  // ✅ FIXED: same button-click bug as /addbal — ab prompt aata hai.32  if (!targetId || isNaN(targetId)) {33    User.setProperty("checkbal_step", "waiting_input", "string");34    Bot.sendMessage(35      "<tg-emoji emoji-id='6039605143601680423'>📊</tg-emoji> <b>Check Balance</b>\n\n" +36      "<i>Jis user ka balance check karna hai uski User ID reply karein:</i>\n<code>8875810358</code>",37      { parse_mode: "HTML" }38    );39    return;40  }41 42  // 👤 NAME & USERNAME DEFAULT FALLBACKS43  var name = "N/A";44  var username = "N/A";45 46  // Agar admin apni khud ki ID check kar raha hai tabhi user metadata direct load hoga47  if (String(targetId) === String(user.telegramid)) {48    name = user.first_name || "N/A";49    username = user.username ? "@" + user.username : "N/A";50  }51 52  // 💰 WALLET BALANCE REGISTERS FETCH53  var userResBalance = Libs.ResourcesLib.anotherUserRes("balance", targetId).value() || 0;54  var adminCustomBal = Bot.getProperty("balance" + targetId) || 0;55  var totalUserBal = (Number(userResBalance) + Number(adminCustomBal)).toFixed(2);56 57  // 📉 TOTAL EXPENSE NODE TRACKING (Total Invest mapping)58  var totalSpent = Bot.getProperty("total_spent_by_" + targetId) || 0;59  var formattedSpent = Number(totalSpent).toFixed(2);60 61  // 📄 FINAL RESPONSE BOX62  var messageText = "<blockquote><b><tg-emoji emoji-id='6039605143601680423'>📞</tg-emoji> USER ACCOUNT DETAILS</b>\n\n" +63                    "• <b>Name:</b> " + name + "\n" +64                    "• <b>Username:</b> " + username + "\n" +65                    "• <b>User ID:</b> <code>" + targetId + "</code>\n" +66                    "• <b>Balance:</b> <code>₹" + totalUserBal + "</code>\n" +67                    "• <b>Total Invest:</b> <code>₹" + formattedSpent + "</code></blockquote>";68 69  Bot.sendMessage(messageText, { parse_mode: "HTML" });70 71} catch (err) {72  Bot.sendMessage("⚠️ Error: " + err.message);73}