UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 78.1 kB
var Dr=Object.defineProperty,Wr=Object.defineProperties;var Or=Object.getOwnPropertyDescriptors;var Gt=Object.getOwnPropertySymbols;var Ur=Object.prototype.hasOwnProperty,qr=Object.prototype.propertyIsEnumerable;var Ht=(e,t,r)=>t in e?Dr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,q=(e,t)=>{for(var r in t||(t={}))Ur.call(t,r)&&Ht(e,r,t[r]);if(Gt)for(var r of Gt(t))qr.call(t,r)&&Ht(e,r,t[r]);return e},z=(e,t)=>Wr(e,Or(t));import{PublicKey as Jr}from"@solana/web3.js";import zt,{isBN as Jt}from"bn.js";import{bits as qi,BitStructure as Gi,blob as Gr,Blob as Hi,cstr as ji,f32 as Yi,f32be as Zi,f64 as zi,f64be as Ji,greedy as Xi,Layout as Hr,ns64 as Qi,ns64be as $i,nu64 as eo,nu64be as to,offset as ro,s16 as no,s16be as io,s24 as oo,s24be as so,s32 as ao,s32be as uo,s40 as co,s40be as lo,s48 as fo,s48be as po,s8 as mo,seq as jr,struct as go,Structure as Yr,u16 as yo,u16be as ho,u24 as bo,u24be as wo,u32 as To,u32be as Po,u40 as xo,u40be as So,u48 as ko,u48be as Lo,u8 as Zr,UInt as zr,union as Ao,Union as Io,unionLayoutDiscriminator as Ro,utf8 as Bo}from"@solana/buffer-layout";var ut=Hr,jt=Yr;var ct=zr;var Yt=Zr;var Zt=jr;var ye=Gr;var ke=class extends ut{constructor(r,n,i){super(r,i);this.blob=ye(r),this.signed=n}decode(r,n=0){let i=new zt(this.blob.decode(r,n),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(r,n,i=0){return typeof r=="number"&&(r=new zt(r)),this.signed&&(r=r.toTwos(this.span*8)),this.blob.encode(r.toArrayLike(Buffer,"le",this.span),n,i)}};function _(e){return new ct(1,e)}function Le(e){return new ct(4,e)}function y(e){return new ke(8,!1,e)}function oe(e){return new ke(16,!1,e)}function Xt(e){return new ke(1,!0,e)}function He(e){return new ke(8,!0,e)}var Ge=class extends ut{constructor(r,n,i,o){super(r.span,o);this.layout=r,this.decoder=n,this.encoder=i}decode(r,n){return this.decoder(this.layout.decode(r,n))}encode(r,n,i){return this.layout.encode(this.encoder(r),n,i)}getSpan(r,n){return this.layout.getSpan(r,n)}};function A(e){return new Ge(ye(32),t=>new Jr(t),t=>t.toBuffer(),e)}function Ke(e){return new Ge(Yt(),Xr,Qr,e)}function Xr(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function Qr(e){return e?1:0}var lt=class extends jt{decode(t,r){return super.decode(t,r)}};function C(e,t,r){return new lt(e,t,r)}function M(e,t,r){let n,i=typeof t=="number"?t:Jt(t)?t.toNumber():new Proxy(t,{get(o,s){if(!n){let a=Reflect.get(o,"count");n=Jt(a)?a.toNumber():a,Reflect.set(o,"count",n)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(n=a),Reflect.set(o,s,a)}});return Zt(e,i,r)}import{PublicKey as dt}from"@solana/web3.js";import{get as Qt,set as $r}from"lodash";var ft=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let r=t.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(r)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},$t={},en={};function W(e){let t=Qt($t,e);if(!t){let r=Qt(en,e);t=new ft({name:e,logLevel:r}),$r($t,e,t)}return t}import{PublicKey as T}from"@solana/web3.js";var er=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),tr=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),rr=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),nr=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ho=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),jo=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Yo=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Zo=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),zo=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Jo=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xo=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Qo=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$o=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),es=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ts=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),rs=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ns=new T("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),is=new T("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),os=new T("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ss=new T("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),as=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),us=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),cs=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ls=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),fs=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ds=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ps=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ms=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),gs=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ys=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),hs=new T("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ve={OPEN_BOOK_PROGRAM:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new T("Ray1111111111111111111111111111111111111111"),AMM_V4:new T("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new T("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new T("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new T("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new T("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new T("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new T("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new T("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:T.default,Router:new T("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new T("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new T("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new T("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new T("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new T("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new T("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new T("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new T("Ray1111111111111111111111111111111111111111")};import{NATIVE_MINT as tn}from"@solana/spl-token";var As=W("Raydium_farm_config"),Is=new dt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Rs=new dt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1"),Bs=tn,Ns=new dt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX"),ir={3:sr,5:ar,6:ur},or={3:Fe,5:cr,6:lr},Cs=e=>[3,4,5,6].indexOf(e)!==-1,_s=e=>{var s;let{version:t,rewardInfos:r,rewardTokenAccountsPublicKeys:n}=e,i=`rewardInfo:${JSON.stringify(r)}, rewardAccount:${JSON.stringify(n)}`,o={3:()=>{if(r.length!==1||n.length!==1)return`rewardInfos or rewardTokenAccounts lengths not equal 1: ${i}`},5:()=>{if(r.length!==n.length)return`rewardInfos and rewardTokenAccounts lengths not equal: ${i}`},6:()=>{if(!n.length||r.length!==n.length)return`no rewardTokenAccounts or rewardInfos and rewardTokenAccounts lengths not equal: ${i}`}};return(s=o[t])==null?void 0:s.call(o)},Ae={"Standard SPL":0,"Option tokens":1},Ks={[er.toString()]:3,[tr.toString()]:4,[rr.toString()]:5,[nr.toString()]:6,[ve.FARM_PROGRAM_ID_V3.toString()]:3,[ve.FARM_PROGRAM_ID_V4.toString()]:4,[ve.FARM_PROGRAM_ID_V5.toString()]:5,[ve.FARM_PROGRAM_ID_V6.toString()]:6};var pt=C([_("instruction")]),mt=C([_("instruction")]),rn=C([y("rewardState"),y("rewardOpenTime"),y("rewardEndTime"),y("rewardLastUpdateTime"),y("totalReward"),y("totalRewardEmissioned"),y("rewardClaimed"),y("rewardPerSecond"),oe("accRewardPerShare"),A("rewardVault"),A("rewardMint"),A("rewardSender"),y("rewardType"),M(y(),15,"padding")]),nn=C([y("state"),y("nonce"),A("lpVault"),A("rewardVault"),A(),A(),y(),y(),y("totalReward"),oe("perShareReward"),y("lastSlot"),y("perSlotReward")]),on=C([y("state"),y("nonce"),A("lpVault"),A("rewardVaultA"),y("totalRewardA"),oe("perShareRewardA"),y("perSlotRewardA"),_("option"),A("rewardVaultB"),ye(7),y("totalRewardB"),oe("perShareRewardB"),y("perSlotRewardB"),y("lastSlot"),A()]),sn=C([y(),y("state"),y("nonce"),y("validRewardTokenNum"),oe("rewardMultiplier"),y("rewardPeriodMax"),y("rewardPeriodMin"),y("rewardPeriodExtend"),A("lpMint"),A("lpVault"),M(rn,5,"rewardInfos"),A("creator"),A(),M(y(),32,"padding")]),sr=new Proxy(nn,{get(e,t,r){return t==="decode"?(...n)=>{let i=e.decode(...n);return z(q({},i),{version:3,rewardInfos:[{rewardVault:i.rewardVault,totalReward:i.totalReward,perSlotReward:i.perSlotReward,perShareReward:i.perShareReward}]})}:Reflect.get(e,t,r)}}),ar=new Proxy(on,{get(e,t,r){return t==="decode"?(...n)=>{let i=e.decode(...n);return z(q({},i),{version:5,rewardInfos:[{rewardVault:i.rewardVaultA,totalReward:i.totalRewardA,perSlotReward:i.perSlotRewardA,perShareReward:i.perShareRewardA},{rewardVault:i.rewardVaultB,totalReward:i.totalRewardB,perSlotReward:i.perSlotRewardB,perShareReward:i.perShareRewardB}]})}:Reflect.get(e,t,r)}}),ur=new Proxy(sn,{get(e,t,r){return t==="decode"?(...n)=>{let i=e.decode(...n);return z(q({},i),{version:6,rewardInfos:i.rewardInfos.map(o=>{var s;return z(q({},o),{rewardType:((s=Object.entries(Ae).find(a=>String(a[1])===o.rewardType.toString()))!=null?s:["Standard SPL"])[0]})})})}:Reflect.get(e,t,r)}}),an=C([y("isSet"),y("rewardPerSecond"),y("rewardOpenTime"),y("rewardEndTime"),y("rewardType")]),gt=C([_("instruction"),y("nonce"),M(an,5,"rewardTimeInfo")]),yt=C([_("instruction"),y("rewardReopenTime"),y("rewardEndTime"),y("rewardPerSecond")]),ht=C([_("instruction"),y("isSet"),y("rewardPerSecond"),y("rewardOpenTime"),y("rewardEndTime"),y("rewardType")]),Ws=C([y("state"),A("id"),A("owner"),y("deposited"),M(y(),1,"rewardDebts")]),Fe=C([y("state"),A("id"),A("owner"),y("deposited"),M(oe(),1,"rewardDebts"),y(""),y("voteLockedBalance"),M(y(),15)]),Os=C([y("state"),A("id"),A("owner"),y("deposited"),M(y(),2,"rewardDebts")]),cr=C([y("state"),A("id"),A("owner"),y("deposited"),M(oe(),2,"rewardDebts"),M(y(),17)]),lr=C([y(),y("state"),A("id"),A("owner"),y("deposited"),M(oe(),5,"rewardDebts"),M(y(),16)]),Z=C([_("instruction"),y("amount")]),un=C([A("mint"),A("grantAuthority"),y("baselineVoteWeightScaledFactor"),y("maxExtraLockupVoteWeightScaledFactor"),y("lockupSaturationSecs"),Xt("digitShift"),M(_(),7,"reserved1"),M(y(),7,"reserved2")]),fr=C([ye(8),A("governanceProgramId"),A("realm"),A("realmGoverningTokenMint"),A("realmAuthority"),M(_(),32,"reserved1"),M(un,4,"votingMints"),He("timeOffset"),_("bump"),M(_(),7,"reserved2"),M(y(),11,"reserved3")]),cn=C([He("startTime"),He("endTime"),_("kind"),M(_(),15,"reserved")]),ln=C([M(cn,1,"lockup"),y("amountDeposited_native"),y("amountInitiallyLockedNative"),Ke("isUsed"),Ke("allowClawback"),_("votingMintConfigIdx"),M(_(),29,"reserved")]),dr=C([ye(8),A("voterAuthority"),A("registrar"),M(ln,32,"deposits"),_("voterBump"),_("voterWweightRecordBump"),M(_(),94,"reserved")]);import X from"bn.js";import{PublicKey as fn}from"@solana/web3.js";import{MINT_SIZE as Js,TOKEN_PROGRAM_ID as Xs,getTransferFeeConfig as Qs,unpackMint as $s}from"@solana/spl-token";var bt=W("Raydium_accountInfo_util");async function pr(e,t,r){let{batchRequest:n,commitment:i="confirmed",chunkCount:o=100}=q({batchRequest:!1},r),s=wt(t,o),a=new Array(s.length).fill([]);if(n){let c=s.map(f=>{let d=e._buildArgs([f.map(m=>m.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=wt(c,10);a=(await(await Promise.all(u.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&bt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.error.message}`),f.result.value.map(d=>{if(d){let{data:m,executable:b,lamports:h,owner:S,rentEpoch:L}=d;return m.length!==2&&m[1]!=="base64"&&bt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:b,lamports:h,owner:new fn(S),rentEpoch:L}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&bt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function mr(e,t,r){let n=await pr(e,t.map(i=>i.pubkey),r);return t.map((i,o)=>z(q({},i),{accountInfo:n[o]}))}import ce from"bn.js";var Ie=9e15,me=1e9,Pt="0123456789abcdef",Ye="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ze="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",xt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ie,maxE:Ie,crypto:!1},br,se,k=!0,Je="[DecimalError] ",pe=Je+"Invalid argument: ",wr=Je+"Precision limit exceeded",Tr=Je+"crypto unavailable",Pr="[object Decimal]",j=Math.floor,O=Math.pow,dn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,pn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,mn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,xr=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,re=1e7,P=7,gn=9007199254740991,yn=Ye.length-1,St=Ze.length-1,g={toStringTag:Pr};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),w(e)};g.ceil=function(){return w(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(pe+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};g.comparedTo=g.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,c=o.s,u=e.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==e.e)return o.e>e.e^c<0?1:-1;for(n=s.length,i=a.length,t=0,r=n<i?n:i;t<r;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return n===i?0:n>i^c<0?1:-1};g.cosine=g.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+P,n.rounding=1,r=hn(n,Ir(n,r)),n.precision=e,n.rounding=t,w(se==2||se==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};g.cubeRoot=g.cbrt=function(){var e,t,r,n,i,o,s,a,c,u,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(k=!1,o=l.s*O(l.s*l,1/3),!o||Math.abs(o)==1/0?(r=G(l.d),e=l.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=O(r,1/3),e=j((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new f(r),n.s=l.s):n=new f(o.toString()),s=(e=f.precision)+3;;)if(a=n,c=a.times(a).times(a),u=c.plus(l),n=v(u.plus(l).times(a),u.plus(c),s+2,1),G(a.d).slice(0,s)===(r=G(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(w(a,e+1,0),a.times(a).times(a).eq(l))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(w(n,e+1,1),t=!n.times(n).times(n).eq(l));break}return k=!0,w(n,e,f.rounding,t)};g.decimalPlaces=g.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-j(this.e/P))*P,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};g.dividedBy=g.div=function(e){return v(this,new this.constructor(e))};g.dividedToIntegerBy=g.divToInt=function(e){var t=this,r=t.constructor;return w(v(t,new r(e),0,1,1),r.precision,r.rounding)};g.equals=g.eq=function(e){return this.cmp(e)===0};g.floor=function(){return w(new this.constructor(this),this.e+1,3)};g.greaterThan=g.gt=function(e){return this.cmp(e)>0};g.greaterThanOrEqualTo=g.gte=function(e){var t=this.cmp(e);return t==1||t===0};g.hyperbolicCosine=g.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/Qe(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=Re(s,1,o.times(t),new s(1),!0);for(var c,u=e,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return w(o,s.precision=r,s.rounding=n,!0)};g.hyperbolicSine=g.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Re(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/Qe(5,e)),i=Re(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=t,o.rounding=r,w(i,t,r,!0)};g.hyperbolicTangent=g.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,v(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};g.inverseCosine=g.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return n!==-1?n===0?t.isNeg()?te(r,i,o):new r(0):new r(NaN):t.isZero()?te(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=te(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))};g.inverseHyperbolicCosine=g.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,k=!1,r=r.times(r).minus(1).sqrt().plus(r),k=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};g.inverseHyperbolicSine=g.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,k=!1,r=r.times(r).plus(1).sqrt().plus(r),k=!0,n.precision=e,n.rounding=t,r.ln())};g.inverseHyperbolicTangent=g.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?w(new o(i),e,t,!0):(o.precision=r=n-i.e,i=v(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};g.inverseSine=g.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=te(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};g.inverseTangent=g.atan=function(){var e,t,r,n,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,d=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&f+4<=St)return s=te(l,f+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=St)return s=te(l,f+4,d).times(.5),s.s=u.s,s}for(l.precision=a=f+10,l.rounding=1,r=Math.min(28,a/P+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(k=!1,t=Math.ceil(a/P),n=1,c=u.times(u),s=new l(u),i=u;e!==-1;)if(i=i.times(c),o=s.minus(i.div(n+=2)),i=i.times(c),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<<r-1)),k=!0,w(s,l.precision=f,l.rounding=d,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&j(this.e/P)>this.d.length-2};g.isNaN=function(){return!this.s};g.isNegative=g.isNeg=function(){return this.s<0};g.isPositive=g.isPos=function(){return this.s>0};g.isZero=function(){return!!this.d&&this.d[0]===0};g.lessThan=g.lt=function(e){return this.cmp(e)<0};g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1};g.logarithm=g.log=function(e){var t,r,n,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,d=l.rounding,m=5;if(e==null)e=new l(10),t=!0;else{if(e=new l(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(r=u.d,u.s<0||!r||!r[0]||u.eq(1))return new l(r&&!r[0]?-1/0:u.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(k=!1,a=f+m,s=de(u,a),n=t?ze(l,a+10):de(e,a),c=v(s,n,a,1),Ve(c.d,i=f,d))do if(a+=10,s=de(u,a),n=t?ze(l,a+10):de(e,a),c=v(s,n,a,1),!o){+G(c.d).slice(i+1,i+15)+1==1e14&&(c=w(c,f+1,0));break}while(Ve(c.d,i+=10,d));return k=!0,w(c,f,d)};g.minus=g.sub=function(e){var t,r,n,i,o,s,a,c,u,l,f,d,m=this,b=m.constructor;if(e=new b(e),!m.d||!e.d)return!m.s||!e.s?e=new b(NaN):m.d?e.s=-e.s:e=new b(e.d||m.s!==e.s?m:NaN),e;if(m.s!=e.s)return e.s=-e.s,m.plus(e);if(u=m.d,d=e.d,a=b.precision,c=b.rounding,!u[0]||!d[0]){if(d[0])e.s=-e.s;else if(u[0])e=new b(m);else return new b(c===3?-0:0);return k?w(e,a,c):e}if(r=j(e.e/P),l=j(m.e/P),u=u.slice(),o=l-r,o){for(f=o<0,f?(t=u,o=-o,s=d.length):(t=d,r=l,s=u.length),n=Math.max(Math.ceil(a/P),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=u.length,s=d.length,f=n<s,f&&(s=n),n=0;n<s;n++)if(u[n]!=d[n]){f=u[n]<d[n];break}o=0}for(f&&(t=u,u=d,d=t,e.s=-e.s),s=u.length,n=d.length-s;n>0;--n)u[s++]=0;for(n=d.length;n>o;){if(u[--n]<d[n]){for(i=n;i&&u[--i]===0;)u[i]=re-1;--u[i],u[n]+=re}u[n]-=d[n]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--r;return u[0]?(e.d=u,e.e=Xe(u,r),k?w(e,a,c):e):new b(c===3?-0:0)};g.modulo=g.mod=function(e){var t,r=this,n=r.constructor;return e=new n(e),!r.d||!e.s||e.d&&!e.d[0]?new n(NaN):!e.d||r.d&&!r.d[0]?w(new n(r),n.precision,n.rounding):(k=!1,n.modulo==9?(t=v(r,e.abs(),0,3,1),t.s*=e.s):t=v(r,e,0,n.modulo,1),t=t.times(e),k=!0,r.minus(t))};g.naturalExponential=g.exp=function(){return kt(this)};g.naturalLogarithm=g.ln=function(){return de(this)};g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s,w(e)};g.plus=g.add=function(e){var t,r,n,i,o,s,a,c,u,l,f=this,d=f.constructor;if(e=new d(e),!f.d||!e.d)return!f.s||!e.s?e=new d(NaN):f.d||(e=new d(e.d||f.s===e.s?f:NaN)),e;if(f.s!=e.s)return e.s=-e.s,f.minus(e);if(u=f.d,l=e.d,a=d.precision,c=d.rounding,!u[0]||!l[0])return l[0]||(e=new d(f)),k?w(e,a,c):e;if(o=j(f.e/P),n=j(e.e/P),u=u.slice(),i=o-n,i){for(i<0?(r=u,i=-i,s=l.length):(r=l,n=o,s=u.length),o=Math.ceil(a/P),s=o>s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=u.length,i=l.length,s-i<0&&(i=s,r=l,l=u,u=r),t=0;i;)t=(u[--i]=u[i]+l[i]+t)/re|0,u[i]%=re;for(t&&(u.unshift(t),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=Xe(u,n),k?w(e,a,c):e};g.precision=g.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(pe+e);return r.d?(t=Sr(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};g.round=function(){var e=this,t=e.constructor;return w(new t(e),e.e+1,t.rounding)};g.sine=g.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+P,n.rounding=1,r=wn(n,Ir(n,r)),n.precision=e,n.rounding=t,w(se>2?r.neg():r,e,t,!0)):new n(NaN)};g.squareRoot=g.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(k=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=G(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=j((c+1)/2)-(c<0||c%2),u==1/0?t="5e"+c:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+c),n=new l(t)):n=new l(u.toString()),r=(c=l.precision)+3;;)if(o=n,n=o.plus(v(s,o,r+2,1)).times(.5),G(o.d).slice(0,r)===(t=G(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(w(o,c+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(w(n,c+1,1),e=!n.times(n).eq(s));break}return k=!0,w(n,c,l.rounding,e)};g.tangent=g.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=v(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,w(se==2||se==4?r.neg():r,e,t,!0)):new n(NaN)};g.times=g.mul=function(e){var t,r,n,i,o,s,a,c,u,l=this,f=l.constructor,d=l.d,m=(e=new f(e)).d;if(e.s*=l.s,!d||!d[0]||!m||!m[0])return new f(!e.s||d&&!d[0]&&!m||m&&!m[0]&&!d?NaN:!d||!m?e.s/0:e.s*0);for(r=j(l.e/P)+j(e.e/P),c=d.length,u=m.length,c<u&&(o=d,d=m,m=o,s=c,c=u,u=s),o=[],s=c+u,n=s;n--;)o.push(0);for(n=u;--n>=0;){for(t=0,i=c+n;i>n;)a=o[i]+m[n]*d[i-n-1]+t,o[i--]=a%re|0,t=a/re|0;o[i]=(o[i]+t)%re|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=Xe(o,r),k?w(e,f.precision,f.rounding):e};g.toBinary=function(e,t){return At(this,2,e,t)};g.toDecimalPlaces=g.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(J(e,0,me),t===void 0?t=n.rounding:J(t,0,8),w(r,e+r.e+1,t))};g.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ie(n,!0):(J(e,0,me),t===void 0?t=i.rounding:J(t,0,8),n=w(new i(n),e+1,t),r=ie(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};g.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=ie(i):(J(e,0,me),t===void 0?t=o.rounding:J(t,0,8),n=w(new o(i),e+i.e+1,t),r=ie(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};g.toFraction=function(e){var t,r,n,i,o,s,a,c,u,l,f,d,m=this,b=m.d,h=m.constructor;if(!b)return new h(m);if(u=r=new h(1),n=c=new h(0),t=new h(n),o=t.e=Sr(b)-m.e-1,s=o%P,t.d[0]=O(10,s<0?P+s:s),e==null)e=o>0?t:u;else{if(a=new h(e),!a.isInt()||a.lt(u))throw Error(pe+a);e=a.gt(t)?o>0?t:u:a}for(k=!1,a=new h(G(b)),l=h.precision,h.precision=o=b.length*P*2;f=v(a,t,0,1,1),i=r.plus(f.times(n)),i.cmp(e)!=1;)r=n,n=i,i=u,u=c.plus(f.times(i)),c=i,i=t,t=a.minus(f.times(i)),a=i;return i=v(e.minus(r),n,0,1,1),c=c.plus(i.times(u)),r=r.plus(i.times(n)),c.s=u.s=m.s,d=v(u,n,o,1).minus(m).abs().cmp(v(c,r,o,1).minus(m).abs())<1?[u,n]:[c,r],h.precision=l,k=!0,d};g.toHexadecimal=g.toHex=function(e,t){return At(this,16,e,t)};g.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:J(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(k=!1,r=v(r,e,0,t,1).times(e),k=!0,w(r)):(e.s=r.s,r=e),r};g.toNumber=function(){return+this};g.toOctal=function(e,t){return At(this,8,e,t)};g.toPower=g.pow=function(e){var t,r,n,i,o,s,a=this,c=a.constructor,u=+(e=new c(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new c(O(+a,u));if(a=new c(a),a.eq(1))return a;if(n=c.precision,o=c.rounding,e.eq(1))return w(a,n,o);if(t=j(e.e/P),t>=e.d.length-1&&(r=u<0?-u:u)<=gn)return i=kr(c,a,r,n),e.s<0?new c(1).div(i):w(i,n,o);if(s=a.s,s<0){if(t<e.d.length-1)return new c(NaN);if((e.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return r=O(+a,u),t=r==0||!isFinite(r)?j(u*(Math.log("0."+G(a.d))/Math.LN10+a.e+1)):new c(r+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(k=!1,c.rounding=a.s=1,r=Math.min(12,(t+"").length),i=kt(e.times(de(a,n+r)),n),i.d&&(i=w(i,n+5,1),Ve(i.d,n,o)&&(t=n+10,i=w(kt(e.times(de(a,t+r)),t),t+5,1),+G(i.d).slice(n+1,n+15)+1==1e14&&(i=w(i,n+1,0)))),i.s=s,k=!0,c.rounding=o,w(i,n,o))};g.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ie(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(J(e,1,me),t===void 0?t=i.rounding:J(t,0,8),n=w(new i(n),e,t),r=ie(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};g.toSignificantDigits=g.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(J(e,1,me),t===void 0?t=n.rounding:J(t,0,8)),w(new n(r),e,t)};g.toString=function(){var e=this,t=e.constructor,r=ie(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};g.truncated=g.trunc=function(){return w(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var e=this,t=e.constructor,r=ie(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function G(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;t<i;t++)n=e[t]+"",r=P-n.length,r&&(o+=fe(r)),o+=n;s=e[t],n=s+"",r=P-n.length,r&&(o+=fe(r))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function J(e,t,r){if(e!==~~e||e<t||e>r)throw Error(pe+e)}function Ve(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=P,i=0):(i=Math.ceil((t+1)/P),t%=P),o=O(10,P-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==O(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==O(10,t-3)-1,s}function je(e,t,r){for(var n,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=Pt.indexOf(e.charAt(s++)),n=0;n<i.length;n++)i[n]>r-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function hn(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/Qe(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=Re(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var v=function(){function e(n,i,o){var s,a=0,c=n.length;for(n=n.slice();c--;)s=n[c]*i+a,n[c]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(n[a]!=i[a]){c=n[a]>i[a]?1:-1;break}return c}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]<i[o]?1:0,n[o]=a*s+n[o]-i[o];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,o,s,a,c){var u,l,f,d,m,b,h,S,L,F,B,D,le,Y,ge,_e,Pe,xe,$,Se,qe=n.constructor,at=n.s==i.s?1:-1,H=n.d,V=i.d;if(!H||!H[0]||!V||!V[0])return new qe(!n.s||!i.s||(H?V&&H[0]==V[0]:!V)?NaN:H&&H[0]==0||!V?at*0:at/0);for(c?(m=1,l=n.e-i.e):(c=re,m=P,l=j(n.e/m)-j(i.e/m)),$=V.length,Pe=H.length,L=new qe(at),F=L.d=[],f=0;V[f]==(H[f]||0);f++);if(V[f]>(H[f]||0)&&l--,o==null?(Y=o=qe.precision,s=qe.rounding):a?Y=o+(n.e-i.e)+1:Y=o,Y<0)F.push(1),b=!0;else{if(Y=Y/m+2|0,f=0,$==1){for(d=0,V=V[0],Y++;(f<Pe||d)&&Y--;f++)ge=d*c+(H[f]||0),F[f]=ge/V|0,d=ge%V|0;b=d||f<Pe}else{for(d=c/(V[0]+1)|0,d>1&&(V=e(V,d,c),H=e(H,d,c),$=V.length,Pe=H.length),_e=$,B=H.slice(0,$),D=B.length;D<$;)B[D++]=0;Se=V.slice(),Se.unshift(0),xe=V[0],V[1]>=c/2&&++xe;do d=0,u=t(V,B,$,D),u<0?(le=B[0],$!=D&&(le=le*c+(B[1]||0)),d=le/xe|0,d>1?(d>=c&&(d=c-1),h=e(V,d,c),S=h.length,D=B.length,u=t(h,B,S,D),u==1&&(d--,r(h,$<S?Se:V,S,c))):(d==0&&(u=d=1),h=V.slice()),S=h.length,S<D&&h.unshift(0),r(B,h,D,c),u==-1&&(D=B.length,u=t(V,B,$,D),u<1&&(d++,r(B,$<D?Se:V,D,c))),D=B.length):u===0&&(d++,B=[0]),F[f++]=d,u&&B[0]?B[D++]=H[_e]||0:(B=[H[_e]],D=1);while((_e++<Pe||B[0]!==void 0)&&Y--);b=B[0]!==void 0}F[0]||F.shift()}if(m==1)L.e=l,br=b;else{for(f=1,d=F[0];d>=10;d/=10)f++;L.e=f+l*m-1,w(L,a?o+L.e+1:o,s,b)}return L}}();function w(e,t,r,n){var i,o,s,a,c,u,l,f,d,m=e.constructor;e:if(t!=null){if(f=e.d,!f)return e;for(i=1,a=f[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=P,s=t,l=f[d=0],c=l/O(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/P),a=f.length,d>=a)if(n){for(;a++<=d;)f.push(0);l=c=0,i=1,o%=P,s=o-P+1}else break e;else{for(l=a=f[d],i=1;a>=10;a/=10)i++;o%=P,s=o-P+i,c=s<0?0:l/O(10,i-s-1)%10|0}if(n=n||t<0||f[d+1]!==void 0||(s<0?l:l%O(10,i-s-1)),u=r<4?(c||n)&&(r==0||r==(e.s<0?3:2)):c>5||c==5&&(r==4||n||r==6&&(o>0?s>0?l/O(10,i-s):0:f[d-1])%10&1||r==(e.s<0?8:7)),t<1||!f[0])return f.length=0,u?(t-=e.e+1,f[0]=O(10,(P-t%P)%P),e.e=-t||0):f[0]=e.e=0,e;if(o==0?(f.length=d,a=1,d--):(f.length=d+1,a=O(10,P-o),f[d]=s>0?(l/O(10,i-s)%O(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==re&&(f[0]=1));break}else{if(f[d]+=a,f[d]!=re)break;f[d--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return k&&(e.e>m.maxE?(e.d=null,e.e=NaN):e.e<m.minE&&(e.e=0,e.d=[0])),e}function ie(e,t,r){if(!e.isFinite())return Ar(e);var n,i=e.e,o=G(e.d),s=o.length;return t?(r&&(n=r-s)>0?o=o.charAt(0)+"."+o.slice(1)+fe(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+fe(-i-1)+o,r&&(n=r-s)>0&&(o+=fe(n))):i>=s?(o+=fe(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+fe(n))):((n=i+1)<s&&(o=o.slice(0,n)+"."+o.slice(n)),r&&(n=r-s)>0&&(i+1===s&&(o+="."),o+=fe(n))),o}function Xe(e,t){var r=e[0];for(t*=P;r>=10;r/=10)t++;return t}function ze(e,t,r){if(t>yn)throw k=!0,r&&(e.precision=r),Error(wr);return w(new e(Ye),t,1,!0)}function te(e,t,r){if(t>St)throw Error(wr);return w(new e(Ze),t,r,!0)}function Sr(e){var t=e.length-1,r=t*P+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function fe(e){for(var t="";e--;)t+="0";return t}function kr(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/P+4);for(k=!1;;){if(r%2&&(o=o.times(t),yr(o.d,s)&&(i=!0)),r=j(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),yr(t.d,s)}return k=!0,o}function gr(e){return e.d[e.d.length-1]&1}function Lr(e,t,r){for(var n,i=new e(t[0]),o=0;++o<t.length;)if(n=new e(t[o]),n.s)i[r](n)&&(i=n);else{i=n;break}return i}function kt(e,t){var r,n,i,o,s,a,c,u=0,l=0,f=0,d=e.constructor,m=d.rounding,b=d.precision;if(!e.d||!e.d[0]||e.e>17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(k=!1,c=b):c=t,a=new d(.03125);e.e>-2;)e=e.times(a),f+=5;for(n=Math.log(O(2,f))/Math.LN10*2+5|0,c+=n,r=o=s=new d(1),d.precision=c;;){if(o=w(o.times(e),c,1),r=r.times(++l),a=s.plus(v(o,r,c,1)),G(a.d).slice(0,c)===G(s.d).slice(0,c)){for(i=f;i--;)s=w(s.times(s),c,1);if(t==null)if(u<3&&Ve(s.d,c-n,m,u))d.precision=c+=10,r=o=a=new d(1),l=0,u++;else return w(s,d.precision=b,m,k=!0);else return d.precision=b,s}s=a}}function de(e,t){var r,n,i,o,s,a,c,u,l,f,d,m=1,b=10,h=e,S=h.d,L=h.constructor,F=L.rounding,B=L.precision;if(h.s<0||!S||!S[0]||!h.e&&S[0]==1&&S.length==1)return new L(S&&!S[0]?-1/0:h.s!=1?NaN:S?0:h);if(t==null?(k=!1,l=B):l=t,L.precision=l+=b,r=G(S),n=r.charAt(0),Math.abs(o=h.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)h=h.times(e),r=G(h.d),n=r.charAt(0),m++;o=h.e,n>1?(h=new L("0."+r),o++):h=new L(n+"."+r.slice(1))}else return u=ze(L,l+2,B).times(o+""),h=de(new L(n+"."+r.slice(1)),l-b).plus(u),L.precision=B,t==null?w(h,B,F,k=!0):h;for(f=h,c=s=h=v(h.minus(1),h.plus(1),l,1),d=w(h.times(h),l,1),i=3;;){if(s=w(s.times(d),l,1),u=c.plus(v(s,new L(i),l,1)),G(u.d).slice(0,l)===G(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(ze(L,l+2,B).times(o+""))),c=v(c,new L(m),l,1),t==null)if(Ve(c.d,l-b,F,a))L.precision=l+=b,u=s=h=v(f.minus(1),f.plus(1),l,1),d=w(h.times(h),l,1),i=a=1;else return w(c,L.precision=B,F,k=!0);else return L.precision=B,c;c=u,i+=2}}function Ar(e){return String(e.s*e.s/0)}function Lt(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%P,r<0&&(n+=P),n<i){for(n&&e.d.push(+t.slice(0,n)),i-=P;n<i;)e.d.push(+t.slice(n,n+=P));t=t.slice(n),n=P-t.length}else n-=i;for(;n--;)t+="0";e.d.push(+t),k&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function bn(e,t){var r,n,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),xr.test(t))return Lt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(pn.test(t))r=16,t=t.toLowerCase();else if(dn.test(t))r=2;else if(mn.test(t))r=8;else throw Error(pe+t);for(o=t.search(/p/i),o>0?(c=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=kr(n,new n(r),o,o*2)),u=je(t,r,re),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=Xe(u,l),e.d=u,k=!1,s&&(e=v(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?O(2,c):$e.pow(2,c))),k=!0,e)}function wn(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Re(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/Qe(5,r)),t=Re(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Re(e,t,r,n,i){var o,s,a,c,u=1,l=e.precision,f=Math.ceil(l/P);for(k=!1,c=r.times(r),a=new e(n);;){if(s=v(a.times(c),new e(t++*t++),l,1),a=i?n.plus(s):n.minus(s),n=v(s.times(c),new e(t++*t++),l,1),s=a.plus(n),s.d[f]!==void 0){for(o=f;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return k=!0,s.d.length=f+1,s}function Qe(e,t){for(var r=e;--t;)r*=e;return r}function Ir(e,t){var r,n=t.s<0,i=te(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return se=n?4:1,t;if(r=t.divToInt(i),r.isZero())se=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return se=gr(r)?n?2:3:n?4:1,t;se=gr(r)?n?1:4:n?3:2}return t.minus(i).abs()}function At(e,t,r,n){var i,o,s,a,c,u,l,f,d,m=e.constructor,b=r!==void 0;if(b?(J(r,1,me),n===void 0?n=m.rounding:J(n,0,8)):(r=m.precision,n=m.rounding),!e.isFinite())l=Ar(e);else{for(l=ie(e),s=l.indexOf("."),b?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(l=l.replace(".",""),d=new m(1),d.e=l.length-s,d.d=je(ie(d),10,i),d.e=d.d.length),f=je(l,10,i),o=c=f.length;f[--c]==0;)f.pop();if(!f[0])l=b?"0p+0":"0";else{if(s<0?o--:(e=new m(e),e.d=f,e.e=o,e=v(e,d,r,n,0,i),f=e.d,o=e.e,u=br),s=f[r],a=i/2,u=u||f[r+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&f[r-1]&1||n===(e.s<0?8:7)),f.length=r,u)for(;++f[--r]>i-1;)f[r]=0,r||(++o,f.unshift(1));for(c=f.length;!f[c-1];--c);for(s=0,l="";s<c;s++)l+=Pt.charAt(f[s]);if(b){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(f=je(l,i,t),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=Pt.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(t==16?"0x":t==2?"0b":t==8?"0o":"")+l}return e.s<0?"-"+l:l}function yr(e,t){if(e.length>t)return e.length=t,!0}function Tn(e){return new this(e).abs()}function Pn(e){return new this(e).acos()}function xn(e){return new this(e).acosh()}function Sn(e,t){return new this(e).plus(t)}function kn(e){return new this(e).asin()}function Ln(e){return new this(e).asinh()}function An(e){return new this(e).atan()}function In(e){return new this(e).atanh()}function Rn(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=te(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?te(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=te(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(v(e,t,o,1)),t=te(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(v(e,t,o,1)),r}function Bn(e){return new this(e).cbrt()}function Nn(e){return w(e=new this(e),e.e+1,2)}function Cn(e,t,r){return new this(e).clamp(t,r)}function _n(e){if(!e||typeof e!="object")throw Error(Je+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,me,"rounding",0,8,"toExpNeg",-Ie,0,"toExpPos",0,Ie,"maxE",0,Ie,"minE",-Ie,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(r=o[t],i&&(this[r]=xt[r]),(n=e[r])!==void 0)if(j(n)===n&&n>=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(pe+r+": "+n);if(r="crypto",i&&(this[r]=xt[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(Tr);else this[r]=!1;else throw Error(pe+r+": "+n);return this}function Kn(e){return new this(e).cos()}function vn(e){return new this(e).cosh()}function Rr(e){var t,r,n;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,hr(o)){u.s=o.s,k?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;k?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return Lt(u,o.toString())}else if(c!=="string")throw Error(pe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),xr.test(o)?Lt(u,o):bn(u,o)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=_n,i.clone=Rr,i.isDecimal=hr,i.abs=Tn,i.acos=Pn,i.acosh=xn,i.add=Sn,i.asin=kn,i.asinh=Ln,i.atan=An,i.atanh=In,i.atan2=Rn,i.cbrt=Bn,i.ceil=Nn,i.clamp=Cn,i.cos=Kn,i.cosh=vn,i.div=Fn,i.exp=Vn,i.floor=Mn,i.hypot=En,i.ln=Dn,i.log=Wn,i.log10=Un,i.log2=On,i.max=qn,i.min=Gn,i.mod=Hn,i.mul=jn,i.pow=Yn,i.random=Zn,i.round=zn,i.sign=Jn,i.sin=Xn,i.sinh=Qn,i.sqrt=$n,i.sub=ei,i.sum=ti,i.tan=ri,i.tanh=ni,i.trunc=ii,e===void 0&&(e={}),e&&e.defaults!==!0)for(n=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<n.length;)e.hasOwnProperty(r=n[t++])||(e[r]=this[r]);return i.config(e),i}function Fn(e,t){return new this(e).div(t)}function Vn(e){return new this(e).exp()}function Mn(e){return w(e=new this(e),e.e+1,3)}function En(){var e,t,r=new this(0);for(k=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)r.d&&(r=r.plus(t.times(t)));else{if(t.s)return k=!0,new this(1/0);r=t}return k=!0,r.sqrt()}function hr(e){return e instanceof $e||e&&e.toStringTag===Pr||!1}function Dn(e){return new this(e).ln()}function Wn(e,t){return new this(e).log(t)}function On(e){return new this(e).log(2)}function Un(e){return new this(e).log(10)}function qn(){return Lr(this,arguments,"lt")}function Gn(){return Lr(this,arguments,"gt")}function Hn(e,t){return new this(e).mod(t)}function jn(e,t){return new this(e).mul(t)}function Yn(e,t){return new this(e).pow(t)}function Zn(e){var t,r,n,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:J(e,1,me),n=Math.ceil(e/P),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(n));o<n;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o<n;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(Tr);else for(;o<n;)a[o++]=Math.random()*1e7|0;for(n=a[--o],e%=P,n&&e&&(i=O(10,P-e),a[o]=(n/i|0)*i);a[o]===0;o--)a.pop();if(o<0)r=0,a=[0];else{for(r=-1;a[0]===0;r-=P)a.shift();for(n=1,i=a[0];i>=10;i/=10)n++;n<P&&(r-=P-n)}return s.e=r,s.d=a,s}function zn(e){return w(e=new this(e),e.e+1,this.rounding)}function Jn(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Xn(e){return new this(e).sin()}function Qn(e){return new this(e).sinh()}function $n(e){return new this(e).sqrt()}function ei(e,t){return new this(e).sub(t)}function ti(){var e=0,t=arguments,r=new this(t[e]);for(k=!1;r.s&&++e<t.length;)r=r.plus(t[e]);return k=!0,w(r,this.precision,this.rounding)}function ri(e){return new this(e).tan()}function ni(e){return new this(e).tanh()}function ii(e){return w(e=new this(e),e.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var $e=g.constructor=Rr(xt);Ye=new $e(Ye);Ze=new $e(Ze);import di from"big.js";import rt from"bn.js";import oi from"toformat";var si=oi,Me=si;import tt from"big.js";import ui from"bn.js";import ci from"decimal.js-light";import Ee from"bn.js";var Br=9007199254740991;function N(e){let t=W("Raydium_parseBigNumberish");if(e instanceof Ee)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Ee(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=Br||e<=-Br)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Ee(String(e))):typeof e=="bigint"?new Ee(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Ee(0))}var et=W("module/fraction"),It=Me(tt),De=Me(ci),li={[0]:De.ROUND_DOWN,[1]:De.ROUND_HALF_UP,[2]:De.ROUND_UP},fi={[0]:tt.roundDown,[1]:tt.roundHalfUp,[2]:tt.roundUp},K=class{constructor(t,r=new ui(1)){this.numerator=N(t),this.denominator=N(r)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new K(this.denominator,this.numerator)}add(t){let r=t instanceof K?t:new K(N(t));return this.denominator.eq(r.denominator)?new K(this.numerator.add(r.numerator),this.denominator):new K(this.numerator.mul(r.denominator).add(r.numerator.mul(this.denominator)),this.denominator.mul(r.denominator))}sub(t){let r=t instanceof K?t:new K(N(t));return this.denominator.eq(r.denominator)?new K(this.numerator.sub(r.numerator),this.denominator):new K(this.numerator.mul(r.denominator).sub(r.numerator.mul(this.denominator)),this.denominator.mul(r.denominator))}mul(t){let r=t instanceof K?t:new K(N(t));return new K(this.numerator.mul(r.numerator),this.denominator.mul(r.denominator))}div(t){let r=t instanceof K?t:new K(N(t));return new K(this.numerator.mul(r.denominator),this.denominator.mul(r.numerator))}toSignificant(t,r={groupSeparator:""},n=1){Number.isInteger(t)||et.logWithError(`${t} is not an integer.`),t<=0&&et.logWithError(`${t} is not positive.`),De.set({precision:t+1,rounding:li[n]});let i=new De(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),r)}toFixed(t,r={groupSeparator:""},n=1){return Number.isInteger(t)||et.logWithError(`${t} is not an integer.`),t<0&&et.logWithError(`${t} is negative.`),It.DP=t,It.RM=fi[n]||1,new It(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,r)}isZero(){return this.numerator.isZero()}};var pi=W("Raydium_amount"),Nr=Me(di);function mi(e,t){let r="0",n="0";if(e.includes(".")){let i=e.split(".");i.length===2?([r,n]=i,n=n.padEnd(t,"0")):pi.logWithError(`invalid number string, num: ${e}`)}else r=e;return[r,n.slice(0,t)||n]}var ae=class extends K{constructor(r,n,i=!0,o){let s=new rt(0),a=Rt.pow(new rt(r.decimals));if(i)s=N(n);else{let c=new rt(0),u=new rt(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,f]=mi(n.toString(),r.decimals);c=N(l),u=N(f)}c=c.mul(a),s=c.add(u)}super(s,a);this.logger=W(o||"TokenAmount"),this.token=r}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(r){return this.token.equals(r.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(r.raw)}lt(r){return this.token.equals(r.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(r.raw)}add(r){return this.token.equals(r.token)||this.logger.logWithError("add token not equals"),new ae(this.token,this.raw.add(r.raw))}subtract(r){return this.token.equals(r.token)||this.logger.logWithError("sub token not equals"),new ae(this.token,this.raw.sub(r.raw))}toSignificant(r=this.token.decimals,n,i=0){return super.toSignificant(r,n,i)}toFixed(r=this.token.decimals,n,i=0){return r>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(r,n,i)}toExact(r={groupSeparator:""}){return Nr.DP=this.token.decimals,new Nr(this.numerator.toString()).div(this.denominator.toString()).toFormat(r)}};import{PublicKey as gi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Cr}from"@solana/spl-token";var _r={chainId:101,address:gi.default.toBase58(),programId:Cr.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},he={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Cr.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as _t}from"@solana/web3.js";import{PublicKey as E,SystemProgram as Kr,SYSVAR_RENT_PUBKEY as yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hi}from"@solana/spl-token";function p({pubkey:e,isSigner:t=!1,isWritable:r=!0}){return{pubkey:e,isWritable:r,isSigner:t}}var Bt=[p({pubkey:hi,isWritable:!1}),p({pubkey:Kr.programId,isWritable:!1}),p({pubkey:yi,isWritable:!1})];function vr({publicKey:e,transformSol:t}){let r=Nt(e.toString());if(r instanceof E)return t&&r.equals(be)?Tt:r;if(t&&r.toString()===be.toBase58())return Tt;if(typeof r=="string"){if(r===E.default.toBase58())return E.default;try{return new E(r)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Nt(e){try{return new E(e)}catch{return e}}var Ka=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),va=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ct=new E("SysvarRent111111111111111111111111111111111"),Fa=new E("SysvarC1ock11111111111111111111111111111111"),Va=new E("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),nt=new E("Sysvar1nstructions1111111111111111111111111"),Ma=Kr.programId,Ea=new E("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Da=new E("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Wa=new E("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Oa=new E("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ua=new E("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),qa=new E("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ga=new E("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ha=new E("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ja=new E("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ya=new E("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Za=new E("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Tt=new E("So11111111111111111111111111111111111111112"),be=E.default;var Kt=class{constructor({mint:t,decimals:r,symbol:n,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===be.toBase58()||t instanceof _t&&be.equals(t)){this.decimals=he.decimals,this.symbol=he.symbol,this.name=he.name,this.mint=new _t(he.address),this.isToken2022=!1;return}this.decimals=r,this.symbol=n||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?_t.default:vr({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},we=Kt;we.WSOL=new Kt(z(q({},he),{mint:he.address}));var vt=class{constructor({decimals:t,symbol:r="UNKNOWN",name:n="UNKNOWN"}){this.decimals=t,this.symbol=r,this.name=n}equals(t){return this===t}},it=vt;it.SOL=new vt(_r);import bi from"bn.js";var Fr=new K(new bi(100)),Be=class extends K{toSignificant(t=5,r,n){return this.mul(Fr).toSignificant(t,r,n)}toFixed(t=2,r,n){return this.mul(Fr).toFixed(t,r,n)}};var wi=W("Raydium_price"),ue=class extends K{constructor(r){let{baseToken:n,quoteToken:i,numerator:o,denominator:s}=r;super(o,s);this.baseToken=n,this.quoteToken=i,this.scalar=new K(Ft(n.decimals),Ft(i.decimals))}get raw(){return new K(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ue({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(r){this.quoteToken!==r.baseToken&&wi.logWithError("mul token not equals");let n=super.mul(r);return new ue({baseToken:this.baseToken,quoteToken:r.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(r=this.quoteToken.decimals,n,i){return this.adjusted.toSignificant(r,n,i)}toFixed(r=this.quoteToken.decimals,n,i){return this.adjusted.toFixed(r,n,i)}};var Ti=new ce(0),Eu=new ce(1),Du=new ce(2),Wu=new ce(3),Ou=new ce(5),Rt=new ce(10),Uu=new ce(100),qu=new ce(1e3),Gu=new ce(1e4);function Ft(e){return Rt.pow(N(e))}var Vr=e=>typeof e=="number";function Mr(e,t,r){let n=Vr(t)?t*((r==null?void 0:r.unit)==="s"?1e3:1):t;return new Date(e).getTime()<=n}function Er(e,t,r){let n=Vr(t)?t*((r==null?void 0:r.unit)==="s"?1e3:1):t;return new Date(e).getTime()>n}function wt(e,t=1,r=[]){let n=[...e];if(t<=0)return r;for(;n.length;)r.push(n.splice(0,t));return r}import{PublicKey as xi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Si}from"@solana/spl-token";import{ComputeBudgetProgram as Qu,Keypair as tc,PublicKey as Pi,Transaction as nc,TransactionMessage as oc,VersionedTransaction as sc}from"@solana/web3.js";var Ne={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as lc}from"@solana/spl-token";var fc=W("Raydium_txUtil");function ee(e,t){let[r,n]=Pi.findProgramAddressSync(e,t);return{publicKey:r,nonce:n}}function We(e,t,r){return ee([e.toBuffer(),(r!=null?r:Si).toBuffer(),t.toBuffer()],new xi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import bc from"bn.js";import{PublicKey as xc,AddressLookupTableAccount as Sc}from"@solana/web3.js";import{PublicKey as Wc,sendAndConfirmTransaction as Oc,SystemProgram as Gc,Transaction as Hc,TransactionMessage as Yc,VersionedTransaction as Zc}from"@solana/web3.js";import Jc from"axios";import{PublicKey as ki}from"@solana/web3.js";import Li from"bn.js";function Ai(e){return typeof e=="object"&&e!==null&&![we,ae,ki,K,Li,ue,Be].some(t=>typeof t=="object"&&e instanceof t)}function ot(e){return typeof e=="string"?Nt(e):Array.isArray(e)?e.map(t=>ot(t)):Ai(e)?Object.fromEntries(Object.entries(e).map(([t,r])=>[t,ot(r)])):e}import Ii from"bn.js";var ul=new Ii(1e6);var Vt=C([A("mint"),A("owner"),y("amount"),Le("delegateOption"),A("delegate"),_("state"),Le("isNativeOption"),y("isNative"),y("delegatedAmount"),Le("closeAuthorityOption"),A("closeAuthority")]);var Oe=W("Raydium.farm.util");function Gl({programId:e,poolId:t,mint:r,type:n}){let{publicKey:i}=ee([t.toBuffer(),r.toBuffer(),Buffer.from(n==="lpVault"?"lp_vault_associated_seed":n==="rewardVault"?"reward_vault_associated_seed":"","utf-8")],e);return i}function ne({programId:e,poolId:t,owner:r,version:n}){let{publicKey:i}=ee([t.toBuffer(),r.toBuffer(),Buffer.from(n===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],e);return i}var Hl=({programId:e,poolId:t})=>ee([t.toBuffer()],e);function jl(e){return{isSet:new X(1),rewardPerSecond:N(e.perSecond),rewardOpenTime:N(e.openTime),rewardEndTime:N(e.endTime),rewardType:N(Ae[e.rewardType])}}function Yl(e){return N(e.endTime).sub(N(e.openTime)).mul(N(e.perSecond))}function Ri(e){let t=or[e];return t||Oe.logWithError("invalid version",e),t}function Bi(e){let t=ir[e];return t||Oe.logWithError("invalid version",e),t}function Ni(e,t,r,n){if(e.version===3||e.version===5){if(e.lastSlot.gte(new X(r)))return e;let i=new X(r).sub(e.lastSlot);e.lastSlot=new X(r);for(let o of e.rewardInfos){if(t.amount.eq(new X(0)))continue;let s=o.perSlotReward.mul(i);o.perShareReward=o.perShareReward.add(s.mul(new X(10).pow(new X(e.version===3?9:15))).div(t.amount)),o.totalReward=o.totalReward.add(s)}}else if(e.version===6)for(let i of e.rewardInfos){if(i.rewardState.eq(new X(0)))continue;let o=X.min(new X(n),i.rewardEndTime);if(i.rewardOpenTime.gte(o))continue;let a=o.sub(i.rewardLastUpdateTime).mul(i.rewardPerSecond),c=i.totalReward.sub(i.totalRewardEmissioned);c.lt(a)?(a=c,i.rewardLastUpdateTime=i.rewardLastUpdateTime.add(c.div(i.rewardPerSecond))):i.rewardLastUpdateTime=o,!t.amount.eq(new X(0))&&(i.accRewardPerShare=i.accRewardPerShare.add(a.mul(e.rewardMultiplier).div(t.amount)),i.totalRewardEmissioned=i.totalRewardEmissioned.add(a))}return e}async function Zl({connection:e,farmPools:t,owner:r,config:n,chainTime:i}){let o=!1,s=!1,a=new X(10),c=[];for(let d of t){let m=ot(d);m.version===6?s=!0:o=!0,c.push({pubkey:m.id,version:m.version,key:"state",poolId:m.id},{pubkey:m.lpVault,version:m.version,key:"lpVault",poolId:m.id}),r&&c.push({pubkey:ne({programId:m.programId,poolId:m.id,owner:r,version:d.version}),version:m.version,key:"ledger",poolId:m.id})}let u={},l=await mr(e,c,n);for(let{pubkey:d,version:m,key:b,poolId:h,accountInfo:S}of l){let L=h.toBase58();if(u[L]=q({},u[L]),b==="state"){let F=Bi(m);(!S||!S.data||S.data.length!==F.span)&&Oe.logWithError(`invalid farm state account info, pools.id, ${d}`),u[L].state=F.decode(S.data)}else if(b==="lpVault")(!S||!S.data||S.data.length!==Vt.span)&&Oe.logWithError(`invalid farm lp vault account info, pools.lpVault, ${d}`),u[L].lpVault=Vt.decode(S.data);else if(b==="ledger"){let F=Ri(m);S&&S.data&&(S.data.length!==F.span&&Oe.logWithError(`invalid farm ledger account info, ledger, ${d}`),u[L].ledger=F.decode(S.data))}}let f=s||o?await e.getSlot():0;for(let d of Object.keys(u))u[d]!==void 0&&(u[d].state=Ni(u[d].state,u[d].lpVault,f,i));for(let[d,{state:m,ledger:b}]of Object.entries(u))if(b){let h=m.version===6?m.rewardMultiplier:m.rewardInfos.length===1?a.pow(new X(9)):a.pow(new X(15)),S=m.rewardInfos.map((L,F)=>{let B=b.rewardDebts[F];return b.deposited.mul(m.version===6?L.accRewardPerShare:L.perShareReward).div(h).sub(B)});u[d].wrapped=z(q({},u[d].wrapped),{pendingRewards:S})}return u}function zl(e,t=Date.now()){if(e.version===6){let r=e.state.rewardInfos;if(r.every(({rewardOpenTime:n})=>Mr(t,n.toNumber(),{unit:"s"})))return"upcoming pool";if(r.every(({rewardEndTime:n})=>Er(t,n.toNumber(),{unit:"s"})))return"closed pool"}else{let r=e.state.rewardInfos.map(({perSlotReward:n})=>n);if(r.length===2){if(String(r[0])==="0"&&String(r[1])!=="0")return"normal fusion pool";if(String(r[0])!=="0"&&String(r[1])!=="0")return"dual fusion pool";if(String(r[0])==="0"&&String(r[1])==="0")return"closed pool"}else if(r.length===1&&String(r[0])==="0")return"closed pool"}}async function Mt(e,t,r,n){let i=await e.getAccountInfo(t);if(i===null)throw Error("registrar info check error");let s=fr.decode(i.data).votingMints.findIndex(l=>l.mint.equals(n));if(s===-1)throw Error("find voter mint error");let a=await e.getAccountInfo(r);if(a===null)return{index:s,isInit:!1};let u=dr.decode(a.data).deposits.findIndex(l=>l.isUsed&&l.votingMintConfigIdx===s);return u===-1?{index:s,isInit:!1}:{index:u,isInit:!0}}import{PublicKey as x,SystemProgram as Te,SYSVAR_CLOCK_PUBKEY as Ce,SYSVAR_RENT_PUBKEY as Ci,TransactionInstruction as U}from"@solana/web3.js";import st from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as _i,createAssociatedTokenAccountIdempotentInstruction as Ki,TOKEN_PROGRAM_ID as Q}from"@solana/spl-token";function Et(e,t,r){return ee([t.toBuffer(),Buffer.from("registrar","utf8"),r.toBuffer()],e)}function Dt(e,t){return ee([t.toBuffer(),Buffer.from("voting_mint_seed","utf8")],e)}function Wt(e,t){return ee([t.toBuffer()],e)}function Ot(e,t,r){return ee([t.toBuffer(),Buffer.from("voter","utf8"),r.toBuffer()],e)}function Ut(e,t,r){return ee([t.toBuffer(),Buffer.from("voter-weight-record","utf8"),r.toBuffer()],e)}function qt(e,t,r,n){return ee([Buffer.from("governance","utf8"),t.toBuffer(),r.toBuffer(),n.toBuffer()],e)}var vi=W("Raydium_farm_instruction"),Ue={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};function mf(e){let{version:t,id:r,ledger:n,programId:i,owner:o}=e,s={3:9,5:10}[t];s||vi.logWithError(`invalid farm pool version: ${t}`);let a=Buffer.alloc(pt.span);pt.encode({instruction:s},a);let c=[p({pubkey:r}),p({pubkey:n}),p({pubkey:o,isWritable:!1}),p({pubkey:Te.programId,isWritable:!1}),p({pubkey:Ci,isWritable:!1})];return{instruction:new U({programId:i,keys:c,data:a}),instructionType:Ne.FarmV3CreateLedger}}function gf(e){var n;let t=Buffer.alloc(gt.span);gt.encode({instruction:0,nonce:new st(e.nonce),rewardTimeInfo:e.rewardInfoConfig},t);let r=[...Bt,p({pubkey:e.farmId}),p({pubkey:e.farmAuthority,isWritable:!1}),p({pubkey:e.lpVault}),p({pubkey:e.lpMint,isWritable:!1}),p({pubkey:e.lockVault}),p({pubkey:e.lockMint,isWritable:!1}),p({pubkey:(n=e.lockUserAccount)!=null?n:be}),p({pubkey:e.owner,isWritable:!1,isSigner:!0})];for(let i of e.rewardInfo)r.push(p({pubkey:i.rewardMint,isWritable:!1}),p({pubkey:i.rewardVault}),p({pubkey:i.userRewardToken}));return{instruction:new U({programId:e.programId,keys:r,data:t}),instructionType:Ne.FarmV6Create}}function yf(e){let t=Buffer.alloc(mt.span);mt.encode({instruction:5},t);let r=[p({pubkey:Q,isWritable:!1}),p({pubkey:e.id}),p({pubkey:e.authority,isWritable:!1}),p({pubkey:e.lpVault,isWritable:!1}),p({pubkey:e.rewardVault}),p({pubkey:e.userRewardToken}),p({pubkey:e.owner,isWritable:!1,isSigner:!0})];return{instruction:new U({programId:e.programId,keys:r,data:t}),instructionType:Ne.FarmV6CreatorWithdraw}}function Fi(e,t,r,n,i,o,s,a,c,u,l,f,d){let m=C([_("depositEntryIndex"),y("amount")]),b=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:Q,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:nt,isSigner:!1,isWritable:!1}],h=Buffer.alloc(m.span);m.encode({depositEntryIndex:f,amount:d},h);let S=Buffer.from([...Ue.voterStakeRegistryDeposit,...h]);return new U({keys:b,programId:e,data:S})}function Vi(e,t,r,n){let i=C([]),o=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:Te.programId,isSigner:!1,isWritable:!1}],s=Buffer.alloc(i.span);i.encode({},s);let a=Buffer.from([...Ue.voterStakeRegistryUpdateVoterWeightRecord,...s]);return new U({keys:o,programId:e,data:a})}function Mi(e,t,r,n,i,o,s,a,c,u,l,f,d,m,b){let h=C([_("depositEntryIndex"),y("amount")]),S=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:Q,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:nt,isSigner:!1,isWritable:!1}],L=Buffer.alloc(h.span);h.encode({depositEntryIndex:m,amount:b},L);let F=Buffer.from([...Ue.voterStakeRegistryWithdraw,...L]);return new U({keys:S,programId:e,data:F})}function Ei(e,t,r,n,i,o){let s=C([_("ins")]),a=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!0,isWritable:!0},{pubkey:Te.programId,isSigner:!1,isWritable:!1}],c=Buffer.alloc(s.span);return s.encode({ins:23},c),new U({keys:a,programId:e,data:c})}function Di(e,t,r,n,i,o,s,a){let c=C([_("voterBump"),_("voterWeightRecordBump")]),u=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:Te.programId,isSigner:!1,isWritable:!1},{pubkey:Ct,isSigner:!1,isWritable:!1},{pubkey:nt,isSigner:!1,isWritable:!1}],l=Buffer.alloc(c.span);c.encode({voterBump:s,voterWeightRecordBump:a},l);let f=Buffer.from([...Ue.voterStakeRegistryCreateVoter,...l]);return new U({keys:u,programId:e,data:f})}function Wi(e,t,r,n,i,o,s,a,c,u,l,f){let d=C([_("depositEntryIndex"),_("kind"),_("option"),y("startTs"),Le("periods"),Ke("allowClawback")]),m=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:Te.programId,isSigner:!1,isWritable:!1},{pubkey:Q,isSigner:!1,isWritable:!1},{pubkey:_i,isSigner:!1,isWritable:!1},{pubkey:Ct,isSigner:!1,isWritable:!1}],b=Buffer.alloc(d.span);d.encode({depositEntryIndex:a,kind:c,option:u===void 0?0:1,startTs:u,periods:l,allowClawback:f},b);let h=Buffer.from([...Ue.voterStakeRegistryCreateDepositEntry,...b]);return new U({keys:m,programId:e,data:h})}async function hf({connection:e,programId:t,governanceProgramId:r,voteWeightAddinProgramId:n,realm:i,communityTokenMint:o,owner:s,poolId:a,tokenProgram:c}){let u=Et(n,i,o).publicKey,l=ne({programId:t,poolId:a,owner:s,version:3}),f=await e.getAccountInfo(l);if(f===null)throw Error("user is not staker");let d=Fe.decode(f.data),m=d.deposited.sub(d.voteLockedBalance);if(console.log("amount",m.toString()),m.eq(new st(0)))throw Error("user do not has new stake amount");let b=Dt(t,a).publicKey,h=Wt(t,a).publicKey,{publicKey:S,nonce:L}=Ot(n,u,s),F=We(S,b,c).publicKey,{publicKey:B,nonce:D}=Ut(n,u,s),le=qt(r,i,o,s).publicKey,Y=[],ge=We(s,b,c).publicKey;if(await e.getAccountInfo(ge)===null&&Y.push(Ki(s,ge,s,b)),await e.getAccountInfo(S)===null){let Se=Ei(r,i,s,o,s,le);Y.push(Se,Di(n,u,S,B,s,s,L,D))}let{index:xe,isInit:$}=await Mt(e,u,S,b);return $||Y.push(Wi(n,u,S,F,s,s,b,xe,0,void 0,0,!1)),Y.push(Fi(n,u,S,F,ge,s,l,a,b,h,t,xe,m),Vi(n,u,S,B)),Y}async function bf({connection:e,programId:t,governanceProgramId:r,voteWeightAddinProgramId:n,realm:i,communityTokenMint:o,owner:s,poolId:a,tokenProgram:c}){let u=Et(n,i,o).publicKey,l=ne({programId:t,poolId:a,owner:s,version:3}),f=await e.getAccountInfo(l);if(f===null)throw Error("user is not staker");let d=Fe.decode(f.data);if(d.voteLockedBalance.eq(new st(0)))throw Error("user has vote locked balance = 0");let m=Dt(t,a).publicKey,b=Wt(t,a).publicKey,{publicKey:h}=Ot(n,u,s),S=We(h,m,c).publicKey,{publicKey:L}=Ut(n,u,s),F=qt(r,i,o,s).publicKey,B=[],{index:D,isInit:le}=await Mt(e,u,h,m);if(!le)throw Error("deposit entry index check error");return B.push(Mi(n,u,h,s,F,L,S,We(s,m,c).publicKey,l,a,m,b,t,D,d.voteLockedBalance)),B}function wf({payer:e,rewardVault:t,userRewardTokenPub:r,farmKeys:n,rewardInfo:i}){let o=Buffer.alloc(yt.span);yt.encode({instruction:3,rewardReopenTime:N(i.openTime),rewardEndTime:N(i.endTime),rewardPerSecond:N(i.perSecond)},o);let s=[p({pubkey:Q,isWritable:!1}),p({pubkey:n.id}),p({pubkey:n.lpVault,isWritable:!1}),p({pubkey:t}),p({pubkey:r}),p({pubkey:e,isWritable:!1,isSigner:!0})];return new U({programId:n.programId,keys:s,data:o})}function Tf({payer:e,userRewardTokenPub:t,farmKeys:r,rewardVault:n,rewardInfo:i}){let o=Buffer.alloc(ht.span);ht.encode({instruction:4,isSet:new st(1),rewardPerSecond:N(i.perSecond),rewardOpenTime:N(i.openTime),rewardEndTime:N(i.endTime),rewardType:N(Ae[i.rewardType])},o);let s=[...Bt,p({pubkey:r.id}),p({pubkey:r.authority,isWritable:!1}),p({pubkey:i.mint,isWritable:!1}),p({pubkey:n}),p({pubkey:t}),p({pubkey:e,isWritable:!1,isSigner:!0})];return new U({programId:r.programId,keys:s,data:o})}function Pf(e){let{farmInfo:t,farmKeys:r,version:n,lpAccount:i,rewardAccounts:o,owner:s,instruction:a,amount:c,deposit:u}=e,[l,f]=[new x(t.programId),new x(t.id)],d=ne({programId:l,poolId:f,owner:s,version:n}),m=Buffer.alloc(Z.span);Z.encode({instruction:a,amount:c},m);let b=n===6?[p({pubkey:Q,isWritable:!1}),...u?[p({pubkey:Te.programId,isWritable:!1})]:[],p({pubkey:f}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:new x(r.lpVault)}),p({pubkey:d}),p({pubkey:s,isWritable:!1,isSigner:!0}),p({pubkey:i})]:[p({pubkey:f}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:d}),p({pubkey:s,isWritable:!1,isSigner:!0}),p({pubkey:i}),p({pubkey:new x(r.lpVault)}),p({pubkey:o[0]}),p({pubkey:new x(r.rewardInfos[0].vault)}),p({pubkey:Ce,isWritable:!1}),p({pubkey:Q,isWritable:!1})];if(n===5)for(let h=1;h<r.rewardInfos.length;h++)b.push(p({pubkey:o[h]})),b.push(p({pubkey:new x(r.rewardInfos[h].vault)}));if(n===6)for(let h=0;h<r.rewardInfos.length;h++)b.push(p({pubkey:new x(r.rewardInfos[h].vault)})),b.push(p({pubkey:o[h]}));return new U({programId:l,keys:b,data:m})}function xf(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:i,owner:o,amount:s}=e,[a,c]=[new x(t.programId),new x(t.id)],u=ne({programId:a,poolId:c,owner:o,version:6}),l=Buffer.alloc(Z.span);Z.encode({instruction:2,amount:N(s)},l);let f=[p({pubkey:Q,isWritable:!1}),p({pubkey:c}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:new x(r.lpVault)}),p({pubkey:u}),p({pubkey:o,isWritable:!1,isSigner:!0}),p({pubkey:n})];for(let d=0;d<r.rewardInfos.length;d++)f.push(p({pubkey:new x(r.rewardInfos[d].vault)})),f.push(p({pubkey:i[d]}));return new U({programId:a,keys:f,data:l})}function Sf(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:i,owner:o,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new x(t.programId),new x(t.id)],l=ne({programId:c,poolId:u,owner:o,version:5}),f=Buffer.alloc(Z.span);Z.encode({instruction:12,amount:N(s)},f);let d=[p({pubkey:u}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:l}),p({pubkey:o,isWritable:!1,isSigner:!0}),p({pubkey:n}),p({pubkey:new x(r.lpVault)}),p({pubkey:i[0]}),p({pubkey:new x(r.rewardInfos[0].vault)}),p({pubkey:Ce,isWritable:!1}),p({pubkey:Q,isWritable:!1})];for(let m=1;m<r.rewardInfos.length;m++)d.push(p({pubkey:i[m]})),d.push(p({pubkey:new x(r.rewardInfos[m].vault)}));if(a)for(let m of a)d.push(p({pubkey:m}));return new U({programId:c,keys:d,data:f})}function kf(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:i,owner:o,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new x(t.programId),new x(t.id)],l=C([_("instruction"),y("amount")]),f=[p({pubkey:u}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:a[0]}),p({pubkey:o,isSigner:!0,isWritable:!1}),p({pubkey:n}),p({pubkey:new x(r.lpVault)}),p({pubkey:i[0]}),p({pubkey:new x(r.rewardInfos[0].vault)}),p({pubkey:Ce,isWritable:!1}),p({pubkey:Q,isWritable:!1}),p({pubkey:i[1]}),p({pubkey:new x(r.rewardInfos[1].vault)})],d=Buffer.alloc(l.span);return l.encode({instruction:2,amount:s},d),new U({keys:f,programId:c,data:d})}function Lf(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:i,owner:o,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new x(t.programId),new x(t.id)],l=ne({programId:c,poolId:u,owner:o,version:3}),f=Buffer.alloc(Z.span);Z.encode({instruction:11,amount:N(s)},f);let d=[p({pubkey:u}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:l}),p({pubkey:o,isWritable:!1,isSigner:!0}),p({pubkey:n}),p({pubkey:new x(r.lpVault)}),p({pubkey:i[0]}),p({pubkey:new x(r.rewardInfos[0].vault)}),p({pubkey:Ce,isWritable:!1}),p({pubkey:Q,isWritable:!1})];if(a)for(let m of a)d.push(p({pubkey:m}));return new U({programId:c,keys:d,data:f})}function Af(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:i,owner:o,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new x(t.programId),new x(t.id)],l=ne({programId:c,poolId:u,owner:o,version:3}),f=Buffer.alloc(Z.span);Z.encode({instruction:10,amount:N(s)},f);let d=[p({pubkey:u}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:l}),p({pubkey:o,isWritable:!1,isSigner:!0}),p({pubkey:n}),p({pubkey:new x(r.lpVault)}),p({pubkey:i[0]}),p({pubkey:new x(r.rewardInfos[0].vault)}),p({pubkey:Ce,isWritable:!1}),p({pubkey:Q,isWritable:!1})];if(a)for(let m of a)d.push(p({pubkey:m}));return new U({programId:c,keys:d,data:f})}function If(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:i,owner:o,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new x(t.programId),new x(t.id)],l=ne({programId:c,poolId:u,owner:o,version:5}),f=Buffer.alloc(Z.span);Z.encode({instruction:11,amount:N(s)},f);let d=[p({pubkey:u}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:l}),p({pubkey:o,isWritable:!1,isSigner:!0}),p({pubkey:n}),p({pubkey:new x(r.lpVault)}),p({pubkey:i[0]}),p({pubkey:new x(r.rewardInfos[0].vault)}),p({pubkey:Ce,isWritable:!1}),p({pubkey:Q,isWritable:!1})];for(let m=1;m<r.rewardInfos.length;m++)d.push(p({pubkey:i[m]})),d.push(p({pubkey:new x(r.rewardInfos[m].vault)}));if(a)for(let m of a)d.push(p({pubkey:m}));return new U({programId:c,keys:d,data:f})}function Rf(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:i,owner:o,amount:s}=e,[a,c]=[new x(t.programId),new x(t.id)],u=ne({programId:a,poolId:c,owner:o,version:6}),l=Buffer.alloc(Z.span);Z.encode({instruction:1,amount:N(s)},l);let f=[p({pubkey:Q,isWritable:!1}),p({pubkey:Te.programId,isWritable:!1}),p({pubkey:c}),p({pubkey:new x(r.authority),isWritable:!1}),p({pubkey:new x(r.lpVault)}),p({pubkey:u}),p({pubkey:o,isWritable:!1,isSigner:!0}),p({pubkey:n})];for(let d=0;d<r.rewardInfos.length;d++)f.push(p({pubkey:new x(r.rewardInfos[d].vault)})),f.push(p({pubkey:i[d]}));return new U({programId:a,keys:f,data:l})}export{Bs as DEV_FARM_LOCK_MINT,Ns as DEV_FARM_LOCK_VAULT,Is as FARM_LOCK_MINT,Rs as FARM_LOCK_VAULT,Ks as FARM_PROGRAM_TO_VERSION,or as FARM_VERSION_TO_LEDGER_LAYOUT,ir as FARM_VERSION_TO_STATE_LAYOUT,dr as Voter,ln as VoterDepositEntry,cn as VoterLockup,fr as VoterRegistrar,un as VoterVotingMintConfig,pt as associatedLedgerAccountLayout,Yl as calFarmRewardAmount,mf as createAssociatedLedgerAccountInstruction,Z as dwLayout,ht as farmAddRewardLayout,Ws as farmLedgerLayoutV3_1,Fe as farmLedgerLayoutV3_2,Os as farmLedgerLayoutV5_1,cr as farmLedgerLayoutV5_2,lr as farmLedgerLayoutV6_1,jl as farmRewardInfoToConfig,gt as farmRewardLayout,yt as farmRewardRestartLayout,an as farmRewardTimeInfoLayout,sr as farmStateV3Layout,ar as farmStateV5Layout,ur as farmStateV6Layout,Zl as fetchMultipleFarmInfoAndUpdate,Hl as getAssociatedAuthority,ne as getAssociatedLedgerAccount,Gl as getAssociatedLedgerPoolAccount,Mt as getDepositEntryIndex,Ri as getFarmLedgerLayout,Bi as getFarmStateLayout,Et as getRegistrarAddress,qt as getTokenOwnerRecordAddress,Ot as getVoterAddress,Ut as getVoterWeightRecordAddress,Wt as getVotingMintAuthority,Dt as getVotingTokenMint,Ei as governanceCreateTokenOwnerRecord,Cs as isValidFarmVersion,zl as judgeFarmType,Tf as makeAddNewRewardInstruction,gf as makeCreateFarmInstruction,yf as makeCreatorWithdrawFarmRewardInstruction,Af as makeDepositInstructionV3,If as makeDepositInstructionV5,Rf as makeDepositInstructionV6,hf as makeDepositTokenInstruction,Pf as makeDepositWithdrawInstruction,wf as makeRestartRewardInstruction,Lf as makeWithdrawInstructionV3,kf as makeWithdrawInstructionV4,Sf as makeWithdrawInstructionV5,xf as makeWithdrawInstructionV6,bf as makeWithdrawTokenInstruction,Ae as poolTypeV6,nn as realFarmStateV3Layout,on as realFarmStateV5Layout,sn as realFarmV6Layout,Ni as updateFarmPoolInfo,_s as validateFarmRewards,Wi as voterStakeRegistryCreateDepositEntry,Di as voterStakeRegistryCreateVoter,Fi as voterStakeRegistryDeposit,Vi as voterStakeRegistryUpdateVoterWeightRecord,Mi as voterStakeRegistryWithdraw,mt as withdrawRewardLayout};
//# sourceMappingURL=index.mjs.map