import{d7 as A,da as j,dN as B,eg as L,cJ as s,cL as $,db as q,d8 as G,cO as J,ej as _,cN as W,cY as M,ek as d,dd as X,el as U}from"./BC4hLSsA.js";import{u as h}from"./DyGcr8JH.js";import{g as Y,j as z,k as H,l as P,m as I}from"./CSZeIc-n.js";const ee=A("freebets",()=>{const{address:g}=j(),c=X(),{isProduction:b}=B(),{activeChainById:y}=h(),f=L(),C=e=>{const a=Object.keys(W[e.chainId].contracts.games);return{name:`network-casino-${a.find(T=>f.path.includes(T))||a[0]}`,params:{network:M[e.chainId]},query:{freebetId:e.id}}},r={itemsPerPage:s(100),totalItems:s(0),items:s([]),loading:s(!1),loadItems:w},i={itemsPerPage:s(10),totalItems:s(0),items:s([]),loadItems:F};async function w({page:e,forceAffiliate:a,affiliate:t,chainId:n}){if(!r.loading.value&&(!a||t)){r.loading.value=!0;const o=await P(c,r.itemsPerPage.value,e*r.itemsPerPage.value,d.PENDING,t,n);r.items.value=o.campaigns,r.totalItems.value=o.total,r.loading.value=!1}}async function F({done:e,forceAffiliate:a,affiliate:t,chainId:n}){if((i.totalItems.value==0||i.items.value.length!=i.totalItems.value)&&(!a||t)){const o=await P(c,i.itemsPerPage.value,i.items.value.length,d.EXPIRED,t,n);o.campaigns.length>0?(i.items.value.push(...o.campaigns),i.totalItems.value=o.total,e("ok")):e("empty")}else e("empty")}const l={itemsPerPage:s(100),totalItems:s(0),items:s([]),loading:s(!1),loadItems:k},u={itemsPerPage:s(10),totalItems:s(0),items:s([]),loadItems:N};async function k({page:e,forceAffiliate:a,affiliate:t,chainId:n}){if(!l.loading.value&&(!a||t)){l.loading.value=!0;const o=await I(c,l.itemsPerPage.value,e*l.itemsPerPage.value,d.PENDING,t,n);l.items.value=o.campaigns,l.totalItems.value=o.total,l.loading.value=!1}}async function N({done:e,forceAffiliate:a,affiliate:t,chainId:n}){if((u.totalItems.value==0||u.items.value.length!=u.totalItems.value)&&(!a||t)){const o=await I(c,u.itemsPerPage.value,u.items.value.length,d.EXPIRED,t,n);o.campaigns.length>0?(u.items.value.push(...o.campaigns),u.totalItems.value=o.total,e("ok")):e("empty")}else e("empty")}const m=s([]),E=async(e,a,t=!1)=>{try{return await U(e,a,void 0,t,!b.value)}catch(n){return console.error("An error occured while fetching casino freebets",JSON.stringify(n)),[]}},p=async()=>{if(g.value){const e=Array.from(new Set(Object.values(y.value).filter(a=>a.contracts.freebet).map(a=>a.affiliate)));m.value=await E(g.value,e,!0)}else m.value=[]};$(()=>{q(g,async e=>{await p()},{immediate:!0})});const{currentCasinoChain:O}=h(),{tokens:D}=G(Y()),R=J(()=>m.value.filter(e=>e.chainId==O.value.chain.chain.id).filter(e=>D.value.some(a=>a.address.toLowerCase()==e.token.address.toLowerCase())).sort((e,a)=>e.expirationDate.getTime()-a.expirationDate.getTime())),S=async(e,a)=>{try{const t=await fetch(`${c.public.BETSWIRL_API_URL}/freebet/useFreebetFromPlayer`,{method:"POST",body:JSON.stringify({chain_id:a,hash:e})});return t.status==200?!0:(console.error(`${t.status} ${t.statusText} - ${JSON.stringify(await t.json())}`),!1)}catch(t){return console.error(t),!1}},x=_(),v=s(!1);return{buildFreebetRoute:C,fetchFreebetCampaign:H,fetchFreebetCodeCampaign:z,pendingCampaigns:r,expiredCampaigns:i,pendingCodeCampaigns:l,expiredCodeCampaigns:u,freebets:m,eligibleFreebets:R,markFreebetAsWagered:S,refreshFreebets:p,freebetDialogOpened:v,onOpenFreebetDialog:()=>{x.push({query:{...f.query,promotions:"true"}}),v.value=!0}}});export{ee as u};