1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7377],{57723:function(e,t,a){var r=a(57437),n=a(2265),o=a(55636),s=a(87138);t.Z=e=>{let{totalVotes:t,tokenPath:a}=e,[c,i]=(0,n.useState)(0),[l,u]=(0,n.useState)(!1),d=(0,n.useCallback)(()=>{i(0);let e=t/50,a=0,r=setInterval(()=>{a<50?(i(Math.min(Math.round(e*(a+1)),t)),a++):clearInterval(r)},40);return()=>clearInterval(r)},[t]);return(0,n.useEffect)(()=>{let e=d();return()=>e()},[d]),(0,r.jsx)(s.default,{href:a,className:"block",children:(0,r.jsxs)("button",{className:"group flex items-center gap-2 px-2 md:px-4 py-1 md:py-2 rounded-lg transition-all duration-300 bg-blue-50 dark:hover:bg-blue-900/20",onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,r.jsx)(o.Z,{className:"w-5 h-5 text-blue-500 transition-transform duration-300 animate-bounce ".concat(l?"scale-125":"scale-100")}),(0,r.jsx)("span",{className:"font-bold text-sm md:text-lg text-gray-700 dark:text-gray-200",children:c.toLocaleString()})]})})}},90950:function(e,t,a){a.d(t,{C:function(){return s},default:function(){return c}});var r=a(57437),n=a(13918),o=a(2265);let s=(0,o.createContext)();function c(e){let{children:t}=e,[a,c]=(0,o.useState)([]),[i,l]=(0,o.useState)({header:[],footer:[]}),[u,d]=(0,o.useState)(!0),[f,h]=(0,o.useState)([]),[m,g]=(0,o.useState)([]),[b,p]=(0,o.useState)(null),[y,v]=(0,o.useState)([]),[w,x]=(0,o.useState)(!0),[k,S]=(0,o.useState)([]);(0,o.useRef)(null);let D=async()=>{d(!0);try{let e=await fetch("/api/fetch-database-tokens"),{data:t,error:a}=await e.json(),r=[];a||(r=t.sort((e,t)=>Number(t.date_added||0)-Number(e.date_added||0)),c(r));let o=await (0,n.sg)();o&&h(o);let s=await (0,n.fk)();if(s&&s.length>0){let e=s.map(e=>{let t=r.find(t=>t.request_id===e.tokenId);return{...e,...t||{}}});g(e)}else if(console.log("No boosted tokens found or empty array:",s),r.length>0){let e=r.sort(()=>Math.random()-.5).slice(0,10).map(e=>({tokenId:e.request_id,...e}));g(e)}else g([]);p(new Date)}catch(e){console.error("Error fetching crypto data:",e),g([])}finally{d(!1)}},E=async()=>{try{let e=await fetch("/api/fetch-banners",{cache:"no-store"}),{banners:t,error:a}=await e.json();!a&&t?(l(t),console.log("Fetched banners:",t)):(console.error("Error fetching banners or no banners returned"),l({header:[],footer:[]}))}catch(e){console.error("Error in fetchBannerData:",e),l({header:[],footer:[]})}},N=async()=>{x(!0);try{let e=await (0,n.cA)();v(e);let t=[...new Set(e.map(e=>e.source))];S(t)}catch(e){console.error("Error fetching news data:",e),v([]),S([])}finally{x(!1)}};return(0,o.useLayoutEffect)(()=>{D(),N(),E()},[]),(0,o.useEffect)(()=>{},[]),(0,r.jsx)(s.Provider,{value:{dbTokens:a,dbVotes:f,setDbVotes:h,loading:u,addToFavourite:e=>{let t=localStorage.getItem("bmc_favourite"),a=t?t.split(","):[];a.includes(e)||(a.push(e),localStorage.setItem("bmc_favourite",a.join(",")))},banners:i,setBanners:l,boostedTokens:m,lastUpdated:b,refreshData:()=>{console.log("Manual refresh triggered"),D(),N(),E()},newsArticles:y,newsLoading:w,newsSources:k,fetchNewsData:N},children:t})}},78104:function(e,t,a){a.d(t,{db:function(){return i},t:function(){return l}});var r=a(15236),n=a(5186),o=a(35002),s=a(99854);let c=(0,r.ZF)({apiKey:"AIzaSyDVADTfuNzH6luXlI9fpDgbKijN64ec3cE",authDomain:"moonlisting-backend.firebaseapp.com",projectId:"moonlisting-backend",storageBucket:"moonlisting-backend.firebasestorage.app",messagingSenderId:"87001082283",appId:"1:87001082283:web:fc283f29f3cd1386d34aee"}),i=(0,o.ad)(c);(0,n.v0)(c);let l=(0,s.cF)(c)},13918:function(e,t,a){a.d(t,{Fb:function(){return i},cA:function(){return l},fk:function(){return s},sg:function(){return c}});var r=a(69842);a(89740);var n=a(46587),o=a(78104);a(25566);let s=async()=>{try{let e=(0,r.hJ)(o.db,"boosted"),t=await (0,r.PL)(e),a=Date.now(),n=[];return t.forEach(e=>{let t=e.data(),r=t.boostedAt;(a-r)/36e5<=24&&n.push({id:e.id,...t})}),n}catch(e){return console.log("Error fetching boosted tokens. Reason: "+e),!1}},c=async()=>{let e;try{let t=(0,r.JU)(o.db,"comments","JimpGY7A7FnCBsfM1SS5");e={...(await (0,r.QT)(t)).data()}}catch(e){return console.log(e),!1}return e.votes},i=async e=>{let t=await c();if(!t)return!1;let a=t.filter(t=>t.coinid==e),r=t.filter(t=>t.coinid==e&&!0==t.vote),n=t.filter(t=>t.coinid==e&&!1==t.vote);return{totalVotes:a.length,bullish:r.length,bearish:n.length}},l=async()=>{try{let e=(0,n.k)(new Date,3),t=r.EK.fromDate(e),a=(0,r.hJ)(o.db,"news"),s=(0,r.IO)(a,(0,r.ar)("timestamp",">=",t),(0,r.Xo)("timestamp","desc")),c=(await (0,r.PL)(s)).docs.map(e=>{var t,a;return{id:e.id,...e.data(),timestamp:(null===(t=e.data().timestamp)||void 0===t?void 0:t.toDate())||new Date,createdAt:(null===(a=e.data().createdAt)||void 0===a?void 0:a.toDate())||new Date}});return console.log("Fetched ".concat(c.length," news articles from the past 3 days")),c}catch(e){return console.error("Error fetching news articles:",e),[]}}},89740:function(e,t,a){a.d(t,{Jh:function(){return n},kh:function(){return s}});var r=a(57437);let n=e=>/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,20}$/i.test(e),o=e=>{if("number"!=typeof e||isNaN(e))return"0";if(e<1){let t=e.toFixed(20).match(/^0\.0*[1-9]/);if(!t)return e.toFixed(8);let a=t[0].length-2;return e<1e-6?e.toExponential(6):e.toFixed(Math.max(a+3,8))}
1return e.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:0})},s=e=>{let{price:t,showDollarSign:a=!0}=e,n=o(t);return(0,r.jsxs)("div",{children:[a&&(0,r.jsx)("span",{className:"text-sm",children:"$"}),n]})}}}]);
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.