PageSourceSearch

https://tipf.ai/_next/static/chunks/app/layout-c0e618067056263f.js

js tipf.ai collected 2026-10-05 14:05:05 UTC 55,311 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3185],{37715:function(e,t,n){var r={"./en.json":[759],"./zh-Hant.json":[41303,1303]};function o(e){if(!n.o(r,e))return Promise.resolve().then(function(){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=r[e],o=t[0];return Promise.all(t.slice(1).map(n.e)).then(function(){return n.t(o,19)})}o.keys=function(){return Object.keys(r)},o.id=37715,e.exports=o},46601:function(){},44793:function(e,t,n){Promise.resolve().then(n.bind(n,92125))},92125:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return eu}});var r=n(57437),o=n(2265),a=n(13816),l=n(30645),i=n(44156),s=n(88702),d=n(27648),c=n(99376),u=n(42586),m=n(15408),f=n(72941),g=n(80017);function h(){let{connection:e}=(0,a.R)(),{publicKey:t}=(0,m.O)(),[n,l]=(0,o.useState)(0),[i,s]=(0,o.useState)(0);if((0,o.useEffect)(()=>{if(!t){l(0),s(0);return}let n=!1;async function r(){let[r,o]=await Promise.all([e.getBalance(t),e.getAccountInfo((0,g.Ww)(t))]);n||(l(r),o&&o.data.length>=72?s(Number(new DataView(o.data.buffer,o.data.byteOffset,o.data.byteLength).getBigUint64(64,!0))):s(0))}r();let o=setInterval(r,1e4);return()=>{n=!0,clearInterval(o)}},[e,t]),!t)return null;let d=(n/1e9).toFixed(2),c=i/1e9,u=c>=1e3?Math.floor(c).toLocaleString():c.toFixed(2);return(0,r.jsxs)("div",{className:"hidden sm:flex items-center gap-3 mr-2 text-xs font-medium",children:[(0,r.jsxs)("span",{style:{color:"var(--text-secondary)"},children:[(0,r.jsx)("span",{style:{color:"var(--text-primary)"},children:d})," SOL"]}),(0,r.jsxs)("span",{style:{color:"var(--text-secondary)"},children:[(0,r.jsx)("span",{className:"glow-text",style:{fontSize:"0.75rem"},children:u})," TIPF"]})]})}function p(){var e;let{publicKey:t,wallet:n,disconnect:a}=(0,m.O)(),{setVisible:l}=(0,f.h)(),i=(0,u.useTranslations)("common"),[s,d]=(0,o.useState)(!1),[c,g]=(0,o.useState)(!1),[p,y]=(0,o.useState)(!1),b=(0,o.useRef)(null);(0,o.useEffect)(()=>{y(!0)},[]),(0,o.useEffect)(()=>{function e(e){b.current&&!b.current.contains(e.target)&&d(!1)}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let v={background:"linear-gradient(135deg, var(--primary), var(--secondary))",color:"#fff",fontWeight:600,fontSize:"14px",height:"36px",borderRadius:"8px",padding:"0 16px",boxShadow:"0 0 20px var(--glow)",fontFamily:"'Exo 2', sans-serif",border:"none",cursor:"pointer",whiteSpace:"nowrap"};return t?(0,r.jsxs)("div",{className:"flex items-center",ref:b,children:[(0,r.jsx)(h,{}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("button",{style:v,onClick:()=>d(e=>!e),children:[p&&(null==n?void 0:n.adapter.icon)&&(0,r.jsx)("img",{src:n.adapter.icon,alt:"",width:16,height:16,style:{display:"inline",marginRight:6,verticalAlign:"middle"}}
1),(e=t.toBase58()).slice(0,4)+".."+e.slice(-4)]}),s&&(0,r.jsx)("div",{className:"absolute right-0 mt-2 w-44 rounded-xl overflow-hidden z-50",style:{background:"var(--bg-card)",border:"1px solid var(--border)",boxShadow:"0 8px 32px rgba(0,0,0,0.3)"},children:[{label:c?"✓":i("copyAddress"),action:function(){t&&(navigator.clipboard.writeText(t.toBase58()),g(!0),setTimeout(()=>g(!1),1500),d(!1))}},{label:i("changeWallet"),action:function(){d(!1),l(!0)}},{label:i("disconnect"),action:function(){a(),d(!1)}}].map(e=>{let{label:t,action:n}=e;return(0,r.jsx)("button",{onClick:n,className:"w-full text-left px-4 py-3 text-sm transition-colors",style:{color:"var(--text-primary)",background:"transparent"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-card-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:t},t)})})]})]}):(0,r.jsx)("div",{className:"flex items-center",children:(0,r.jsxs)("button",{style:v,onClick:()=>l(!0),children:[p&&(null==n?void 0:n.adapter.icon)&&(0,r.jsx)("img",{src:n.adapter.icon,alt:"",width:16,height:16,style:{display:"inline",marginRight:6,verticalAlign:"middle"}}),i("connectWallet")]})})}n(42060);let y=["en","zh-Hant"],b="locale";var v=n(759);let k=(0,o.createContext)({locale:"en",setLocale:()=>{}});function x(){return(0,o.useContext)(k)}function w(e){let{children:t}=e,[a,l]=(0,o.useState)("en"),[i,s]=(0,o.useState)(v);(0,o.useEffect)(()=>{let e=function(){let e=localStorage.getItem(b);return e&&y.includes(e)?e:"en"}();"en"!==e&&(l(e),n(37715)("./".concat(e,".json")).then(e=>{s(e.default)}))},[]),(0,o.useEffect)(()=>{document.documentElement.lang=a},[a]);let d=(0,o.useCallback)(e=>{localStorage.setItem(b,e),l(e),"en"===e?s(v):n(37715)("./".concat(e,".json")).then(e=>{s(e.default)})},[]);return(0,r.jsx)(k.Provider,{value:{locale:a,setLocale:d},children:(0,r.jsx)(u.NextIntlClientProvider,{locale:a,messages:i,timeZone:"UTC",children:t})})}let S={en:"EN","zh-Hant":"繁"};function P(){var e;let{locale:t,setLocale:n}=x(),o=null!==(e=y.find(e=>e!==t))&&void 0!==e?e:y[0];return(0,r.jsx)("button",{onClick:()=>n(o),className:"px-2 py-1 rounded-md text-xs font-medium transition-all",style:{border:"1px solid var(--border)",color:"var(--text-secondary)"},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--primary)",e.currentTarget.style.color="var(--primary)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.color="var(--text-secondary)"},"aria-label":"Switch language to ".concat(S[o]),children:S[t]})}let T=[{href:"https://x.com/TIPF_AI",label:"X (Twitter)",icon:(0,r.jsx)("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})})},{href:"https://t.me/TIPFDAO",label:"Telegram",icon:(0,r.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.473-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"})})},{href:"https://tipf-1.gitbook.io/tipf-docs",label:"Docs",icon:(0,r.jsxs)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M4 4.5A2.5 2.5 0 0 1 6.5 2H20v18H6.5a2.5 2.5 0 0 0 0 5H20"}),(0,r.jsx)("path",{d:"M4 4.5v15A2.5 2.5 0 0 0 6.5 22"})]})}];function j(e){let{className:t=""}=e;return(0,r.jsx)("div",{className:"items-center gap-1 shrink-0 ".concat(t),children:T.map(e=>{let{href:t,label:n,icon:o}=e;return(0,r.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer","aria-label":n,title:n,className:"flex items-center justify-center w-8 h-8 rounded-md transition-all duration-200",style:{background:"var(--bg-input)",border:"1px solid var(--border)",color:"var(--text-primary)"},children:o},t)})})}let R=["cyberpunk","gothic"],C=[{id:"cyberpunk",label:"赛博朋克",labelEn:"Cyberpunk",icon:"⚡",preview:"#00D4FF"},{id:"gothic",label:"哥特",labelEn:"Gothic",icon:"\uD83E\uDD87",preview:"#8b0000"}],A="tipf-theme",B="tipf-mode",N=(0,o.createContext)({theme:"cyberpunk",setTheme:()=>{},mode:"dark",toggleMode:()=>{}});function L(){return(0,o.useContext)(N)}function M(e){let{children:t}=e,[n,a]=(0,o.useState)("cyberpunk"),[l,i]=(0,o.useState)("dark");(0,o.useEffect)(()=>{var e;let t=localStorage.getItem(A),n=localStorage.getItem(B),r=(e=t)&&R.includes(e)?e:"cyberpunk",o=n&&("dark"===n||"light"===n)?n:"dark";a(r),i(o),document.documentElement.setAttribute("data-theme",r),document.documentElement.setAttribute("data-mode",o),t!==r&&localStorage.setItem(A,r),n!==o&&localStorage.setItem(B,o)},[]);let s=(0,o.useCallback)(e=>{a(e),localStorage.setItem(A,e),document.documentElement.setAttribute("data-theme",e)},[]),d=(0,o.useCallback)(()=>{i(e=>{let t="dark"===e?"light":"dark";return localStorage.setItem(B,t),document.documentElement.setAttribute("data-mode",t),t})},[]);return(0,r.jsx)(N.Provider,{value:{theme:n,setTheme:s,mode:l,toggleMode:d},children:t})}let I=[{href:"/mine",key:"mine"}
1,{href:"/chat",key:"chat",mobileOnly:!0},{href:"/stake",key:"stake"},{href:"/trade",key:"trade"},{href:"/explore",key:"explore"},{href:"/node",key:"node"},{href:"/guild",key:"guild"},{href:"/event",key:"events"},{href:"/about",key:"about"},{href:"/leaderboard",key:"rank"}];function E(){let{mode:e,toggleMode:t}=L();return(0,r.jsx)("button",{onClick:t,className:"flex items-center justify-center w-8 h-8 rounded-md transition-all duration-200 shrink-0",style:{background:"var(--bg-input)",border:"1px solid var(--border)",color:"var(--text-primary)"},"aria-label":"dark"===e?"Switch to light mode":"Switch to dark mode",children:"dark"===e?(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})}function W(){var e;let{theme:t,setTheme:n}=L(),[a,l]=(0,o.useState)(!1),i=(0,o.useRef)(null);(0,o.useEffect)(()=>{function e(e){i.current&&!i.current.contains(e.target)&&l(!1)}return a&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[a]);let s=null!==(e=C.find(e=>e.id===t))&&void 0!==e?e:C[0];return(0,r.jsxs)("div",{ref:i,className:"relative",children:[(0,r.jsxs)("button",{onClick:()=>l(e=>!e),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-sm font-medium transition-all duration-200 shrink-0",style:{background:"var(--bg-input)",border:"1px solid var(--border)",color:"var(--text-primary)"},"aria-label":"Switch theme","aria-expanded":a,children:[(0,r.jsx)("span",{className:"w-3 h-3 rounded-full shrink-0",style:{background:s.preview}}),(0,r.jsx)("span",{className:"hidden xs:inline",children:s.labelEn}),(0,r.jsx)("svg",{className:"w-3 h-3 transition-transform duration-200",style:{transform:a?"rotate(180deg)":"none"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})]}),a&&(0,r.jsx)("div",{className:"absolute right-0 top-full mt-2 py-1 min-w-[160px] z-50 backdrop-blur-xl overflow-y-auto scrollbar-hide",style:{background:"var(--bg-card)",border:"1px solid var(--border-glow)",boxShadow:"var(--shadow-glow)",borderRadius:"var(--radius-md)",maxHeight:"min(70vh, 480px)"},children:C.map(e=>(0,r.jsxs)("button",{onClick:()=>{n(e.id),l(!1)},className:"w-full flex items-center gap-2.5 px-3 py-2 text-sm transition-colors duration-150 text-left",style:{color:e.id===t?"var(--primary)":"var(--text-secondary)",background:e.id===t?"var(--bg-card-hover)":"transparent"},onMouseEnter:n=>{e.id!==t&&(n.currentTarget.style.background="var(--bg-card-hover)")},onMouseLeave:n=>{e.id!==t&&(n.currentTarget.style.background="transparent")},children:[(0,r.jsx)("span",{className:"w-3 h-3 rounded-full shrink-0",style:{background:e.preview,boxShadow:e.id===t?"0 0 8px ".concat(e.preview):"none"}}),(0,r.jsx)("span",{children:e.labelEn}),(0,r.jsx)("span",{className:"ml-auto opacity-50 text-xs",children:e.label})]},e.id))})]})}function F(){let e=(0,c.usePathname)(),t=(0,u.useTranslations)("nav");return(0,r.jsx)("nav",{className:"fixed top-0 left-0 right-0 z-50 backdrop-blur-xl",style:{background:"var(--nav-bg)",borderBottom:"1px solid var(--border)"},children:(0,r.jsxs)("div",{className:"mx-auto max-w-7xl px-4 flex items-center justify-between h-14",children:[(0,r.jsxs)("div",{className:"flex items-center gap-6",children:[(0,r.jsx)(d.default,{href:"/mine",className:"font-display font-extrabold text-lg tracking-wider shrink-0 glow-text",children:"TIPF"}),(0,r.jsx)("div",{className:"hidden sm:flex items-center gap-1",children:I.filter(e=>!e.mobileOnly).map(n=>{let{href:o,key:a}=n,l=e===o||e.startsWith(o+"/");return(0,r.jsxs)(d.default,{href:o,className:"relative px-3 py-1.5 rounded-md text-sm font-display font-medium transition-colors",style:{color:l?"var(--primary)":"var(--text-secondary)",background:l?"var(--bg-card)":"transparent"},children:[t(a),l&&(0,r.jsx)("span",{className:"absolute bottom-0 left-1/2 -translate-x-1/2 w-4/5 h-[2px] rounded-full",style:{background:"var(--primary)",boxShadow:"0 0 8px var(--glow)"}})]},o)})})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(j,{className:"hidden sm:flex"}),(0,r.jsx)(P,{}),(0,r.jsx)(E,{}),(0,r.jsx)(W,{}),(0,r.jsx)(p,{})]})]})})}let O=[{href:"/mine",key:"mine"}
1,{href:"/chat",key:"chat"},{href:"/stake",key:"stake"},{href:"/node",key:"node"}],D=[{href:"/trade",key:"trade"},{href:"/explore",key:"explore"},{href:"/guild",key:"guild"},{href:"/about",key:"about"},{href:"/leaderboard",key:"rank"}];function _(e){let{name:t,active:n}=e,o=n?"var(--primary)":"var(--text-muted)";switch(t){case"mine":return(0,r.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M14 10l-1.5 1.5M16.5 7.5L14 10M10 14l-7 7M12.5 6.5l5 5M5.5 13.5l5 5M2 22l4-4"}),(0,r.jsx)("path",{d:"M19.5 4.5l-3 3"}),(0,r.jsx)("circle",{cx:"19.5",cy:"4.5",r:"2.5"})]});case"chat":return(0,r.jsx)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})});case"stake":return(0,r.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),(0,r.jsx)("path",{d:"M2 17l10 5 10-5"}),(0,r.jsx)("path",{d:"M2 12l10 5 10-5"})]});case"node":return(0,r.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"2",y:"2",width:"20",height:"8",rx:"2"}),(0,r.jsx)("rect",{x:"2",y:"14",width:"20",height:"8",rx:"2"}),(0,r.jsx)("circle",{cx:"6",cy:"6",r:"1",fill:o}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"1",fill:o})]});default:return(0,r.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("circle",{cx:"5",cy:"5",r:"2"}),(0,r.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,r.jsx)("circle",{cx:"19",cy:"5",r:"2"}),(0,r.jsx)("circle",{cx:"5",cy:"12",r:"2"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"2"}),(0,r.jsx)("circle",{cx:"19",cy:"12",r:"2"})]})}}function H(){let e=(0,c.usePathname)(),t=(0,u.useTranslations)("nav"),[n,a]=(0,o.useState)(!1),l=(0,o.useRef)(null);(0,o.useEffect)(()=>{function e(e){l.current&&!l.current.contains(e.target)&&a(!1)}return n&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[n]);let i=D.some(t=>e===t.href||e.startsWith(t.href+"/"));return(0,r.jsx)("nav",{className:"fixed bottom-0 left-0 right-0 z-50 sm:hidden backdrop-blur-xl",style:{background:"var(--nav-bg)",borderTop:"1px solid var(--border)"},children:(0,r.jsxs)("div",{className:"flex items-center justify-around h-14 px-2",children:[O.map(n=>{let{href:o,key:a}=n,l=e===o||e.startsWith(o+"/");return(0,r.jsxs)(d.default,{href:o,className:"flex flex-col items-center justify-center gap-0.5 flex-1 py-1",children:[(0,r.jsx)(_,{name:a,active:l}),(0,r.jsx)("span",{className:"text-[10px] font-display font-medium",style:{color:l?"var(--primary)":"var(--text-muted)"},children:t(a)})]},o)}),(0,r.jsxs)("div",{ref:l,className:"relative flex flex-col items-center justify-center gap-0.5 flex-1 py-1",children:[(0,r.jsxs)("button",{onClick:()=>a(e=>!e),className:"flex flex-col items-center gap-0.5",children:[(0,r.jsx)(_,{name:"more",active:i}),(0,r.jsx)("span",{className:"text-[10px] font-display font-medium",style:{color:i?"var(--primary)":"var(--text-muted)"},children:t("more")})]}),n&&(0,r.jsxs)("div",{className:"absolute bottom-full mb-2 right-0 py-1 min-w-[120px] backdrop-blur-xl",style:{background:"var(--bg-card)",border:"1px solid var(--border-glow)",boxShadow:"var(--shadow-glow)",borderRadius:"var(--radius-md)"},children:[D.map(n=>{let{href:o,key:l}=n,i=e===o||e.startsWith(o+"/");return(0,r.jsx)(d.default,{href:o,onClick:()=>a(!1),className:"block px-3 py-2 text-sm font-display transition-colors",style:{color:i?"var(--primary)":"var(--text-secondary)",background:i?"var(--bg-card-hover)":"transparent"},children:t(l)},o)}),(0,r.jsx)("div",{className:"my-1 mx-3 h-px",style:{background:"var(--border)"}}),(0,r.jsx)("div",{className:"flex items-center justify-around px-3 py-2",children:T.map(e=>{let{href:t,label:n,icon:o}=e;return(0,r.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer","aria-label":n,title:n,onClick:()=>a(!1),className:"flex items-center justify-center w-8 h-8 rounded-md transition-all",style:{background:"var(--bg-input)",border:"1px solid var(--border)",color:"var(--text-primary)"},children:o},t)})})]})]})]})})}var G=n(17200);let V=async e=>{let t=await fetch(e);return(await t.json()).data},z="tipf_dismissed_announcements",K="tipf_seen_announcement_modals";function U(e){try{let t=localStorage.getItem(e);return t?new Set(JSON.parse(t)):new Set}catch(e){return new Set}}function J(e,t){localStorage.setItem(e,JSON.stringify([...t]))}let Y={info:{bg:"rgba(59,130,246,0.12)",border:"var(--primary)"},warning:{bg:"rgba(234,179,8,0.12)",border:"#eab308"},success:{bg:"rgba(0,255,136,0.08)",border:"var(--accent-green)"}};function Q(e){var t;let{item:n,onDismiss:o,onOpenDetail:a}=e,{locale:l}=x(),i=(0,u.useTranslations)("announcement"),s="zh-Hant"===l?n.titleZhHant:n.titleEn,d="zh-Hant"===l?n.contentZhHant:n.contentEn,c=null!==(t=Y[n.type])&&void 0!==t?t:Y.info;return(0,r.jsx)("div",{style:{background:c.bg,borderBottom:"1px solid ".concat(c.border),padding:"8px 16px"},children:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",maxWidth:1200,margin:"0 auto"},children:[(0,r.jsx)("span",{style:{flex:1,fontWeight:600,fontSize:"14px",color:"var(--text-primary)"},children:s}),d&&(0,r.jsx)("button",{onClick:()=>
1a(n),style:{background:"none",border:"none",color:c.border,cursor:"pointer",fontSize:"12px",whiteSpace:"nowrap"},children:i("readMore")}),(0,r.jsx)("button",{onClick:()=>o(n.id),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:"16px",lineHeight:1,padding:"0 4px"},"aria-label":i("close"),children:"\xd7"})]})})}function Z(e){var t;let{item:n,onClose:o}=e,{locale:a}=x(),l=(0,u.useTranslations)("announcement"),i="zh-Hant"===a?n.titleZhHant:n.titleEn,s="zh-Hant"===a?n.contentZhHant:n.contentEn,d=null!==(t=Y[n.type])&&void 0!==t?t:Y.info;return(0,r.jsx)("div",{className:"fixed inset-0 flex items-center justify-center z-50 p-4",style:{background:"var(--modal-overlay)",backdropFilter:"blur(8px)"},onClick:o,children:(0,r.jsxs)("div",{className:"glow-border rounded-2xl w-full max-w-lg sm:max-w-2xl max-h-[80vh] flex flex-col",style:{background:"var(--bg-card)"},onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"p-6 overflow-y-auto flex-1",style:{overflowX:"hidden"},children:[(0,r.jsx)("div",{style:{borderLeft:"3px solid ".concat(d.border),paddingLeft:"12px",marginBottom:"16px"},children:(0,r.jsx)("h2",{style:{fontSize:"18px",fontWeight:700,color:"var(--text-primary)",margin:0},children:i})}),s&&(0,r.jsx)("div",{style:{fontSize:"14px",color:"var(--text-secondary)",lineHeight:1.6,wordBreak:"break-word"},dangerouslySetInnerHTML:{__html:s}})]}),(0,r.jsx)("div",{className:"px-6 pb-6 pt-4 flex-shrink-0",style:{borderTop:"1px solid var(--border)"},children:(0,r.jsx)("button",{onClick:o,className:"w-full py-2.5 rounded-xl font-semibold text-sm transition-all duration-300",style:{background:"linear-gradient(135deg, var(--accent-purple), #6d28d9)",color:"#fff",border:"none",cursor:"pointer"},children:l("gotIt")})})]})})}function X(){let{data:e}=function(){let e="https://api.tipf.ai",{data:t,error:n,isLoading:r}=(0,G.ZP)(e?"".concat(e,"/api/announcement"):null,V,{refreshInterval:6e4});return{data:null!=t?t:[],error:n,isLoading:r}}(),[t,n]=(0,o.useState)(new Set),[a,l]=(0,o.useState)(new Set),[i,s]=(0,o.useState)(null);(0,o.useEffect)(()=>{n(U(z)),l(U(K))},[]);let d=(0,o.useCallback)(e=>{n(t=>{let n=new Set(t);return n.add(e),J(z,n),n})},[]),c=(0,o.useCallback)(e=>{l(t=>{let n=new Set(t);return n.add(e),J(K,n),n}),s(null)},[]),u=(0,o.useCallback)(e=>{s(e),l(t=>{if(t.has(e.id))return t;let n=new Set(t);return n.add(e.id),J(K,n),n})},[]),m=e.filter(e=>!t.has(e.id)),f=e.find(e=>!t.has(e.id)&&!a.has(e.id)),g=null!=i?i:f;return(0,r.jsxs)(r.Fragment,{children:[g&&(0,r.jsx)(Z,{item:g,onClose:()=>c(g.id)}),m.length>0&&(0,r.jsx)("div",{style:{position:"fixed",top:56,left:0,right:0,zIndex:40},children:m.map(e=>(0,r.jsx)(Q,{item:e,onDismiss:d,onOpenDetail:u},e.id))})]})}var q=n(59147),$=n.n(q),ee=n(79435);let et="tipf_logged_wallet";function en(){localStorage.removeItem("AccessToken"),localStorage.removeItem(et),localStorage.removeItem("parent_invitation_code"),window.dispatchEvent(new Event("storage"))}var er=n(49079);function eo(){return!function(){let{publicKey:e,signMessage:t,connected:n}=(0,m.O)(),r=(0,o.useRef)(null),a=(0,o.useRef)(null),l=(0,o.useRef)(0);(0,o.useEffect)(()=>{!function(){let e=new URLSearchParams(window.location.search).get("referral");e&&localStorage.setItem("referral",e)}()},[]);let i=(0,o.useCallback)(async(e,t,n)=>
1{var o,s,d,c;try{let a="".concat(window.location.hostname," wants you to sign in with your Solana account"),i=new TextEncoder().encode(a),c=await t(i),u=$().encode(c),m=localStorage.getItem("referral")||void 0,f=await fetch("".concat(n,"/api/user/login"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({wallet:e,message:a,signature:u,chain_type:"SOL",...m?{referral:m}:{}})});if(!f.ok){r.current=null;return}let g=await f.json(),h=null===(o=g.data)||void 0===o?void 0:o.token;if(h){localStorage.setItem("AccessToken",h),localStorage.setItem(et,e),m&&localStorage.removeItem("referral");let t=null===(d=g.data)||void 0===d?void 0:null===(s=d.user)||void 0===s?void 0:s.invitation_code;t&&localStorage.setItem("parent_invitation_code",t);let n="https://api.tipf.ai";n&&(0,ee.j)("".concat(n,"/api/referral/invitation-status")),window.dispatchEvent(new Event("storage"))}r.current=null,l.current=0}catch(s){r.current=null;let o=null!==(c=null==s?void 0:s.message)&&void 0!==c?c:"";if(/reject|denied|cancel|user refused/i.test(o)||(null==s?void 0:s.code)===4001){l.current=999;return}l.current+=1,l.current<=3&&(a.current=setTimeout(()=>{a.current=null,localStorage.getItem(et)===e&&localStorage.getItem("AccessToken")||i(e,t,n)},1e3*l.current))}},[]);(0,o.useEffect)(()=>{if(!n||!e||!t){!n&&localStorage.getItem(et)&&(en(),r.current=null,l.current=0);return}let o="https://api.tipf.ai";if(!o)return;let s=e.toBase58(),d=localStorage.getItem(et);if(d&&d!==s&&(en(),r.current=null,l.current=0),localStorage.getItem(et)===s&&localStorage.getItem("AccessToken")){localStorage.getItem("referral")&&fetch("".concat(o,"/api/user/info"),{headers:{Authorization:"Bearer ".concat(localStorage.getItem("AccessToken"))}}).then(e=>e.json()).then(e=>{var t;if(401===e.code||403===e.code){localStorage.removeItem("referral");return}(null===(t=e.data)||void 0===t?void 0:t.parent_id)?localStorage.removeItem("referral"):en()}).catch(()=>{});return}if(r.current===s)return;r.current=s;let c=setTimeout(()=>{i(s,t,o)},500);return()=>{clearTimeout(c),r.current=null,a.current&&(clearTimeout(a.current),a.current=null)}},[n,e,t,i])}(),(0,er.D)(),null}var ea=n(25566);let el=new Set(["CN"]),ei="tipf_geo_check";function es(e){let{children:t}=e,[n,a]=(0,o.useState)(!1),[l,i]=(0,o.useState)(!1);return((0,o.useEffect)(()=>{let e=sessionStorage.getItem(ei);if(e)try{let t=JSON.parse(e);if(Date.now()-t.ts<36e5){a(el.has(t.country)),i(!0);return}}catch(e){}let t=new AbortController,n=ea.env.NEXT_PUBLIC_BASE_PATH||"";return fetch("".concat(n,"/api/geo"),{signal:t.signal}).then(e=>e.json()).then(e=>{var t;let n=(null!==(t=e.country)&&void 0!==t?t:"").toUpperCase();sessionStorage.setItem(ei,JSON.stringify({country:n,ts:Date.now()})),a(el.has(n)),i(!0)}).catch(()=>{i(!0)}),()=>t.abort()},[]),l)?n?(0,r.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0b14",color:"#e2e8f0",fontFamily:"system-ui, -apple-system, sans-serif"},children:(0,r.jsxs)("div",{style:{maxWidth:480,textAlign:"center",padding:"48px 32px",borderRadius:16,border:"1px solid rgba(255,255,255,0.06)",background:"rgba(255,255,255,0.03)"},children:[(0,r.jsx)("div",{style:{fontSize:48,marginBottom:20},children:"⚠️"}),(0,r.jsx)("h1",{style:{fontSize:24,marginBottom:16},children:"服务不可用 / Service Unavailable"}),(0,r.jsxs)("p",{style:{fontSize:14,color:"#94a3b8",lineHeight:1.7},children:["根据相关法律法规,本服务在您所在的地区不可用。",(0,r.jsx)("br",{}),"This service is not available in your region due to regulatory requirements."]})]})}):(0,r.jsx)(r.Fragment,{children:t}):null}var ed=n(19285);n(47960),void 0===globalThis.structuredClone&&(globalThis.structuredClone=e=>JSON.parse(JSON.stringify(e)));let ec=(0,ed.k)("confirmed");function eu(e){let{children:t}=e,n=(0,o.useMemo)(()=>[new s.e],[]);return(0,r.jsx)("html",{lang:"en","data-theme":"cyberpunk",suppressHydrationWarning:!0,children:(0,r.jsx)("body",{className:"antialiased",style:{background:"var(--bg-primary)",color:"var(--text-primary)"},children:(0,r.jsx)(M,{children:(0,r.jsx)(w,{children:(0,r.jsx)(es,{children:(0,r.jsx)(a.h.Provider,{value:{connection:ec},children:(0,r.jsx)(l.n,{wallets:n,autoConnect:!0,children:(0,r.jsxs)(i.s,{children:[(0,r.jsx)(eo,{}),(0,r.jsx)(F,{}),(0,r.jsx)(X,{}),(0,r.jsx)("div",{className:"pb-14 sm:pb-0",children:t}),(0,r.jsx)(H,{})]})})})})})})})})}},49079:function(e,t,n){"use strict";n.d(t,{D:function(){return i}});var r=n(2265),o=n(17200);
1let a={registered:!1,hasInviter:!1,inviter:null,needsSolWallet:!1},l=async e=>{let t=localStorage.getItem("AccessToken");if(!t)return a;let n=await fetch(e,{headers:{Authorization:"Bearer ".concat(t)}});return n.ok?n.json():a};function i(){let e="https://api.tipf.ai",[t,n]=(0,r.useState)(()=>!!localStorage.getItem("AccessToken"));(0,r.useEffect)(()=>{function e(){n(!!localStorage.getItem("AccessToken"))}return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]);let i=e&&t?"".concat(e,"/api/referral/invitation-status"):null,{data:s,isLoading:d}=(0,o.ZP)(i,l,{revalidateOnFocus:!1});return{data:null!=s?s:a,isLoading:!!i&&d}}},19285:function(e,t,n){"use strict";n.d(t,{k:function(){return u}});var r=n(64024);let o=["429","400","too many requests","timeout","etimedout","fetch failed","econnrefused","network error"],a=new Set(["getMultipleAccountsInfo","getAccountInfo","getSlot","getTokenAccountBalance","getBalance","getProgramAccounts","getSignaturesForAddress","getTransaction","sendRawTransaction","simulateTransaction","getLatestBlockhash","getRecentBlockhash","confirmTransaction","getSignatureStatuses","getBlockHeight"]),l=new Set([]),i="https://api.tipf.ai/api/rpc";function s(e,t){return[{url:e,failCount:0,cooldownUntil:0},{url:t,failCount:0,cooldownUntil:0}]}async function d(e,t,n,a){let l;let i=new Set;for(;i.size<a.length;){let s=function(e){let t=Date.now(),n=e.find(e=>e.cooldownUntil<=t);return null!=n?n:e[0]}(a);if(i.has(s.url))break;i.add(s.url);let d=new r.Connection(s.url,n);try{let n=await d[e](...t);return s.failCount=0,s.cooldownUntil=0,n}catch(e){if(l=e,function(e){if(!(e instanceof Error))return!1;let t=e.message.toLowerCase();return o.some(e=>t.includes(e))}(e))s.failCount+=1,s.cooldownUntil=Date.now()+3e4;else throw e}}throw null!=l?l:Error("All RPC endpoints failed for ".concat(e))}let c=new Set([...a,...l]);function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"confirmed",t=(globalThis.__rpcPoolCache||(globalThis.__rpcPoolCache=new Map),globalThis.__rpcPoolCache);if(t.has(e))return t.get(e);let n=new Proxy(new r.Connection(i,e),{get(t,n){let r=t[n];return"function"!=typeof r?r:c.has(n)?function(){for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];return a.has(n)?d(n,r,e,(globalThis.__rpcProxyEndpoints||(globalThis.__rpcProxyEndpoints=s(i,i)),globalThis.__rpcProxyEndpoints)):d(n,r,e,(globalThis.__rpcTxEndpoints||(globalThis.__rpcTxEndpoints=s(i,i)),globalThis.__rpcTxEndpoints))}:r.bind(t)}});return t.set(e,n),n}},80017:function(e,t,n){"use strict";n.d(t,{AL:function(){return V},Am:function(){return E},DZ:function(){return T},E1:function(){return x},EA:function(){return h},G:function(){return K},Gk:function(){return p},IL:function(){return b},JB:function(){return Y},Jl:function(){return j},L_:function(){return F},MJ:function(){return P},N3:function(){return H},P8:function(){return C},SY:function(){return A},WP:function(){return I},Wf:function(){return m},Wo:function(){return W},Ww:function(){return M},XF:function(){return f},YQ:function(){return B},ZR:function(){return l},ay:function(){return L},c$:function(){return N},e_:function(){return y},hX:function(){return J},jL:function(){return d},l:function(){return z},mU:function(){return _},nA:function(){return S},nO:function(){return i},pl:function(){return U},s3:function(){return O},sI:function(){return D},u1:function(){return g},y:function(){return G},zW:function(){return R}});var r=n(64024),o=n(25566),a=n(82957).Buffer;let l=new r.PublicKey("3tQDvYQ4wGSw4xzaoABpbeNgZzNsEuWYmeae1JP9fiH2"),i=new r.PublicKey("HxiBhEecnj7WuQJnJWzQy6hwGZcRhf9xJs5WmESDdUu1"),s=new r.PublicKey("7WH3LHjjorqDA2e3UAAfXYDaZK61SHYNrNugrTwbQQUD"),d=new r.PublicKey("9kZWBnfUf5Uo6LMYi4JikZuWsEtLt6xer63e28XFXi7L"),c=new r.PublicKey("FJKWjRvetst8Q8T2CoSvRTxLvpk6d86rg4vYvWtrPJYX"),u=new r.PublicKey("DU8ke2aoVGN8c8Jamk4tzV5b6MExAwf238f4iiJvo4SR"),m=new r.PublicKey("9cMAsLP7Qb5zbXtnfHBHmDYQHD5CgeWWjmM68i3UtExx"),f=new r.PublicKey("9E81AkdfrUUaE5J2utTGr5cYAcQfoXq781HaVZQ1fXKC"),g=new r.PublicKey("HXPTKESFJ9JHbxrBdrWFroPxAgRhikQ9EZKzT85P6yJb"),h=new r.PublicKey("7SckFP8Qh9Twahv516tdQXV62QnztW4Mccy5DX5YVBPg"),p=new r.PublicKey("HiYHWTBnbtyQJYfw5NWLKqHij23HHc5qefab4CDVqw8w"),y=new r.PublicKey("So11111111111111111111111111111111111111112"),b=new r.PublicKey(o.env.NEXT_PUBLIC_USDT_MINT||"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),v={mining:l.toBase58(),staking:i.toBase58(),node:s.toBase58(),referral:d.toBase58(),token:c.toBase58(),entropy:u.toBase58(),orderbook:m.toBase58(),referral_rewards:f.toBase58(),event_competition:g.toBase58()},k={};for(let[e,t]of Object.entries({DVE992siVSPTHoAKU2w88kQWdVTFvrZKq57ssRP4ydv6:"mining",BkRhP2xp8HNU9rwuVsfNDfCoZaEce9K6LPHcvX1MQSDP:"staking",GZv7Z7gbgLXFEyAQ4ttaX3tnmdzP8weRBumusRiGrwHa:"node","9sdS23VjwPYrtBU1RunnpkhPRrj83usp3LSvnYoGupY4":"referral",GJMD2dSJJ8MGKrXRRiLNUxfrMn2r6ymdi3bWPpaQydp9:"token",WjD88PAu7nnAMAeMYQHsdrh
1pU1Bnnn69NHVWQC4927G:"entropy","2iaPLoiL5iiCkh4kHtSzVgqAyeWGG2VV7j1zoq8XKL9E":"orderbook"}))k[e]=v[t];for(let[e,t]of Object.entries({"3tQDvYQ4wGSw4xzaoABpbeNgZzNsEuWYmeae1JP9fiH2":"mining",HxiBhEecnj7WuQJnJWzQy6hwGZcRhf9xJs5WmESDdUu1:"staking","7WH3LHjjorqDA2e3UAAfXYDaZK61SHYNrNugrTwbQQUD":"node","9kZWBnfUf5Uo6LMYi4JikZuWsEtLt6xer63e28XFXi7L":"referral",FJKWjRvetst8Q8T2CoSvRTxLvpk6d86rg4vYvWtrPJYX:"token",DU8ke2aoVGN8c8Jamk4tzV5b6MExAwf238f4iiJvo4SR:"entropy"}))k[e]=v[t];function x(e){var t,n,r;let o=v[(null!==(r=null!==(n=e.name)&&void 0!==n?n:null===(t=e.metadata)||void 0===t?void 0:t.name)&&void 0!==r?r:"").toLowerCase()];return o&&e.address!==o?{...e,address:o}:e.address&&k[e.address]&&e.address!==k[e.address]?{...e,address:k[e.address]}:e}let w=new r.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new r.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");let S=new r.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"),P=new r.PublicKey("8ZMvT1QczrLrnt6o32s4qAZYC8bCrGV5ZwVkSPZcQdbd");function T(){return r.PublicKey.findProgramAddressSync([a.from("board")],l)[0]}function j(e){return r.PublicKey.findProgramAddressSync([a.from("round"),a.from([e])],l)[0]}function R(e,t){return r.PublicKey.findProgramAddressSync([a.from("miner"),e.toBuffer(),a.from([t])],l)[0]}function C(e){return r.PublicKey.findProgramAddressSync([a.from("settlement"),a.from([e])],l)[0]}function A(){return r.PublicKey.findProgramAddressSync([a.from("reward_pool")],l)[0]}function B(e,t){return r.PublicKey.findProgramAddressSync([a.from("auto_mine"),e.toBuffer(),a.from([t])],l)[0]}function N(e,t){return r.PublicKey.findProgramAddressSync([a.from("auto_mine_vault"),e.toBuffer(),a.from([t])],l)[0]}function L(e,t){return r.PublicKey.findProgramAddressSync([a.from("auto_mine_fee_vault"),e.toBuffer(),a.from([t])],l)[0]}function M(e){return r.PublicKey.findProgramAddressSync([e.toBuffer(),S.toBuffer(),h.toBuffer()],w)[0]}function I(){return r.PublicKey.findProgramAddressSync([a.from("staking_pool")],i)[0]}function E(e){return r.PublicKey.findProgramAddressSync([a.from("stake"),e.toBuffer()],i)[0]}function W(){return r.PublicKey.findProgramAddressSync([a.from("staking_vault")],l)[0]}function F(){return r.PublicKey.findProgramAddressSync([a.from("node_config")],s)[0]}function O(e){return r.PublicKey.findProgramAddressSync([a.from("node"),e.toBuffer()],s)[0]}function D(){return r.PublicKey.findProgramAddressSync([a.from("node_treasury_authority")],s)[0]}function _(e){return r.PublicKey.findProgramAddressSync([a.from("referral"),e.toBuffer()],d)[0]}function H(){return r.PublicKey.findProgramAddressSync([a.from("referral_config")],d)[0]}function G(e){return r.PublicKey.findProgramAddressSync([a.from("guild"),e.toBuffer()],d)[0]}function V(){return r.PublicKey.findProgramAddressSync([a.from("referral_vault_authority")],d)[0]}function z(e){return r.PublicKey.findProgramAddressSync([a.from("node_commission_config"),e.toBuffer()],d)[0]}function K(){return r.PublicKey.findProgramAddressSync([a.from("orderbook_config")],m)[0]}function U(e){let t=a.alloc(8);return t.writeBigUInt64LE(BigInt(e)),r.PublicKey.findProgramAddressSync([a.from("order"),t],m)[0]}function J(e){return r.PublicKey.findProgramAddressSync([a.from("user"),e.toBuffer()],m)[0]}function Y(){return r.PublicKey.findProgramAddressSync([a.from("fee_authority")],m)[0]}},47960:function(){},759:function(e){"use strict";e.exports=JSON.parse('{"common":{"loading":"Loading...","cancel":"Cancel","confirm":"Confirm","close":"Close","save":"Save","reset":"Reset","all":"All","half":"HALF","max":"MAX","send":"Send","claim":"Claim","active":"Active","pending":"Pending","settled":"Settled","win":"Win","lose":"Lose","reward":"Reward","winReward":"WR","avatar":"avatar","total":"Total","connectWallet":"Connect Wallet","copyAddress":"Copy address","changeWallet":"Change wallet","disconnect":"Disconnect","copy":"Copy","copied":"Copied!"},"nav":{"mine":"Mine","chat":"Chat","stake":"Stake","trade":"Trade","explore":"Explore","node":"Node","guild":"Guild","about":"About","rank":"Rank","more":"More","events":"Events"},"mining":{"title":"Mining","poolDisabledBanner":"This pool is closed for new bets. You can still claim your rewards and cancel existing auto-mine here.","loadingRound":"Loading round data...","roundEndedBanner":"Round {prevRoundId} ended — Winning Block: #{winningBlock}
1 \xb7 Round {roundId} now active","roundEndedBannerStable":"Round {prevRoundId} ended — Reward Block: #{winningBlock} \xb7 Round {roundId} now active","tipf5050SingleBlock":"Single block #{block} receives all TIPF","tipf5050SingleBlockNoLosers":"Single block mode (no losers)","tipf5050AllBlocks":"All losing blocks share TIPF","tipf5050LuckyWinner":"Lucky Winner {address}","tipf5050SingleUser":"One lucky loser receives all TIPF","tipf5050AllLosers":"All losers share TIPF","betPanel":{"pendingSettlement":"Round pending settlement — mining resumes shortly","revealingWinner":"Revealing winner...","newRoundStarting":"New round starting soon...","bettingOnBlocks":"Mining on {count} block(s)","placeBet":"Mine","placingBet":"Mining...","bettingClosed":"Mining closed — ending in {seconds}s","setupAutoMine":"Setup Auto Mine","autoMineActive":"Auto Mine Active","deploying":"Deploying...","strategy":"Strategy","perRound":"Per Round","remaining":"Remaining","roundsUnit":"rounds","vault":"Vault","cancelAutoMine":"Cancel Auto Mine","canceling":"Canceling...","errRoundEnded":"Round has ended, please wait for the next round","errBettingClosed":"Mining closed — round ending in {seconds}s","errRoundNotActive":"Round is not active. Please wait for the next round.","errRoundJustEnded":"Round just ended.","minBet":"Min: {amount} SOL","topUp":"Top Up","topUpMustBeMultiple":"Must be a multiple of {amount} SOL","topUpFeeBreakdown":"+{rounds} rounds \xd7 {feePerRound} SOL fee = {totalFee} SOL total fee","feePerRound":"Fee/Round"},"claimPanel":{"rewardsReady":"Rewards Ready to Claim","claimSol":"Claim SOL","claimTipf":"Claim TIPF","claiming":"Claiming…","youWon":"You Won!","roundEnded":"Round Ended","winningBlock":"Winning Block","solRewardWritten":"SOL reward written","solRewardWriting":"SOL reward — writing...","tipfRewardWritten":"TIPF reward written","tipfRewardWriting":"TIPF reward — writing..."},"statsBar":{"motherlode":"Motherlode","countdown":"Countdown","totalBet":"Total Investment","myBet":"My Investment","revealing":"Revealing...","nextRound":"Next round...","ending":"Ending...","closed":"Closed"},"blockGrid":{"bettors":"{count} miners","myBet":"My: {amount} SOL"},"poolSelector":{"aggressive":"Aggressive (25→1)","stable":"Stable (25→24)","closed":"closed","disabledHint":"Closed for new bets — you can still claim rewards and cancel auto-mine"},"autoMine":{"title":"Auto Mine Configuration","strategyLabel":"Strategy","strategyFixed":"Fixed","strategyRandom":"Random","strategyDispersed":"Dispersed","selectBlocks":"Select Blocks","selectedCount":"({count} selected)","numberOfBlocks":"Number of Blocks (1-25)","randomBlockHint":"Each round will randomly select {count} blocks","dispersedHint":"Dispersed strategy will mine on all 25 blocks each round","perRoundSol":"Per Round (SOL)","totalSol":"Total (SOL)","willRunFor":"Will run for","rounds":"rounds","miningAmount":"Mining amount: {amount} SOL","accountRent":"Account rent: ~{amount} SOL (refunded on cancel)","keeperFeePerRound":"Fee/round: {amount} SOL \xd7 {rounds} rounds","totalCost":"Total: ~{amount} SOL","creating":"Creating...","validationFixedNoBlocks":"Please select at least one block for Fixed strategy","validationRandomCount":"Random count must be between 1 and 25","validationPerRound":"Amount per round must be greater than 0","validationTotalAmount":"Total amount must be at least equal to amount per round","validationMaxRounds":"Maximum 10,000 rounds allowed","validationMinPerRound":"Per round amount must be at least {amount} SOL","validationMinTotal":"Total amount must be at least {amount} SOL","minPerRoundHint":"Min: {amount} SOL","minTotalHint":"Min: {amount} SOL","transactionFailed":"Transaction failed. Please try again."},"chatPanel":{"guildOnly":"Guild — visible to guild members only","noGuild":"You have not joined a guild yet. Join one to chat with members in real-time."},"riskWarning":{"title":"Risk Warning","message":"Your bet exceeds 10% of the block total. This may result in a loss. Suggestion: Spread your funds across multiple blocks to increase your odds.","cancel":"Cancel","continue":"Continue"}},"node":{"page":{"title":"Nodes","referralRewards":"Referral Rewards"},"grid":{"allSoldOut":"All 5,000 nodes sold out","remaining":"{remaining} / 5,000 remaining — shared across all node types"},"card":{"price":"Price","multiplier":"Multiplier","buy":"Buy","buyAnother":"Buy Another","soldOut":"Sold Out","quantity":"Qty","total":"Total","basic":"Basic Node","advanced":"Advanced Node","super":"Super Node"},"myNode":{"title":"My Node","nodeLabel":"{tier} Node","nodesLabel":"{tiers} Nodes","powerMultiplier":"Node Mult","highestTier":"(highest tier)","guildMultiplier":"Guild Mult","totalInvested":"Total Invested","nodePower":"Node Power","stakePower":"Stake Power","convertedPower":"Converted Power","pendingPower":"Pending Power","syncPower":"Sync Power"},"invitation":{"yourGuild":"Your Guild","guildMembership":"Guild Membership","invitedBy":"Invited by","guildRoot":"Guild Root","youIndependent":"You (Independent)","members":"Members","guildBonus":"Guild Bonus","inviterDetected":"Inviter Detected","autoRegistering":"Your referral relationship is being registered automatically.","noInviterDetected":"No Inviter Detected","noInviterDescription":"If you have an inviter, enter the
1ir wallet address below to join their guild. Otherwise, you can skip and become an independent guild founder.","enterInviterAddress":"Enter inviter wallet address...","verify":"Verify","verifying":"Verifying...","inviter":"Inviter","node":"Node","guildMembers":"Guild Members","confirmJoinGuild":"Confirm — Join This Guild","joining":"Joining...","notRegisteredUser":"This address is not a registered user. Cannot be used as inviter.","invalidAddress":"Invalid Solana address format","skipInviter":"Register Without Inviter"},"referral":{"title":"My Referral","code":"Code:","level1":"Level 1","level2":"Level 2","level3":"Level 3","pendingCommission":"Pending Commission","historicalCommission":"Historical Commission (Locked)","releaseHistorical":"Release Historical Commission","noCommission":"No Commission","inviteLink":"Invite Link"},"walletBind":{"title":"Bind Solana Wallet","description":"You need a Solana wallet to use TIPF. Please connect your Solana wallet to continue.","connect":"Connect Wallet"},"commissionConfig":{"title":"Rebate Config","l1Label":"L1 (Direct)","l2Label":"L2","l3Label":"L3","floor":"floor","zeroSumBalance":"Zero-sum balance:","saving":"Saving...","saveOnChain":"Save on-chain","reset":"Reset"}},"stake":{"page":{"title":"Stake"},"stats":{"totalStaked":"Total Staked","totalPower":"Network Power","apr":"APR","buybackVault":"Buyback Vault","buybackStatus":"Buyback Status","ready":"Ready","accumulating":"Accumulating","thresholdReached":"Threshold reached","needMoreSol":"Need {amount} more SOL","ofThreshold":"{percent}% of {threshold} SOL threshold","keeperGasTip":"~3.9 SOL allocated every 24h for Keeper gas fees","myStaked":"My Staked","myPower":"My Power","stakeRatio":"Ratio","powerRatio":"Ratio"},"myStake":{"title":"My Stake","myStaked":"My Staked","myPower":"My Power","stakeRatio":"Stake Ratio","powerRatio":"Power Ratio","pendingRewards":"Pending Rewards","claim":"Claim"},"form":{"title":"Stake TIPF","available":"Available: {amount} TIPF","limit":"Limit: {remaining} / {max}","half":"HALF","max":"MAX","exceedsLimit":"Exceeds limit. Already staked: {staked} / {max} TIPF","warningPermanent":"Warning: Staked TIPF is permanently locked and cannot be withdrawn.","stake":"Stake"},"pool":{"title":"Liquidity Pool","tipf":"TIPF","sol":"SOL","rate":"Rate","rateValue":"1 TIPF ≈ {rate} SOL","tvl":"TVL"},"swap":{"title":"Sell TIPF","balance":"Balance: {amount} TIPF","placeholder":"TIPF amount","gettingQuote":"Getting quote...","youReceive":"You receive","rate":"Rate","rateValue":"1 TIPF ≈ {rate} SOL","minReceived":"Min received","swapping":"Swapping...","swapButton":"Swap TIPF → SOL","swapFailed":"Swap failed","poolUnavailable":"No liquidity pool on this network — swapping is unavailable"},"rewards":{"title":"Staking Rewards Per Round","noRounds":"No settled rounds yet","round":"Round","pool":"Pool","totalBet":"Total Bet","stakingReward":"Staking (10%)","time":"Time"},"dualRewards":{"title":"Rewards","pureRewards":"Pure Staking","nodeRewards":"Node Rewards","total":"Total","unlocked":"Unlocked","locked":"Locked","taskDone":"Task Done","taskNeeded":"Task Required","taskRequirement":"30 SOL monthly mining volume required","claimAll":"Claim All","claimPure":"Claim Pure","claimNode":"Claim Node","claimable":"Claimable","accumulating":"Accumulating","node":"Node","bonusPower":"bonus"},"taskProgress":{"title":"Monthly Task","completed":"Completed","inProgress":"In Progress","self":"Self","referral":"Referral"}},"explore":{"page":{"title":"Explore"},"leaderboard":{"title":"Leaderboard","miners":"Miners","stakers":"Stakers","rank":"Rank","address":"Address","totalBet":"Total Bet","aggWin":"AGG Win","conWin":"CON Win","stakedAmount":"Staked Amount","rewardsEarned":"Rewards Earned"},"myBets":{"title":"My Bets","connectWallet":"Connect wallet to view your bet history","noBetsFound":"No bets found","filterAll":"All","filterManual":"Manual","filterAutoMine":"Auto Mine","round":"Round","pool":"Pool","blocks":"Blocks","amount":"Amount","result":"Result","type":"Type","typeAuto":"Auto","typeManual":"Manual"},"stats":{"maxSupply":"Max Supply","circulatingSupply":"Circulating Supply","totalBuried":"Total Buried","stakingVault":"Staking Vault"},"history":{"title":"Round History","round":"Round","pool":"Pool","block":"Block","winnerBlock":"Winner Block","loserBlock":"Reward Block","bet":"Bet","motherlode":"Motherlode","tipf5050":"TIPF 50/50","time":"Time","minAgo":"{mins} min ago","hrAgo":"{hrs} hr ago","collapse":"Collapse","details":"Details","filterAll":"All","filterAggressive":"Aggressive","filterStable":"Stable","filterMotherlode":"\uD83C\uDFB0 Motherlode","noMotherlode":"No Motherlode triggers yet","poolType":"Pool Type","totalBet":"Total Bet","status":"Status","yourBets":"Your Bets","noBetsInRound":"No bets in this round","connectToViewBets":"Connect wallet to view your bets","reward":"Reward","slots":"Slots","startSlot":"Start Slot","endSlot":"End Slot","duration":"Duration","settledSlot":"Settled Slot"}},"leaderboard":{"title":"Leaderboard","miners":"Miners","stakers":"Stakers","guilds":"Guilds","holdings":"Holdings","referrals":"Referrals","comingSoon":"Coming soon","rank":"Rank","address":"Address","totalBet":"Total Bet","aggWin":"AGG Win","conWin":"CON Win","stakedAmount":"Staked","rewardsEarned":"Rewards","guild":"Guild","members":"Members","totalCommission":"Total Commission","l1Referrals":"L1 Referrals","tipfBalance":"TIPF Balance","noData":"No data yet"},"about":{"title":"About","titleTipf":"TIPF","subtitle":"Token In Pool Fight — a Solana-based on-chain mining game c
1ombining node referrals, dual-pool mining, and permanent staking rewards.","howMiningWorks":"How Mining Works","howMiningDesc":"Each round has 25 blocks. Players mine SOL on one or more blocks. When the round ends, a winning block is drawn by VRF.","aggressivePool":"Aggressive Pool","aggressivePoolValue":"25→1 winning block takes all","stablePool":"Stable Pool","stablePoolValue":"25→24 winning blocks share","settlement":"Settlement","settlementValue":"Random token buyback","losersGet":"Reward Block","losersGetValue":"TIPF token rewards","motherlode":"Motherlode","motherlodeDesc":"Every round has a 1/625 chance of triggering the Motherlode — a jackpot pool of TIPF accumulated over time, distributed to the round winner.","triggerChance":"Trigger chance","triggerChanceValue":"1 / 625 per round","reward":"Reward","rewardValue":"Full Motherlode pool","accumulation":"Accumulation","accumulationValue":"Continuous, no cap","nodeSystem":"Node System","nodeSystemDesc":"5,000 nodes total, non-transferable.","basicNode":"Basic Node","basicNodeValue":"300 USDT \xb7 1.0x","advancedNode":"Advanced Node","advancedNodeValue":"1000 USDT \xb7 1.1x","superNode":"Super Node","superNodeValue":"3000 USDT \xb7 1.21x","referralTiers":"Referral tiers","referralTiersValue":"30% / 5% / 2.5%","staking":"Staking","stakingDesc":"Stake TIPF permanently to earn a share of protocol revenue. Staked tokens are locked forever — only rewards can be claimed.","stakeToken":"Stake token","stakeTokenValue":"TIPF","revenueShare":"Revenue share","revenueShareValue":"10% of winner payouts","distribution":"Distribution","distributionValue":"10% to stakers, 90% burned","lockPeriod":"Lock period","lockPeriodValue":"Permanent","techStack":"Technical Stack","techChain":"Chain","techChainValue":"Solana","techRandomness":"Randomness","techRandomnessValue":"Magicblock VRF","techDex":"DEX","techDexValue":"Jupiter Aggregator","techWallets":"Wallets","techWalletsValue":"Phantom / Solflare","techContracts":"Contracts","techContractsValue":"Anchor (Rust)","techFrontend":"Frontend","techFrontendValue":"Next.js 14","startMining":"Start Mining","buyANode":"Buy a Node"},"chat":{"rooms":{"public":"Public","guild":"Guild"},"input":{"placeholder":"Message...","placeholderDisabled":"Connect wallet to chat","send":"Send"},"jumpToCurrent":"Jump to current"},"layout":{"txToast":{"confirmed":"Transaction confirmed","failed":"Transaction failed"}},"profile":{"deployed":"Deployed","wallet":"Wallet","staked":"Staked","refined":"Refined","pending":"Pending","tipfBalance":"TIPF Balance","total":"Total"},"guild":{"title":"My Guild","noWallet":"Connect wallet to view guild","noGuild":"You haven\'t joined a guild yet","overview":"Guild Overview","guildName":"Guild Name","members":"Members","guildNodes":"Guild Nodes","guildBonus":"Guild Bonus","performance":"Guild Performance","totalMining":"Total Mining SOL","totalStaked":"Total Staked TIPF","internalRank":"Internal Rankings","holdingsTab":"Holdings","referralsTab":"Referrals","minersTab":"Miners","stakersTab":"Stakers","comingSoon":"Coming soon","settings":"Guild Settings","editName":"Guild Name","editAvatar":"Guild Avatar","save":"Save","upload":"Upload","featureComingSoon":"Feature coming soon","noData":"No data yet","rank":"Rank","address":"Address","stakedAmount":"Staked","tipfBalance":"TIPF Balance","totalBet":"Total Bet","l1Referrals":"L1 Referrals","totalCommission":"Total Commission","pendingRewards":"Pending Rewards","namePlaceholder":"Guild name (max 32)","saving":"Saving…","saveSuccess":"Saved successfully!"},"announcement":{"readMore":"Details","collapse":"Collapse","close":"Dismiss","gotIt":"Got it"},"trade":{"title":"OTC Trading","loading":"Loading orders...","pairs":{"tipfSol":"TIPF / SOL"},"orderList":{"buyOrders":"Buy Orders","sellOrders":"Sell Orders","filterAll":"All","filterBuy":"Buy","filterSell":"Sell","price":"Price","amount":"Amount (TIPF)","total":"Total","take":"Take","noOrders":"No orders"},"orderForm":{"title":"Place Order","buy":"Buy","sell":"Sell","amountLabel":"Amount (TIPF)","priceLabel":"Price ({quote} per TIPF)","totalLabel":"Total: {total} {quote}","placeBuyOrder":"Place Buy Order","placeSellOrder":"Place Sell Order","processing":"Processing...","feeInfo":"Fee: {fee}% \xb7 Max orders: {max}"},"myOrders":{"title":"My Orders","colId":"#","colSide":"Side","colAmount":"Amount (TIPF)","colPrice":"Price ({quote})","buy":"Buy","sell":"Sell","cancel":"Cancel"},"orderHistory":{"title":"Order History","noHistory":"No order history","colTime":"Time","colSide":"Side","colAmount":"Amount (TIPF)","colPrice":"Price ({quote})","colStatus":"Status","buy":"Buy","sell":"Sell","statusFilled":"Filled","statusOpen":"Open","statusCancelled":"Cancelled"},"header":{"listed":"Listed","activity":"Activity","noActivity":"No activity yet","filled":"✓ Filled","cancelled":"✗ Cancelled","pair":"Pair","orders":"Orders","buy":"Buy","sell":"Sell","ago1s":"{n}s ago","ago1m":"{n}m ago","ago1h":"{n}h ago","ago1d":"{n}d ago","toastOrderPlaced":"Order placed successfully","toastOrderCancelled":"Order cancelled","toastOrderFilled":"Order filled successfully"}},"event":{"title":"Events","tabs":{"running":"Running","finished":"Finished","myRewards":"My Rewards","referral":"Referral Rewards"},"status":{"created":"Active","locked":"Locked","finalized":"Finalized","ready_to_claim":"Claimable","cancelled":"Cancelled","unknown":"Unknown"},"detail":{"slots":"Slots","timeRange":"Time (approx.)","referrerPool":"Referrer Pool","guildPool":"Guild Pool","personalPool":"Personal Pool","projectedTag":"(est.)","myRewards":"My Rewards","topGuilds":"Top Guilds","topPersonals":"Top Personals","liveTag":"Live standings \xb7 in progress (rewards are projected, finalized at settlement)","rank":"Rank","guild":"Guild","wallet":"Wallet","totalBet":"Total Bet","reward":"Reward","details":"Details","connectWallet":"Connect wallet to view your rewards","noEvents":"No finalized events yet"},"myRewards":{"noRewardsForEvent":"No rewards for this event"},"referral":{"description":"Continuous L1 referral rewards (SOL), settled per epoch. Claim each epoch independently.","rateRule":"Base 0.1% of your referees\' bet volume; node holders earn 0.3% (an extra 0.2%).","settlementNote":"Settled per epoch (round), not in real time — recent bets are credited only after the next settlement.","settledThrough":"Settled through epoch #{epoch} \xb7 {time}","notSettledYet":"No epoch settled yet — rewards appear after the first settlement.","epoch":"Epoch #{id}","cumulative":"Cumulative earnings","claimable":"Claimable now","pending":"Pending settlement","currentEpoch":"Current window: {start} — {end}","settlesIn":"≈ {hours}h until settlement","claimAll":"Claim all \xb7 {amount} SOL","noRewards":"No referral rewards to claim yet","noPending":"No pending referral rewards — invite friends to start earning!","detail":{"window":"Slot window","committedAt":"Committed at","subordinateVolume":"Referees\' bet volume","appliedRate":"Applied rate","nodeBonus":"node holder bonus","math":"Math"}},"claim":{"referrer":"Claim L1 \xb7 {amount} SOL","guild":"Claim Guild \xb7 {amount} {token}","personal":"Claim Personal \xb7 {amount} {token}","claimed":"Claimed","claiming":"Claiming...","pending":"Pending — claims not open yet","errNotReady":"Claims not open yet for this event","errAlreadyClaimed":"Already claimed","errInsufficientPool":"Reward pool is being funded, try again later","errGeneric":"Claim failed, please try again"},"rules":{"title":"Event Rules","guild":"Guild TOP20: fixed pool [3500/2000/1200/300\xd77/120\xd710] USDT, distributed to members weighted by their bet volume","personal":"Personal TOP30: fixed tiers [3000/2000/1000/400\xd77/100\xd720] USDT by rank","guildTipf":"Guild TOP3: split 100,000 TIPF pool (50%/35%/15%), distributed to members weighted by their bet volume","personalTipf":"Personal TOP20: fixed amounts [26k/18k/12k/9k/7k/6k/5k/4.5k/4k/3.5k/3k/2.5k/2k/1.8k/1.5k/1.2k/1k/0.8k/0.6k/0.4k] TIPF by rank","claim":"After finalize, admin funds the pools and opens claims (Claimable). Unclaimed rewards are swept after 30 days."}}}')}},function(e){e.O(0,[7090,3814,6410,2586,2538,7648,5429,2971,2117,1744],function(){return e(e.s=44793)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.