const e=require(`../../../constants/protocol.constants.cjs`),t=require(`../../../types/ethereum-network.types.cjs`),n=require(`../../utils/caseInsensitive.utils.cjs`),r=require(`../../utils/time.utils.cjs`),i=require(`../../../externalABIs/index.cjs`);var a=async(i,a,o,s,c,l=30,u=1e3)=>{let d=c.filter(({tokenAddress:t,requiredAmount:r})=>r>0n&&!n.caseInsensitiveEqual(t,e.zeroAddress));if(d.length===0)return;let f=d.map(({tokenAddress:e})=>i.getContractWithSigner(a,t.ContractType.ERC20Contract,e));for(let e=0;e<l;e+=1){let e=!0;for(let t=0;t<d.length;t+=1){let{requiredAmount:n}=d[t],r=f[t];if(BigInt(await r.allowance(o,s))<n){e=!1;break}}if(e)break;await r.waitLittle(u)}},o=async(t,a,o,s,c=30,l=1e3)=>{let u=s.filter(({tokenAddress:t,requiredAmount:r})=>r>0n&&!n.caseInsensitiveEqual(t,e.zeroAddress)&&!!t);if(u.length===0)return;let d=await Promise.all(u.map(async({tokenAddress:e})=>t.contract(i.ERC20ABI,e)));for(let e=0;e<c;e+=1){let e=!0;for(let t=0;t<u.length;t+=1){let{requiredAmount:n}=u[t],r=await d[t].allowance(a,o).call({from:a});if(BigInt(String(r))<n){e=!1;break}}if(e)break;await r.waitLittle(l)}};exports.waitForErc20Approvals=a,exports.waitForTronErc20Approvals=o;