@cetusprotocol/xcetus-sdk 1.0.2 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -20
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{SdkWrapper as rn}from"@cetusprotocol/common-sdk";import{FullRpcUrlMainnet as tt}from"@cetusprotocol/common-sdk";var Fe={xcetusConfig:{xcetus_manager_id:"0x838b3dbade12b1e602efcaf8c8b818fae643e43176462bf14fd196afa59d1d9d",lock_manager_id:"0x288b59d9dedb51d0bb6cb5e13bfb30885ecf44f8c9076b6f5221c5ef6644fd28",lock_handle_id:"0x7c534bb7b8a2cc21538d0dbedd2437cc64f47106cb4c259b9ff921b5c3cb1a49"},xcetusDividendsConfig:{dividend_manager_id:"0x721c990bfc031d074341c6059a113a59c1febfbd2faeb62d49dcead8408fa6b5",dividend_admin_id:"0x682ba823134f156eac2bcfb27d85a284954a0e61998dc628c40b9bcb4a46ff30",dividend_settle_id:"0xade40abe9f6dd10b83b11085be18f07b63b681cf1c169b041fa16854403388c5",venft_dividends_id:"0x9dcdb97b4307684bedaeaf803d381b12321a31ecbb9dad7df2cd5f64384f9456",venft_dividends_id_v2:"0xaa21fbc1707786d56302952f8327362f4eb9a431a5bc574834e6d46125390de3"}},Pe={full_rpc_url:tt,xcetus:{package_id:"0x9e69acc50ca03bc943c4f7c5304c2a6002d507b51c11913b247159c60422c606",published_at:"0x9e69acc50ca03bc943c4f7c5304c2a6002d507b51c11913b247159c60422c606",config:Fe.xcetusConfig},xcetus_dividends:{package_id:"0x785248249ac457dfd378bdc6d2fbbfec9d1daf65e9d728b820eb4888c8da2c10",published_at:"0x5aa58e1623885bd93de2331d05c29bf4930e54e56beeabcab8fe5385de2d31dc",version:4,config:Fe.xcetusDividendsConfig},cetus_faucet:{package_id:"0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",published_at:"0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b"},env:"mainnet"};import{FullRpcUrlTestnet as nt}from"@cetusprotocol/common-sdk";var Le={xcetusConfig:{xcetus_manager_id:"0x3be34cbad122c8b100ed7157d762b9610e68b3c65734e08bc3c3baf857da807d",lock_manager_id:"0x7c67e805182e3fecd098bd68a6b06c317f28f8c6249bd771e07904a10b424e60",lock_handle_id:"0xc5f3bbfefe9a45c13da7a34bc72cac122ee45d633690476a8ac56bd2c4e78c86"},xcetusDividendsConfig:{dividend_manager_id:"0x9d1be1a6b1146b30448a266bc87127466c0bae1585750c42adffce3e25e1ab6d",dividend_admin_id:"0x36d63c1a588bd93775aff8f47538a0063960564f0a171d100a9f49526a872b92",dividend_settle_id:"0x9eb78595419560b1dcaa9fb0ca307921ab1664a5f63c877c6887ab696344b400",venft_dividends_id:"0xc31a85fa5a77fc1def0dc5b2aadc5317a9d744ffda24b472e56a646711770676",venft_dividends_id_v2:"0x53b24031120730f6e4a733526147917650b1ecd3c56b43164b69eaa74f9b9ff7"}},Re={full_rpc_url:nt,xcetus:{package_id:"0xdebaab6b851fd3414c0a62dbdf8eb752d6b0d31f5cfce5e38541bc6c6daa8966",published_at:"0xdebaab6b851fd3414c0a62dbdf8eb752d6b0d31f5cfce5e38541bc6c6daa8966",version:1,config:Le.xcetusConfig},xcetus_dividends:{package_id:"0x4061e279415a3c45cfd31554d38c5b3bb0e06c65833811a98a66f469e04c69c3",published_at:"0xfeda040996e722ba532ab2203d13333484024456ca38bf4adeb526ce1457332d",version:1,config:Le.xcetusDividendsConfig},cetus_faucet:{package_id:"0x1a69aee6be709054750949959a67aedbb4200583b39586d5e3eabe57f40012c7",published_at:"0x1a69aee6be709054750949959a67aedbb4200583b39586d5e3eabe57f40012c7"},env:"testnet"};import{Transaction as $}from"@mysten/sui/transactions";import{buildNFT as Jt,CACHE_TIME_24H as J,CACHE_TIME_5MIN as Yt,CachedContent as en,CLOCK_ADDRESS as ne,CoinAssist as tn,d as C,DETAILS_KEYS as w,extractStructTagFromType as Y,getFutureTime as Ye,getMoveObjectType as et,getObjectFields as Q,getObjectId as nn,getPackagerConfigs as T}from"@cetusprotocol/common-sdk";var ee=9e15,z=1e9,Ne="0123456789abcdef",pe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",he="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",De={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ee,maxE:ee,crypto:!1},Xe,B,_=!0,me="[DecimalError] ",Z=me+"Invalid argument: ",$e=me+"Precision limit exceeded",qe=me+"crypto unavailable",Be="[object Decimal]",x=Math.floor,D=Math.pow,it=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,rt=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,st=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,He=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,j=1e7,m=7,ot=9007199254740991,dt=pe.length-1,Ie=he.length-1,p={toStringTag:Be};p.absoluteValue=p.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),g(t)};p.ceil=function(){return g(new this.constructor(this),this.e+1,2)};p.clampedTo=p.clamp=function(t,e){var n,i=this,r=i.constructor;if(t=new r(t),e=new r(e),!t.s||!e.s)return new r(NaN);if(t.gt(e))throw Error(Z+e);return n=i.cmp(t),n<0?t:i.cmp(e)>0?e:new r(i)};p.comparedTo=p.cmp=function(t){var e,n,i,r,s=this,o=s.d,d=(t=new s.constructor(t)).d,c=s.s,a=t.s;if(!o||!d)return!c||!a?NaN:c!==a?c:o===d?0:!o^c<0?1:-1;if(!o[0]||!d[0])return o[0]?c:d[0]?-a:0;if(c!==a)return c;if(s.e!==t.e)return s.e>t.e^c<0?1:-1;for(i=o.length,r=d.length,e=0,n=i<r?i:r;e<n;++e)if(o[e]!==d[e])return o[e]>d[e]^c<0?1:-1;return i===r?0:i>r^c<0?1:-1};p.cosine=p.cos=function(){var t,e,n=this,i=n.constructor;return n.d?n.d[0]?(t=i.precision,e=i.rounding,i.precision=t+Math.max(n.e,n.sd())+m,i.rounding=1,n=at(i,Ge(i,n)),i.precision=t,i.rounding=e,g(B==2||B==3?n.neg():n,t,e,!0)):new i(1):new i(NaN)};p.cubeRoot=p.cbrt=function(){var t,e,n,i,r,s,o,d,c,a,u=this,f=u.constructor;if(!u.isFinite()||u.isZero())return new f(u);for(_=!1,s=u.s*D(u.s*u,1/3),!s||Math.abs(s)==1/0?(n=I(u.d),t=u.e,(s=(t-n.length+1)%3)&&(n+=s==1||s==-2?"0":"00"),s=D(n,1/3),t=x((t+1)/3)-(t%3==(t<0?-1:2)),s==1/0?n="5e"+t:(n=s.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),i=new f(n),i.s=u.s):i=new f(s.toString()),o=(t=f.precision)+3;;)if(d=i,c=d.times(d).times(d),a=c.plus(u),i=y(a.plus(u).times(d),a.plus(c),o+2,1),I(d.d).slice(0,o)===(n=I(i.d)).slice(0,o))if(n=n.slice(o-3,o+1),n=="9999"||!r&&n=="4999"){if(!r&&(g(d,t+1,0),d.times(d).times(d).eq(u))){i=d;break}o+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(g(i,t+1,1),e=!i.times(i).times(i).eq(u));break}return _=!0,g(i,t,f.rounding,e)};p.decimalPlaces=p.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-x(this.e/m))*m,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};p.dividedBy=p.div=function(t){return y(this,new this.constructor(t))};p.dividedToIntegerBy=p.divToInt=function(t){var e=this,n=e.constructor;return g(y(e,new n(t),0,1,1),n.precision,n.rounding)};p.equals=p.eq=function(t){return this.cmp(t)===0};p.floor=function(){return g(new this.constructor(this),this.e+1,3)};p.greaterThan=p.gt=function(t){return this.cmp(t)>0};p.greaterThanOrEqualTo=p.gte=function(t){var e=this.cmp(t);return e==1||e===0};p.hyperbolicCosine=p.cosh=function(){var t,e,n,i,r,s=this,o=s.constructor,d=new o(1);if(!s.isFinite())return new o(s.s?1/0:NaN);if(s.isZero())return d;n=o.precision,i=o.rounding,o.precision=n+Math.max(s.e,s.sd())+4,o.rounding=1,r=s.d.length,r<32?(t=Math.ceil(r/3),e=(1/ve(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),s=te(o,1,s.times(e),new o(1),!0);for(var c,a=t,u=new o(8);a--;)c=s.times(s),s=d.minus(c.times(u.minus(c.times(u))));return g(s,o.precision=n,o.rounding=i,!0)};p.hyperbolicSine=p.sinh=function(){var t,e,n,i,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(e=s.precision,n=s.rounding,s.precision=e+Math.max(r.e,r.sd())+4,s.rounding=1,i=r.d.length,i<3)r=te(s,2,r,r,!0);else{t=1.4*Math.sqrt(i),t=t>16?16:t|0,r=r.times(1/ve(5,t)),r=te(s,2,r,r,!0);for(var o,d=new s(5),c=new s(16),a=new s(20);t--;)o=r.times(r),r=r.times(d.plus(o.times(c.times(o).plus(a))))}return s.precision=e,s.rounding=n,g(r,e,n,!0)};p.hyperbolicTangent=p.tanh=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+7,i.rounding=1,y(n.sinh(),n.cosh(),i.precision=t,i.rounding=e)):new i(n.s)};p.inverseCosine=p.acos=function(){var t=this,e=t.constructor,n=t.abs().cmp(1),i=e.precision,r=e.rounding;return n!==-1?n===0?t.isNeg()?V(e,i,r):new e(0):new e(NaN):t.isZero()?V(e,i+4,r).times(.5):(e.precision=i+6,e.rounding=1,t=new e(1).minus(t).div(t.plus(1)).sqrt().atan(),e.precision=i,e.rounding=r,t.times(2))};p.inverseHyperbolicCosine=p.acosh=function(){var t,e,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(t=i.precision,e=i.rounding,i.precision=t+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,_=!1,n=n.times(n).minus(1).sqrt().plus(n),_=!0,i.precision=t,i.rounding=e,n.ln()):new i(n)};p.inverseHyperbolicSine=p.asinh=function(){var t,e,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,_=!1,n=n.times(n).plus(1).sqrt().plus(n),_=!0,i.precision=t,i.rounding=e,n.ln())};p.inverseHyperbolicTangent=p.atanh=function(){var t,e,n,i,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(t=s.precision,e=s.rounding,i=r.sd(),Math.max(i,t)<2*-r.e-1?g(new s(r),t,e,!0):(s.precision=n=i-r.e,r=y(r.plus(1),new s(1).minus(r),n+t,1),s.precision=t+4,s.rounding=1,r=r.ln(),s.precision=t,s.rounding=e,r.times(.5))):new s(NaN)};p.inverseSine=p.asin=function(){var t,e,n,i,r=this,s=r.constructor;return r.isZero()?new s(r):(e=r.abs().cmp(1),n=s.precision,i=s.rounding,e!==-1?e===0?(t=V(s,n+4,i).times(.5),t.s=r.s,t):new s(NaN):(s.precision=n+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=i,r.times(2)))};p.inverseTangent=p.atan=function(){var t,e,n,i,r,s,o,d,c,a=this,u=a.constructor,f=u.precision,l=u.rounding;if(a.isFinite()){if(a.isZero())return new u(a);if(a.abs().eq(1)&&f+4<=Ie)return o=V(u,f+4,l).times(.25),o.s=a.s,o}else{if(!a.s)return new u(NaN);if(f+4<=Ie)return o=V(u,f+4,l).times(.5),o.s=a.s,o}for(u.precision=d=f+10,u.rounding=1,n=Math.min(28,d/m+2|0),t=n;t;--t)a=a.div(a.times(a).plus(1).sqrt().plus(1));for(_=!1,e=Math.ceil(d/m),i=1,c=a.times(a),o=new u(a),r=a;t!==-1;)if(r=r.times(c),s=o.minus(r.div(i+=2)),r=r.times(c),o=s.plus(r.div(i+=2)),o.d[e]!==void 0)for(t=e;o.d[t]===s.d[t]&&t--;);return n&&(o=o.times(2<<n-1)),_=!0,g(o,u.precision=f,u.rounding=l,!0)};p.isFinite=function(){return!!this.d};p.isInteger=p.isInt=function(){return!!this.d&&x(this.e/m)>this.d.length-2};p.isNaN=function(){return!this.s};p.isNegative=p.isNeg=function(){return this.s<0};p.isPositive=p.isPos=function(){return this.s>0};p.isZero=function(){return!!this.d&&this.d[0]===0};p.lessThan=p.lt=function(t){return this.cmp(t)<0};p.lessThanOrEqualTo=p.lte=function(t){return this.cmp(t)<1};p.logarithm=p.log=function(t){var e,n,i,r,s,o,d,c,a=this,u=a.constructor,f=u.precision,l=u.rounding,h=5;if(t==null)t=new u(10),e=!0;else{if(t=new u(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new u(NaN);e=t.eq(10)}if(n=a.d,a.s<0||!n||!n[0]||a.eq(1))return new u(n&&!n[0]?-1/0:a.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)s=!0;else{for(r=n[0];r%10===0;)r/=10;s=r!==1}if(_=!1,d=f+h,o=K(a,d),i=e?ge(u,d+10):K(t,d),c=y(o,i,d,1),re(c.d,r=f,l))do if(d+=10,o=K(a,d),i=e?ge(u,d+10):K(t,d),c=y(o,i,d,1),!s){+I(c.d).slice(r+1,r+15)+1==1e14&&(c=g(c,f+1,0));break}while(re(c.d,r+=10,l));return _=!0,g(c,f,l)};p.minus=p.sub=function(t){var e,n,i,r,s,o,d,c,a,u,f,l,h=this,b=h.constructor;if(t=new b(t),!h.d||!t.d)return!h.s||!t.s?t=new b(NaN):h.d?t.s=-t.s:t=new b(t.d||h.s!==t.s?h:NaN),t;if(h.s!=t.s)return t.s=-t.s,h.plus(t);if(a=h.d,l=t.d,d=b.precision,c=b.rounding,!a[0]||!l[0]){if(l[0])t.s=-t.s;else if(a[0])t=new b(h);else return new b(c===3?-0:0);return _?g(t,d,c):t}if(n=x(t.e/m),u=x(h.e/m),a=a.slice(),s=u-n,s){for(f=s<0,f?(e=a,s=-s,o=l.length):(e=l,n=u,o=a.length),i=Math.max(Math.ceil(d/m),o)+2,s>i&&(s=i,e.length=1),e.reverse(),i=s;i--;)e.push(0);e.reverse()}else{for(i=a.length,o=l.length,f=i<o,f&&(o=i),i=0;i<o;i++)if(a[i]!=l[i]){f=a[i]<l[i];break}s=0}for(f&&(e=a,a=l,l=e,t.s=-t.s),o=a.length,i=l.length-o;i>0;--i)a[o++]=0;for(i=l.length;i>s;){if(a[--i]<l[i]){for(r=i;r&&a[--r]===0;)a[r]=j-1;--a[r],a[i]+=j}a[i]-=l[i]}for(;a[--o]===0;)a.pop();for(;a[0]===0;a.shift())--n;return a[0]?(t.d=a,t.e=_e(a,n),_?g(t,d,c):t):new b(c===3?-0:0)};p.modulo=p.mod=function(t){var e,n=this,i=n.constructor;return t=new i(t),!n.d||!t.s||t.d&&!t.d[0]?new i(NaN):!t.d||n.d&&!n.d[0]?g(new i(n),i.precision,i.rounding):(_=!1,i.modulo==9?(e=y(n,t.abs(),0,3,1),e.s*=t.s):e=y(n,t,0,i.modulo,1),e=e.times(t),_=!0,n.minus(e))};p.naturalExponential=p.exp=function(){return Me(this)};p.naturalLogarithm=p.ln=function(){return K(this)};p.negated=p.neg=function(){var t=new this.constructor(this);return t.s=-t.s,g(t)};p.plus=p.add=function(t){var e,n,i,r,s,o,d,c,a,u,f=this,l=f.constructor;if(t=new l(t),!f.d||!t.d)return!f.s||!t.s?t=new l(NaN):f.d||(t=new l(t.d||f.s===t.s?f:NaN)),t;if(f.s!=t.s)return t.s=-t.s,f.minus(t);if(a=f.d,u=t.d,d=l.precision,c=l.rounding,!a[0]||!u[0])return u[0]||(t=new l(f)),_?g(t,d,c):t;if(s=x(f.e/m),i=x(t.e/m),a=a.slice(),r=s-i,r){for(r<0?(n=a,r=-r,o=u.length):(n=u,i=s,o=a.length),s=Math.ceil(d/m),o=s>o?s+1:o+1,r>o&&(r=o,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for(o=a.length,r=u.length,o-r<0&&(r=o,n=u,u=a,a=n),e=0;r;)e=(a[--r]=a[r]+u[r]+e)/j|0,a[r]%=j;for(e&&(a.unshift(e),++i),o=a.length;a[--o]==0;)a.pop();return t.d=a,t.e=_e(a,i),_?g(t,d,c):t};p.precision=p.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Z+t);return n.d?(e=Ke(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};p.round=function(){var t=this,e=t.constructor;return g(new e(t),t.e+1,e.rounding)};p.sine=p.sin=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+Math.max(n.e,n.sd())+m,i.rounding=1,n=ut(i,Ge(i,n)),i.precision=t,i.rounding=e,g(B>2?n.neg():n,t,e,!0)):new i(NaN)};p.squareRoot=p.sqrt=function(){var t,e,n,i,r,s,o=this,d=o.d,c=o.e,a=o.s,u=o.constructor;if(a!==1||!d||!d[0])return new u(!a||a<0&&(!d||d[0])?NaN:d?o:1/0);for(_=!1,a=Math.sqrt(+o),a==0||a==1/0?(e=I(d),(e.length+c)%2==0&&(e+="0"),a=Math.sqrt(e),c=x((c+1)/2)-(c<0||c%2),a==1/0?e="5e"+c:(e=a.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),i=new u(e)):i=new u(a.toString()),n=(c=u.precision)+3;;)if(s=i,i=s.plus(y(o,s,n+2,1)).times(.5),I(s.d).slice(0,n)===(e=I(i.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!r&&e=="4999"){if(!r&&(g(s,c+1,0),s.times(s).eq(o))){i=s;break}n+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(i,c+1,1),t=!i.times(i).eq(o));break}return _=!0,g(i,c,u.rounding,t)};p.tangent=p.tan=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+10,i.rounding=1,n=n.sin(),n.s=1,n=y(n,new i(1).minus(n.times(n)).sqrt(),t+10,0),i.precision=t,i.rounding=e,g(B==2||B==4?n.neg():n,t,e,!0)):new i(NaN)};p.times=p.mul=function(t){var e,n,i,r,s,o,d,c,a,u=this,f=u.constructor,l=u.d,h=(t=new f(t)).d;if(t.s*=u.s,!l||!l[0]||!h||!h[0])return new f(!t.s||l&&!l[0]&&!h||h&&!h[0]&&!l?NaN:!l||!h?t.s/0:t.s*0);for(n=x(u.e/m)+x(t.e/m),c=l.length,a=h.length,c<a&&(s=l,l=h,h=s,o=c,c=a,a=o),s=[],o=c+a,i=o;i--;)s.push(0);for(i=a;--i>=0;){for(e=0,r=c+i;r>i;)d=s[r]+h[i]*l[r-i-1]+e,s[r--]=d%j|0,e=d/j|0;s[r]=(s[r]+e)%j|0}for(;!s[--o];)s.pop();return e?++n:s.shift(),t.d=s,t.e=_e(s,n),_?g(t,f.precision,f.rounding):t};p.toBinary=function(t,e){return Se(this,2,t,e)};p.toDecimalPlaces=p.toDP=function(t,e){var n=this,i=n.constructor;return n=new i(n),t===void 0?n:(F(t,0,z),e===void 0?e=i.rounding:F(e,0,8),g(n,t+n.e+1,e))};p.toExponential=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=U(i,!0):(F(t,0,z),e===void 0?e=r.rounding:F(e,0,8),i=g(new r(i),t+1,e),n=U(i,!0,t+1)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toFixed=function(t,e){var n,i,r=this,s=r.constructor;return t===void 0?n=U(r):(F(t,0,z),e===void 0?e=s.rounding:F(e,0,8),i=g(new s(r),t+r.e+1,e),n=U(i,!1,t+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};p.toFraction=function(t){var e,n,i,r,s,o,d,c,a,u,f,l,h=this,b=h.d,v=h.constructor;if(!b)return new v(h);if(a=n=new v(1),i=c=new v(0),e=new v(i),s=e.e=Ke(b)-h.e-1,o=s%m,e.d[0]=D(10,o<0?m+o:o),t==null)t=s>0?e:a;else{if(d=new v(t),!d.isInt()||d.lt(a))throw Error(Z+d);t=d.gt(e)?s>0?e:a:d}for(_=!1,d=new v(I(b)),u=v.precision,v.precision=s=b.length*m*2;f=y(d,e,0,1,1),r=n.plus(f.times(i)),r.cmp(t)!=1;)n=i,i=r,r=a,a=c.plus(f.times(r)),c=r,r=e,e=d.minus(f.times(r)),d=r;return r=y(t.minus(n),i,0,1,1),c=c.plus(r.times(a)),n=n.plus(r.times(i)),c.s=a.s=h.s,l=y(a,i,s,1).minus(h).abs().cmp(y(c,n,s,1).minus(h).abs())<1?[a,i]:[c,n],v.precision=u,_=!0,l};p.toHexadecimal=p.toHex=function(t,e){return Se(this,16,t,e)};p.toNearest=function(t,e){var n=this,i=n.constructor;if(n=new i(n),t==null){if(!n.d)return n;t=new i(1),e=i.rounding}else{if(t=new i(t),e===void 0?e=i.rounding:F(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(_=!1,n=y(n,t,0,e,1).times(t),_=!0,g(n)):(t.s=n.s,n=t),n};p.toNumber=function(){return+this};p.toOctal=function(t,e){return Se(this,8,t,e)};p.toPower=p.pow=function(t){var e,n,i,r,s,o,d=this,c=d.constructor,a=+(t=new c(t));if(!d.d||!t.d||!d.d[0]||!t.d[0])return new c(D(+d,a));if(d=new c(d),d.eq(1))return d;if(i=c.precision,s=c.rounding,t.eq(1))return g(d,i,s);if(e=x(t.e/m),e>=t.d.length-1&&(n=a<0?-a:a)<=ot)return r=Ze(c,d,n,i),t.s<0?new c(1).div(r):g(r,i,s);if(o=d.s,o<0){if(e<t.d.length-1)return new c(NaN);if((t.d[e]&1)==0&&(o=1),d.e==0&&d.d[0]==1&&d.d.length==1)return d.s=o,d}return n=D(+d,a),e=n==0||!isFinite(n)?x(a*(Math.log("0."+I(d.d))/Math.LN10+d.e+1)):new c(n+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?o/0:0):(_=!1,c.rounding=d.s=1,n=Math.min(12,(e+"").length),r=Me(t.times(K(d,i+n)),i),r.d&&(r=g(r,i+5,1),re(r.d,i,s)&&(e=i+10,r=g(Me(t.times(K(d,e+n)),e),e+5,1),+I(r.d).slice(i+1,i+15)+1==1e14&&(r=g(r,i+1,0)))),r.s=o,_=!0,c.rounding=s,g(r,i,s))};p.toPrecision=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=U(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(F(t,1,z),e===void 0?e=r.rounding:F(e,0,8),i=g(new r(i),t,e),n=U(i,t<=i.e||i.e<=r.toExpNeg,t)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toSignificantDigits=p.toSD=function(t,e){var n=this,i=n.constructor;return t===void 0?(t=i.precision,e=i.rounding):(F(t,1,z),e===void 0?e=i.rounding:F(e,0,8)),g(new i(n),t,e)};p.toString=function(){var t=this,e=t.constructor,n=U(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};p.truncated=p.trunc=function(){return g(new this.constructor(this),this.e+1,1)};p.valueOf=p.toJSON=function(){var t=this,e=t.constructor,n=U(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function I(t){var e,n,i,r=t.length-1,s="",o=t[0];if(r>0){for(s+=o,e=1;e<r;e++)i=t[e]+"",n=m-i.length,n&&(s+=H(n)),s+=i;o=t[e],i=o+"",n=m-i.length,n&&(s+=H(n))}else if(o===0)return"0";for(;o%10===0;)o/=10;return s+o}function F(t,e,n){if(t!==~~t||t<e||t>n)throw Error(Z+t)}function re(t,e,n,i){var r,s,o,d;for(s=t[0];s>=10;s/=10)--e;return--e<0?(e+=m,r=0):(r=Math.ceil((e+1)/m),e%=m),s=D(10,m-e),d=t[r]%s|0,i==null?e<3?(e==0?d=d/100|0:e==1&&(d=d/10|0),o=n<4&&d==99999||n>3&&d==49999||d==5e4||d==0):o=(n<4&&d+1==s||n>3&&d+1==s/2)&&(t[r+1]/s/100|0)==D(10,e-2)-1||(d==s/2||d==0)&&(t[r+1]/s/100|0)==0:e<4?(e==0?d=d/1e3|0:e==1?d=d/100|0:e==2&&(d=d/10|0),o=(i||n<4)&&d==9999||!i&&n>3&&d==4999):o=((i||n<4)&&d+1==s||!i&&n>3&&d+1==s/2)&&(t[r+1]/s/1e3|0)==D(10,e-3)-1,o}function fe(t,e,n){for(var i,r=[0],s,o=0,d=t.length;o<d;){for(s=r.length;s--;)r[s]*=e;for(r[0]+=Ne.indexOf(t.charAt(o++)),i=0;i<r.length;i++)r[i]>n-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/n|0,r[i]%=n)}return r.reverse()}function at(t,e){var n,i,r;if(e.isZero())return e;i=e.d.length,i<32?(n=Math.ceil(i/3),r=(1/ve(4,n)).toString()):(n=16,r="2.3283064365386962890625e-10"),t.precision+=n,e=te(t,1,e.times(r),new t(1));for(var s=n;s--;){var o=e.times(e);e=o.times(o).minus(o).times(8).plus(1)}return t.precision-=n,e}var y=function(){function t(i,r,s){var o,d=0,c=i.length;for(i=i.slice();c--;)o=i[c]*r+d,i[c]=o%s|0,d=o/s|0;return d&&i.unshift(d),i}function e(i,r,s,o){var d,c;if(s!=o)c=s>o?1:-1;else for(d=c=0;d<s;d++)if(i[d]!=r[d]){c=i[d]>r[d]?1:-1;break}return c}function n(i,r,s,o){for(var d=0;s--;)i[s]-=d,d=i[s]<r[s]?1:0,i[s]=d*o+i[s]-r[s];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,s,o,d,c){var a,u,f,l,h,b,v,A,N,L,k,S,de,q,Ee,ae,ie,Te,R,ce,ue=i.constructor,Ce=i.s==r.s?1:-1,O=i.d,E=r.d;if(!O||!O[0]||!E||!E[0])return new ue(!i.s||!r.s||(O?E&&O[0]==E[0]:!E)?NaN:O&&O[0]==0||!E?Ce*0:Ce/0);for(c?(h=1,u=i.e-r.e):(c=j,h=m,u=x(i.e/h)-x(r.e/h)),R=E.length,ie=O.length,N=new ue(Ce),L=N.d=[],f=0;E[f]==(O[f]||0);f++);if(E[f]>(O[f]||0)&&u--,s==null?(q=s=ue.precision,o=ue.rounding):d?q=s+(i.e-r.e)+1:q=s,q<0)L.push(1),b=!0;else{if(q=q/h+2|0,f=0,R==1){for(l=0,E=E[0],q++;(f<ie||l)&&q--;f++)Ee=l*c+(O[f]||0),L[f]=Ee/E|0,l=Ee%E|0;b=l||f<ie}else{for(l=c/(E[0]+1)|0,l>1&&(E=t(E,l,c),O=t(O,l,c),R=E.length,ie=O.length),ae=R,k=O.slice(0,R),S=k.length;S<R;)k[S++]=0;ce=E.slice(),ce.unshift(0),Te=E[0],E[1]>=c/2&&++Te;do l=0,a=e(E,k,R,S),a<0?(de=k[0],R!=S&&(de=de*c+(k[1]||0)),l=de/Te|0,l>1?(l>=c&&(l=c-1),v=t(E,l,c),A=v.length,S=k.length,a=e(v,k,A,S),a==1&&(l--,n(v,R<A?ce:E,A,c))):(l==0&&(a=l=1),v=E.slice()),A=v.length,A<S&&v.unshift(0),n(k,v,S,c),a==-1&&(S=k.length,a=e(E,k,R,S),a<1&&(l++,n(k,R<S?ce:E,S,c))),S=k.length):a===0&&(l++,k=[0]),L[f++]=l,a&&k[0]?k[S++]=O[ae]||0:(k=[O[ae]],S=1);while((ae++<ie||k[0]!==void 0)&&q--);b=k[0]!==void 0}L[0]||L.shift()}if(h==1)N.e=u,Xe=b;else{for(f=1,l=L[0];l>=10;l/=10)f++;N.e=f+u*h-1,g(N,d?s+N.e+1:s,o,b)}return N}}();function g(t,e,n,i){var r,s,o,d,c,a,u,f,l,h=t.constructor;e:if(e!=null){if(f=t.d,!f)return t;for(r=1,d=f[0];d>=10;d/=10)r++;if(s=e-r,s<0)s+=m,o=e,u=f[l=0],c=u/D(10,r-o-1)%10|0;else if(l=Math.ceil((s+1)/m),d=f.length,l>=d)if(i){for(;d++<=l;)f.push(0);u=c=0,r=1,s%=m,o=s-m+1}else break e;else{for(u=d=f[l],r=1;d>=10;d/=10)r++;s%=m,o=s-m+r,c=o<0?0:u/D(10,r-o-1)%10|0}if(i=i||e<0||f[l+1]!==void 0||(o<0?u:u%D(10,r-o-1)),a=n<4?(c||i)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||i||n==6&&(s>0?o>0?u/D(10,r-o):0:f[l-1])%10&1||n==(t.s<0?8:7)),e<1||!f[0])return f.length=0,a?(e-=t.e+1,f[0]=D(10,(m-e%m)%m),t.e=-e||0):f[0]=t.e=0,t;if(s==0?(f.length=l,d=1,l--):(f.length=l+1,d=D(10,m-s),f[l]=o>0?(u/D(10,r-o)%D(10,o)|0)*d:0),a)for(;;)if(l==0){for(s=1,o=f[0];o>=10;o/=10)s++;for(o=f[0]+=d,d=1;o>=10;o/=10)d++;s!=d&&(t.e++,f[0]==j&&(f[0]=1));break}else{if(f[l]+=d,f[l]!=j)break;f[l--]=0,d=1}for(s=f.length;f[--s]===0;)f.pop()}return _&&(t.e>h.maxE?(t.d=null,t.e=NaN):t.e<h.minE&&(t.e=0,t.d=[0])),t}function U(t,e,n){if(!t.isFinite())return Qe(t);var i,r=t.e,s=I(t.d),o=s.length;return e?(n&&(i=n-o)>0?s=s.charAt(0)+"."+s.slice(1)+H(i):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(t.e<0?"e":"e+")+t.e):r<0?(s="0."+H(-r-1)+s,n&&(i=n-o)>0&&(s+=H(i))):r>=o?(s+=H(r+1-o),n&&(i=n-r-1)>0&&(s=s+"."+H(i))):((i=r+1)<o&&(s=s.slice(0,i)+"."+s.slice(i)),n&&(i=n-o)>0&&(r+1===o&&(s+="."),s+=H(i))),s}function _e(t,e){var n=t[0];for(e*=m;n>=10;n/=10)e++;return e}function ge(t,e,n){if(e>dt)throw _=!0,n&&(t.precision=n),Error($e);return g(new t(pe),e,1,!0)}function V(t,e,n){if(e>Ie)throw Error($e);return g(new t(he),e,n,!0)}function Ke(t){var e=t.length-1,n=e*m+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function H(t){for(var e="";t--;)e+="0";return e}function Ze(t,e,n,i){var r,s=new t(1),o=Math.ceil(i/m+4);for(_=!1;;){if(n%2&&(s=s.times(e),Ve(s.d,o)&&(r=!0)),n=x(n/2),n===0){n=s.d.length-1,r&&s.d[n]===0&&++s.d[n];break}e=e.times(e),Ve(e.d,o)}return _=!0,s}function je(t){return t.d[t.d.length-1]&1}function ze(t,e,n){for(var i,r,s=new t(e[0]),o=0;++o<e.length;){if(r=new t(e[o]),!r.s){s=r;break}i=s.cmp(r),(i===n||i===0&&s.s===n)&&(s=r)}return s}function Me(t,e){var n,i,r,s,o,d,c,a=0,u=0,f=0,l=t.constructor,h=l.rounding,b=l.precision;if(!t.d||!t.d[0]||t.e>17)return new l(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:NaN);for(e==null?(_=!1,c=b):c=e,d=new l(.03125);t.e>-2;)t=t.times(d),f+=5;for(i=Math.log(D(2,f))/Math.LN10*2+5|0,c+=i,n=s=o=new l(1),l.precision=c;;){if(s=g(s.times(t),c,1),n=n.times(++u),d=o.plus(y(s,n,c,1)),I(d.d).slice(0,c)===I(o.d).slice(0,c)){for(r=f;r--;)o=g(o.times(o),c,1);if(e==null)if(a<3&&re(o.d,c-i,h,a))l.precision=c+=10,n=s=d=new l(1),u=0,a++;else return g(o,l.precision=b,h,_=!0);else return l.precision=b,o}o=d}}function K(t,e){var n,i,r,s,o,d,c,a,u,f,l,h=1,b=10,v=t,A=v.d,N=v.constructor,L=N.rounding,k=N.precision;if(v.s<0||!A||!A[0]||!v.e&&A[0]==1&&A.length==1)return new N(A&&!A[0]?-1/0:v.s!=1?NaN:A?0:v);if(e==null?(_=!1,u=k):u=e,N.precision=u+=b,n=I(A),i=n.charAt(0),Math.abs(s=v.e)<15e14){for(;i<7&&i!=1||i==1&&n.charAt(1)>3;)v=v.times(t),n=I(v.d),i=n.charAt(0),h++;s=v.e,i>1?(v=new N("0."+n),s++):v=new N(i+"."+n.slice(1))}else return a=ge(N,u+2,k).times(s+""),v=K(new N(i+"."+n.slice(1)),u-b).plus(a),N.precision=k,e==null?g(v,k,L,_=!0):v;for(f=v,c=o=v=y(v.minus(1),v.plus(1),u,1),l=g(v.times(v),u,1),r=3;;){if(o=g(o.times(l),u,1),a=c.plus(y(o,new N(r),u,1)),I(a.d).slice(0,u)===I(c.d).slice(0,u))if(c=c.times(2),s!==0&&(c=c.plus(ge(N,u+2,k).times(s+""))),c=y(c,new N(h),u,1),e==null)if(re(c.d,u-b,L,d))N.precision=u+=b,a=o=v=y(f.minus(1),f.plus(1),u,1),l=g(v.times(v),u,1),r=d=1;else return g(c,N.precision=k,L,_=!0);else return N.precision=k,c;c=a,r+=2}}function Qe(t){return String(t.s*t.s/0)}function le(t,e){var n,i,r;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charCodeAt(i)===48;i++);for(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(i,r),e){if(r-=i,t.e=n=n-i-1,t.d=[],i=(n+1)%m,n<0&&(i+=m),i<r){for(i&&t.d.push(+e.slice(0,i)),r-=m;i<r;)t.d.push(+e.slice(i,i+=m));e=e.slice(i),i=m-e.length}else i-=r;for(;i--;)e+="0";t.d.push(+e),_&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function ct(t,e){var n,i,r,s,o,d,c,a,u;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),He.test(e))return le(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(rt.test(e))n=16,e=e.toLowerCase();else if(it.test(e))n=2;else if(st.test(e))n=8;else throw Error(Z+e);for(s=e.search(/p/i),s>0?(c=+e.slice(s+1),e=e.substring(2,s)):e=e.slice(2),s=e.indexOf("."),o=s>=0,i=t.constructor,o&&(e=e.replace(".",""),d=e.length,s=d-s,r=Ze(i,new i(n),s,s*2)),a=fe(e,n,j),u=a.length-1,s=u;a[s]===0;--s)a.pop();return s<0?new i(t.s*0):(t.e=_e(a,u),t.d=a,_=!1,o&&(t=y(t,r,d*4)),c&&(t=t.times(Math.abs(c)<54?D(2,c):se.pow(2,c))),_=!0,t)}function ut(t,e){var n,i=e.d.length;if(i<3)return e.isZero()?e:te(t,2,e,e);n=1.4*Math.sqrt(i),n=n>16?16:n|0,e=e.times(1/ve(5,n)),e=te(t,2,e,e);for(var r,s=new t(5),o=new t(16),d=new t(20);n--;)r=e.times(e),e=e.times(s.plus(r.times(o.times(r).minus(d))));return e}function te(t,e,n,i,r){var s,o,d,c,a=1,u=t.precision,f=Math.ceil(u/m);for(_=!1,c=n.times(n),d=new t(i);;){if(o=y(d.times(c),new t(e++*e++),u,1),d=r?i.plus(o):i.minus(o),i=y(o.times(c),new t(e++*e++),u,1),o=d.plus(i),o.d[f]!==void 0){for(s=f;o.d[s]===d.d[s]&&s--;);if(s==-1)break}s=d,d=i,i=o,o=s,a++}return _=!0,o.d.length=f+1,o}function ve(t,e){for(var n=t;--e;)n*=t;return n}function Ge(t,e){var n,i=e.s<0,r=V(t,t.precision,1),s=r.times(.5);if(e=e.abs(),e.lte(s))return B=i?4:1,e;if(n=e.divToInt(r),n.isZero())B=i?3:2;else{if(e=e.minus(n.times(r)),e.lte(s))return B=je(n)?i?2:3:i?4:1,e;B=je(n)?i?1:4:i?3:2}return e.minus(r).abs()}function Se(t,e,n,i){var r,s,o,d,c,a,u,f,l,h=t.constructor,b=n!==void 0;if(b?(F(n,1,z),i===void 0?i=h.rounding:F(i,0,8)):(n=h.precision,i=h.rounding),!t.isFinite())u=Qe(t);else{for(u=U(t),o=u.indexOf("."),b?(r=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):r=e,o>=0&&(u=u.replace(".",""),l=new h(1),l.e=u.length-o,l.d=fe(U(l),10,r),l.e=l.d.length),f=fe(u,10,r),s=c=f.length;f[--c]==0;)f.pop();if(!f[0])u=b?"0p+0":"0";else{if(o<0?s--:(t=new h(t),t.d=f,t.e=s,t=y(t,l,n,i,0,r),f=t.d,s=t.e,a=Xe),o=f[n],d=r/2,a=a||f[n+1]!==void 0,a=i<4?(o!==void 0||a)&&(i===0||i===(t.s<0?3:2)):o>d||o===d&&(i===4||a||i===6&&f[n-1]&1||i===(t.s<0?8:7)),f.length=n,a)for(;++f[--n]>r-1;)f[n]=0,n||(++s,f.unshift(1));for(c=f.length;!f[c-1];--c);for(o=0,u="";o<c;o++)u+=Ne.charAt(f[o]);if(b){if(c>1)if(e==16||e==8){for(o=e==16?4:3,--c;c%o;c++)u+="0";for(f=fe(u,r,e),c=f.length;!f[c-1];--c);for(o=1,u="1.";o<c;o++)u+=Ne.charAt(f[o])}else u=u.charAt(0)+"."+u.slice(1);u=u+(s<0?"p":"p+")+s}else if(s<0){for(;++s;)u="0"+u;u="0."+u}else if(++s>c)for(s-=c;s--;)u+="0";else s<c&&(u=u.slice(0,s)+"."+u.slice(s))}u=(e==16?"0x":e==2?"0b":e==8?"0o":"")+u}return t.s<0?"-"+u:u}function Ve(t,e){if(t.length>e)return t.length=e,!0}function ft(t){return new this(t).abs()}function lt(t){return new this(t).acos()}function pt(t){return new this(t).acosh()}function ht(t,e){return new this(t).plus(e)}function gt(t){return new this(t).asin()}function mt(t){return new this(t).asinh()}function _t(t){return new this(t).atan()}function vt(t){return new this(t).atanh()}function bt(t,e){t=new this(t),e=new this(e);var n,i=this.precision,r=this.rounding,s=i+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=V(this,s,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?V(this,i,r):new this(0),n.s=t.s):!t.d||e.isZero()?(n=V(this,s,1).times(.5),n.s=t.s):e.s<0?(this.precision=s,this.rounding=1,n=this.atan(y(t,e,s,1)),e=V(this,s,1),this.precision=i,this.rounding=r,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(y(t,e,s,1)),n}function wt(t){return new this(t).cbrt()}function kt(t){return g(t=new this(t),t.e+1,2)}function yt(t,e,n){return new this(t).clamp(e,n)}function Et(t){if(!t||typeof t!="object")throw Error(me+"Object expected");var e,n,i,r=t.defaults===!0,s=["precision",1,z,"rounding",0,8,"toExpNeg",-ee,0,"toExpPos",0,ee,"maxE",0,ee,"minE",-ee,0,"modulo",0,9];for(e=0;e<s.length;e+=3)if(n=s[e],r&&(this[n]=De[n]),(i=t[n])!==void 0)if(x(i)===i&&i>=s[e+1]&&i<=s[e+2])this[n]=i;else throw Error(Z+n+": "+i);if(n="crypto",r&&(this[n]=De[n]),(i=t[n])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(qe);else this[n]=!1;else throw Error(Z+n+": "+i);return this}function Tt(t){return new this(t).cos()}function Ct(t){return new this(t).cosh()}function We(t){var e,n,i;function r(s){var o,d,c,a=this;if(!(a instanceof r))return new r(s);if(a.constructor=r,Ue(s)){a.s=s.s,_?!s.d||s.e>r.maxE?(a.e=NaN,a.d=null):s.e<r.minE?(a.e=0,a.d=[0]):(a.e=s.e,a.d=s.d.slice()):(a.e=s.e,a.d=s.d?s.d.slice():s.d);return}if(c=typeof s,c==="number"){if(s===0){a.s=1/s<0?-1:1,a.e=0,a.d=[0];return}if(s<0?(s=-s,a.s=-1):a.s=1,s===~~s&&s<1e7){for(o=0,d=s;d>=10;d/=10)o++;_?o>r.maxE?(a.e=NaN,a.d=null):o<r.minE?(a.e=0,a.d=[0]):(a.e=o,a.d=[s]):(a.e=o,a.d=[s]);return}if(s*0!==0){s||(a.s=NaN),a.e=NaN,a.d=null;return}return le(a,s.toString())}if(c==="string")return(d=s.charCodeAt(0))===45?(s=s.slice(1),a.s=-1):(d===43&&(s=s.slice(1)),a.s=1),He.test(s)?le(a,s):ct(a,s);if(c==="bigint")return s<0?(s=-s,a.s=-1):a.s=1,le(a,s.toString());throw Error(Z+s)}if(r.prototype=p,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=Et,r.clone=We,r.isDecimal=Ue,r.abs=ft,r.acos=lt,r.acosh=pt,r.add=ht,r.asin=gt,r.asinh=mt,r.atan=_t,r.atanh=vt,r.atan2=bt,r.cbrt=wt,r.ceil=kt,r.clamp=yt,r.cos=Tt,r.cosh=Ct,r.div=Nt,r.exp=Dt,r.floor=It,r.hypot=Mt,r.ln=St,r.log=Ot,r.log10=At,r.log2=xt,r.max=Ft,r.min=Pt,r.mod=Lt,r.mul=Rt,r.pow=jt,r.random=Vt,r.round=Ut,r.sign=Xt,r.sin=$t,r.sinh=qt,r.sqrt=Bt,r.sub=Ht,r.sum=Kt,r.tan=Zt,r.tanh=zt,r.trunc=Qt,t===void 0&&(t={}),t&&t.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)t.hasOwnProperty(n=i[e++])||(t[n]=this[n]);return r.config(t),r}function Nt(t,e){return new this(t).div(e)}function Dt(t){return new this(t).exp()}function It(t){return g(t=new this(t),t.e+1,3)}function Mt(){var t,e,n=new this(0);for(_=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return _=!0,new this(1/0);n=e}return _=!0,n.sqrt()}function Ue(t){return t instanceof se||t&&t.toStringTag===Be||!1}function St(t){return new this(t).ln()}function Ot(t,e){return new this(t).log(e)}function xt(t){return new this(t).log(2)}function At(t){return new this(t).log(10)}function Ft(){return ze(this,arguments,-1)}function Pt(){return ze(this,arguments,1)}function Lt(t,e){return new this(t).mod(e)}function Rt(t,e){return new this(t).mul(e)}function jt(t,e){return new this(t).pow(e)}function Vt(t){var e,n,i,r,s=0,o=new this(1),d=[];if(t===void 0?t=this.precision:F(t,1,z),i=Math.ceil(t/m),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));s<i;)r=e[s],r>=429e7?e[s]=crypto.getRandomValues(new Uint32Array(1))[0]:d[s++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);s<i;)r=e[s]+(e[s+1]<<8)+(e[s+2]<<16)+((e[s+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,s):(d.push(r%1e7),s+=4);s=i/4}else throw Error(qe);else for(;s<i;)d[s++]=Math.random()*1e7|0;for(i=d[--s],t%=m,i&&t&&(r=D(10,m-t),d[s]=(i/r|0)*r);d[s]===0;s--)d.pop();if(s<0)n=0,d=[0];else{for(n=-1;d[0]===0;n-=m)d.shift();for(i=1,r=d[0];r>=10;r/=10)i++;i<m&&(n-=m-i)}return o.e=n,o.d=d,o}function Ut(t){return g(t=new this(t),t.e+1,this.rounding)}function Xt(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function $t(t){return new this(t).sin()}function qt(t){return new this(t).sinh()}function Bt(t){return new this(t).sqrt()}function Ht(t,e){return new this(t).sub(e)}function Kt(){var t=0,e=arguments,n=new this(e[t]);for(_=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return _=!0,g(n,this.precision,this.rounding)}function Zt(t){return new this(t).tan()}function zt(t){return new this(t).tanh()}function Qt(t){return g(t=new this(t),t.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var se=p.constructor=We(De);pe=new se(pe);he=new se(he);var Je=se;import{BaseError as Gt}from"@cetusprotocol/common-sdk";var be=class extends Gt{constructor(e,n,i){super(e,n||"UnknownError",i)}static isXCetusErrorCode(e,n){return this.isErrorCode(e,n)}},M=(t,e,n)=>{throw e instanceof Error?new be(e.message,t,n):new be(e,t,n)};var G="router",oe="router",we=86400,Oe=1e3,W=1e11,P={min_lock_day:15,max_lock_day:180,max_percent_numerator:1e3,min_percent_numerator:500};import{d as xe,extractStructTagFromType as Ae,normalizeCoinType as Wt}from"@cetusprotocol/common-sdk";var X=class t{static buildVeNFTDividendInfo(e){let n={id:e.id.id,venft_id:e.name,rewards:[]};return e.value.fields.value.fields.dividends.fields.contents.forEach(i=>{let r=[];i.fields.value.fields.contents.forEach(s=>{let o=s.fields.value;xe(o).gt(0)&&r.push({coin_type:Ae(s.fields.key.fields.name).source_address,amount:o})}),r.length>0&&n.rewards.push({period:Number(i.fields.key),rewards:r,version:"v1"})}),n}static buildDividendManager(e){let n={id:e.id.id,dividends:{id:e.dividends.fields.id.id,size:e.dividends.fields.size},venft_dividends:{id:e.venft_dividends.fields.id.id,size:e.venft_dividends.fields.size},bonus_types:[],start_time:Number(e.start_time),interval_day:Number(e.interval_day),balances:{id:e.balances.fields.id.id,size:e.balances.fields.size},is_open:e.is_open};return e.bonus_types.forEach(i=>{n.bonus_types.push(Ae(i.fields.name).source_address)}),n}static buildLockUpManager(e){return{id:e.id.id,balance:e.balance,treasury_manager:e.treasury_manager,extra_treasury:e.extra_treasury,lock_infos:{lock_handle_id:e.lock_infos.fields.id.id,size:Number(e.lock_infos.fields.size)},type_name:Wt(e.type_name.fields.name),min_lock_day:Number(e.min_lock_day),max_lock_day:Number(e.max_lock_day),package_version:Number(e.package_version),max_percent_numerator:Number(e.max_percent_numerator),min_percent_numerator:Number(e.min_percent_numerator)}}static buildLockCetus(e){let n=e.fields,i={id:n.id.id,type:Ae(e.type).source_address,locked_start_time:Number(n.locked_start_time),locked_until_time:Number(n.locked_until_time),cetus_amount:n.balance,xcetus_amount:"0",lock_day:0};return i.lock_day=(i.locked_until_time-i.locked_start_time)/86400,i}static getAvailableXCetus(e,n){let i=xe(0);return n.forEach(r=>{i=i.add(r.xcetus_amount)}),xe(e.xcetus_balance).sub(i).toString()}static getWaitUnLockCetus(e){return e.filter(n=>!t.isLocked(n))}static getLockingCetus(e){return e.filter(n=>t.isLocked(n))}static isLocked(e){return e.locked_until_time>Date.parse(new Date().toString())/1e3}static buildDividendRewardTypeList(e,n){let i=new Set;return e?.forEach(r=>{r.rewards.forEach(s=>{i.add(s.coin_type)})}),n?.forEach(r=>{r.rewards.forEach(s=>{i.add(s.coin_type)})}),Array.from(i)}static buildDividendRewardTypeListV2(e){let n={};return e?.forEach(i=>{i.version==="v2"&&i.rewards.forEach(r=>{n[r.coin_type]||(n[r.coin_type]=[]),n[r.coin_type].push(i.period)})}),n}static getNextStartTime(e){let n=Date.now()/1e3,{start_time:i,interval_day:r}=e,s=Math.ceil((n-i)/(r*86400));return i+s*r*86400}};var ke=class{constructor(e){this._cache={};this._sdk=e}get sdk(){return this._sdk}async getOwnerVeNFT(e,n=!0){let{xcetus:i}=this.sdk.sdkOptions,r=`${e}_getLockUpManagerEvent`,s=this.getCache(r,n);if(s!==void 0)return s;let o,d=`${i.package_id}::xcetus::VeNFT`;try{return(await this._sdk.FullClient.getOwnedObjectsByPage(e,{options:{showType:!0,showContent:!0,showDisplay:!0},filter:{StructType:d}})).data.forEach(a=>{let u=Y(et(a)).source_address;if(u===d&&a.data&&a.data.content){let{fields:f}=a.data.content;o={...Jt(a),id:f.id.id,index:f.index,type:u,xcetus_balance:f.xcetus_balance},this.updateCache(r,o,J)}}),o}catch(c){return M("InvalidAccountAddress",c,{[w.METHOD_NAME]:"getOwnerVeNFT",[w.REQUEST_PARAMS]:{account_address:e}})}}async getOwnerRedeemLockList(e){let{xcetus:n}=this.sdk.sdkOptions,i=[],r=Y(this.buildCetusCoinType()).full_address,s=`${n.package_id}::lock_coin::LockedCoin<${r}>`;try{let o=await this._sdk.FullClient.getOwnedObjectsByPage(e,{options:{showType:!0,showContent:!0},filter:{StructType:s}});for(let d of o.data)if(Y(et(d)).source_address===s&&d.data){let a=X.buildLockCetus(d.data.content);a.xcetus_amount=await this.getXCetusAmount(a.id),i.push(a)}return i}catch(o){return M("InvalidAccountAddress",o,{[w.METHOD_NAME]:"getOwnerRedeemLockList",[w.REQUEST_PARAMS]:{account_address:e}})}}async getLockCetus(e){try{let n=await this._sdk.FullClient.getObject({id:e,options:{showType:!0,showContent:!0}});if(n.data?.content){let i=X.buildLockCetus(n.data.content);return i.xcetus_amount=await this.getXCetusAmount(i.id),i}return}catch(n){return M("InvalidLockId",n,{[w.METHOD_NAME]:"getLockCetus",[w.REQUEST_PARAMS]:{lock_id:e}})}}async getOwnerCetusCoins(e){try{return await this._sdk.FullClient.getOwnerCoinAssets(e,this.buildCetusCoinType())}catch(n){return M("InvalidAccountAddress",n,{[w.METHOD_NAME]:"getOwnerCetusCoins",[w.REQUEST_PARAMS]:{account_address:e}})}}mintVeNFTPayload(){let{xcetus:e}=this.sdk.sdkOptions,n=new $;return n.moveCall({target:`${e.published_at}::${G}::mint_venft`,typeArguments:[],arguments:[n.object(T(e)?.xcetus_manager_id)]}),n}convertPayload(e,n){let{xcetus:i}=this.sdk.sdkOptions;n=n||new $;let r=this.buildCetusCoinType();n.setSender(this._sdk.getSenderAddress());let s=tn.buildCoinWithBalance(BigInt(e.amount),r,n);return e.venft_id===void 0?n.moveCall({target:`${i.published_at}::${G}::mint_and_convert`,typeArguments:[],arguments:[n.object(T(i)?.lock_manager_id),n.object(T(i)?.xcetus_manager_id),n.makeMoveVec({elements:[s]}),n.pure.u64(e.amount)]}):n.moveCall({target:`${i.published_at}::${G}::convert`,typeArguments:[],arguments:[n.object(T(i)?.lock_manager_id),n.object(T(i)?.xcetus_manager_id),n.makeMoveVec({elements:[s]}),n.pure.u64(e.amount),n.object(e.venft_id)]}),n}redeemLockPayload(e){let{xcetus:n}=this.sdk.sdkOptions,i=new $;return i.moveCall({target:`${n.published_at}::${G}::redeem_lock`,typeArguments:[],arguments:[i.object(T(n)?.lock_manager_id),i.object(T(n)?.xcetus_manager_id),i.object(e.venft_id),i.pure.u64(e.amount),i.pure.u64(e.lock_day),i.object(ne)]}),i}redeemPayload(e){let{xcetus:n}=this.sdk.sdkOptions,i=new $;return i.moveCall({target:`${n.published_at}::${G}::redeem`,typeArguments:[],arguments:[i.object(T(n)?.lock_manager_id),i.object(T(n)?.xcetus_manager_id),i.object(e.venft_id),i.object(e.lock_id),i.object(ne)]}),i}redeemDividendPayload(e,n){let{xcetus:i,xcetus_dividends:r}=this.sdk.sdkOptions,s=new $;return n.forEach(o=>{s.moveCall({target:`${i.published_at}::${oe}::redeem`,typeArguments:[o],arguments:[s.object(T(r)?.dividend_manager_id),s.object(e)]})}),s}redeemDividendV2Payload(e,n,i){let{xcetus_dividends:r}=this.sdk.sdkOptions,s=new $;return n.filter(d=>i.includes(d)).length>0&&(s=this.redeemDividendXTokenPayload(e,s)),n.forEach(d=>{i.includes(d)||s.moveCall({target:`${r.published_at}::${oe}::redeem_v2`,typeArguments:[d],arguments:[s.object(T(r)?.dividend_manager_id),s.object(e),s.object(ne)]})}),s}redeemDividendV3Payload(e,n){let{xcetus_dividends:i}=this.sdk.sdkOptions,r=new $,s=X.buildDividendRewardTypeList(n),o=X.buildDividendRewardTypeListV2(n),d=Y(this.buildXTokenCoinType()).full_address;return s.find(a=>Y(a).full_address===d)!==void 0&&this.redeemDividendXTokenPayload(e,r),s.forEach(a=>{r.moveCall({target:`${i.published_at}::${oe}::redeem_v3`,typeArguments:[a],arguments:[r.object(T(i)?.dividend_manager_id),r.object(T(i)?.venft_dividends_id),r.makeMoveVec({elements:o[a].map(u=>r.pure.u64(u)),type:"u64"}),r.object(e),r.object(ne)]})}),r}redeemDividendXTokenPayload(e,n){let{xcetus_dividends:i,xcetus:r}=this.sdk.sdkOptions,{xcetus_manager_id:s,lock_manager_id:o}=T(r),{dividend_manager_id:d}=T(i);return n=n===void 0?new $:n,n.moveCall({target:`${i.published_at}::${oe}::redeem_xtoken`,typeArguments:[],arguments:[n.object(o),n.object(s),n.object(d),n.object(e),n.object(ne)]}),n}buildCetusCoinType(){return`${this.sdk.sdkOptions.cetus_faucet.package_id}::cetus::CETUS`}buildXTokenCoinType(e=this._sdk.sdkOptions.xcetus.package_id,n="xcetus",i="XCETUS"){return`${e}::${n}::${i}`}cancelRedeemPayload(e){let{xcetus:n}=this.sdk.sdkOptions,i=new $;return i.moveCall({target:`${n.published_at}::${G}::cancel_redeem_lock`,typeArguments:[],arguments:[i.object(T(n).lock_manager_id),i.object(T(n).xcetus_manager_id),i.object(e.venft_id),i.object(e.lock_id),i.object(ne)]}),i}async getInitConfigs(){let{package_id:e}=this.sdk.sdkOptions.xcetus,n=`${e}_getInitFactoryEvent`,i=this.getCache(n);if(i!==void 0)return i;let r=(await this._sdk.FullClient.queryEventsByPage({MoveEventType:`${e}::xcetus::InitEvent`}))?.data,s={xcetus_manager_id:"",lock_manager_id:"",lock_handle_id:""};r.length>0&&r.forEach(d=>{let c=d.parsedJson;c&&(s.xcetus_manager_id=c.xcetus_manager)});let o=(await this._sdk.FullClient.queryEventsByPage({MoveEventType:`${e}::locking::InitializeEvent`}))?.data;o.length>0&&o.forEach(d=>{let c=d.parsedJson;c&&(s.lock_manager_id=c.lock_manager)});try{if(s.lock_manager_id.length>0){let d=await this.getLockUpManager(s.lock_manager_id);d&&d?.lock_infos.lock_handle_id&&(s.lock_handle_id=d?.lock_infos.lock_handle_id)}return this.updateCache(n,s,J),s}catch(d){return M("FetchError",d,{[w.METHOD_NAME]:"getInitConfigs"})}}async getLockUpManager(e=T(this.sdk.sdkOptions.xcetus).lock_manager_id,n=!1){let i=`${e}_getLockUpManager`,r=this.getCache(i,n);if(r!==void 0)return r;try{let s=await this.sdk.FullClient.getObject({id:e,options:{showContent:!0}}),o=X.buildLockUpManager(Q(s));return this.updateCache(i,o,J),o}catch(s){return M("InvalidLockManagerId",s,{[w.METHOD_NAME]:"getLockUpManager",[w.REQUEST_PARAMS]:{lock_manager_id:e}})}}async getDividendConfigs(){let{package_id:e}=this.sdk.sdkOptions.xcetus_dividends,{dividend_manager_id:n,venft_dividends_id:i}=T(this._sdk.sdkOptions.xcetus_dividends),r=`${e}_getDividendManagerEvent`,s=this.getCache(r);if(s!==void 0)return s;try{let o=(await this._sdk.FullClient.queryEventsByPage({MoveEventType:`${e}::dividend::InitEvent`}))?.data,d=await this._sdk.FullClient.getDynamicFieldObject({parentId:n,name:{type:"0x1::string::String",value:"VeNFTDividends"}}),c={dividend_manager_id:"",dividend_admin_id:"",dividend_settle_id:"",venft_dividends_id:"",venft_dividends_id_v2:""};o.length>0&&o.forEach(u=>{let f=u.parsedJson;f&&(c.dividend_manager_id=f.manager_id,c.dividend_admin_id=f.admin_id,c.dividend_settle_id=f.settle_id,this.updateCache(r,c,J))}),d&&d.data&&d.data.content&&(c.venft_dividends_id=d.data.content?.fields?.value,this.updateCache(r,c,J));let a=await this._sdk.FullClient.getObject({id:i,options:{showContent:!0}});return c.venft_dividends_id_v2=a.data.content.fields.venft_dividends.fields.id.id,c}catch(o){return M("FetchError",o,{[w.METHOD_NAME]:"getDividendConfigs"})}}async getDividendManager(e=!1){let{dividend_manager_id:n}=T(this._sdk.sdkOptions.xcetus_dividends),i=`${n}_getDividendManager`,r=this.getCache(i,e);if(r!==void 0)return r;try{let s=await this._sdk.FullClient.getObject({id:n,options:{showContent:!0}}),o=Q(s),d=X.buildDividendManager(o);return this.updateCache(i,d,J),d}catch(s){return M("FetchError",s,{[w.METHOD_NAME]:"getDividendManager"})}}async getXcetusManager(e=!0){let{xcetus_manager_id:n}=T(this._sdk.sdkOptions.xcetus),i=`${n}_getXcetusManager`,r=this.getCache(i,e);if(r)return r;try{let s=await this._sdk.FullClient.getObject({id:n,options:{showContent:!0}}),o=Q(s),d={id:o.id.id,index:Number(o.index),has_venft:{handle:o.has_venft.fields.id.id,size:o.has_venft.fields.size},nfts:{handle:o.nfts.fields.id.id,size:o.nfts.fields.size},total_locked:o.total_locked,treasury:o.treasury.fields.total_supply.fields.value};return this.updateCache(i,d),d}catch(s){return M("FetchError",s,{[w.METHOD_NAME]:"getXcetusManager"})}}async fetchDividendInfo(e){let{xcetus_dividends:n}=this._sdk.sdkOptions,{dividend_manager_id:i,venft_dividends_id:r}=T(n),s=new $;s.moveCall({target:`${n.published_at}::dividend::fetch_dividend_info_v2`,typeArguments:[],arguments:[s.object(i),s.object(r),s.object(e)]});try{let o=await this._sdk.FullClient.devInspectTransactionBlock({transactionBlock:s,sender:this._sdk.getSenderAddress()}),{contents:d}=o.events[0].parsedJson.info,c={id:"",venft_id:e,rewards:[]};return d.forEach(a=>{let u=[],f=a.key,{contents:l}=a.value;l.forEach(h=>{C(h.value).gt(0)&&u.push({coin_type:Y(h.key.name).source_address,amount:h.value})}),u.length>0&&c.rewards.push({period:Number(f),rewards:u,version:Number(f)>66?"v2":"v1"})}),c}catch(o){M("InvalidVeNftId",o,{[w.METHOD_NAME]:"fetchDividendInfo",[w.REQUEST_PARAMS]:{venft_id:e}})}}async getVeNFTDividendInfo(e){try{return await this.fetchDividendInfo(e)}catch{try{return await this.getVeNFTDividendInfoV2(e)}catch(i){return console.log("getVeNFTDividendInfo",i),M("InvalidVeNftId",i,{[w.METHOD_NAME]:"getVeNFTDividendInfo",[w.REQUEST_PARAMS]:{venft_id:e}})}}}async getVeNFTDividendInfoV2(e){let{xcetus_dividends:n}=this._sdk.sdkOptions,{venft_dividends_id_v2:i}=T(n),r={id:"",venft_id:e,rewards:[]},s=[];try{let o=await this._sdk.FullClient.getDynamicFieldObject({parentId:i,name:{type:"0x2::object::ID",value:e}}),d=Q(o).value.fields.value.fields.dividends.fields.id.id,c=null,a=50,u=[];for(;;){let l=await this._sdk.FullClient.getDynamicFields({parentId:d,cursor:c,limit:a});if(l.data.forEach(h=>{u.push(h.objectId)}),c=l.nextCursor,c===null||l.data.length<a)break}(await this._sdk.FullClient.batchGetObjects(u,{showType:!0,showContent:!0})).forEach(l=>{s.push({period:Number(l.data.content.fields.name),version:"v2",rewards:l.data.content.fields.value.fields.contents.map(h=>({coin_type:Y(h.fields.key.fields.name).source_address,amount:h.fields.value}))})})}catch(o){return console.log("getVeNFTDividendInfoV2",o),M("InvalidVeNftId",o,{[w.METHOD_NAME]:"getVeNFTDividendInfoV2",[w.REQUEST_PARAMS]:{venft_id:e}})}return{...r,rewards:[...s]}}async getVeNFTDividendInfoV1(e){let{xcetus_dividends:n}=this._sdk.sdkOptions,{venft_dividends_id:i}=T(n),r={id:"",venft_id:e,rewards:[]};try{let s=await this._sdk.FullClient.getDynamicFieldObject({parentId:i,name:{type:"0x2::object::ID",value:e}}),o=Q(s);r=X.buildVeNFTDividendInfo(o)}catch(s){return console.log("getVeNFTDividendInfoV1 ~ error:",s),M("InvalidVeNftId",s,{[w.METHOD_NAME]:"getVeNFTDividendInfoV1",[w.REQUEST_PARAMS]:{venft_id:e}})}return r}redeemNum(e,n){if(BigInt(e)===BigInt(0))return{amount_out:"0",percent:"0"};let i=C(1e11).mul(C(P.max_lock_day).sub(C(n))).mul(C(P.max_percent_numerator).sub(C(P.min_percent_numerator))).div(C(P.max_lock_day).sub(C(P.min_lock_day))),r=C(1e11).mul(C(P.max_percent_numerator)).sub(i).div(C(1e3)).div(1e11);return{amount_out:C(r).mul(C(e)).round().toString(),percent:r.toString()}}reverseRedeemNum(e,n){if(BigInt(e)===BigInt(0))return{amount_out:"0",percent:"0"};let i=C(1e11).mul(C(P.max_lock_day).sub(C(n))).mul(C(P.max_percent_numerator).sub(C(P.min_percent_numerator))).div(C(P.max_lock_day).sub(C(P.min_lock_day))),r=C(1e11).mul(C(P.max_percent_numerator)).sub(i).div(C(1e3)).div(1e11);return{amount_out:C(e).div(r).toFixed(0,Je.ROUND_UP),percent:r.toString()}}async getXCetusAmount(e){let{lock_handle_id:n}=T(this._sdk.sdkOptions.xcetus),i=`${e}_getXCetusAmount`,r=this.getCache(i);if(r!==void 0)return r;try{let s=await this.sdk.FullClient.getDynamicFieldObject({parentId:n,name:{type:"0x2::object::ID",value:e}}),o=Q(s);if(o){let{xcetus_amount:d}=o.value.fields.value.fields;return this.updateCache(i,d,J),d}}catch(s){console.log("getXCetusAmount",s),M("InvalidLockId",s,{[w.METHOD_NAME]:"getXCetusAmount",[w.REQUEST_PARAMS]:{lock_id:e}})}return"0"}async getVeNftAmount(e,n){try{let i=await this.sdk.FullClient.getDynamicFieldObject({parentId:e,name:{type:"0x2::object::ID",value:n}}),r=Q(i);if(r){let{lock_amount:s,xcetus_amount:o}=r.value.fields.value.fields;return{lock_amount:s,xcetus_amount:o}}}catch(i){console.log("getVeNftAmount",i),M("FetchError",i,{[w.METHOD_NAME]:"getVeNftAmount",[w.REQUEST_PARAMS]:{nft_handle_id:e,venft_id:n}})}return{lock_amount:"0",xcetus_amount:"0"}}async getPhaseDividendInfo(e,n=!1){try{let i=await this.getDividendManager();if(i){let r=i.dividends.id,s=`${r}_${e}_getPhaseDividendInfo`,o=this._sdk.getCache(s,n);if(o)return o;let d=await this._sdk.FullClient.getDynamicFieldObject({parentId:r,name:{type:"u64",value:e}}),c=Q(d),a=c.value.fields.value.fields,u=a.redeemed_num.fields.contents.map(b=>({name:b.fields.key.fields.name,value:b.fields.value})),f=a.bonus_types.map(b=>b.fields.name),l=a.bonus.fields.contents.map(b=>({name:b.fields.key.fields.name,value:b.fields.value})),h={id:nn(d),phase:c.name,settled_num:a.settled_num,register_time:a.register_time,redeemed_num:u,is_settled:a.is_settled,bonus_types:f,bonus:l,phase_end_time:""};return this.updateCache(s,h),h}}catch(i){console.log("getPhaseDividendInfo",i),M("InvalidPhase",i,{[w.METHOD_NAME]:"getPhaseDividendInfo",[w.REQUEST_PARAMS]:{phase:e}})}}updateCache(e,n,i=Yt){let r=this._cache[e];r?(r.overdue_time=Ye(i),r.value=n):r=new en(n,Ye(i)),this._cache[e]=r}getCache(e,n=!1){let i=this._cache[e];if(!n&&i?.isValid())return i.value;delete this._cache[e]}};var ye=class t extends rn{constructor(e){super(e),this._xcetusModule=new ke(this)}get XCetusModule(){return this._xcetusModule}static createSDK(e){let{env:n="mainnet",full_rpc_url:i}=e;return n==="mainnet"?t.createCustomSDK({...Pe,...e}):t.createCustomSDK({...Re,...e})}static createCustomSDK(e){return new t(e)}};var Xn=ye;export{ye as CetusXcetusSDK,oe as DividendsRouterModule,Oe as EXCHANGE_RATE_MULTIPLIER,we as ONE_DAY_SECONDS,W as REDEEM_NUM_MULTIPLIER,ke as XCetusModule,X as XCetusUtil,G as XcetusRouterModule,Xn as default,P as defaultLockUpConfig,Pe as xcetus_mainnet,Re as xcetus_testnet};
|
|
1
|
+
import{SdkWrapper as rn}from"@cetusprotocol/common-sdk";import{FullRpcUrlMainnet as tt}from"@cetusprotocol/common-sdk";var Fe={xcetusConfig:{xcetus_manager_id:"0x838b3dbade12b1e602efcaf8c8b818fae643e43176462bf14fd196afa59d1d9d",lock_manager_id:"0x288b59d9dedb51d0bb6cb5e13bfb30885ecf44f8c9076b6f5221c5ef6644fd28",lock_handle_id:"0x7c534bb7b8a2cc21538d0dbedd2437cc64f47106cb4c259b9ff921b5c3cb1a49"},xcetusDividendsConfig:{dividend_manager_id:"0x721c990bfc031d074341c6059a113a59c1febfbd2faeb62d49dcead8408fa6b5",dividend_admin_id:"0x682ba823134f156eac2bcfb27d85a284954a0e61998dc628c40b9bcb4a46ff30",dividend_settle_id:"0xade40abe9f6dd10b83b11085be18f07b63b681cf1c169b041fa16854403388c5",venft_dividends_id:"0x9dcdb97b4307684bedaeaf803d381b12321a31ecbb9dad7df2cd5f64384f9456",venft_dividends_id_v2:"0xaa21fbc1707786d56302952f8327362f4eb9a431a5bc574834e6d46125390de3"}},Pe={full_rpc_url:tt,xcetus:{package_id:"0x9e69acc50ca03bc943c4f7c5304c2a6002d507b51c11913b247159c60422c606",published_at:"0x07d45ee8fc56ddce3232304c1191f3c0319fa8240305c5ee2231a2da7cbb49e6",version:2,config:Fe.xcetusConfig},xcetus_dividends:{package_id:"0x785248249ac457dfd378bdc6d2fbbfec9d1daf65e9d728b820eb4888c8da2c10",published_at:"0x5aa58e1623885bd93de2331d05c29bf4930e54e56beeabcab8fe5385de2d31dc",version:4,config:Fe.xcetusDividendsConfig},cetus_faucet:{package_id:"0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",published_at:"0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b"},env:"mainnet"};import{FullRpcUrlTestnet as nt}from"@cetusprotocol/common-sdk";var Le={xcetusConfig:{xcetus_manager_id:"0x3be34cbad122c8b100ed7157d762b9610e68b3c65734e08bc3c3baf857da807d",lock_manager_id:"0x7c67e805182e3fecd098bd68a6b06c317f28f8c6249bd771e07904a10b424e60",lock_handle_id:"0xc5f3bbfefe9a45c13da7a34bc72cac122ee45d633690476a8ac56bd2c4e78c86"},xcetusDividendsConfig:{dividend_manager_id:"0x9d1be1a6b1146b30448a266bc87127466c0bae1585750c42adffce3e25e1ab6d",dividend_admin_id:"0x36d63c1a588bd93775aff8f47538a0063960564f0a171d100a9f49526a872b92",dividend_settle_id:"0x9eb78595419560b1dcaa9fb0ca307921ab1664a5f63c877c6887ab696344b400",venft_dividends_id:"0xc31a85fa5a77fc1def0dc5b2aadc5317a9d744ffda24b472e56a646711770676",venft_dividends_id_v2:"0x53b24031120730f6e4a733526147917650b1ecd3c56b43164b69eaa74f9b9ff7"}},Re={full_rpc_url:nt,xcetus:{package_id:"0xdebaab6b851fd3414c0a62dbdf8eb752d6b0d31f5cfce5e38541bc6c6daa8966",published_at:"0xdebaab6b851fd3414c0a62dbdf8eb752d6b0d31f5cfce5e38541bc6c6daa8966",version:1,config:Le.xcetusConfig},xcetus_dividends:{package_id:"0x4061e279415a3c45cfd31554d38c5b3bb0e06c65833811a98a66f469e04c69c3",published_at:"0xfeda040996e722ba532ab2203d13333484024456ca38bf4adeb526ce1457332d",version:1,config:Le.xcetusDividendsConfig},cetus_faucet:{package_id:"0x1a69aee6be709054750949959a67aedbb4200583b39586d5e3eabe57f40012c7",published_at:"0x1a69aee6be709054750949959a67aedbb4200583b39586d5e3eabe57f40012c7"},env:"testnet"};import{Transaction as $}from"@mysten/sui/transactions";import{buildNFT as Jt,CACHE_TIME_24H as J,CACHE_TIME_5MIN as Yt,CachedContent as en,CLOCK_ADDRESS as ne,CoinAssist as tn,d as C,DETAILS_KEYS as w,extractStructTagFromType as Y,getFutureTime as Ye,getMoveObjectType as et,getObjectFields as Q,getObjectId as nn,getPackagerConfigs as T}from"@cetusprotocol/common-sdk";var ee=9e15,z=1e9,Ne="0123456789abcdef",pe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",he="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",De={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ee,maxE:ee,crypto:!1},Xe,B,_=!0,me="[DecimalError] ",Z=me+"Invalid argument: ",$e=me+"Precision limit exceeded",qe=me+"crypto unavailable",Be="[object Decimal]",x=Math.floor,D=Math.pow,it=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,rt=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,st=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,He=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,j=1e7,m=7,ot=9007199254740991,dt=pe.length-1,Ie=he.length-1,p={toStringTag:Be};p.absoluteValue=p.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),g(t)};p.ceil=function(){return g(new this.constructor(this),this.e+1,2)};p.clampedTo=p.clamp=function(t,e){var n,i=this,r=i.constructor;if(t=new r(t),e=new r(e),!t.s||!e.s)return new r(NaN);if(t.gt(e))throw Error(Z+e);return n=i.cmp(t),n<0?t:i.cmp(e)>0?e:new r(i)};p.comparedTo=p.cmp=function(t){var e,n,i,r,s=this,o=s.d,d=(t=new s.constructor(t)).d,c=s.s,a=t.s;if(!o||!d)return!c||!a?NaN:c!==a?c:o===d?0:!o^c<0?1:-1;if(!o[0]||!d[0])return o[0]?c:d[0]?-a:0;if(c!==a)return c;if(s.e!==t.e)return s.e>t.e^c<0?1:-1;for(i=o.length,r=d.length,e=0,n=i<r?i:r;e<n;++e)if(o[e]!==d[e])return o[e]>d[e]^c<0?1:-1;return i===r?0:i>r^c<0?1:-1};p.cosine=p.cos=function(){var t,e,n=this,i=n.constructor;return n.d?n.d[0]?(t=i.precision,e=i.rounding,i.precision=t+Math.max(n.e,n.sd())+m,i.rounding=1,n=at(i,Ge(i,n)),i.precision=t,i.rounding=e,g(B==2||B==3?n.neg():n,t,e,!0)):new i(1):new i(NaN)};p.cubeRoot=p.cbrt=function(){var t,e,n,i,r,s,o,d,c,a,u=this,f=u.constructor;if(!u.isFinite()||u.isZero())return new f(u);for(_=!1,s=u.s*D(u.s*u,1/3),!s||Math.abs(s)==1/0?(n=I(u.d),t=u.e,(s=(t-n.length+1)%3)&&(n+=s==1||s==-2?"0":"00"),s=D(n,1/3),t=x((t+1)/3)-(t%3==(t<0?-1:2)),s==1/0?n="5e"+t:(n=s.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),i=new f(n),i.s=u.s):i=new f(s.toString()),o=(t=f.precision)+3;;)if(d=i,c=d.times(d).times(d),a=c.plus(u),i=y(a.plus(u).times(d),a.plus(c),o+2,1),I(d.d).slice(0,o)===(n=I(i.d)).slice(0,o))if(n=n.slice(o-3,o+1),n=="9999"||!r&&n=="4999"){if(!r&&(g(d,t+1,0),d.times(d).times(d).eq(u))){i=d;break}o+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(g(i,t+1,1),e=!i.times(i).times(i).eq(u));break}return _=!0,g(i,t,f.rounding,e)};p.decimalPlaces=p.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-x(this.e/m))*m,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};p.dividedBy=p.div=function(t){return y(this,new this.constructor(t))};p.dividedToIntegerBy=p.divToInt=function(t){var e=this,n=e.constructor;return g(y(e,new n(t),0,1,1),n.precision,n.rounding)};p.equals=p.eq=function(t){return this.cmp(t)===0};p.floor=function(){return g(new this.constructor(this),this.e+1,3)};p.greaterThan=p.gt=function(t){return this.cmp(t)>0};p.greaterThanOrEqualTo=p.gte=function(t){var e=this.cmp(t);return e==1||e===0};p.hyperbolicCosine=p.cosh=function(){var t,e,n,i,r,s=this,o=s.constructor,d=new o(1);if(!s.isFinite())return new o(s.s?1/0:NaN);if(s.isZero())return d;n=o.precision,i=o.rounding,o.precision=n+Math.max(s.e,s.sd())+4,o.rounding=1,r=s.d.length,r<32?(t=Math.ceil(r/3),e=(1/ve(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),s=te(o,1,s.times(e),new o(1),!0);for(var c,a=t,u=new o(8);a--;)c=s.times(s),s=d.minus(c.times(u.minus(c.times(u))));return g(s,o.precision=n,o.rounding=i,!0)};p.hyperbolicSine=p.sinh=function(){var t,e,n,i,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(e=s.precision,n=s.rounding,s.precision=e+Math.max(r.e,r.sd())+4,s.rounding=1,i=r.d.length,i<3)r=te(s,2,r,r,!0);else{t=1.4*Math.sqrt(i),t=t>16?16:t|0,r=r.times(1/ve(5,t)),r=te(s,2,r,r,!0);for(var o,d=new s(5),c=new s(16),a=new s(20);t--;)o=r.times(r),r=r.times(d.plus(o.times(c.times(o).plus(a))))}return s.precision=e,s.rounding=n,g(r,e,n,!0)};p.hyperbolicTangent=p.tanh=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+7,i.rounding=1,y(n.sinh(),n.cosh(),i.precision=t,i.rounding=e)):new i(n.s)};p.inverseCosine=p.acos=function(){var t=this,e=t.constructor,n=t.abs().cmp(1),i=e.precision,r=e.rounding;return n!==-1?n===0?t.isNeg()?V(e,i,r):new e(0):new e(NaN):t.isZero()?V(e,i+4,r).times(.5):(e.precision=i+6,e.rounding=1,t=new e(1).minus(t).div(t.plus(1)).sqrt().atan(),e.precision=i,e.rounding=r,t.times(2))};p.inverseHyperbolicCosine=p.acosh=function(){var t,e,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(t=i.precision,e=i.rounding,i.precision=t+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,_=!1,n=n.times(n).minus(1).sqrt().plus(n),_=!0,i.precision=t,i.rounding=e,n.ln()):new i(n)};p.inverseHyperbolicSine=p.asinh=function(){var t,e,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,_=!1,n=n.times(n).plus(1).sqrt().plus(n),_=!0,i.precision=t,i.rounding=e,n.ln())};p.inverseHyperbolicTangent=p.atanh=function(){var t,e,n,i,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(t=s.precision,e=s.rounding,i=r.sd(),Math.max(i,t)<2*-r.e-1?g(new s(r),t,e,!0):(s.precision=n=i-r.e,r=y(r.plus(1),new s(1).minus(r),n+t,1),s.precision=t+4,s.rounding=1,r=r.ln(),s.precision=t,s.rounding=e,r.times(.5))):new s(NaN)};p.inverseSine=p.asin=function(){var t,e,n,i,r=this,s=r.constructor;return r.isZero()?new s(r):(e=r.abs().cmp(1),n=s.precision,i=s.rounding,e!==-1?e===0?(t=V(s,n+4,i).times(.5),t.s=r.s,t):new s(NaN):(s.precision=n+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=i,r.times(2)))};p.inverseTangent=p.atan=function(){var t,e,n,i,r,s,o,d,c,a=this,u=a.constructor,f=u.precision,l=u.rounding;if(a.isFinite()){if(a.isZero())return new u(a);if(a.abs().eq(1)&&f+4<=Ie)return o=V(u,f+4,l).times(.25),o.s=a.s,o}else{if(!a.s)return new u(NaN);if(f+4<=Ie)return o=V(u,f+4,l).times(.5),o.s=a.s,o}for(u.precision=d=f+10,u.rounding=1,n=Math.min(28,d/m+2|0),t=n;t;--t)a=a.div(a.times(a).plus(1).sqrt().plus(1));for(_=!1,e=Math.ceil(d/m),i=1,c=a.times(a),o=new u(a),r=a;t!==-1;)if(r=r.times(c),s=o.minus(r.div(i+=2)),r=r.times(c),o=s.plus(r.div(i+=2)),o.d[e]!==void 0)for(t=e;o.d[t]===s.d[t]&&t--;);return n&&(o=o.times(2<<n-1)),_=!0,g(o,u.precision=f,u.rounding=l,!0)};p.isFinite=function(){return!!this.d};p.isInteger=p.isInt=function(){return!!this.d&&x(this.e/m)>this.d.length-2};p.isNaN=function(){return!this.s};p.isNegative=p.isNeg=function(){return this.s<0};p.isPositive=p.isPos=function(){return this.s>0};p.isZero=function(){return!!this.d&&this.d[0]===0};p.lessThan=p.lt=function(t){return this.cmp(t)<0};p.lessThanOrEqualTo=p.lte=function(t){return this.cmp(t)<1};p.logarithm=p.log=function(t){var e,n,i,r,s,o,d,c,a=this,u=a.constructor,f=u.precision,l=u.rounding,h=5;if(t==null)t=new u(10),e=!0;else{if(t=new u(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new u(NaN);e=t.eq(10)}if(n=a.d,a.s<0||!n||!n[0]||a.eq(1))return new u(n&&!n[0]?-1/0:a.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)s=!0;else{for(r=n[0];r%10===0;)r/=10;s=r!==1}if(_=!1,d=f+h,o=K(a,d),i=e?ge(u,d+10):K(t,d),c=y(o,i,d,1),re(c.d,r=f,l))do if(d+=10,o=K(a,d),i=e?ge(u,d+10):K(t,d),c=y(o,i,d,1),!s){+I(c.d).slice(r+1,r+15)+1==1e14&&(c=g(c,f+1,0));break}while(re(c.d,r+=10,l));return _=!0,g(c,f,l)};p.minus=p.sub=function(t){var e,n,i,r,s,o,d,c,a,u,f,l,h=this,b=h.constructor;if(t=new b(t),!h.d||!t.d)return!h.s||!t.s?t=new b(NaN):h.d?t.s=-t.s:t=new b(t.d||h.s!==t.s?h:NaN),t;if(h.s!=t.s)return t.s=-t.s,h.plus(t);if(a=h.d,l=t.d,d=b.precision,c=b.rounding,!a[0]||!l[0]){if(l[0])t.s=-t.s;else if(a[0])t=new b(h);else return new b(c===3?-0:0);return _?g(t,d,c):t}if(n=x(t.e/m),u=x(h.e/m),a=a.slice(),s=u-n,s){for(f=s<0,f?(e=a,s=-s,o=l.length):(e=l,n=u,o=a.length),i=Math.max(Math.ceil(d/m),o)+2,s>i&&(s=i,e.length=1),e.reverse(),i=s;i--;)e.push(0);e.reverse()}else{for(i=a.length,o=l.length,f=i<o,f&&(o=i),i=0;i<o;i++)if(a[i]!=l[i]){f=a[i]<l[i];break}s=0}for(f&&(e=a,a=l,l=e,t.s=-t.s),o=a.length,i=l.length-o;i>0;--i)a[o++]=0;for(i=l.length;i>s;){if(a[--i]<l[i]){for(r=i;r&&a[--r]===0;)a[r]=j-1;--a[r],a[i]+=j}a[i]-=l[i]}for(;a[--o]===0;)a.pop();for(;a[0]===0;a.shift())--n;return a[0]?(t.d=a,t.e=_e(a,n),_?g(t,d,c):t):new b(c===3?-0:0)};p.modulo=p.mod=function(t){var e,n=this,i=n.constructor;return t=new i(t),!n.d||!t.s||t.d&&!t.d[0]?new i(NaN):!t.d||n.d&&!n.d[0]?g(new i(n),i.precision,i.rounding):(_=!1,i.modulo==9?(e=y(n,t.abs(),0,3,1),e.s*=t.s):e=y(n,t,0,i.modulo,1),e=e.times(t),_=!0,n.minus(e))};p.naturalExponential=p.exp=function(){return Me(this)};p.naturalLogarithm=p.ln=function(){return K(this)};p.negated=p.neg=function(){var t=new this.constructor(this);return t.s=-t.s,g(t)};p.plus=p.add=function(t){var e,n,i,r,s,o,d,c,a,u,f=this,l=f.constructor;if(t=new l(t),!f.d||!t.d)return!f.s||!t.s?t=new l(NaN):f.d||(t=new l(t.d||f.s===t.s?f:NaN)),t;if(f.s!=t.s)return t.s=-t.s,f.minus(t);if(a=f.d,u=t.d,d=l.precision,c=l.rounding,!a[0]||!u[0])return u[0]||(t=new l(f)),_?g(t,d,c):t;if(s=x(f.e/m),i=x(t.e/m),a=a.slice(),r=s-i,r){for(r<0?(n=a,r=-r,o=u.length):(n=u,i=s,o=a.length),s=Math.ceil(d/m),o=s>o?s+1:o+1,r>o&&(r=o,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for(o=a.length,r=u.length,o-r<0&&(r=o,n=u,u=a,a=n),e=0;r;)e=(a[--r]=a[r]+u[r]+e)/j|0,a[r]%=j;for(e&&(a.unshift(e),++i),o=a.length;a[--o]==0;)a.pop();return t.d=a,t.e=_e(a,i),_?g(t,d,c):t};p.precision=p.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Z+t);return n.d?(e=Ke(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};p.round=function(){var t=this,e=t.constructor;return g(new e(t),t.e+1,e.rounding)};p.sine=p.sin=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+Math.max(n.e,n.sd())+m,i.rounding=1,n=ut(i,Ge(i,n)),i.precision=t,i.rounding=e,g(B>2?n.neg():n,t,e,!0)):new i(NaN)};p.squareRoot=p.sqrt=function(){var t,e,n,i,r,s,o=this,d=o.d,c=o.e,a=o.s,u=o.constructor;if(a!==1||!d||!d[0])return new u(!a||a<0&&(!d||d[0])?NaN:d?o:1/0);for(_=!1,a=Math.sqrt(+o),a==0||a==1/0?(e=I(d),(e.length+c)%2==0&&(e+="0"),a=Math.sqrt(e),c=x((c+1)/2)-(c<0||c%2),a==1/0?e="5e"+c:(e=a.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),i=new u(e)):i=new u(a.toString()),n=(c=u.precision)+3;;)if(s=i,i=s.plus(y(o,s,n+2,1)).times(.5),I(s.d).slice(0,n)===(e=I(i.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!r&&e=="4999"){if(!r&&(g(s,c+1,0),s.times(s).eq(o))){i=s;break}n+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(i,c+1,1),t=!i.times(i).eq(o));break}return _=!0,g(i,c,u.rounding,t)};p.tangent=p.tan=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+10,i.rounding=1,n=n.sin(),n.s=1,n=y(n,new i(1).minus(n.times(n)).sqrt(),t+10,0),i.precision=t,i.rounding=e,g(B==2||B==4?n.neg():n,t,e,!0)):new i(NaN)};p.times=p.mul=function(t){var e,n,i,r,s,o,d,c,a,u=this,f=u.constructor,l=u.d,h=(t=new f(t)).d;if(t.s*=u.s,!l||!l[0]||!h||!h[0])return new f(!t.s||l&&!l[0]&&!h||h&&!h[0]&&!l?NaN:!l||!h?t.s/0:t.s*0);for(n=x(u.e/m)+x(t.e/m),c=l.length,a=h.length,c<a&&(s=l,l=h,h=s,o=c,c=a,a=o),s=[],o=c+a,i=o;i--;)s.push(0);for(i=a;--i>=0;){for(e=0,r=c+i;r>i;)d=s[r]+h[i]*l[r-i-1]+e,s[r--]=d%j|0,e=d/j|0;s[r]=(s[r]+e)%j|0}for(;!s[--o];)s.pop();return e?++n:s.shift(),t.d=s,t.e=_e(s,n),_?g(t,f.precision,f.rounding):t};p.toBinary=function(t,e){return Se(this,2,t,e)};p.toDecimalPlaces=p.toDP=function(t,e){var n=this,i=n.constructor;return n=new i(n),t===void 0?n:(F(t,0,z),e===void 0?e=i.rounding:F(e,0,8),g(n,t+n.e+1,e))};p.toExponential=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=U(i,!0):(F(t,0,z),e===void 0?e=r.rounding:F(e,0,8),i=g(new r(i),t+1,e),n=U(i,!0,t+1)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toFixed=function(t,e){var n,i,r=this,s=r.constructor;return t===void 0?n=U(r):(F(t,0,z),e===void 0?e=s.rounding:F(e,0,8),i=g(new s(r),t+r.e+1,e),n=U(i,!1,t+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};p.toFraction=function(t){var e,n,i,r,s,o,d,c,a,u,f,l,h=this,b=h.d,v=h.constructor;if(!b)return new v(h);if(a=n=new v(1),i=c=new v(0),e=new v(i),s=e.e=Ke(b)-h.e-1,o=s%m,e.d[0]=D(10,o<0?m+o:o),t==null)t=s>0?e:a;else{if(d=new v(t),!d.isInt()||d.lt(a))throw Error(Z+d);t=d.gt(e)?s>0?e:a:d}for(_=!1,d=new v(I(b)),u=v.precision,v.precision=s=b.length*m*2;f=y(d,e,0,1,1),r=n.plus(f.times(i)),r.cmp(t)!=1;)n=i,i=r,r=a,a=c.plus(f.times(r)),c=r,r=e,e=d.minus(f.times(r)),d=r;return r=y(t.minus(n),i,0,1,1),c=c.plus(r.times(a)),n=n.plus(r.times(i)),c.s=a.s=h.s,l=y(a,i,s,1).minus(h).abs().cmp(y(c,n,s,1).minus(h).abs())<1?[a,i]:[c,n],v.precision=u,_=!0,l};p.toHexadecimal=p.toHex=function(t,e){return Se(this,16,t,e)};p.toNearest=function(t,e){var n=this,i=n.constructor;if(n=new i(n),t==null){if(!n.d)return n;t=new i(1),e=i.rounding}else{if(t=new i(t),e===void 0?e=i.rounding:F(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(_=!1,n=y(n,t,0,e,1).times(t),_=!0,g(n)):(t.s=n.s,n=t),n};p.toNumber=function(){return+this};p.toOctal=function(t,e){return Se(this,8,t,e)};p.toPower=p.pow=function(t){var e,n,i,r,s,o,d=this,c=d.constructor,a=+(t=new c(t));if(!d.d||!t.d||!d.d[0]||!t.d[0])return new c(D(+d,a));if(d=new c(d),d.eq(1))return d;if(i=c.precision,s=c.rounding,t.eq(1))return g(d,i,s);if(e=x(t.e/m),e>=t.d.length-1&&(n=a<0?-a:a)<=ot)return r=Ze(c,d,n,i),t.s<0?new c(1).div(r):g(r,i,s);if(o=d.s,o<0){if(e<t.d.length-1)return new c(NaN);if((t.d[e]&1)==0&&(o=1),d.e==0&&d.d[0]==1&&d.d.length==1)return d.s=o,d}return n=D(+d,a),e=n==0||!isFinite(n)?x(a*(Math.log("0."+I(d.d))/Math.LN10+d.e+1)):new c(n+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?o/0:0):(_=!1,c.rounding=d.s=1,n=Math.min(12,(e+"").length),r=Me(t.times(K(d,i+n)),i),r.d&&(r=g(r,i+5,1),re(r.d,i,s)&&(e=i+10,r=g(Me(t.times(K(d,e+n)),e),e+5,1),+I(r.d).slice(i+1,i+15)+1==1e14&&(r=g(r,i+1,0)))),r.s=o,_=!0,c.rounding=s,g(r,i,s))};p.toPrecision=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=U(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(F(t,1,z),e===void 0?e=r.rounding:F(e,0,8),i=g(new r(i),t,e),n=U(i,t<=i.e||i.e<=r.toExpNeg,t)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toSignificantDigits=p.toSD=function(t,e){var n=this,i=n.constructor;return t===void 0?(t=i.precision,e=i.rounding):(F(t,1,z),e===void 0?e=i.rounding:F(e,0,8)),g(new i(n),t,e)};p.toString=function(){var t=this,e=t.constructor,n=U(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};p.truncated=p.trunc=function(){return g(new this.constructor(this),this.e+1,1)};p.valueOf=p.toJSON=function(){var t=this,e=t.constructor,n=U(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function I(t){var e,n,i,r=t.length-1,s="",o=t[0];if(r>0){for(s+=o,e=1;e<r;e++)i=t[e]+"",n=m-i.length,n&&(s+=H(n)),s+=i;o=t[e],i=o+"",n=m-i.length,n&&(s+=H(n))}else if(o===0)return"0";for(;o%10===0;)o/=10;return s+o}function F(t,e,n){if(t!==~~t||t<e||t>n)throw Error(Z+t)}function re(t,e,n,i){var r,s,o,d;for(s=t[0];s>=10;s/=10)--e;return--e<0?(e+=m,r=0):(r=Math.ceil((e+1)/m),e%=m),s=D(10,m-e),d=t[r]%s|0,i==null?e<3?(e==0?d=d/100|0:e==1&&(d=d/10|0),o=n<4&&d==99999||n>3&&d==49999||d==5e4||d==0):o=(n<4&&d+1==s||n>3&&d+1==s/2)&&(t[r+1]/s/100|0)==D(10,e-2)-1||(d==s/2||d==0)&&(t[r+1]/s/100|0)==0:e<4?(e==0?d=d/1e3|0:e==1?d=d/100|0:e==2&&(d=d/10|0),o=(i||n<4)&&d==9999||!i&&n>3&&d==4999):o=((i||n<4)&&d+1==s||!i&&n>3&&d+1==s/2)&&(t[r+1]/s/1e3|0)==D(10,e-3)-1,o}function fe(t,e,n){for(var i,r=[0],s,o=0,d=t.length;o<d;){for(s=r.length;s--;)r[s]*=e;for(r[0]+=Ne.indexOf(t.charAt(o++)),i=0;i<r.length;i++)r[i]>n-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/n|0,r[i]%=n)}return r.reverse()}function at(t,e){var n,i,r;if(e.isZero())return e;i=e.d.length,i<32?(n=Math.ceil(i/3),r=(1/ve(4,n)).toString()):(n=16,r="2.3283064365386962890625e-10"),t.precision+=n,e=te(t,1,e.times(r),new t(1));for(var s=n;s--;){var o=e.times(e);e=o.times(o).minus(o).times(8).plus(1)}return t.precision-=n,e}var y=function(){function t(i,r,s){var o,d=0,c=i.length;for(i=i.slice();c--;)o=i[c]*r+d,i[c]=o%s|0,d=o/s|0;return d&&i.unshift(d),i}function e(i,r,s,o){var d,c;if(s!=o)c=s>o?1:-1;else for(d=c=0;d<s;d++)if(i[d]!=r[d]){c=i[d]>r[d]?1:-1;break}return c}function n(i,r,s,o){for(var d=0;s--;)i[s]-=d,d=i[s]<r[s]?1:0,i[s]=d*o+i[s]-r[s];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,s,o,d,c){var a,u,f,l,h,b,v,A,N,L,k,S,de,q,Ee,ae,ie,Te,R,ce,ue=i.constructor,Ce=i.s==r.s?1:-1,O=i.d,E=r.d;if(!O||!O[0]||!E||!E[0])return new ue(!i.s||!r.s||(O?E&&O[0]==E[0]:!E)?NaN:O&&O[0]==0||!E?Ce*0:Ce/0);for(c?(h=1,u=i.e-r.e):(c=j,h=m,u=x(i.e/h)-x(r.e/h)),R=E.length,ie=O.length,N=new ue(Ce),L=N.d=[],f=0;E[f]==(O[f]||0);f++);if(E[f]>(O[f]||0)&&u--,s==null?(q=s=ue.precision,o=ue.rounding):d?q=s+(i.e-r.e)+1:q=s,q<0)L.push(1),b=!0;else{if(q=q/h+2|0,f=0,R==1){for(l=0,E=E[0],q++;(f<ie||l)&&q--;f++)Ee=l*c+(O[f]||0),L[f]=Ee/E|0,l=Ee%E|0;b=l||f<ie}else{for(l=c/(E[0]+1)|0,l>1&&(E=t(E,l,c),O=t(O,l,c),R=E.length,ie=O.length),ae=R,k=O.slice(0,R),S=k.length;S<R;)k[S++]=0;ce=E.slice(),ce.unshift(0),Te=E[0],E[1]>=c/2&&++Te;do l=0,a=e(E,k,R,S),a<0?(de=k[0],R!=S&&(de=de*c+(k[1]||0)),l=de/Te|0,l>1?(l>=c&&(l=c-1),v=t(E,l,c),A=v.length,S=k.length,a=e(v,k,A,S),a==1&&(l--,n(v,R<A?ce:E,A,c))):(l==0&&(a=l=1),v=E.slice()),A=v.length,A<S&&v.unshift(0),n(k,v,S,c),a==-1&&(S=k.length,a=e(E,k,R,S),a<1&&(l++,n(k,R<S?ce:E,S,c))),S=k.length):a===0&&(l++,k=[0]),L[f++]=l,a&&k[0]?k[S++]=O[ae]||0:(k=[O[ae]],S=1);while((ae++<ie||k[0]!==void 0)&&q--);b=k[0]!==void 0}L[0]||L.shift()}if(h==1)N.e=u,Xe=b;else{for(f=1,l=L[0];l>=10;l/=10)f++;N.e=f+u*h-1,g(N,d?s+N.e+1:s,o,b)}return N}}();function g(t,e,n,i){var r,s,o,d,c,a,u,f,l,h=t.constructor;e:if(e!=null){if(f=t.d,!f)return t;for(r=1,d=f[0];d>=10;d/=10)r++;if(s=e-r,s<0)s+=m,o=e,u=f[l=0],c=u/D(10,r-o-1)%10|0;else if(l=Math.ceil((s+1)/m),d=f.length,l>=d)if(i){for(;d++<=l;)f.push(0);u=c=0,r=1,s%=m,o=s-m+1}else break e;else{for(u=d=f[l],r=1;d>=10;d/=10)r++;s%=m,o=s-m+r,c=o<0?0:u/D(10,r-o-1)%10|0}if(i=i||e<0||f[l+1]!==void 0||(o<0?u:u%D(10,r-o-1)),a=n<4?(c||i)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||i||n==6&&(s>0?o>0?u/D(10,r-o):0:f[l-1])%10&1||n==(t.s<0?8:7)),e<1||!f[0])return f.length=0,a?(e-=t.e+1,f[0]=D(10,(m-e%m)%m),t.e=-e||0):f[0]=t.e=0,t;if(s==0?(f.length=l,d=1,l--):(f.length=l+1,d=D(10,m-s),f[l]=o>0?(u/D(10,r-o)%D(10,o)|0)*d:0),a)for(;;)if(l==0){for(s=1,o=f[0];o>=10;o/=10)s++;for(o=f[0]+=d,d=1;o>=10;o/=10)d++;s!=d&&(t.e++,f[0]==j&&(f[0]=1));break}else{if(f[l]+=d,f[l]!=j)break;f[l--]=0,d=1}for(s=f.length;f[--s]===0;)f.pop()}return _&&(t.e>h.maxE?(t.d=null,t.e=NaN):t.e<h.minE&&(t.e=0,t.d=[0])),t}function U(t,e,n){if(!t.isFinite())return Qe(t);var i,r=t.e,s=I(t.d),o=s.length;return e?(n&&(i=n-o)>0?s=s.charAt(0)+"."+s.slice(1)+H(i):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(t.e<0?"e":"e+")+t.e):r<0?(s="0."+H(-r-1)+s,n&&(i=n-o)>0&&(s+=H(i))):r>=o?(s+=H(r+1-o),n&&(i=n-r-1)>0&&(s=s+"."+H(i))):((i=r+1)<o&&(s=s.slice(0,i)+"."+s.slice(i)),n&&(i=n-o)>0&&(r+1===o&&(s+="."),s+=H(i))),s}function _e(t,e){var n=t[0];for(e*=m;n>=10;n/=10)e++;return e}function ge(t,e,n){if(e>dt)throw _=!0,n&&(t.precision=n),Error($e);return g(new t(pe),e,1,!0)}function V(t,e,n){if(e>Ie)throw Error($e);return g(new t(he),e,n,!0)}function Ke(t){var e=t.length-1,n=e*m+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function H(t){for(var e="";t--;)e+="0";return e}function Ze(t,e,n,i){var r,s=new t(1),o=Math.ceil(i/m+4);for(_=!1;;){if(n%2&&(s=s.times(e),Ve(s.d,o)&&(r=!0)),n=x(n/2),n===0){n=s.d.length-1,r&&s.d[n]===0&&++s.d[n];break}e=e.times(e),Ve(e.d,o)}return _=!0,s}function je(t){return t.d[t.d.length-1]&1}function ze(t,e,n){for(var i,r,s=new t(e[0]),o=0;++o<e.length;){if(r=new t(e[o]),!r.s){s=r;break}i=s.cmp(r),(i===n||i===0&&s.s===n)&&(s=r)}return s}function Me(t,e){var n,i,r,s,o,d,c,a=0,u=0,f=0,l=t.constructor,h=l.rounding,b=l.precision;if(!t.d||!t.d[0]||t.e>17)return new l(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:NaN);for(e==null?(_=!1,c=b):c=e,d=new l(.03125);t.e>-2;)t=t.times(d),f+=5;for(i=Math.log(D(2,f))/Math.LN10*2+5|0,c+=i,n=s=o=new l(1),l.precision=c;;){if(s=g(s.times(t),c,1),n=n.times(++u),d=o.plus(y(s,n,c,1)),I(d.d).slice(0,c)===I(o.d).slice(0,c)){for(r=f;r--;)o=g(o.times(o),c,1);if(e==null)if(a<3&&re(o.d,c-i,h,a))l.precision=c+=10,n=s=d=new l(1),u=0,a++;else return g(o,l.precision=b,h,_=!0);else return l.precision=b,o}o=d}}function K(t,e){var n,i,r,s,o,d,c,a,u,f,l,h=1,b=10,v=t,A=v.d,N=v.constructor,L=N.rounding,k=N.precision;if(v.s<0||!A||!A[0]||!v.e&&A[0]==1&&A.length==1)return new N(A&&!A[0]?-1/0:v.s!=1?NaN:A?0:v);if(e==null?(_=!1,u=k):u=e,N.precision=u+=b,n=I(A),i=n.charAt(0),Math.abs(s=v.e)<15e14){for(;i<7&&i!=1||i==1&&n.charAt(1)>3;)v=v.times(t),n=I(v.d),i=n.charAt(0),h++;s=v.e,i>1?(v=new N("0."+n),s++):v=new N(i+"."+n.slice(1))}else return a=ge(N,u+2,k).times(s+""),v=K(new N(i+"."+n.slice(1)),u-b).plus(a),N.precision=k,e==null?g(v,k,L,_=!0):v;for(f=v,c=o=v=y(v.minus(1),v.plus(1),u,1),l=g(v.times(v),u,1),r=3;;){if(o=g(o.times(l),u,1),a=c.plus(y(o,new N(r),u,1)),I(a.d).slice(0,u)===I(c.d).slice(0,u))if(c=c.times(2),s!==0&&(c=c.plus(ge(N,u+2,k).times(s+""))),c=y(c,new N(h),u,1),e==null)if(re(c.d,u-b,L,d))N.precision=u+=b,a=o=v=y(f.minus(1),f.plus(1),u,1),l=g(v.times(v),u,1),r=d=1;else return g(c,N.precision=k,L,_=!0);else return N.precision=k,c;c=a,r+=2}}function Qe(t){return String(t.s*t.s/0)}function le(t,e){var n,i,r;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charCodeAt(i)===48;i++);for(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(i,r),e){if(r-=i,t.e=n=n-i-1,t.d=[],i=(n+1)%m,n<0&&(i+=m),i<r){for(i&&t.d.push(+e.slice(0,i)),r-=m;i<r;)t.d.push(+e.slice(i,i+=m));e=e.slice(i),i=m-e.length}else i-=r;for(;i--;)e+="0";t.d.push(+e),_&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function ct(t,e){var n,i,r,s,o,d,c,a,u;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),He.test(e))return le(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(rt.test(e))n=16,e=e.toLowerCase();else if(it.test(e))n=2;else if(st.test(e))n=8;else throw Error(Z+e);for(s=e.search(/p/i),s>0?(c=+e.slice(s+1),e=e.substring(2,s)):e=e.slice(2),s=e.indexOf("."),o=s>=0,i=t.constructor,o&&(e=e.replace(".",""),d=e.length,s=d-s,r=Ze(i,new i(n),s,s*2)),a=fe(e,n,j),u=a.length-1,s=u;a[s]===0;--s)a.pop();return s<0?new i(t.s*0):(t.e=_e(a,u),t.d=a,_=!1,o&&(t=y(t,r,d*4)),c&&(t=t.times(Math.abs(c)<54?D(2,c):se.pow(2,c))),_=!0,t)}function ut(t,e){var n,i=e.d.length;if(i<3)return e.isZero()?e:te(t,2,e,e);n=1.4*Math.sqrt(i),n=n>16?16:n|0,e=e.times(1/ve(5,n)),e=te(t,2,e,e);for(var r,s=new t(5),o=new t(16),d=new t(20);n--;)r=e.times(e),e=e.times(s.plus(r.times(o.times(r).minus(d))));return e}function te(t,e,n,i,r){var s,o,d,c,a=1,u=t.precision,f=Math.ceil(u/m);for(_=!1,c=n.times(n),d=new t(i);;){if(o=y(d.times(c),new t(e++*e++),u,1),d=r?i.plus(o):i.minus(o),i=y(o.times(c),new t(e++*e++),u,1),o=d.plus(i),o.d[f]!==void 0){for(s=f;o.d[s]===d.d[s]&&s--;);if(s==-1)break}s=d,d=i,i=o,o=s,a++}return _=!0,o.d.length=f+1,o}function ve(t,e){for(var n=t;--e;)n*=t;return n}function Ge(t,e){var n,i=e.s<0,r=V(t,t.precision,1),s=r.times(.5);if(e=e.abs(),e.lte(s))return B=i?4:1,e;if(n=e.divToInt(r),n.isZero())B=i?3:2;else{if(e=e.minus(n.times(r)),e.lte(s))return B=je(n)?i?2:3:i?4:1,e;B=je(n)?i?1:4:i?3:2}return e.minus(r).abs()}function Se(t,e,n,i){var r,s,o,d,c,a,u,f,l,h=t.constructor,b=n!==void 0;if(b?(F(n,1,z),i===void 0?i=h.rounding:F(i,0,8)):(n=h.precision,i=h.rounding),!t.isFinite())u=Qe(t);else{for(u=U(t),o=u.indexOf("."),b?(r=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):r=e,o>=0&&(u=u.replace(".",""),l=new h(1),l.e=u.length-o,l.d=fe(U(l),10,r),l.e=l.d.length),f=fe(u,10,r),s=c=f.length;f[--c]==0;)f.pop();if(!f[0])u=b?"0p+0":"0";else{if(o<0?s--:(t=new h(t),t.d=f,t.e=s,t=y(t,l,n,i,0,r),f=t.d,s=t.e,a=Xe),o=f[n],d=r/2,a=a||f[n+1]!==void 0,a=i<4?(o!==void 0||a)&&(i===0||i===(t.s<0?3:2)):o>d||o===d&&(i===4||a||i===6&&f[n-1]&1||i===(t.s<0?8:7)),f.length=n,a)for(;++f[--n]>r-1;)f[n]=0,n||(++s,f.unshift(1));for(c=f.length;!f[c-1];--c);for(o=0,u="";o<c;o++)u+=Ne.charAt(f[o]);if(b){if(c>1)if(e==16||e==8){for(o=e==16?4:3,--c;c%o;c++)u+="0";for(f=fe(u,r,e),c=f.length;!f[c-1];--c);for(o=1,u="1.";o<c;o++)u+=Ne.charAt(f[o])}else u=u.charAt(0)+"."+u.slice(1);u=u+(s<0?"p":"p+")+s}else if(s<0){for(;++s;)u="0"+u;u="0."+u}else if(++s>c)for(s-=c;s--;)u+="0";else s<c&&(u=u.slice(0,s)+"."+u.slice(s))}u=(e==16?"0x":e==2?"0b":e==8?"0o":"")+u}return t.s<0?"-"+u:u}function Ve(t,e){if(t.length>e)return t.length=e,!0}function ft(t){return new this(t).abs()}function lt(t){return new this(t).acos()}function pt(t){return new this(t).acosh()}function ht(t,e){return new this(t).plus(e)}function gt(t){return new this(t).asin()}function mt(t){return new this(t).asinh()}function _t(t){return new this(t).atan()}function vt(t){return new this(t).atanh()}function bt(t,e){t=new this(t),e=new this(e);var n,i=this.precision,r=this.rounding,s=i+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=V(this,s,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?V(this,i,r):new this(0),n.s=t.s):!t.d||e.isZero()?(n=V(this,s,1).times(.5),n.s=t.s):e.s<0?(this.precision=s,this.rounding=1,n=this.atan(y(t,e,s,1)),e=V(this,s,1),this.precision=i,this.rounding=r,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(y(t,e,s,1)),n}function wt(t){return new this(t).cbrt()}function kt(t){return g(t=new this(t),t.e+1,2)}function yt(t,e,n){return new this(t).clamp(e,n)}function Et(t){if(!t||typeof t!="object")throw Error(me+"Object expected");var e,n,i,r=t.defaults===!0,s=["precision",1,z,"rounding",0,8,"toExpNeg",-ee,0,"toExpPos",0,ee,"maxE",0,ee,"minE",-ee,0,"modulo",0,9];for(e=0;e<s.length;e+=3)if(n=s[e],r&&(this[n]=De[n]),(i=t[n])!==void 0)if(x(i)===i&&i>=s[e+1]&&i<=s[e+2])this[n]=i;else throw Error(Z+n+": "+i);if(n="crypto",r&&(this[n]=De[n]),(i=t[n])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(qe);else this[n]=!1;else throw Error(Z+n+": "+i);return this}function Tt(t){return new this(t).cos()}function Ct(t){return new this(t).cosh()}function We(t){var e,n,i;function r(s){var o,d,c,a=this;if(!(a instanceof r))return new r(s);if(a.constructor=r,Ue(s)){a.s=s.s,_?!s.d||s.e>r.maxE?(a.e=NaN,a.d=null):s.e<r.minE?(a.e=0,a.d=[0]):(a.e=s.e,a.d=s.d.slice()):(a.e=s.e,a.d=s.d?s.d.slice():s.d);return}if(c=typeof s,c==="number"){if(s===0){a.s=1/s<0?-1:1,a.e=0,a.d=[0];return}if(s<0?(s=-s,a.s=-1):a.s=1,s===~~s&&s<1e7){for(o=0,d=s;d>=10;d/=10)o++;_?o>r.maxE?(a.e=NaN,a.d=null):o<r.minE?(a.e=0,a.d=[0]):(a.e=o,a.d=[s]):(a.e=o,a.d=[s]);return}if(s*0!==0){s||(a.s=NaN),a.e=NaN,a.d=null;return}return le(a,s.toString())}if(c==="string")return(d=s.charCodeAt(0))===45?(s=s.slice(1),a.s=-1):(d===43&&(s=s.slice(1)),a.s=1),He.test(s)?le(a,s):ct(a,s);if(c==="bigint")return s<0?(s=-s,a.s=-1):a.s=1,le(a,s.toString());throw Error(Z+s)}if(r.prototype=p,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=Et,r.clone=We,r.isDecimal=Ue,r.abs=ft,r.acos=lt,r.acosh=pt,r.add=ht,r.asin=gt,r.asinh=mt,r.atan=_t,r.atanh=vt,r.atan2=bt,r.cbrt=wt,r.ceil=kt,r.clamp=yt,r.cos=Tt,r.cosh=Ct,r.div=Nt,r.exp=Dt,r.floor=It,r.hypot=Mt,r.ln=St,r.log=Ot,r.log10=At,r.log2=xt,r.max=Ft,r.min=Pt,r.mod=Lt,r.mul=Rt,r.pow=jt,r.random=Vt,r.round=Ut,r.sign=Xt,r.sin=$t,r.sinh=qt,r.sqrt=Bt,r.sub=Ht,r.sum=Kt,r.tan=Zt,r.tanh=zt,r.trunc=Qt,t===void 0&&(t={}),t&&t.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)t.hasOwnProperty(n=i[e++])||(t[n]=this[n]);return r.config(t),r}function Nt(t,e){return new this(t).div(e)}function Dt(t){return new this(t).exp()}function It(t){return g(t=new this(t),t.e+1,3)}function Mt(){var t,e,n=new this(0);for(_=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return _=!0,new this(1/0);n=e}return _=!0,n.sqrt()}function Ue(t){return t instanceof se||t&&t.toStringTag===Be||!1}function St(t){return new this(t).ln()}function Ot(t,e){return new this(t).log(e)}function xt(t){return new this(t).log(2)}function At(t){return new this(t).log(10)}function Ft(){return ze(this,arguments,-1)}function Pt(){return ze(this,arguments,1)}function Lt(t,e){return new this(t).mod(e)}function Rt(t,e){return new this(t).mul(e)}function jt(t,e){return new this(t).pow(e)}function Vt(t){var e,n,i,r,s=0,o=new this(1),d=[];if(t===void 0?t=this.precision:F(t,1,z),i=Math.ceil(t/m),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));s<i;)r=e[s],r>=429e7?e[s]=crypto.getRandomValues(new Uint32Array(1))[0]:d[s++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);s<i;)r=e[s]+(e[s+1]<<8)+(e[s+2]<<16)+((e[s+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,s):(d.push(r%1e7),s+=4);s=i/4}else throw Error(qe);else for(;s<i;)d[s++]=Math.random()*1e7|0;for(i=d[--s],t%=m,i&&t&&(r=D(10,m-t),d[s]=(i/r|0)*r);d[s]===0;s--)d.pop();if(s<0)n=0,d=[0];else{for(n=-1;d[0]===0;n-=m)d.shift();for(i=1,r=d[0];r>=10;r/=10)i++;i<m&&(n-=m-i)}return o.e=n,o.d=d,o}function Ut(t){return g(t=new this(t),t.e+1,this.rounding)}function Xt(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function $t(t){return new this(t).sin()}function qt(t){return new this(t).sinh()}function Bt(t){return new this(t).sqrt()}function Ht(t,e){return new this(t).sub(e)}function Kt(){var t=0,e=arguments,n=new this(e[t]);for(_=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return _=!0,g(n,this.precision,this.rounding)}function Zt(t){return new this(t).tan()}function zt(t){return new this(t).tanh()}function Qt(t){return g(t=new this(t),t.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var se=p.constructor=We(De);pe=new se(pe);he=new se(he);var Je=se;import{BaseError as Gt}from"@cetusprotocol/common-sdk";var be=class extends Gt{constructor(e,n,i){super(e,n||"UnknownError",i)}static isXCetusErrorCode(e,n){return this.isErrorCode(e,n)}},M=(t,e,n)=>{throw e instanceof Error?new be(e.message,t,n):new be(e,t,n)};var G="router",oe="router",we=86400,Oe=1e3,W=1e11,P={min_lock_day:15,max_lock_day:180,max_percent_numerator:1e3,min_percent_numerator:500};import{d as xe,extractStructTagFromType as Ae,normalizeCoinType as Wt}from"@cetusprotocol/common-sdk";var X=class t{static buildVeNFTDividendInfo(e){let n={id:e.id.id,venft_id:e.name,rewards:[]};return e.value.fields.value.fields.dividends.fields.contents.forEach(i=>{let r=[];i.fields.value.fields.contents.forEach(s=>{let o=s.fields.value;xe(o).gt(0)&&r.push({coin_type:Ae(s.fields.key.fields.name).source_address,amount:o})}),r.length>0&&n.rewards.push({period:Number(i.fields.key),rewards:r,version:"v1"})}),n}static buildDividendManager(e){let n={id:e.id.id,dividends:{id:e.dividends.fields.id.id,size:e.dividends.fields.size},venft_dividends:{id:e.venft_dividends.fields.id.id,size:e.venft_dividends.fields.size},bonus_types:[],start_time:Number(e.start_time),interval_day:Number(e.interval_day),balances:{id:e.balances.fields.id.id,size:e.balances.fields.size},is_open:e.is_open};return e.bonus_types.forEach(i=>{n.bonus_types.push(Ae(i.fields.name).source_address)}),n}static buildLockUpManager(e){return{id:e.id.id,balance:e.balance,treasury_manager:e.treasury_manager,extra_treasury:e.extra_treasury,lock_infos:{lock_handle_id:e.lock_infos.fields.id.id,size:Number(e.lock_infos.fields.size)},type_name:Wt(e.type_name.fields.name),min_lock_day:Number(e.min_lock_day),max_lock_day:Number(e.max_lock_day),package_version:Number(e.package_version),max_percent_numerator:Number(e.max_percent_numerator),min_percent_numerator:Number(e.min_percent_numerator)}}static buildLockCetus(e){let n=e.fields,i={id:n.id.id,type:Ae(e.type).source_address,locked_start_time:Number(n.locked_start_time),locked_until_time:Number(n.locked_until_time),cetus_amount:n.balance,xcetus_amount:"0",lock_day:0};return i.lock_day=(i.locked_until_time-i.locked_start_time)/86400,i}static getAvailableXCetus(e,n){let i=xe(0);return n.forEach(r=>{i=i.add(r.xcetus_amount)}),xe(e.xcetus_balance).sub(i).toString()}static getWaitUnLockCetus(e){return e.filter(n=>!t.isLocked(n))}static getLockingCetus(e){return e.filter(n=>t.isLocked(n))}static isLocked(e){return e.locked_until_time>Date.parse(new Date().toString())/1e3}static buildDividendRewardTypeList(e,n){let i=new Set;return e?.forEach(r=>{r.rewards.forEach(s=>{i.add(s.coin_type)})}),n?.forEach(r=>{r.rewards.forEach(s=>{i.add(s.coin_type)})}),Array.from(i)}static buildDividendRewardTypeListV2(e){let n={};return e?.forEach(i=>{i.version==="v2"&&i.rewards.forEach(r=>{n[r.coin_type]||(n[r.coin_type]=[]),n[r.coin_type].push(i.period)})}),n}static getNextStartTime(e){let n=Date.now()/1e3,{start_time:i,interval_day:r}=e,s=Math.ceil((n-i)/(r*86400));return i+s*r*86400}};var ke=class{constructor(e){this._cache={};this._sdk=e}get sdk(){return this._sdk}async getOwnerVeNFT(e,n=!0){let{xcetus:i}=this.sdk.sdkOptions,r=`${e}_getLockUpManagerEvent`,s=this.getCache(r,n);if(s!==void 0)return s;let o,d=`${i.package_id}::xcetus::VeNFT`;try{return(await this._sdk.FullClient.getOwnedObjectsByPage(e,{options:{showType:!0,showContent:!0,showDisplay:!0},filter:{StructType:d}})).data.forEach(a=>{let u=Y(et(a)).source_address;if(u===d&&a.data&&a.data.content){let{fields:f}=a.data.content;o={...Jt(a),id:f.id.id,index:f.index,type:u,xcetus_balance:f.xcetus_balance},this.updateCache(r,o,J)}}),o}catch(c){return M("InvalidAccountAddress",c,{[w.METHOD_NAME]:"getOwnerVeNFT",[w.REQUEST_PARAMS]:{account_address:e}})}}async getOwnerRedeemLockList(e){let{xcetus:n}=this.sdk.sdkOptions,i=[],r=Y(this.buildCetusCoinType()).full_address,s=`${n.package_id}::lock_coin::LockedCoin<${r}>`;try{let o=await this._sdk.FullClient.getOwnedObjectsByPage(e,{options:{showType:!0,showContent:!0},filter:{StructType:s}});for(let d of o.data)if(Y(et(d)).source_address===s&&d.data){let a=X.buildLockCetus(d.data.content);a.xcetus_amount=await this.getXCetusAmount(a.id),i.push(a)}return i}catch(o){return M("InvalidAccountAddress",o,{[w.METHOD_NAME]:"getOwnerRedeemLockList",[w.REQUEST_PARAMS]:{account_address:e}})}}async getLockCetus(e){try{let n=await this._sdk.FullClient.getObject({id:e,options:{showType:!0,showContent:!0}});if(n.data?.content){let i=X.buildLockCetus(n.data.content);return i.xcetus_amount=await this.getXCetusAmount(i.id),i}return}catch(n){return M("InvalidLockId",n,{[w.METHOD_NAME]:"getLockCetus",[w.REQUEST_PARAMS]:{lock_id:e}})}}async getOwnerCetusCoins(e){try{return await this._sdk.FullClient.getOwnerCoinAssets(e,this.buildCetusCoinType())}catch(n){return M("InvalidAccountAddress",n,{[w.METHOD_NAME]:"getOwnerCetusCoins",[w.REQUEST_PARAMS]:{account_address:e}})}}mintVeNFTPayload(){let{xcetus:e}=this.sdk.sdkOptions,n=new $;return n.moveCall({target:`${e.published_at}::${G}::mint_venft`,typeArguments:[],arguments:[n.object(T(e)?.xcetus_manager_id)]}),n}convertPayload(e,n){let{xcetus:i}=this.sdk.sdkOptions;n=n||new $;let r=this.buildCetusCoinType();n.setSender(this._sdk.getSenderAddress());let s=tn.buildCoinWithBalance(BigInt(e.amount),r,n);return e.venft_id===void 0?n.moveCall({target:`${i.published_at}::${G}::mint_and_convert`,typeArguments:[],arguments:[n.object(T(i)?.lock_manager_id),n.object(T(i)?.xcetus_manager_id),n.makeMoveVec({elements:[s]}),n.pure.u64(e.amount)]}):n.moveCall({target:`${i.published_at}::${G}::convert`,typeArguments:[],arguments:[n.object(T(i)?.lock_manager_id),n.object(T(i)?.xcetus_manager_id),n.makeMoveVec({elements:[s]}),n.pure.u64(e.amount),n.object(e.venft_id)]}),n}redeemLockPayload(e){let{xcetus:n}=this.sdk.sdkOptions,i=new $;return i.moveCall({target:`${n.published_at}::${G}::redeem_lock`,typeArguments:[],arguments:[i.object(T(n)?.lock_manager_id),i.object(T(n)?.xcetus_manager_id),i.object(e.venft_id),i.pure.u64(e.amount),i.pure.u64(e.lock_day),i.object(ne)]}),i}redeemPayload(e){let{xcetus:n}=this.sdk.sdkOptions,i=new $;return i.moveCall({target:`${n.published_at}::${G}::redeem`,typeArguments:[],arguments:[i.object(T(n)?.lock_manager_id),i.object(T(n)?.xcetus_manager_id),i.object(e.venft_id),i.object(e.lock_id),i.object(ne)]}),i}redeemDividendPayload(e,n){let{xcetus:i,xcetus_dividends:r}=this.sdk.sdkOptions,s=new $;return n.forEach(o=>{s.moveCall({target:`${i.published_at}::${oe}::redeem`,typeArguments:[o],arguments:[s.object(T(r)?.dividend_manager_id),s.object(e)]})}),s}redeemDividendV2Payload(e,n,i){let{xcetus_dividends:r}=this.sdk.sdkOptions,s=new $;return n.filter(d=>i.includes(d)).length>0&&(s=this.redeemDividendXTokenPayload(e,s)),n.forEach(d=>{i.includes(d)||s.moveCall({target:`${r.published_at}::${oe}::redeem_v2`,typeArguments:[d],arguments:[s.object(T(r)?.dividend_manager_id),s.object(e),s.object(ne)]})}),s}redeemDividendV3Payload(e,n){let{xcetus_dividends:i}=this.sdk.sdkOptions,r=new $,s=X.buildDividendRewardTypeList(n),o=X.buildDividendRewardTypeListV2(n),d=Y(this.buildXTokenCoinType()).full_address;return s.find(a=>Y(a).full_address===d)!==void 0&&this.redeemDividendXTokenPayload(e,r),s.forEach(a=>{r.moveCall({target:`${i.published_at}::${oe}::redeem_v3`,typeArguments:[a],arguments:[r.object(T(i)?.dividend_manager_id),r.object(T(i)?.venft_dividends_id),r.makeMoveVec({elements:o[a].map(u=>r.pure.u64(u)),type:"u64"}),r.object(e),r.object(ne)]})}),r}redeemDividendXTokenPayload(e,n){let{xcetus_dividends:i,xcetus:r}=this.sdk.sdkOptions,{xcetus_manager_id:s,lock_manager_id:o}=T(r),{dividend_manager_id:d}=T(i);return n=n===void 0?new $:n,n.moveCall({target:`${i.published_at}::${oe}::redeem_xtoken`,typeArguments:[],arguments:[n.object(o),n.object(s),n.object(d),n.object(e),n.object(ne)]}),n}buildCetusCoinType(){return`${this.sdk.sdkOptions.cetus_faucet.package_id}::cetus::CETUS`}buildXTokenCoinType(e=this._sdk.sdkOptions.xcetus.package_id,n="xcetus",i="XCETUS"){return`${e}::${n}::${i}`}cancelRedeemPayload(e){let{xcetus:n}=this.sdk.sdkOptions,i=new $;return i.moveCall({target:`${n.published_at}::${G}::cancel_redeem_lock`,typeArguments:[],arguments:[i.object(T(n).lock_manager_id),i.object(T(n).xcetus_manager_id),i.object(e.venft_id),i.object(e.lock_id),i.object(ne)]}),i}async getInitConfigs(){let{package_id:e}=this.sdk.sdkOptions.xcetus,n=`${e}_getInitFactoryEvent`,i=this.getCache(n);if(i!==void 0)return i;let r=(await this._sdk.FullClient.queryEventsByPage({MoveEventType:`${e}::xcetus::InitEvent`}))?.data,s={xcetus_manager_id:"",lock_manager_id:"",lock_handle_id:""};r.length>0&&r.forEach(d=>{let c=d.parsedJson;c&&(s.xcetus_manager_id=c.xcetus_manager)});let o=(await this._sdk.FullClient.queryEventsByPage({MoveEventType:`${e}::locking::InitializeEvent`}))?.data;o.length>0&&o.forEach(d=>{let c=d.parsedJson;c&&(s.lock_manager_id=c.lock_manager)});try{if(s.lock_manager_id.length>0){let d=await this.getLockUpManager(s.lock_manager_id);d&&d?.lock_infos.lock_handle_id&&(s.lock_handle_id=d?.lock_infos.lock_handle_id)}return this.updateCache(n,s,J),s}catch(d){return M("FetchError",d,{[w.METHOD_NAME]:"getInitConfigs"})}}async getLockUpManager(e=T(this.sdk.sdkOptions.xcetus).lock_manager_id,n=!1){let i=`${e}_getLockUpManager`,r=this.getCache(i,n);if(r!==void 0)return r;try{let s=await this.sdk.FullClient.getObject({id:e,options:{showContent:!0}}),o=X.buildLockUpManager(Q(s));return this.updateCache(i,o,J),o}catch(s){return M("InvalidLockManagerId",s,{[w.METHOD_NAME]:"getLockUpManager",[w.REQUEST_PARAMS]:{lock_manager_id:e}})}}async getDividendConfigs(){let{package_id:e}=this.sdk.sdkOptions.xcetus_dividends,{dividend_manager_id:n,venft_dividends_id:i}=T(this._sdk.sdkOptions.xcetus_dividends),r=`${e}_getDividendManagerEvent`,s=this.getCache(r);if(s!==void 0)return s;try{let o=(await this._sdk.FullClient.queryEventsByPage({MoveEventType:`${e}::dividend::InitEvent`}))?.data,d=await this._sdk.FullClient.getDynamicFieldObject({parentId:n,name:{type:"0x1::string::String",value:"VeNFTDividends"}}),c={dividend_manager_id:"",dividend_admin_id:"",dividend_settle_id:"",venft_dividends_id:"",venft_dividends_id_v2:""};o.length>0&&o.forEach(u=>{let f=u.parsedJson;f&&(c.dividend_manager_id=f.manager_id,c.dividend_admin_id=f.admin_id,c.dividend_settle_id=f.settle_id,this.updateCache(r,c,J))}),d&&d.data&&d.data.content&&(c.venft_dividends_id=d.data.content?.fields?.value,this.updateCache(r,c,J));let a=await this._sdk.FullClient.getObject({id:i,options:{showContent:!0}});return c.venft_dividends_id_v2=a.data.content.fields.venft_dividends.fields.id.id,c}catch(o){return M("FetchError",o,{[w.METHOD_NAME]:"getDividendConfigs"})}}async getDividendManager(e=!1){let{dividend_manager_id:n}=T(this._sdk.sdkOptions.xcetus_dividends),i=`${n}_getDividendManager`,r=this.getCache(i,e);if(r!==void 0)return r;try{let s=await this._sdk.FullClient.getObject({id:n,options:{showContent:!0}}),o=Q(s),d=X.buildDividendManager(o);return this.updateCache(i,d,J),d}catch(s){return M("FetchError",s,{[w.METHOD_NAME]:"getDividendManager"})}}async getXcetusManager(e=!0){let{xcetus_manager_id:n}=T(this._sdk.sdkOptions.xcetus),i=`${n}_getXcetusManager`,r=this.getCache(i,e);if(r)return r;try{let s=await this._sdk.FullClient.getObject({id:n,options:{showContent:!0}}),o=Q(s),d={id:o.id.id,index:Number(o.index),has_venft:{handle:o.has_venft.fields.id.id,size:o.has_venft.fields.size},nfts:{handle:o.nfts.fields.id.id,size:o.nfts.fields.size},total_locked:o.total_locked,treasury:o.treasury.fields.total_supply.fields.value};return this.updateCache(i,d),d}catch(s){return M("FetchError",s,{[w.METHOD_NAME]:"getXcetusManager"})}}async fetchDividendInfo(e){let{xcetus_dividends:n}=this._sdk.sdkOptions,{dividend_manager_id:i,venft_dividends_id:r}=T(n),s=new $;s.moveCall({target:`${n.published_at}::dividend::fetch_dividend_info_v2`,typeArguments:[],arguments:[s.object(i),s.object(r),s.object(e)]});try{let o=await this._sdk.FullClient.devInspectTransactionBlock({transactionBlock:s,sender:this._sdk.getSenderAddress()}),{contents:d}=o.events[0].parsedJson.info,c={id:"",venft_id:e,rewards:[]};return d.forEach(a=>{let u=[],f=a.key,{contents:l}=a.value;l.forEach(h=>{C(h.value).gt(0)&&u.push({coin_type:Y(h.key.name).source_address,amount:h.value})}),u.length>0&&c.rewards.push({period:Number(f),rewards:u,version:Number(f)>66?"v2":"v1"})}),c}catch(o){M("InvalidVeNftId",o,{[w.METHOD_NAME]:"fetchDividendInfo",[w.REQUEST_PARAMS]:{venft_id:e}})}}async getVeNFTDividendInfo(e){try{return await this.fetchDividendInfo(e)}catch{try{return await this.getVeNFTDividendInfoV2(e)}catch(i){return console.log("getVeNFTDividendInfo",i),M("InvalidVeNftId",i,{[w.METHOD_NAME]:"getVeNFTDividendInfo",[w.REQUEST_PARAMS]:{venft_id:e}})}}}async getVeNFTDividendInfoV2(e){let{xcetus_dividends:n}=this._sdk.sdkOptions,{venft_dividends_id_v2:i}=T(n),r={id:"",venft_id:e,rewards:[]},s=[];try{let o=await this._sdk.FullClient.getDynamicFieldObject({parentId:i,name:{type:"0x2::object::ID",value:e}}),d=Q(o).value.fields.value.fields.dividends.fields.id.id,c=null,a=50,u=[];for(;;){let l=await this._sdk.FullClient.getDynamicFields({parentId:d,cursor:c,limit:a});if(l.data.forEach(h=>{u.push(h.objectId)}),c=l.nextCursor,c===null||l.data.length<a)break}(await this._sdk.FullClient.batchGetObjects(u,{showType:!0,showContent:!0})).forEach(l=>{s.push({period:Number(l.data.content.fields.name),version:"v2",rewards:l.data.content.fields.value.fields.contents.map(h=>({coin_type:Y(h.fields.key.fields.name).source_address,amount:h.fields.value}))})})}catch(o){return console.log("getVeNFTDividendInfoV2",o),M("InvalidVeNftId",o,{[w.METHOD_NAME]:"getVeNFTDividendInfoV2",[w.REQUEST_PARAMS]:{venft_id:e}})}return{...r,rewards:[...s]}}async getVeNFTDividendInfoV1(e){let{xcetus_dividends:n}=this._sdk.sdkOptions,{venft_dividends_id:i}=T(n),r={id:"",venft_id:e,rewards:[]};try{let s=await this._sdk.FullClient.getDynamicFieldObject({parentId:i,name:{type:"0x2::object::ID",value:e}}),o=Q(s);r=X.buildVeNFTDividendInfo(o)}catch(s){return console.log("getVeNFTDividendInfoV1 ~ error:",s),M("InvalidVeNftId",s,{[w.METHOD_NAME]:"getVeNFTDividendInfoV1",[w.REQUEST_PARAMS]:{venft_id:e}})}return r}redeemNum(e,n){if(BigInt(e)===BigInt(0))return{amount_out:"0",percent:"0"};let i=C(1e11).mul(C(P.max_lock_day).sub(C(n))).mul(C(P.max_percent_numerator).sub(C(P.min_percent_numerator))).div(C(P.max_lock_day).sub(C(P.min_lock_day))),r=C(1e11).mul(C(P.max_percent_numerator)).sub(i).div(C(1e3)).div(1e11);return{amount_out:C(r).mul(C(e)).round().toString(),percent:r.toString()}}reverseRedeemNum(e,n){if(BigInt(e)===BigInt(0))return{amount_out:"0",percent:"0"};let i=C(1e11).mul(C(P.max_lock_day).sub(C(n))).mul(C(P.max_percent_numerator).sub(C(P.min_percent_numerator))).div(C(P.max_lock_day).sub(C(P.min_lock_day))),r=C(1e11).mul(C(P.max_percent_numerator)).sub(i).div(C(1e3)).div(1e11);return{amount_out:C(e).div(r).toFixed(0,Je.ROUND_UP),percent:r.toString()}}async getXCetusAmount(e){let{lock_handle_id:n}=T(this._sdk.sdkOptions.xcetus),i=`${e}_getXCetusAmount`,r=this.getCache(i);if(r!==void 0)return r;try{let s=await this.sdk.FullClient.getDynamicFieldObject({parentId:n,name:{type:"0x2::object::ID",value:e}}),o=Q(s);if(o){let{xcetus_amount:d}=o.value.fields.value.fields;return this.updateCache(i,d,J),d}}catch(s){console.log("getXCetusAmount",s),M("InvalidLockId",s,{[w.METHOD_NAME]:"getXCetusAmount",[w.REQUEST_PARAMS]:{lock_id:e}})}return"0"}async getVeNftAmount(e,n){try{let i=await this.sdk.FullClient.getDynamicFieldObject({parentId:e,name:{type:"0x2::object::ID",value:n}}),r=Q(i);if(r){let{lock_amount:s,xcetus_amount:o}=r.value.fields.value.fields;return{lock_amount:s,xcetus_amount:o}}}catch(i){console.log("getVeNftAmount",i),M("FetchError",i,{[w.METHOD_NAME]:"getVeNftAmount",[w.REQUEST_PARAMS]:{nft_handle_id:e,venft_id:n}})}return{lock_amount:"0",xcetus_amount:"0"}}async getPhaseDividendInfo(e,n=!1){try{let i=await this.getDividendManager();if(i){let r=i.dividends.id,s=`${r}_${e}_getPhaseDividendInfo`,o=this._sdk.getCache(s,n);if(o)return o;let d=await this._sdk.FullClient.getDynamicFieldObject({parentId:r,name:{type:"u64",value:e}}),c=Q(d),a=c.value.fields.value.fields,u=a.redeemed_num.fields.contents.map(b=>({name:b.fields.key.fields.name,value:b.fields.value})),f=a.bonus_types.map(b=>b.fields.name),l=a.bonus.fields.contents.map(b=>({name:b.fields.key.fields.name,value:b.fields.value})),h={id:nn(d),phase:c.name,settled_num:a.settled_num,register_time:a.register_time,redeemed_num:u,is_settled:a.is_settled,bonus_types:f,bonus:l,phase_end_time:""};return this.updateCache(s,h),h}}catch(i){console.log("getPhaseDividendInfo",i),M("InvalidPhase",i,{[w.METHOD_NAME]:"getPhaseDividendInfo",[w.REQUEST_PARAMS]:{phase:e}})}}updateCache(e,n,i=Yt){let r=this._cache[e];r?(r.overdue_time=Ye(i),r.value=n):r=new en(n,Ye(i)),this._cache[e]=r}getCache(e,n=!1){let i=this._cache[e];if(!n&&i?.isValid())return i.value;delete this._cache[e]}};var ye=class t extends rn{constructor(e){super(e),this._xcetusModule=new ke(this)}get XCetusModule(){return this._xcetusModule}static createSDK(e){let{env:n="mainnet",full_rpc_url:i}=e;return n==="mainnet"?t.createCustomSDK({...Pe,...e}):t.createCustomSDK({...Re,...e})}static createCustomSDK(e){return new t(e)}};var Xn=ye;export{ye as CetusXcetusSDK,oe as DividendsRouterModule,Oe as EXCHANGE_RATE_MULTIPLIER,we as ONE_DAY_SECONDS,W as REDEEM_NUM_MULTIPLIER,ke as XCetusModule,X as XCetusUtil,G as XcetusRouterModule,Xn as default,P as defaultLockUpConfig,Pe as xcetus_mainnet,Re as xcetus_testnet};
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
decimal.js/decimal.mjs:
|