require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../API/API.cjs`),t=require(`../../functions/utils/string.utils.cjs`);let n=require(`idb-keyval`);var r=new class{tokenPricesRecordLabel=`tokenPrices`;async getPrices(){return await(0,n.get)(this.tokenPricesRecordLabel)}async updatePrices(r,i){if(!i.length)return[];let{prices:a}=await e.API.getTokenPrices(r,i);return await(0,n.update)(this.tokenPricesRecordLabel,(e={})=>{let n={...e};return a.forEach((e,a)=>{n[t.getTokenStateKey(i[a],r)]=e}),n}),a}async getAndUpdatePrices(e,n){let r=await this.getPrices(),i=Array(n.length).fill(0);if(!r)i=await this.updatePrices(e,n);else{let a=[],o=[];n.forEach((n,s)=>{let c=t.getTokenStateKey(n,e);r[c]?i[s]=r[c]:(a.push(n),o.push(s))});let s=await this.updatePrices(e,a);o.forEach((e,t)=>{i[e]=s[t]})}return i}async updateCachedPricesByChain(r){let i=await this.getPrices();if(!i||Object.keys(i).length===0)return;let a=Object.entries(i).filter(([e])=>{let[,t]=e.split(`-`);return parseInt(t,10)===r}).map(([e])=>e.split(`-`)[0]);if(a.length===0)return;let{prices:o}=await e.API.getTokenPrices(r,a);await(0,n.update)(this.tokenPricesRecordLabel,(e={})=>{let n={...e};return o.forEach((e,i)=>{let o=t.getTokenStateKey(a[i],r);n[o]=e}),n})}};exports.pricesStorage=r;