{"version":3,"names":["MINIMUM_STAKE","CHAIN_ID","API_URL","POOL","BYPASS_GROUPS","isCheckingStake","canBypassStaking","bodyEl","document","querySelector","classList","contains","console","log","metaGroups","groups","content","toLowerCase","bypassGroup","includes","userScripts","querySelectorAll","script","textContent","match","groupsText","e","error","addWalletButton","header","getElementById","btn","createElement","id","innerHTML","localStorage","getItem","onclick","showModal","insertBefore","firstChild","autoPromptWallet","wallet","hasPrompted","sessionStorage","hasWallet","canBypass","setItem","existingModal","body","removeChild","JSON","parse","isBypass","modal","style","cssText","address","slice","toLocaleString","appendChild","head","target","disabled","window","starkey","supra","alert","accounts","connect","chainId","length","Error","msg","Date","now","msgHex","Array","from","TextEncoder","encode","map","b","toString","padStart","join","sig","signMessage","message","stringify","publicKey","connectedAt","location","reload","result","res","fetch","method","headers","function","type_arguments","arguments","data","json","staked","parseInt","canCreate","toFixed","confirm","removeItem","checkStakeForPosting","actionType","action","w","err","blockTopicCreationAndReplies","addEventListener","closest","preventDefault","stopImmediatePropagation","stopPropagation","replyBtn","canReply","form","isNewTopic","canPost","setInterval","submitBtn","dataset","supraGated","isReply","replyButtons","forEach","init","setTimeout","readyState"],"sources":["theme-2-inline-common-body_tag.js"],"sourcesContent":["\n(function() {\n  const MINIMUM_STAKE = 50000;\n  const CHAIN_ID = 8;\n  const API_URL = \"https://rpc-mainnet.supra.com/rpc/v3/view\";\n  const POOL = \"0x9d8ed683cfe28c658df277f9f326dcd987fb553905e4e3f079ff70eac5d18bba\";\n  \n  const BYPASS_GROUPS = ['supra_team', 'staff'];\n  let isCheckingStake = false;\n\n  function canBypassStaking() {\n    try {\n      const bodyEl = document.querySelector('body');\n      if (bodyEl && bodyEl.classList.contains('staff')) {\n        console.log('✅ User is staff (from body class)');\n        return true;\n      }\n      \n      const metaGroups = document.querySelector('meta[name=\"discourse-user-groups\"]');\n      if (metaGroups) {\n        const groups = metaGroups.content.toLowerCase();\n        for (const bypassGroup of BYPASS_GROUPS) {\n          if (groups.includes(bypassGroup.toLowerCase())) {\n            console.log('✅ User in bypass group:', bypassGroup);\n            return true;\n          }\n        }\n      }\n      \n      const userScripts = document.querySelectorAll('script');\n      for (const script of userScripts) {\n        if (script.textContent.includes('currentUser') && script.textContent.includes('groups')) {\n          const match = script.textContent.match(/\"groups\":\\s*\\[(.*?)\\]/);\n          if (match) {\n            const groupsText = match[0].toLowerCase();\n            for (const bypassGroup of BYPASS_GROUPS) {\n              if (groupsText.includes(bypassGroup.toLowerCase())) {\n                console.log('✅ User in bypass group (from script):', bypassGroup);\n                return true;\n              }\n            }\n          }\n        }\n      }\n    } catch (e) {\n      console.error('Error checking bypass:', e);\n    }\n    \n    console.log('❌ User NOT in bypass groups');\n    return false;\n  }\n\n  function addWalletButton() {\n    const header = document.querySelector('.header-icons') || document.querySelector('.icons.d-header-icons');\n    if (!header || document.getElementById('supra-wallet-btn')) return;\n    \n    const btn = document.createElement('li');\n    btn.id = 'supra-wallet-btn';\n    btn.innerHTML = `\n      <button class=\"btn btn-icon btn-flat\" title=\"Supra Wallet\">\n        <svg class=\"fa d-icon d-icon-wallet svg-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 512 512\">\n          <path fill=\"currentColor\" d=\"M448 32C465.7 32 480 46.33 480 64C480 81.67 465.7 96 448 96H80C71.16 96 64 103.2 64 112C64 120.8 71.16 128 80 128H448C483.3 128 512 156.7 512 192V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM416 336C433.7 336 448 321.7 448 304C448 286.3 433.7 272 416 272C398.3 272 384 286.3 384 304C384 321.7 398.3 336 416 336z\"/>\n        </svg>\n        ${localStorage.getItem('supra_wallet') ? '<span style=\"position:absolute;top:3px;right:3px;width:8px;height:8px;background:#4CAF50;border-radius:50%;\"></span>' : ''}\n      </button>\n    `;\n    \n    btn.querySelector('button').onclick = showModal;\n    header.insertBefore(btn, header.firstChild);\n    console.log('✅ Wallet button added');\n  }\n\n  function autoPromptWallet() {\n    const wallet = localStorage.getItem('supra_wallet');\n    const hasPrompted = sessionStorage.getItem('supra_wallet_prompted');\n    \n    console.log('🔍 Auto-prompt check:', {\n      hasWallet: !!wallet,\n      hasPrompted: !!hasPrompted,\n      canBypass: canBypassStaking()\n    });\n    \n    if (hasPrompted) {\n      console.log('⏭️ Already prompted this session');\n      return;\n    }\n    \n    if (wallet) {\n      console.log('⏭️ Wallet already connected');\n      return;\n    }\n    \n    if (canBypassStaking()) {\n      console.log('⏭️ User can bypass - no prompt needed');\n      sessionStorage.setItem('supra_wallet_prompted', 'true');\n      return;\n    }\n    \n    console.log('🎯 SHOWING AUTO-PROMPT MODAL');\n    sessionStorage.setItem('supra_wallet_prompted', 'true');\n    showModal();\n  }\n\n  function showModal() {\n    const existingModal = document.getElementById('supra-modal');\n    if (existingModal) {\n      document.body.removeChild(existingModal);\n    }\n    \n    const wallet = localStorage.getItem('supra_wallet') ? JSON.parse(localStorage.getItem('supra_wallet')) : null;\n    const isBypass = canBypassStaking();\n    \n    const modal = document.createElement('div');\n    modal.id = 'supra-modal';\n    modal.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.8);display:flex;align-items:center;justify-content:center;z-index:99999;animation:fadeIn 0.3s;';\n    \n    modal.innerHTML = `\n      <div style=\"background:var(--secondary,#fff);color:var(--primary,#000);border-radius:12px;padding:30px;max-width:500px;width:90%;position:relative;box-shadow:0 20px 60px rgba(0,0,0,0.5);animation:slideUp 0.3s;\">\n        <button id=\"modal-close\" style=\"position:absolute;top:15px;right:15px;background:none;border:none;font-size:28px;cursor:pointer;color:var(--primary,#000);\">&times;</button>\n        <h2 style=\"margin:0 0 20px;font-size:24px;\">StarKey Wallet</h2>\n        \n        ${isBypass ? `\n          <div style=\"text-align:center;background:#e8f5e9;padding:25px;border-radius:10px;margin-bottom:20px;\">\n            <div style=\"font-size:50px;margin-bottom:10px;\">👑</div>\n            <p style=\"font-weight:600;font-size:18px;margin:10px 0;color:#2e7d32;\">Privileged Access</p>\n            <p style=\"font-size:14px;color:#2e7d32;margin:10px 0;\">As a team/staff member, you can create topics and reply without staking requirements.</p>\n          </div>\n        ` : ''}\n        \n        ${wallet ? `\n          <div style=\"text-align:center;background:var(--primary-very-low,#f5f5f5);padding:25px;border-radius:10px;margin-bottom:20px;\">\n            <div style=\"font-size:50px;margin-bottom:10px;\">✓</div>\n            <p style=\"font-weight:600;font-size:18px;margin:10px 0;color:#4CAF50;\">Wallet Connected</p>\n            <p style=\"font-family:monospace;font-size:14px;background:var(--secondary,#fff);padding:10px;border-radius:6px;margin:10px 0;\">${wallet.address.slice(0,12)}...${wallet.address.slice(-10)}</p>\n          </div>\n          <div style=\"display:flex;gap:12px;justify-content:center;margin-bottom:20px;\">\n            <button id=\"check-btn\" class=\"btn btn-default\">Check Staking</button>\n            <button id=\"disconnect-btn\" class=\"btn btn-danger\">Disconnect</button>\n          </div>\n          <div id=\"stake-result\"></div>\n        ` : `\n          <div style=\"text-align:center;background:var(--primary-very-low,#f5f5f5);padding:25px;border-radius:10px;margin-bottom:20px;\">\n            <div style=\"font-size:50px;margin-bottom:10px;\">⚠️</div>\n            <p style=\"font-size:18px;margin:10px 0;font-weight:600;color:#f57c00;\">Wallet Required</p>\n            <p style=\"font-size:14px;color:var(--primary-medium,#666);margin:10px 0;\">You need to connect your StarKey wallet and have at least <strong>${MINIMUM_STAKE.toLocaleString()} SUPRA staked</strong> to create topics and reply on this forum.</p>\n          </div>\n          <button id=\"connect-btn\" class=\"btn btn-primary\" style=\"width:100%;padding:14px;font-size:16px;\">Connect StarKey Wallet</button>\n        `}\n      </div>\n    `;\n    \n    document.body.appendChild(modal);\n    \n    const style = document.createElement('style');\n    style.textContent = `\n      @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }\n      @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }\n    `;\n    document.head.appendChild(style);\n    \n    document.getElementById('modal-close').onclick = () => document.body.removeChild(modal);\n    modal.onclick = (e) => { if(e.target === modal) document.body.removeChild(modal); };\n    \n    if (!wallet) {\n      document.getElementById('connect-btn').onclick = async () => {\n        const btn = document.getElementById('connect-btn');\n        btn.disabled = true;\n        btn.textContent = 'Connecting...';\n        \n        try {\n          if (!window.starkey?.supra) {\n            alert('⚠️ StarKey wallet not found!\\n\\nPlease install from https://starkey.app/');\n            btn.disabled = false;\n            btn.textContent = 'Connect StarKey Wallet';\n            return;\n          }\n          \n          const accounts = await window.starkey.supra.connect({chainId: CHAIN_ID});\n          if (!accounts || accounts.length === 0) throw new Error('No accounts');\n          \n          const msg = 'Connect to Supra Forum ' + Date.now();\n          const msgHex = '0x' + Array.from(new TextEncoder().encode(msg)).map(b => b.toString(16).padStart(2,'0')).join('');\n          const sig = await window.starkey.supra.signMessage({message: msgHex});\n          \n          localStorage.setItem('supra_wallet', JSON.stringify({\n            address: sig.address,\n            publicKey: sig.publicKey,\n            connectedAt: Date.now()\n          }));\n          \n          alert('✅ Wallet connected successfully!');\n          document.body.removeChild(modal);\n          location.reload();\n        } catch(e) {\n          alert('❌ Connection failed: ' + e.message);\n          btn.disabled = false;\n          btn.textContent = 'Connect StarKey Wallet';\n        }\n      };\n    } else {\n      document.getElementById('check-btn').onclick = async () => {\n        const btn = document.getElementById('check-btn');\n        const result = document.getElementById('stake-result');\n        btn.disabled = true;\n        btn.textContent = 'Checking...';\n        \n        try {\n          const res = await fetch(API_URL, {\n            method: 'POST',\n            headers: {'Content-Type': 'application/json'},\n            body: JSON.stringify({\n              function: `${POOL}::ValidatorPoolManager::get_delegators_total_stake`,\n              type_arguments: [],\n              arguments: [[wallet.address], POOL]\n            })\n          });\n          \n          const data = await res.json();\n          const staked = parseInt(data.result[0]) / 1000000;\n          const canCreate = staked >= MINIMUM_STAKE;\n          \n          result.innerHTML = `\n            <div style=\"background:var(--primary-very-low,#f9f9f9);border:1px solid var(--primary-low,#ddd);border-radius:10px;padding:20px;margin-top:15px;\">\n              <h4 style=\"margin:0 0 15px;font-size:18px;\">Staking Status</h4>\n              <div style=\"display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--primary-low,#e0e0e0);\">\n                <span>Staked Amount:</span>\n                <strong style=\"font-size:18px;\">${staked.toFixed(2)} SUPRA</strong>\n              </div>\n              <div style=\"display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--primary-low,#e0e0e0);\">\n                <span>Required:</span>\n                <strong style=\"font-size:18px;\">${MINIMUM_STAKE.toLocaleString()} SUPRA</strong>\n              </div>\n              <div style=\"margin-top:15px;padding:14px;border-radius:8px;text-align:center;font-weight:600;font-size:16px;background:${canCreate?'#e8f5e9':'#ffebee'};color:${canCreate?'#2e7d32':'#c62828'};\">\n                ${canCreate ? '✓ You can create topics and reply' : '✗ Insufficient staking to create topics and reply'}\n              </div>\n            </div>\n          `;\n        } catch(e) {\n          alert('❌ Error checking balance: ' + e.message);\n        }\n        \n        btn.disabled = false;\n        btn.textContent = 'Check Staking';\n      };\n      \n      document.getElementById('disconnect-btn').onclick = () => {\n        if(confirm('Are you sure you want to disconnect your wallet?')) {\n          localStorage.removeItem('supra_wallet');\n          sessionStorage.removeItem('supra_wallet_prompted');\n          alert('👋 Wallet disconnected');\n          document.body.removeChild(modal);\n          location.reload();\n        }\n      };\n    }\n  }\n\n  // Check stake for both topic creation AND replies\n  async function checkStakeForPosting(actionType) {\n    if (canBypassStaking()) {\n      console.log('✅ Bypassing stake check for privileged user');\n      return true;\n    }\n    \n    if (isCheckingStake) return true;\n    \n    const wallet = localStorage.getItem('supra_wallet');\n    if (!wallet) {\n      const action = actionType === 'reply' ? 'reply to topics' : 'create topics';\n      alert(`⚠️ Wallet Required\\n\\nYou must connect your StarKey wallet to ${action}.\\n\\nClick the wallet icon in the header to connect.`);\n      return false;\n    }\n    \n    isCheckingStake = true;\n    const w = JSON.parse(wallet);\n    \n    try {\n      const res = await fetch(API_URL, {\n        method: 'POST',\n        headers: {'Content-Type': 'application/json'},\n        body: JSON.stringify({\n          function: `${POOL}::ValidatorPoolManager::get_delegators_total_stake`,\n          type_arguments: [],\n          arguments: [[w.address], POOL]\n        })\n      });\n      \n      const data = await res.json();\n      const staked = parseInt(data.result[0]) / 1000000;\n      \n      if (staked < MINIMUM_STAKE) {\n        const action = actionType === 'reply' ? 'reply to topics' : 'create topics';\n        alert(`⚠️ Insufficient Staking\\n\\nYou need at least ${MINIMUM_STAKE.toLocaleString()} SUPRA staked to ${action}.\\n\\nYou currently have ${staked.toFixed(2)} SUPRA staked.`);\n        isCheckingStake = false;\n        return false;\n      }\n      \n      isCheckingStake = false;\n      return true;\n    } catch(err) {\n      alert('❌ Error checking your staking balance.\\n\\nPlease try again.');\n      isCheckingStake = false;\n      return false;\n    }\n  }\n\n  // Block both topic creation AND replies\n  function blockTopicCreationAndReplies() {\n    // Block \"New Topic\" button\n    document.addEventListener('click', async function(e) {\n      const btn = e.target.closest('#create-topic, .btn-primary.create, [data-ember-action*=\"createTopic\"]');\n      if (!btn) return;\n      \n      const canCreate = await checkStakeForPosting('topic');\n      if (!canCreate) {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        e.stopPropagation();\n        return false;\n      }\n    }, true);\n    \n    // Block \"Reply\" button\n    document.addEventListener('click', async function(e) {\n      const replyBtn = e.target.closest('.reply, [data-ember-action*=\"replyToPost\"], .post-controls .create');\n      if (!replyBtn) return;\n      \n      const canReply = await checkStakeForPosting('reply');\n      if (!canReply) {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        e.stopPropagation();\n        return false;\n      }\n    }, true);\n    \n    // Block form submissions (both topics and replies)\n    document.addEventListener('submit', async function(e) {\n      const form = e.target;\n      if (form.querySelector('#reply-title') || form.closest('.d-editor-container')) {\n        // Determine if it's a topic or reply\n        const isNewTopic = !!form.querySelector('#reply-title');\n        const actionType = isNewTopic ? 'topic' : 'reply';\n        \n        const canPost = await checkStakeForPosting(actionType);\n        if (!canPost) {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          e.stopPropagation();\n          return false;\n        }\n      }\n    }, true);\n    \n    // Block \"Create Topic\" and \"Reply\" submit buttons\n    setInterval(() => {\n      // Block topic creation button\n      const submitBtn = document.querySelector('.btn.btn-primary.create, button.create');\n      if (submitBtn && !submitBtn.dataset.supraGated) {\n        submitBtn.dataset.supraGated = 'true';\n        submitBtn.addEventListener('click', async function(e) {\n          const isReply = !!document.querySelector('.reply-to-tab');\n          const actionType = isReply ? 'reply' : 'topic';\n          const canPost = await checkStakeForPosting(actionType);\n          if (!canPost) {\n            e.preventDefault();\n            e.stopImmediatePropagation();\n            e.stopPropagation();\n            return false;\n          }\n        }, true);\n      }\n      \n      // Block reply buttons in composer\n      const replyButtons = document.querySelectorAll('.save-or-cancel .create:not([data-supra-gated])');\n      replyButtons.forEach(btn => {\n        btn.dataset.supraGated = 'true';\n        btn.addEventListener('click', async function(e) {\n          const canReply = await checkStakeForPosting('reply');\n          if (!canReply) {\n            e.preventDefault();\n            e.stopImmediatePropagation();\n            e.stopPropagation();\n            return false;\n          }\n        }, true);\n      });\n    }, 500);\n  }\n\n  function init() {\n    addWalletButton();\n    blockTopicCreationAndReplies(); // Updated function name\n    \n    setTimeout(() => autoPromptWallet(), 1000);\n    setTimeout(() => autoPromptWallet(), 2000);\n    setTimeout(() => autoPromptWallet(), 3000);\n    \n    console.log('✅ Supra Token Gate initialized (Topics + Replies)');\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n  \n  setInterval(addWalletButton, 2000);\n})();\n"],"mappings":"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","ignoreList":[]}