'use strict';var b=require('assert'),bigRationalTs=require('big-rational-ts');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var b__default=/*#__PURE__*/_interopDefault(b);var s=new bigRationalTs.BigRational(0n,1n);function v(t,n){return t.gt(n)?t:n}function F(t,n){return t.lt(n)?t:n}function T(t,n,c,a){let i={},d=Object.entries(c.assets).reduce((f,[l,y])=>(i[l]=new bigRationalTs.BigRational(y,1n).mul(t[l]),f.add(i[l])),s),[m,B]=j(t,n,i,d,a);if(a.gte(s)?B.gt(s):B.lt(s))for(let[f,l]of Object.entries(m))m[f]=B.mul(n[f]).div(t[f]).add(l).reduce();let g=d.div(new bigRationalTs.BigRational(c.mtkSupply,1n)),p=d.add(a).div(g).reduce();return {assets:m,mtkSupply:p}}function j(t,n,c,a,i){let d={};for(let[e,o]of Object.entries(c))d[e]=o.div(a).reduce();if(Object.entries(n).every(([e,o])=>o.eq(d[e])))return [Object.fromEntries(Object.entries(n).map(([e,o])=>[e,a.mul(o).div(t[e]).reduce()])),i];let m=Object.entries(c).find(([e])=>{let o=n[e];return b__default.default(o,new Error("Invalid portfolio weights")),!o.eq(s)});b__default.default(m,new Error("Invalid portfolio assets"));let[B,O]=m,g=O.div(n[B]),p=Object.entries(c).reduce((e,[o,r])=>{if(n[o].eq(s))return e;let u=r.div(n[o]);return i.gte(s)?v(u,e):F(u,e)},g),f=Object.entries(n).filter(([e,o])=>o.eq(s)).reduce((e,[o])=>e.add(c[o]).reduce(),s),l=a.add(f.negate()).reduce(),y=i.gte(s)?p.add(l.negate()).reduce():p.add(a.negate());if(i.gte(s)?y.lte(i):y.gte(i)){let e={};for(let[r,u]of Object.entries(n))u.eq(s)&&i.gte(s)?e[r]=c[r].div(t[r]).reduce():e[r]=p.mul(u).div(t[r]).reduce();let o=i.add(y.negate()).reduce();return [e,o]}else {let e={};for(let[r,u]of Object.entries(c))if(n[r].eq(s)&&i.gte(s))e[r]=u.div(t[r]).reduce();else {let x=p.mul(n[r]).add(u.negate());e[r]=i.mul(x).div(y).div(t[r]).add(u.div(t[r])).reduce();}return [e,s]}}function D({portfolioState:t,amount:n,type:c}){let a=t.batcherFee,i=n.multipliedBy(t.platformFee).div(1e4),d=n.div(t.microMtkPrice),m=c==="mint"?d.multipliedBy(t.entryFee).div(1e4):d.multipliedBy(t.exitFee).div(1e4);return {batcherFee:a.abs(),platformFee:i.abs(),userFee:m.abs()}}var q=6,C={entry:{max:500n,min:1n},exit:{max:500n,min:1n},batcher:{max:4000000n,min:1n},platform:{max:100n,min:1n}};exports.FEES=C;exports.MTK_DECIMALS=q;exports.computeFees=D;exports.computeInteraction=T;//# sourceMappingURL=index.cjs.map //# sourceMappingURL=index.cjs.map