/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@threebow/raydium-sdk@1.4.1/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import*as e from"@noble/hashes/sha256";import*as t from"@solana/spl-token";import*as n from"@solana/web3.js";import*as i from"big.js";import*as o from"bn.js";import*as r from"decimal.js-light";import*as a from"toformat";import*as s from"@solana/buffer-layout";import*as c from"decimal.js";var u={d:(e,t)=>{for(var n in t)u.o(t,n)&&!u.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},m={};u.d(m,{euO:()=>lo,_uA:()=>f.ASSOCIATED_TOKEN_PROGRAM_ID,XGj:()=>U,f3u:()=>K,a7X:()=>Uo,XBP:()=>zi,roG:()=>Wn,OKd:()=>zt,XYF:()=>Dn,VQn:()=>at,t6b:()=>ct,jsJ:()=>ar,Fa6:()=>Be,ihT:()=>Qe,NOu:()=>Si,$uJ:()=>Ce,A9e:()=>Ur,Kat:()=>Wr,DJV:()=>Pe,LKg:()=>yr,f4A:()=>Kr,DOP:()=>Vo,jKp:()=>C,ArA:()=>Zn,IOH:()=>Jn,mvD:()=>$n,F60:()=>ei,w7z:()=>ti,D9Z:()=>zn,o5Z:()=>jn,aEf:()=>Qn,cId:()=>ii,rgV:()=>ni,GRn:()=>Ji,l8n:()=>Do,YGF:()=>pe,l6j:()=>yi,atS:()=>$i,iAi:()=>Xe,UBw:()=>V,p01:()=>vn,mtu:()=>Mr,Mt7:()=>Br,TRh:()=>Ti,FM9:()=>Ii,e0T:()=>hi,eNL:()=>ji,VR8:()=>Qi,vHH:()=>Zi,FTx:()=>En,Ar2:()=>it,ZpI:()=>Vr,kuD:()=>nr,RMk:()=>Er,ini:()=>P,YdH:()=>v,YX5:()=>wi,fjf:()=>Oe,i66:()=>_r,krz:()=>Nr,dcy:()=>Re,WTe:()=>Xr,SsU:()=>dr,If1:()=>lr,F6l:()=>ae,$4b:()=>Hi,v$S:()=>Yi,jIi:()=>E,j6n:()=>M,aym:()=>Xi,r_h:()=>Gi,IYM:()=>fr,_CO:()=>Hr,kj:()=>Zo,Rzd:()=>Ni,ZwB:()=>Fi,p64:()=>kr,ibW:()=>Ar,z7A:()=>Ui,ryP:()=>me,ZwJ:()=>ko,q_k:()=>xo,Rig:()=>Ko,R5D:()=>zo,TOv:()=>an,tis:()=>Ao,pLN:()=>po,C7X:()=>wo,TgV:()=>fo,pMB:()=>go,gGi:()=>$e,fmp:()=>Wo,NLW:()=>Qo,UF3:()=>Go,R$U:()=>Fo,SjD:()=>or,tAG:()=>tt,LqS:()=>Yo,tFT:()=>xi,liD:()=>Ki,y1o:()=>xr,i6K:()=>Gn,Q2s:()=>Yn,u63:()=>Hn,_yy:()=>B,kk:()=>No,mLU:()=>ce,Eic:()=>ur,lW5:()=>cr,RYt:()=>mr,kE0:()=>Ie,rqX:()=>Pn,d_N:()=>hn,ySi:()=>L,AmS:()=>A.SYSVAR_CLOCK_PUBKEY,zet:()=>A.SYSVAR_RENT_PUBKEY,RGo:()=>Rn,TOp:()=>er,vAe:()=>yn,ohs:()=>ir,JT1:()=>fe,sZ2:()=>bi,$sw:()=>De,HxA:()=>qr,sA6:()=>ve,JBA:()=>le,iek:()=>Bo,JQj:()=>yo,zpU:()=>Eo,LXt:()=>eo,H__:()=>f.TOKEN_PROGRAM_ID,gEl:()=>de,SiL:()=>_o,rN6:()=>qo,Y8e:()=>jo,oMl:()=>Ho,Myg:()=>Xo,pk2:()=>tr,mO4:()=>Lo,gA1:()=>Mo,WUB:()=>Ve,dtM:()=>Ze,no2:()=>Ee,nz3:()=>Yr,eVA:()=>On,ogv:()=>Wi,uIf:()=>to,vAO:()=>st,EJI:()=>wn,ov0:()=>jr,a32:()=>ci,qdi:()=>si,_J2:()=>ai,CsM:()=>ri,BEp:()=>oi,VbZ:()=>he,EgC:()=>jt,xAR:()=>on,xEJ:()=>ue,j0O:()=>Ae,K$4:()=>ge,YQE:()=>ye,elo:()=>Je,hcv:()=>sr,IXX:()=>gn,pcg:()=>Xt,Ikd:()=>Ft,XgW:()=>cn,KLW:()=>Vn,cq6:()=>_n,F33:()=>X,Evv:()=>Di,Wiu:()=>qi,xJY:()=>Ri,ZZd:()=>Gt,KAR:()=>qe,YOc:()=>un,qBE:()=>Bi,WlF:()=>Te,oLh:()=>mn,xnN:()=>_t,WZf:()=>qt,eh7:()=>Ut,Mn2:()=>Kt,EXr:()=>Nn,qwX:()=>q,UeT:()=>$,Xyr:()=>Pr,xxS:()=>Ln,xSZ:()=>hr,J_:()=>Ir,epJ:()=>Z,$ic:()=>J,Gnj:()=>se,V2d:()=>bo,t0r:()=>vo,_EG:()=>Ro,Ssy:()=>Oo,CaP:()=>Co,AHQ:()=>So,xFz:()=>Io,NSb:()=>To,y5D:()=>Po,iZd:()=>ho,SX$:()=>Cr,bfS:()=>Kn,d5x:()=>Bn,_Hq:()=>ut,bHX:()=>nn,AQE:()=>io,Q69:()=>ro,fOk:()=>tn,i8:()=>en,Inb:()=>Ei,zjW:()=>Li,OXI:()=>Vi,Nfw:()=>Dr,uXB:()=>Lr,FeJ:()=>Y,eoV:()=>G,Jae:()=>Me,dSq:()=>F,EYN:()=>_e,jVA:()=>H,Fr9:()=>co,Rl:()=>N,z_P:()=>ao,Fz5:()=>mo,nTM:()=>xn,urb:()=>uo,gMj:()=>vt,LND:()=>Vt,_OP:()=>gt,$r4:()=>Tt,cvk:()=>Ht,UW2:()=>vi,_fN:()=>Oi,Kwn:()=>sn,yxA:()=>be,Dh0:()=>te,h47:()=>ne,pC_:()=>W,gPF:()=>gi,ZLm:()=>rn,Ezq:()=>An,Tlo:()=>ht,xP3:()=>Dt,aQE:()=>Pt,O9d:()=>Lt,Xo1:()=>Ct,ual:()=>Et,_n5:()=>Rt,IST:()=>Bt,Yt4:()=>Ot,hOp:()=>Mt,s8:()=>It,A9x:()=>In,p5c:()=>_i,noX:()=>ee,cA7:()=>ie,wVT:()=>je,q7f:()=>oe,Bd8:()=>fn,n_M:()=>kn,Cow:()=>Mi,NSp:()=>ln,Zn6:()=>Se,pXt:()=>so,z71:()=>$t,KBS:()=>dt,xBw:()=>no,LbL:()=>yt,Vbz:()=>lt,b7G:()=>kt,Jq:()=>Zt,sBt:()=>oo,Gjv:()=>wt,utp:()=>ft,qYE:()=>bt,aqH:()=>At,hn8:()=>St,AW$:()=>Jt,u8:()=>Qt,G0j:()=>bn,K_r:()=>Wt,jj$:()=>j,FYO:()=>Mn,KAL:()=>Yt,Uk0:()=>_,Bhw:()=>dn,t3V:()=>pn,dlQ:()=>z,lls:()=>Tn});const d=(l={sha256:()=>e.sha256},p={},u.d(p,l),p);var l,p;const f=(e=>{var t={};return u.d(t,e),t})({ASSOCIATED_TOKEN_PROGRAM_ID:()=>t.ASSOCIATED_TOKEN_PROGRAM_ID,AccountLayout:()=>t.AccountLayout,TOKEN_2022_PROGRAM_ID:()=>t.TOKEN_2022_PROGRAM_ID,TOKEN_PROGRAM_ID:()=>t.TOKEN_PROGRAM_ID,createAssociatedTokenAccountInstruction:()=>t.createAssociatedTokenAccountInstruction,createCloseAccountInstruction:()=>t.createCloseAccountInstruction,createInitializeAccountInstruction:()=>t.createInitializeAccountInstruction,createInitializeMintInstruction:()=>t.createInitializeMintInstruction,createMintToInstruction:()=>t.createMintToInstruction,createTransferInstruction:()=>t.createTransferInstruction,getTransferFeeConfig:()=>t.getTransferFeeConfig,unpackMint:()=>t.unpackMint}),A=(e=>{var t={};return u.d(t,e),t})({AddressLookupTableAccount:()=>n.AddressLookupTableAccount,ComputeBudgetProgram:()=>n.ComputeBudgetProgram,Keypair:()=>n.Keypair,PublicKey:()=>n.PublicKey,SYSVAR_CLOCK_PUBKEY:()=>n.SYSVAR_CLOCK_PUBKEY,SYSVAR_RENT_PUBKEY:()=>n.SYSVAR_RENT_PUBKEY,SystemProgram:()=>n.SystemProgram,Transaction:()=>n.Transaction,TransactionInstruction:()=>n.TransactionInstruction,TransactionMessage:()=>n.TransactionMessage,VersionedTransaction:()=>n.VersionedTransaction}),g=(e=>{var t={};return u.d(t,e),t})({default:()=>i.default}),y=(e=>{var t={};return u.d(t,e),t})({BN:()=>o.BN,default:()=>o.default,isBN:()=>o.isBN}),k="1.1.0-beta.6";let w=!1,b=!1;const S={debug:1,default:2,info:2,warning:3,error:4,off:5},T={};let I;const h=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){if(e instanceof Error)return e.message}return""}();var P,C;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(P||(P={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.RPC_ERROR="RPC_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS"}(C||(C={}));const R="0123456789abcdef";function O(e,t=!1){let n=e;try{if(e instanceof Uint8Array){let t="";for(let n=0;n<e.length;n++)t+=R[e[n]>>4],t+=R[15&e[n]];n=`Uint8Array(0x${t})`}else if(e instanceof A.PublicKey)n=`PublicKey(${e.toBase58()})`;else if(e instanceof Object&&!t){const t={};Object.entries(e).forEach((([e,n])=>{t[e]=O(n,!0)})),n=JSON.stringify(t)}else t||(n=JSON.stringify(e))}catch(t){n=JSON.stringify(e.toString())}return n}class v{constructor(e){this.version=k,this.moduleName=e}_log(e,t){const n=e.toLowerCase();null==S[n]&&this.throwArgumentError("invalid log level name","logLevel",e),(T[this.moduleName]||S.default)>S[n]||console.log(...t)}debug(...e){this._log(v.levels.DEBUG,["[DEBUG]",...e])}info(...e){this._log(v.levels.INFO,["[INFO]",...e])}warn(...e){this._log(v.levels.WARNING,["[WARN]",...e])}makeError(e,t,n){if(b)return this.makeError("censored error",t,{});t||(t=v.errors.UNKNOWN_ERROR),n||(n={});const i=[];Object.entries(n).forEach((([e,t])=>{i.push(`${e}=${O(t)})`)})),i.push(`code=${t}`),i.push(`module=${this.moduleName}`),i.push(`version=${this.version}`);const o=e;i.length&&(e+=" ("+i.join(", ")+")");const r=new Error(e);return r.reason=o,r.code=t,Object.entries(n).forEach((([e,t])=>{r[e]=t})),r}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(e,t,n){return this.throwError(e,v.errors.INVALID_ARGUMENT,{argument:t,value:n})}assert(e,t,n,i){e||this.throwError(t,n,i)}assertArgument(e,t,n,i){e||this.throwArgumentError(t,n,i)}checkNormalize(e){null==e&&(e="platform missing String.prototype.normalize"),h&&this.throwError("platform missing String.prototype.normalize",v.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:h})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,v.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,v.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,n){n=n?": "+n:"",e<t&&this.throwError("missing argument"+n,v.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+n,v.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",v.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",v.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",v.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return I||(I=new v(k)),I}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",v.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),w){if(!e)return;this.globalLogger().throwError("error censorship permanent",v.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}b=!!e,w=!!t}static setLogLevel(e,t){const n=S[t.toLowerCase()];null!=n?T[e]=n:v.globalLogger().warn("invalid log level - "+t)}static from(e){return new v(e)}}v.errors=C,v.levels=P;const D=v.from("common/pubkey"),L=A.SystemProgram.programId,E=new A.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),B=new A.PublicKey("SysvarRent111111111111111111111111111111111"),M=new A.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),V=new A.PublicKey("Sysvar1nstructions1111111111111111111111111");function _(e){if(e instanceof A.PublicKey)return e;if("string"==typeof e)try{return new A.PublicKey(e)}catch(t){return D.throwArgumentError("invalid public key","publicKey",e)}return D.throwArgumentError("invalid public key","publicKey",e)}function q(e,t){const[n,i]=A.PublicKey.findProgramAddressSync(e,t);return{publicKey:n,nonce:i}}function U(e,t){return{pubkey:e,isWritable:!0,isSigner:t}}function K(e,t){return{pubkey:e,isWritable:!1,isSigner:t}}function x(e){return"object"==typeof e&&null!==e&&![Ze,A.PublicKey,Xe,y.BN,Be,Qe,tt,$e].some((t=>"object"==typeof t&&e instanceof t))}function N(e){return"string"==typeof e?_(e):Array.isArray(e)?e.map((e=>N(e))):x(e)?Object.fromEntries(Object.entries(e).map((([e,t])=>[e,N(t)]))):e}function W(e){return e instanceof A.PublicKey?e.toBase58():Array.isArray(e)?e.map((e=>W(e))):x(e)?Object.fromEntries(Object.entries(e).map((([e,t])=>[e,W(t)]))):e}function F(){A.PublicKey.prototype.inspect=function(){return`<PublicKey: ${this.toString()}>`}}function G(){y.default.prototype.inspect=function(){return`<${this.red?"BN-R":"BN"}: ${this.toString()}>`}}function Y(){F(),G()}function X(e,t=1,n=[]){const i=[...e];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}function H(e,...t){return e.filter((e=>t.every((t=>t.includes(e)))))}function z(e,...t){return e.filter((e=>t.every((t=>!t.includes(e)))))}function j(e){return[...new Set(e)]}const Q=v.from("common/web3");async function Z(e,t,n){const{batchRequest:i,commitment:o}=Object.assign({batchRequest:!1},n),r=X(t,100);let a=new Array(r.length).fill([]);if(i){const t=X(r.map((t=>({methodName:"getMultipleAccounts",args:e._buildArgs([t.map((e=>e.toBase58()))],o,"base64")}))),10);a=(await(await Promise.all(t.map((async t=>await e._rpcBatchRequest(t))))).flat()).map((e=>e.error?Q.throwError("failed to get info for multiple accounts",v.errors.RPC_ERROR,{message:e.error.message}):e.result.value.map((e=>{if(e){const{data:t,executable:n,lamports:i,owner:o,rentEpoch:r}=e;return 2!==t.length&&"base64"!==t[1]?Q.throwError("info must be base64 encoded",v.errors.RPC_ERROR):{data:Buffer.from(t[0],"base64"),executable:n,lamports:i,owner:new A.PublicKey(o),rentEpoch:r}}return null}))))}else try{a=await Promise.all(r.map((t=>e.getMultipleAccountsInfo(t,o))))}catch(e){if(e instanceof Error)return Q.throwError("failed to get info for multiple accounts",v.errors.RPC_ERROR,{message:e.message})}return a.flat()}async function J(e,t,n){const i=await Z(e,t.map((e=>e.pubkey)),n);return t.map(((e,t)=>Object.assign(Object.assign({},e),{accountInfo:i[t]})))}function $(e,t){if(e.length<1)return Q.throwArgumentError("no instructions provided","instructions",e);if(t.length<1)return Q.throwArgumentError("no signers provided","signers",t);const n=new A.Transaction({recentBlockhash:"11111111111111111111111111111111",feePayer:t[0]});n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<ae}catch(e){return!1}}async function ee(e,t,n,i=!0,o){const r=new A.PublicKey("RaydiumSimuLateTransaction11111111111111111"),a=[];let s=new A.Transaction;s.feePayer=r;for(const e of t)$([...s.instructions,e],[r])||(a.push(s),s=new A.Transaction,s.feePayer=r),s.add(e);s.instructions.length>0&&a.push(s);let c=[];try{if(c=await ie(e,a,i,o),c.find((e=>null!==e.err)))throw Error("rpc simulateTransaction error")}catch(e){if(e instanceof Error)return Q.throwError("failed to simulate for instructions",v.errors.RPC_ERROR,{message:e.message})}const u=[];for(const e of c)if(Q.debug("simulate result:",e),e.logs){const t=e.logs.filter((e=>e&&e.includes(n)));Q.debug("filteredLog:",u),Q.assertArgument(0!==t.length,"simulate log not match keyword","keyword",n),u.push(...t)}return u}function te(e,t){const n=e.match(/{["\w:,]+}/g);return n&&1===n.length?n[0]:Q.throwArgumentError("simulate log fail to match json","keyword",t)}function ne(e,t){const n=new RegExp(`"${t}":(\\d+)`,"g").exec(e);return n&&2===n.length?n[1]:Q.throwArgumentError("simulate log fail to match key","key",t)}async function ie(e,t,n,i){let o=[];if(n){const n=await e.getLatestBlockhash(i),r=[];for(const e of t){e.recentBlockhash=n.blockhash,e.lastValidBlockHeight=n.lastValidBlockHeight;const t=e._compile().serialize(),i=e._serialize(t).toString("base64");r.push(i)}const a=r.map((t=>({methodName:"simulateTransaction",args:e._buildArgs([t],i,"base64")}))),s=[],c=20;for(let e=0;e<Math.ceil(a.length/c);e++)s.push(a.slice(e*c,(e+1)*c));o=await(await Promise.all(s.map((async t=>(await e._rpcBatchRequest(t)).map((e=>e.result.value)))))).flat()}else try{throw new Error("Cannot use deprecated method")}catch(e){if(e instanceof Error)return Q.throwError("failed to get info for multiple accounts",v.errors.RPC_ERROR,{message:e.message})}return o}async function oe({connection:e,makeTxVersion:t,innerTransaction:n,lookupTableCache:i,computeBudgetConfig:o,payer:r}){const a=null!=i?i:{},s=[...new Set(n.map((e=>{var t;return(null!==(t=e.lookupTableAddress)&&void 0!==t?t:[]).map((e=>e.toString()))})).flat())],c=[];for(const e of s)void 0===a[e]&&c.push(new A.PublicKey(e));const u=await se({connection:e,address:c});for(const[e,t]of Object.entries(u))a[e]=t;const m=o?function(e){const t=[],n=[];return e.microLamports&&(t.push(A.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.microLamports})),n.push(vn.setComputeUnitPrice)),e.units&&(t.push(A.ComputeBudgetProgram.setComputeUnitLimit({units:e.units})),n.push(vn.setComputeUnitLimit)),{address:{},innerTransaction:{instructions:t,signers:[],instructionTypes:n}}}(o).innerTransaction:void 0,d=[];let l=[];for(const e of n){if(0===e.instructions.length)continue;const n=[...l,e],i=m?[m,...n]:n;if(l.length<12&&(re({makeTxVersion:t,innerIns:i,payer:r,lookupTableAddressAccount:a})||re({makeTxVersion:t,innerIns:n,payer:r,lookupTableAddressAccount:a})))l.push(e);else{if(0===l.length)throw Error(" item ins too big ");let n;if(t===On.V0){n={};for(const e of[...new Set(l.map((e=>{var t;return null!==(t=e.lookupTableAddress)&&void 0!==t?t:[]})).flat().map((e=>e.toString())))])void 0!==a[e]&&(n[e]=a[e])}if(re({makeTxVersion:t,innerIns:m?[m,...l]:l,payer:r,lookupTableAddressAccount:a})){const e=m?[m,...l]:l;d.push({instructionTypes:e.map((e=>e.instructionTypes)).flat(),instructions:e.map((e=>e.instructions)).flat(),signers:l.map((e=>e.signers)).flat(),lookupTableAddress:n})}else d.push({instructionTypes:l.map((e=>e.instructionTypes)).flat(),instructions:l.map((e=>e.instructions)).flat(),signers:l.map((e=>e.signers)).flat(),lookupTableAddress:n});l=[e]}}if(l.length>0){let e;if(t===On.V0){e={};for(const t of[...new Set(l.map((e=>{var t;return null!==(t=e.lookupTableAddress)&&void 0!==t?t:[]})).flat().map((e=>e.toString())))])void 0!==a[t]&&(e[t]=a[t])}if(re({makeTxVersion:t,innerIns:m?[m,...l]:l,payer:r,lookupTableAddressAccount:a})){const t=m?[m,...l]:l;d.push({instructionTypes:t.map((e=>e.instructionTypes)).flat(),instructions:t.map((e=>e.instructions)).flat(),signers:l.map((e=>e.signers)).flat(),lookupTableAddress:e})}else d.push({instructionTypes:l.map((e=>e.instructionTypes)).flat(),instructions:l.map((e=>e.instructions)).flat(),signers:l.map((e=>e.signers)).flat(),lookupTableAddress:e})}return d}function re({makeTxVersion:e,innerIns:t,payer:n,lookupTableAddressAccount:i}){const o=t.map((e=>e.instructions)).flat(),r=[...new Set(t.map((e=>e.signers)).flat().map((e=>e.publicKey.toString())))].map((e=>new A.PublicKey(e))),a=t.map((e=>{var t;return null!==(t=e.lookupTableAddress)&&void 0!==t?t:[]})).flat().map((e=>e.toString())),s={},c=null!=i?i:{};for(const e of a)void 0!==c[e]&&(s[e]=c[e]);return e===On.V0?function({instructions:e,payer:t,lookupTableAddressAccount:n}){const i=new A.TransactionMessage({payerKey:t,recentBlockhash:A.Keypair.generate().publicKey.toString(),instructions:e}).compileToV0Message(Object.values(null!=n?n:{}));try{return Buffer.from(i.serialize()).toString("base64").length<ae}catch(e){return!1}}({instructions:o,payer:n,lookupTableAddressAccount:s}):function({instructions:e,payer:t,signers:n}){return $(e,[t,...n])}({instructions:o,payer:n,signers:r})}const ae=1644;async function se({connection:e,address:t}){const n=await Z(e,[...new Set(t.map((e=>e.toString())))].map((e=>new A.PublicKey(e)))),i={};for(let e=0;e<t.length;e++){const o=n[e],r=t[e];o&&(i[r.toString()]=new A.AddressLookupTableAccount({key:r,state:A.AddressLookupTableAccount.deserialize(o.data)}))}return i}var ce;!function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(ce||(ce={}));const ue=new y.default(0),me=new y.default(1),de=new y.default(2),le=new y.default(3),pe=new y.default(5),fe=new y.default(10),Ae=new y.default(100),ge=new y.default(1e3),ye=new y.default(1e4),ke=v.from("entity/bignumber"),we=9007199254740991;function be(e){return e instanceof y.default?e:"string"==typeof e?e.match(/^-?[0-9]+$/)?new y.default(e):ke.throwArgumentError("invalid BigNumberish string","value",e):"number"==typeof e?e%1?ke.throwArgumentError("BigNumberish number underflow","value",e):e>=we||e<=-we?ke.throwArgumentError("BigNumberish number overflow","value",e):new y.default(String(e)):"bigint"==typeof e?new y.default(e.toString()):ke.throwArgumentError("invalid BigNumberish value","value",e)}function Se(e){return fe.pow(be(e))}function Te(e,t){const n=e.divmod(t);return n.mod.isZero()?n.div:n.div.isNeg()?n.div.isubn(1):n.div.iaddn(1)}const Ie={symbol:"SOL",name:"Solana",decimals:9},he={symbol:"WSOL",name:"Wrapped SOL",mint:"So11111111111111111111111111111111111111112",decimals:9,extensions:{coingeckoId:"solana"}},Pe={WSOL:Object.assign({},he)},Ce={},Re={WSOL:Object.assign({},he),BTC:{symbol:"BTC",name:"Bitcoin",mint:"9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E",decimals:6,extensions:{coingeckoId:"bitcoin"}},ETH:{symbol:"ETH",name:"Ethereum",mint:"2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk",decimals:6,extensions:{coingeckoId:"ethereum"}},USDT:{symbol:"USDT",name:"Tether",mint:"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",decimals:6,extensions:{coingeckoId:"tether"}},WUSDT:{symbol:"WUSDT",name:"Wrapped USDT",mint:"BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4",decimals:6,extensions:{coingeckoId:"tether"}},USDC:{symbol:"USDC",name:"USD Coin",mint:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",decimals:6,extensions:{coingeckoId:"usd-coin"}},WUSDC:{symbol:"WUSDC",name:"Wrapped USDC",mint:"BXXkv6z8ykpG1yuvUDPgh732wzVHB69RnB9YgSYh3itW",decimals:6,extensions:{coingeckoId:"usd-coin"}},YFI:{symbol:"YFI",name:"YFI",mint:"3JSf5tPeuscJGtaCp5giEiDhv51gQ4v3zWg8DGgyLfAB",decimals:6,extensions:{coingeckoId:"yearn-finance"}},LINK:{symbol:"LINK",name:"Chainlink",mint:"CWE8jPTUYhdCTZYWPTe1o5DFqfdjzWKc9WKz6rSjQUdG",decimals:6,extensions:{coingeckoId:"chainlink"}},XRP:{symbol:"XRP",name:"XRP",mint:"Ga2AXHpfAF6mv2ekZwcsJFqu7wB4NV331qNH7fW9Nst8",decimals:6,extensions:{coingeckoId:"ripple"}},SUSHI:{symbol:"SUSHI",name:"SUSHI",mint:"AR1Mtgh7zAtxuxGd2XPovXPVjcSdY3i4rQYisNadjfKy",decimals:6,extensions:{coingeckoId:"sushi"}},ALEPH:{symbol:"ALEPH",name:"ALEPH",mint:"CsZ5LZkDS7h9TDKjrbL7VAwQZ9nsRu8vJLhRYfmGaN8K",decimals:6,extensions:{coingeckoId:"aleph"}},SXP:{symbol:"SXP",name:"SXP",mint:"SF3oTvfWzEP3DTwGSvUXRrGTvr75pdZNnBLAH9bzMuX",decimals:6,extensions:{coingeckoId:"swipe"}},HGET:{symbol:"HGET",name:"HGET",mint:"BtZQfWqDGbk9Wf2rXEiWyQBdBY1etnUUn6zEphvVS7yN",decimals:6,extensions:{coingeckoId:"hedget"}},CREAM:{symbol:"CREAM",name:"CREAM",mint:"5Fu5UUgbjpUvdBveb3a1JTNirL8rXtiYeSMWvKjtUNQv",decimals:6,extensions:{coingeckoId:"cream-2"}},UNI:{symbol:"UNI",name:"UNI",mint:"DEhAasscXF4kEGxFgJ3bq4PpVGp5wyUxMRvn6TzGVHaw",decimals:6,extensions:{coingeckoId:"uniswap"}},SRM:{symbol:"SRM",name:"Serum",mint:"SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt",decimals:6,extensions:{coingeckoId:"serum"}},FTT:{symbol:"FTT",name:"FTX Token",mint:"AGFEad2et2ZJif9jaGpdMixQqvW5i81aBdvKe7PHNfz3",decimals:6,extensions:{coingeckoId:"ftx-token"}},MSRM:{symbol:"MSRM",name:"MegaSerum",mint:"MSRMcoVyrFxnSgo5uXwone5SKcGhT1KEJMFEkMEWf9L",decimals:0,extensions:{coingeckoId:"megaserum"}},TOMO:{symbol:"TOMO",name:"TOMO",mint:"GXMvfY2jpQctDqZ9RoU3oWPhufKiCcFEfchvYumtX7jd",decimals:6,extensions:{coingeckoId:"tomochain"}},KARMA:{symbol:"KARMA",name:"KARMA",mint:"EcqExpGNFBve2i1cMJUTR4bPXj4ZoqmDD2rTkeCcaTFX",decimals:4,extensions:{coingeckoId:"karma-dao"}},LUA:{symbol:"LUA",name:"LUA",mint:"EqWCKXfs3x47uVosDpTRgFniThL9Y8iCztJaapxbEaVX",decimals:6,extensions:{coingeckoId:"lua-token"}},MATH:{symbol:"MATH",name:"MATH",mint:"GeDS162t9yGJuLEHPWXXGrb1zwkzinCgRwnT8vHYjKza",decimals:6,extensions:{coingeckoId:"math"}},KEEP:{symbol:"KEEP",name:"KEEP",mint:"GUohe4DJUA5FKPWo3joiPgsB7yzer7LpDmt1Vhzy3Zht",decimals:6,extensions:{coingeckoId:"keep-network"}},SWAG:{symbol:"SWAG",name:"SWAG",mint:"9F9fNTT6qwjsu4X4yWYKZpsbw5qT7o6yR2i57JF2jagy",decimals:6,extensions:{coingeckoId:"swag-finance"}},FIDA:{symbol:"FIDA",name:"Bonfida",mint:"EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp",decimals:6,extensions:{coingeckoId:"bonfida"}},KIN:{symbol:"KIN",name:"Kin",mint:"kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6",decimals:5,extensions:{coingeckoId:"kin"}},MAPS:{symbol:"MAPS",name:"MAPS",mint:"MAPS41MDahZ9QdKXhVa4dWB9RuyfV4XqhyAZ8XcYepb",decimals:6,extensions:{coingeckoId:"maps"}},OXY:{symbol:"OXY",name:"Oxygen",mint:"z3dn17yLaGMKffVogeFHQ9zWVcXgqgf3PQnDsNs2g6M",decimals:6,extensions:{coingeckoId:"oxygen"}},RAY:{symbol:"RAY",name:"Raydium",mint:"4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",decimals:6,extensions:{coingeckoId:"raydium"}},xCOPE:{symbol:"xCOPE",name:"xCOPE",mint:"3K6rftdAaQYMPunrtNRHgnK2UAtjm2JwyT2oCiTDouYE",decimals:0,extensions:{coingeckoId:"cope"}},COPE:{symbol:"COPE",name:"Cope",mint:"8HGyAAB1yoM1ttS7pXjHMa3dukTFGQggnFFH3hJZgzQh",decimals:6,extensions:{coingeckoId:"cope"}},STEP:{symbol:"STEP",name:"Step Finance",mint:"StepAscQoEioFxxWGnh2sLBDFp9d8rvKz2Yp39iDpyT",decimals:9,extensions:{coingeckoId:"step-finance"}},MEDIA:{symbol:"MEDIA",name:"Media Network",mint:"ETAtLmCmsoiEEKfNrHKJ2kYy3MoABhU6NQvpSfij5tDs",decimals:6,extensions:{coingeckoId:"media-network"}},ROPE:{symbol:"ROPE",name:"Rope Token",mint:"8PMHT4swUMtBzgHnh5U564N5sjPSiUz2cjEQzFnnP1Fo",decimals:9,extensions:{coingeckoId:"rope-token"}},MER:{symbol:"MER",name:"Mercurial",mint:"MERt85fc5boKw3BW1eYdxonEuJNvXbiMbs6hvheau5K",decimals:6,extensions:{coingeckoId:"mercurial"}},TULIP:{symbol:"TULIP",name:"Tulip Protocol",mint:"TuLipcqtGVXP9XR62wM8WWCm6a9vhLs7T1uoWBk6FDs",decimals:6,extensions:{coingeckoId:"solfarm"}},SNY:{symbol:"SNY",name:"SNY",mint:"4dmKkXNHdgYsXqBHCuMikNQWwVomZURhYvkkX5c4pQ7y",decimals:6,extensions:{coingeckoId:"synthetify-token"}},SLRS:{symbol:"SLRS",name:"SLRS",mint:"SLRSSpSLUTP7okbCUBYStWCo1vUgyt775faPqz8HUMr",decimals:6,extensions:{coingeckoId:"solrise-finance"}},WOO:{symbol:"WOO",name:"WOO Network",mint:"E5rk3nmgLUuKUiS94gg4bpWwWwyjCMtddsAXkTFLtHEy",decimals:6,extensions:{coingeckoId:"woo-network"}},BOP:{symbol:"BOP",name:"Boring Protocol",mint:"BLwTnYKqf7u4qjgZrrsKeNs2EzWkMLqVCu6j8iHyrNA3",decimals:8,extensions:{coingeckoId:"boring-protocol"}},SAMO:{symbol:"SAMO",name:"Samoyedcoin",mint:"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",decimals:9,extensions:{coingeckoId:"samoyedcoin"}},renBTC:{symbol:"renBTC",name:"renBTC",mint:"CDJWUqTcYTVAKXAVXoQZFes5JUFc7owSeq7eMQcDSbo5",decimals:8,extensions:{coingeckoId:"renbtc"}},renDOGE:{symbol:"renDOGE",name:"renDOGE",mint:"ArUkYE2XDKzqy77PRRGjo4wREWwqk6RXTfM9NeqzPvjU",decimals:8,extensions:{coingeckoId:"rendoge"}},LIKE:{symbol:"LIKE",name:"Only1",mint:"3bRTivrVsitbmCTGtqwp7hxXPsybkjn4XLNtPsHqa3zR",decimals:9,extensions:{coingeckoId:"only1"}},DXL:{symbol:"DXL",name:"Dexlab",mint:"GsNzxJfFn6zQdJGeYsupJWzUAm57Ba7335mfhWvFiE9Z",decimals:6,extensions:{coingeckoId:"dexlab"}},mSOL:{symbol:"mSOL",name:"Marinade staked SOL",mint:"mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",decimals:9,extensions:{coingeckoId:"msol"}},PAI:{symbol:"PAI",name:"Parrot USD",mint:"Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS",decimals:6,extensions:{coingeckoId:"parrot-usd"}},PORT:{symbol:"PORT",name:"Port Finance",mint:"PoRTjZMPXb9T7dyU7tpLEZRQj7e6ssfAE62j2oQuc6y",decimals:6,extensions:{coingeckoId:"port-finance"}},MNGO:{symbol:"MNGO",name:"Mango",mint:"MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac",decimals:6,extensions:{coingeckoId:"mango-markets"}},CRP:{symbol:"CRP",name:"CropperFinance",mint:"DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz",decimals:9,extensions:{coingeckoId:"cropperfinance"}},ATLAS:{symbol:"ATLAS",name:"Star Atlas",mint:"ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx",decimals:8,extensions:{coingeckoId:"star-atlas"}},POLIS:{symbol:"POLIS",name:"Star Atlas DAO",mint:"poLisWXnNRwC6oBu1vHiuKQzFjGL4XDSu4g9qjz9qVk",decimals:8,extensions:{coingeckoId:"star-atlas-dao"}},GRAPE:{symbol:"GRAPE",name:"Grape Protocol",mint:"8upjSpvjcdpuzhfR1zriwg5NXkwDruejqNE9WNbPRtyA",decimals:6,extensions:{coingeckoId:"grape-2"}},GENE:{symbol:"GENE",name:"Genopets",mint:"GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz",decimals:9,extensions:{coingeckoId:"genopets"}},DFL:{symbol:"DFL",name:"DeFi Land",mint:"DFL1zNkaGPWm1BqAVqRjCZvHmwTFrEaJtbzJWgseoNJh",decimals:9,extensions:{coingeckoId:"defi-land"}},CHEEMS:{symbol:"CHEEMS",name:"Cheems",mint:"3FoUAsGDbvTD6YZ4wVKJgTB76onJUKz7GPEBNiR5b8wc",decimals:4,extensions:{coingeckoId:"cheems"}},stSOL:{symbol:"stSOL",name:"Lido Staked SOL",mint:"7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj",decimals:9,extensions:{coingeckoId:"lido-staked-sol"}},LARIX:{symbol:"LARIX",name:"Larix",mint:"Lrxqnh6ZHKbGy3dcrCED43nsoLkM1LTzU2jRfWe8qUC",decimals:6,extensions:{coingeckoId:"larix"}},RIN:{symbol:"RIN",name:"Aldrin",mint:"E5ndSkaB17Dm7CsD22dvcjfrYSDLCxFcMd6z8ddCk5wp",decimals:9,extensions:{coingeckoId:"aldrin"}},APEX:{symbol:"APEX",name:"ApeXit Finance",mint:"51tMb3zBKDiQhNwGqpgwbavaGH54mk8fXFzxTc1xnasg",decimals:9,extensions:{coingeckoId:"apexit-finance"}},MNDE:{symbol:"MNDE",name:"Marinade",mint:"MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey",decimals:9,extensions:{coingeckoId:"marinade"}},LIQ:{symbol:"LIQ",name:"LIQ Protocol",mint:"4wjPQJ6PrkC4dHhYghwJzGBVP78DkBzA2U3kHoFNBuhj",decimals:6,extensions:{coingeckoId:"liq-protocol"}},WAG:{symbol:"WAG",name:"Waggle Network",mint:"5tN42n9vMi6ubp67Uy4NnmM5DMZYN8aS8GeB3bEDHr6E",decimals:9,extensions:{coingeckoId:"waggle-network"}},wLDO:{symbol:"wLDO",name:"wLDO",mint:"HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p",decimals:8,extensions:{}},SLIM:{symbol:"SLIM",name:"Solanium",mint:"xxxxa1sKNGwFtw2kFn8XauW9xq8hBZ5kVtcSesTT9fW",decimals:6,extensions:{coingeckoId:"solanium"}},PRT:{symbol:"PRT",name:"Parrot Protocol",mint:"PRT88RkA4Kg5z7pKnezeNH4mafTvtQdfFgpQTGRjz44",decimals:6,extensions:{coingeckoId:"parrot-protocol"}},SBR:{symbol:"SBR",name:"SBR",mint:"Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",decimals:6,extensions:{}},FAB:{symbol:"FAB",name:"Fabric",mint:"EdAhkbj5nF9sRM7XN7ewuW8C9XEUMs8P7cnoQ57SYE96",decimals:9,extensions:{coingeckoId:"fabric"}},ABR:{symbol:"ABR",name:"Allbridge",mint:"a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp",decimals:9,extensions:{coingeckoId:"allbridge"}},IVN:{symbol:"IVN",name:"Investin",mint:"iVNcrNE9BRZBC9Aqf753iZiZfbszeAVUoikgT9yvr2a",decimals:6,extensions:{coingeckoId:"investin"}},CYS:{symbol:"CYS",name:"Cyclos",mint:"BRLsMczKuaR5w9vSubF4j8HwEGGprVAyyVgS4EX7DKEg",decimals:6,extensions:{coingeckoId:"cyclos"}},FRKT:{symbol:"FRKT",name:"FRAKT Token",mint:"ErGB9xa24Szxbk1M28u2Tx8rKPqzL6BroNkkzk5rG4zj",decimals:8,extensions:{coingeckoId:"frakt-token"}},AURY:{symbol:"AURY",name:"Aurory",mint:"AURYydfxJib1ZkTir1Jn1J9ECYUtjb6rKQVmtYaixWPP",decimals:9,extensions:{coingeckoId:"aurory"}},SYP:{symbol:"SYP",name:"Sypool",mint:"FnKE9n6aGjQoNWRBZXy4RW6LZVao7qwBonUbiD7edUmZ",decimals:9,extensions:{coingeckoId:"sypool"}},WOOF:{symbol:"WOOF",name:"WOOF",mint:"9nEqaUcb16sQ3Tn1psbkWqyhPdLmfHWjKGymREjsAgTE",decimals:6,extensions:{coingeckoId:"woof-token"}},ORCA:{symbol:"ORCA",name:"Orca",mint:"orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE",decimals:6,extensions:{coingeckoId:"orca"}},SLND:{symbol:"SLND",name:"Solend",mint:"SLNDpmoWTVADgEdndyvWzroNL7zSi1dF9PC3xHGtPwp",decimals:6,extensions:{coingeckoId:"solend"}},weWETH:{symbol:"weWETH",name:"weWETH",mint:"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs",decimals:8,extensions:{}},weUNI:{symbol:"weUNI",name:"weUNI",mint:"8FU95xFJhUUkyyCLU13HSzDLs7oC4QZdXQHL6SCeab36",decimals:8,extensions:{}},weSUSHI:{symbol:"weSUSHI",name:"weSUSHI",mint:"ChVzxWRmrTeSgwd3Ui3UumcN8KX7VK3WaD4KGeSKpypj",decimals:8,extensions:{}},GOFX:{symbol:"GOFX",name:"GooseFX",mint:"GFX1ZjR2P15tmrSwow6FjyDYcEkoFb4p4gJCpLBjaxHD",decimals:9,extensions:{coingeckoId:"goosefx"}},IN:{symbol:"IN",name:"Invictus",mint:"inL8PMVd6iiW3RCBJnr5AsrRN6nqr4BTrcNuQWQSkvY",decimals:9,extensions:{coingeckoId:"invictus"}},weDYDX:{symbol:"weDYDX",name:"weDYDX",mint:"4Hx6Bj56eGyw8EJrrheM6LBQAvVYRikYCWsALeTrwyRU",decimals:8,extensions:{}},STARS:{symbol:"STARS",name:"StarLaunch",mint:"HCgybxq5Upy8Mccihrp7EsmwwFqYZtrHrsmsKwtGXLgW",decimals:6,extensions:{coingeckoId:"starlaunch"}},weAXS:{symbol:"weAXS",name:"weAXS",mint:"HysWcbHiYY9888pHbaqhwLYZQeZrcQMXKQWRqS7zcPK5",decimals:8,extensions:{}},weSHIB:{symbol:"weSHIB",name:"weSHIB",mint:"CiKu4eHsVrc1eueVQeHn7qhXTcVu95gSQmBpX4utjL9z",decimals:8,extensions:{}},OXS:{symbol:"OXS",name:"Oxbull Solana",mint:"4TGxgCSJQx2GQk9oHZ8dC5m3JNXTYZHjXumKAW3vLnNx",decimals:9,extensions:{coingeckoId:"oxbull-solana"}},CWAR:{symbol:"CWAR",name:"Cryowar",mint:"HfYFjMKNZygfMC8LsQ8LtpPsPxEJoXJx4M6tqi75Hajo",decimals:9,extensions:{coingeckoId:"cryowar-token"}},UPS:{symbol:"UPS",name:"UPFI Network",mint:"EwJN2GqUGXXzYmoAciwuABtorHczTA5LqbukKXV1viH7",decimals:6,extensions:{coingeckoId:"upfi-network"}},weSAND:{symbol:"weSAND",name:"weSAND",mint:"49c7WuCZkQgc3M4qH8WuEUNXfgwupZf1xqWkDQ7gjRGt",decimals:8,extensions:{}},weMANA:{symbol:"weMANA",name:"weMANA",mint:"7dgHoN8wBZCc5wbnQ2C47TDnBMAxG4Q5L3KjP67z8kNi",decimals:8,extensions:{}},CAVE:{symbol:"CAVE",name:"Crypto Cavemen",mint:"4SZjjNABoqhbd4hnapbvoEPEqT8mnNkfbEoAwALf1V8t",decimals:6,extensions:{coingeckoId:"cave"}},JSOL:{symbol:"JSOL",name:"JPool",mint:"7Q2afV64in6N6SeZsAAB81TJzwDoD6zpqmHkzi9Dcavn",decimals:9,extensions:{coingeckoId:"jpool"}},APT:{symbol:"APT",name:"Apricot",mint:"APTtJyaRX5yGTsJU522N4VYWg3vCvSb65eam5GrPT5Rt",decimals:6,extensions:{coingeckoId:"apricot"}},SONAR:{symbol:"SONAR",name:"SonarWatch",mint:"sonarX4VtVkQemriJeLm6CKeW3GDMyiBnnAEMw1MRAE",decimals:9,extensions:{coingeckoId:"sonarwatch"}},SHILL:{symbol:"SHILL",name:"SHILL Token",mint:"6cVgJUqo4nmvQpbgrDZwyfd6RwWw5bfnCamS3M9N1fd",decimals:6,extensions:{coingeckoId:"shill-token"}},TTT:{symbol:"TTT",name:"TabTrader",mint:"FNFKRV3V8DtA3gVJN6UshMiLGYA8izxFwkNWmJbFjmRj",decimals:6,extensions:{coingeckoId:"tabtrader"}},BOKU:{symbol:"BOKU",name:"Boryoku Dragonz",mint:"CN7qFa5iYkHz99PTctvT4xXUHnxwjQ5MHxCuTJtPN5uS",decimals:9,extensions:{coingeckoId:"boku"}},MIMO:{symbol:"MIMO",name:"Million Monke",mint:"9TE7ebz1dsFo1uQ2T4oYAKSm39Y6fWuHrd6Uk6XaiD16",decimals:9,extensions:{coingeckoId:"million-monke"}},wbWBNB:{symbol:"wbWBNB",name:"wbWBNB",mint:"9gP2kCy3wA1ctvYWQk75guqXuHfrEomqydHLtcTCqiLa",decimals:8,extensions:{}},wePEOPLE:{symbol:"wePEOPLE",name:"wePEOPLE",mint:"CobcsUrt3p91FwvULYKorQejgsm5HoQdv5T8RUZ6PnLA",decimals:8,extensions:{}},XTAG:{symbol:"XTAG",name:"xHashtag",mint:"5gs8nf4wojB5EXgDUWNLwXpknzgV2YWDhveAeBZpVLbp",decimals:6,extensions:{coingeckoId:"xhashtag"}},KKO:{symbol:"KKO",name:"Kineko",mint:"kiNeKo77w1WBEzFFCXrTDRWGRWGP8yHvKC9rX6dqjQh",decimals:9,extensions:{coingeckoId:"kineko"}},VI:{symbol:"VI",name:"Vybit",mint:"7zBWymxbZt7PVHQzfi3i85frc1YRiQc23K7bh3gos8ZC",decimals:9,extensions:{coingeckoId:"vybit"}},SOLC:{symbol:"SOLC",name:"Solcubator",mint:"Bx1fDtvTN6NvE4kjdPHQXtmGSg582bZx9fGy4DQNMmAT",decimals:9,extensions:{coingeckoId:"solcubator"}},STR:{symbol:"STR",name:"Solster",mint:"9zoqdwEBKWEi9G5Ze8BSkdmppxGgVv1Kw4LuigDiNr9m",decimals:9,extensions:{coingeckoId:"solster"}},SPWN:{symbol:"SPWN",name:"Bitspawn",mint:"5U9QqCPhqXAJcEv9uyzFJd5zhN93vuPk1aNNkXnUfPnt",decimals:9,extensions:{coingeckoId:"bitspawn"}},ISOLA:{symbol:"ISOLA",name:"Intersola",mint:"333iHoRM2Awhf9uVZtSyTfU8AekdGrgQePZsKMFPgKmS",decimals:6,extensions:{coingeckoId:"intersola"}},RUN:{symbol:"RUN",name:"Run",mint:"6F9XriABHfWhit6zmMUYAQBSy6XK5VF1cHXuW5LDpRtC",decimals:9,extensions:{coingeckoId:"run"}},REAL:{symbol:"REAL",name:"Realy Metaverse",mint:"AD27ov5fVU2XzwsbvnFvb1JpCBaCB5dRXrczV9CqSVGb",decimals:9,extensions:{coingeckoId:"realy-metaverse"}},CRWNY:{symbol:"CRWNY",name:"CRWNY",mint:"CRWNYkqdgvhGGae9CKfNka58j6QQkaD5bLhKXvUYqnc1",decimals:6,extensions:{}},BLOCK:{symbol:"BLOCK",name:"Blockasset",mint:"NFTUkR4u7wKxy9QLaX2TGvd9oZSWoMo4jqSJqdMb7Nk",decimals:6,extensions:{coingeckoId:"blockasset"}},SOLAR:{symbol:"SOLAR",name:"Solar",mint:"2wmKXX1xsxLfrvjEPrt2UHiqj8Gbzwxvffr9qmNjsw8g",decimals:9,extensions:{coingeckoId:"solar"}},BASIS:{symbol:"BASIS",name:"basis.markets",mint:"Basis9oJw9j8cw53oMV7iqsgo6ihi9ALw4QR31rcjUJa",decimals:6,extensions:{coingeckoId:"basis-markets"}},SOLX:{symbol:"SOLX",name:"Soldex",mint:"CH74tuRLTYcxG7qNJCsV9rghfLXJCQJbsu7i52a8F1Gn",decimals:9,extensions:{coingeckoId:"soldex"}},CHICKS:{symbol:"CHICKS",name:"SolChicks Token",mint:"cxxShYRVcepDudXhe7U62QHvw8uBJoKFifmzggGKVC2",decimals:9,extensions:{coingeckoId:"solchicks-token"}},GST:{symbol:"GST",name:"GST",mint:"AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB",decimals:9,extensions:{coingeckoId:"gst"}},MBS:{symbol:"MBS",name:"MonkeyBall",mint:"Fm9rHUTF5v3hwMLbStjZXqNBBoZyGriQaFM6sTFz3K8A",decimals:6,extensions:{coingeckoId:"monkeyball"}},PRISM:{symbol:"PRISM",name:"Prism",mint:"PRSMNsEPqhGVCH1TtWiJqPjJyh2cKrLostPZTNy1o5x",decimals:6,extensions:{coingeckoId:"prism"}},MEAN:{symbol:"MEAN",name:"Meanfi",mint:"MEANeD3XDdUmNMsRGjASkSWdC8prLYsoRJ61pPeHctD",decimals:6,extensions:{coingeckoId:"meanfi"}},TINY:{symbol:"TINY",name:"Tiny Colony",mint:"HKfs24UEDQpHS5hUyKYkHd9q7GY5UQ679q2bokeL2whu",decimals:6,extensions:{coingeckoId:"tiny-colony"}},SHDW:{symbol:"SHDW",name:"GenesysGo Shadow",mint:"SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y",decimals:9,extensions:{coingeckoId:"genesysgo-shadow"}},SCY:{symbol:"SCY",name:"Synchrony",mint:"SCYfrGCw8aDiqdgcpdGjV6jp4UVVQLuphxTDLNWu36f",decimals:9,extensions:{coingeckoId:"synchrony"}},SLC:{symbol:"SLC",name:"Solice",mint:"METAmTMXwdb8gYzyCPfXXFmZZw4rUsXX58PNsDg7zjL",decimals:6,extensions:{coingeckoId:"solice"}}},Oe={FIDA_RAY_V4:{symbol:"FIDA-RAY",name:"FIDA-RAY V4 LP",mint:"DsBuznXRTmzvEdb36Dx3aVLVo1XmH7r1PRZUFugLPTFv",base:Re.FIDA,quote:Re.RAY,decimals:Re.FIDA.decimals,version:4},OXY_RAY_V4:{symbol:"OXY-RAY",name:"OXY-RAY V4 LP",mint:"FwaX9W7iThTZH5MFeasxdLpxTVxRcM7ZHieTCnYog8Yb",base:Re.OXY,quote:Re.RAY,decimals:Re.OXY.decimals,version:4},MAPS_RAY_V4:{symbol:"MAPS-RAY",name:"MAPS-RAY V4 LP",mint:"CcKK8srfVdTSsFGV3VLBb2YDbzF4T4NM2C3UEjC39RLP",base:Re.MAPS,quote:Re.RAY,decimals:Re.MAPS.decimals,version:4},KIN_RAY_V4:{symbol:"KIN-RAY",name:"KIN-RAY V4 LP",mint:"CHT8sft3h3gpLYbCcZ9o27mT5s3Z6VifBVbUiDvprHPW",base:Re.KIN,quote:Re.RAY,decimals:6,version:4},RAY_USDT_V4:{symbol:"RAY-USDT",name:"RAY-USDT V4 LP",mint:"C3sT1R3nsw4AVdepvLTLKr5Gvszr7jufyBWUCvy4TUvT",base:Re.RAY,quote:Re.USDT,decimals:Re.RAY.decimals,version:4},SOL_USDC_V4:{symbol:"SOL-USDC",name:"SOL-USDC V4 LP",mint:"8HoQnePLqPj4M7PUDzfw8e3Ymdwgc7NLGnaTUapubyvu",base:Re.WSOL,quote:Re.USDC,decimals:Re.WSOL.decimals,version:4},YFI_USDC_V4:{symbol:"YFI-USDC",name:"YFI-USDC V4 LP",mint:"865j7iMmRRycSYUXzJ33ZcvLiX9JHvaLidasCyUyKaRE",base:Re.YFI,quote:Re.USDC,decimals:Re.YFI.decimals,version:4},SRM_USDC_V4:{symbol:"SRM-USDC",name:"SRM-USDC V4 LP",mint:"9XnZd82j34KxNLgQfz29jGbYdxsYznTWRpvZE3SRE7JG",base:Re.SRM,quote:Re.USDC,decimals:Re.SRM.decimals,version:4},FTT_USDC_V4:{symbol:"FTT-USDC",name:"FTT-USDC V4 LP",mint:"75dCoKfUHLUuZ4qEh46ovsxfgWhB4icc3SintzWRedT9",base:Re.FTT,quote:Re.USDC,decimals:Re.FTT.decimals,version:4},BTC_USDC_V4:{symbol:"BTC-USDC",name:"BTC-USDC V4 LP",mint:"2hMdRdVWZqetQsaHG8kQjdZinEMBz75vsoWTCob1ijXu",base:Re.BTC,quote:Re.USDC,decimals:Re.BTC.decimals,version:4},SUSHI_USDC_V4:{symbol:"SUSHI-USDC",name:"SUSHI-USDC V4 LP",mint:"2QVjeR9d2PbSf8em8NE8zWd8RYHjFtucDUdDgdbDD2h2",base:Re.SUSHI,quote:Re.USDC,decimals:Re.SUSHI.decimals,version:4},TOMO_USDC_V4:{symbol:"TOMO-USDC",name:"TOMO-USDC V4 LP",mint:"CHyUpQFeW456zcr5XEh4RZiibH8Dzocs6Wbgz9aWpXnQ",base:Re.TOMO,quote:Re.USDC,decimals:Re.TOMO.decimals,version:4},LINK_USDC_V4:{symbol:"LINK-USDC",name:"LINK-USDC V4 LP",mint:"BqjoYjqKrXtfBKXeaWeAT5sYCy7wsAYf3XjgDWsHSBRs",base:Re.LINK,quote:Re.USDC,decimals:Re.LINK.decimals,version:4},ETH_USDC_V4:{symbol:"ETH-USDC",name:"ETH-USDC V4 LP",mint:"13PoKid6cZop4sj2GfoBeujnGfthUbTERdE5tpLCDLEY",base:Re.ETH,quote:Re.USDC,decimals:Re.ETH.decimals,version:4},xCOPE_USDC_V4:{symbol:"xCOPE-USDC",name:"xCOPE-USDC V4 LP",mint:"2Vyyeuyd15Gp8aH6uKE72c4hxc8TVSLibxDP9vzspQWG",base:Re.xCOPE,quote:Re.USDC,decimals:Re.xCOPE.decimals,version:4},SOL_USDT_V4:{symbol:"SOL-USDT",name:"SOL-USDT V4 LP",mint:"Epm4KfTj4DMrvqn6Bwg2Tr2N8vhQuNbuK8bESFp4k33K",base:Re.WSOL,quote:Re.USDT,decimals:Re.WSOL.decimals,version:4},YFI_USDT_V4:{symbol:"YFI-USDT",name:"YFI-USDT V4 LP",mint:"FA1i7fej1pAbQbnY8NbyYUsTrWcasTyipKreDgy1Mgku",base:Re.YFI,quote:Re.USDT,decimals:Re.YFI.decimals,version:4},SRM_USDT_V4:{symbol:"SRM-USDT",name:"SRM-USDT V4 LP",mint:"HYSAu42BFejBS77jZAZdNAWa3iVcbSRJSzp3wtqCbWwv",base:Re.SRM,quote:Re.USDT,decimals:Re.SRM.decimals,version:4},FTT_USDT_V4:{symbol:"FTT-USDT",name:"FTT-USDT V4 LP",mint:"2cTCiUnect5Lap2sk19xLby7aajNDYseFhC9Pigou11z",base:Re.FTT,quote:Re.USDT,decimals:Re.FTT.decimals,version:4},BTC_USDT_V4:{symbol:"BTC-USDT",name:"BTC-USDT V4 LP",mint:"DgGuvR9GSHimopo3Gc7gfkbKamLKrdyzWkq5yqA6LqYS",base:Re.BTC,quote:Re.USDT,decimals:Re.BTC.decimals,version:4},SUSHI_USDT_V4:{symbol:"SUSHI-USDT",name:"SUSHI-USDT V4 LP",mint:"Ba26poEYDy6P2o95AJUsewXgZ8DM9BCsmnU9hmC9i4Ki",base:Re.SUSHI,quote:Re.USDT,decimals:Re.SUSHI.decimals,version:4},TOMO_USDT_V4:{symbol:"TOMO-USDT",name:"TOMO-USDT V4 LP",mint:"D3iGro1vn6PWJXo9QAPj3dfta6dKkHHnmiiym2EfsAmi",base:Re.TOMO,quote:Re.USDT,decimals:Re.TOMO.decimals,version:4},LINK_USDT_V4:{symbol:"LINK-USDT",name:"LINK-USDT V4 LP",mint:"Dr12Sgt9gkY8WU5tRkgZf1TkVWJbvjYuPAhR3aDCwiiX",base:Re.LINK,quote:Re.USDT,decimals:Re.LINK.decimals,version:4},ETH_USDT_V4:{symbol:"ETH-USDT",name:"ETH-USDT V4 LP",mint:"nPrB78ETY8661fUgohpuVusNCZnedYCgghzRJzxWnVb",base:Re.ETH,quote:Re.USDT,decimals:Re.ETH.decimals,version:4},YFI_SRM_V4:{symbol:"YFI-SRM",name:"YFI-SRM V4 LP",mint:"EGJht91R7dKpCj8wzALkjmNdUUUcQgodqWCYweyKcRcV",base:Re.YFI,quote:Re.SRM,decimals:Re.YFI.decimals,version:4},FTT_SRM_V4:{symbol:"FTT-SRM",name:"FTT-SRM V4 LP",mint:"AsDuPg9MgPtt3jfoyctUCUgsvwqAN6RZPftqoeiPDefM",base:Re.FTT,quote:Re.SRM,decimals:Re.FTT.decimals,version:4},BTC_SRM_V4:{symbol:"BTC-SRM",name:"BTC-SRM V4 LP",mint:"AGHQxXb3GSzeiLTcLtXMS2D5GGDZxsB2fZYZxSB5weqB",base:Re.BTC,quote:Re.SRM,decimals:Re.BTC.decimals,version:4},SUSHI_SRM_V4:{symbol:"SUSHI-SRM",name:"SUSHI-SRM V4 LP",mint:"3HYhUnUdV67j1vn8fu7ExuVGy5dJozHEyWvqEstDbWwE",base:Re.SUSHI,quote:Re.SRM,decimals:Re.SUSHI.decimals,version:4},TOMO_SRM_V4:{symbol:"TOMO-SRM",name:"TOMO-SRM V4 LP",mint:"GgH9RnKrQpaMQeqmdbMvs5oo1A24hERQ9wuY2pSkeG7x",base:Re.TOMO,quote:Re.SRM,decimals:Re.TOMO.decimals,version:4},LINK_SRM_V4:{symbol:"LINK-SRM",name:"LINK-SRM V4 LP",mint:"GXN6yJv12o18skTmJXaeFXZVY1iqR18CHsmCT8VVCmDD",base:Re.LINK,quote:Re.SRM,decimals:Re.LINK.decimals,version:4},ETH_SRM_V4:{symbol:"ETH-SRM",name:"ETH-SRM V4 LP",mint:"9VoY3VERETuc2FoadMSYYizF26mJinY514ZpEzkHMtwG",base:Re.ETH,quote:Re.SRM,decimals:Re.ETH.decimals,version:4},SRM_SOL_V4:{symbol:"SRM-SOL",name:"SRM-SOL V4 LP",mint:"AKJHspCwDhABucCxNLXUSfEzb7Ny62RqFtC9uNjJi4fq",base:Re.SRM,quote:Re.WSOL,decimals:Re.SRM.decimals,version:4},STEP_USDC_V4:{symbol:"STEP-USDC",name:"STEP-USDC V4 LP",mint:"3k8BDobgihmk72jVmXYLE168bxxQUhqqyESW4dQVktqC",base:Re.STEP,quote:Re.USDC,decimals:Re.STEP.decimals,version:4},MEDIA_USDC_V4:{symbol:"MEDIA-USDC",name:"MEDIA-USDC V4 LP",mint:"A5zanvgtioZGiJMdEyaKN4XQmJsp1p7uVxaq2696REvQ",base:Re.MEDIA,quote:Re.USDC,decimals:Re.MEDIA.decimals,version:4},ROPE_USDC_V4:{symbol:"ROPE-USDC",name:"ROPE-USDC V4 LP",mint:"Cq4HyW5xia37tKejPF2XfZeXQoPYW6KfbPvxvw5eRoUE",base:Re.ROPE,quote:Re.USDC,decimals:Re.ROPE.decimals,version:4},MER_USDC_V4:{symbol:"MER-USDC",name:"MER-USDC V4 LP",mint:"3H9NxvaZoxMZZDZcbBDdWMKbrfNj7PCF5sbRwDr7SdDW",base:Re.MER,quote:Re.USDC,decimals:Re.MER.decimals,version:4},COPE_USDC_V4:{symbol:"COPE-USDC",name:"COPE-USDC V4 LP",mint:"Cz1kUvHw98imKkrqqu95GQB9h1frY8RikxPojMwWKGXf",base:Re.COPE,quote:Re.USDC,decimals:Re.COPE.decimals,version:4},ALEPH_USDC_V4:{symbol:"ALEPH-USDC",name:"ALEPH-USDC V4 LP",mint:"iUDasAP2nXm5wvTukAHEKSdSXn8vQkRtaiShs9ceGB7",base:Re.ALEPH,quote:Re.USDC,decimals:Re.ALEPH.decimals,version:4},TULIP_USDC_V4:{symbol:"TULIP-USDC",name:"TULIP-USDC V4 LP",mint:"2doeZGLJyACtaG9DCUyqMLtswesfje1hjNA11hMdj6YU",base:Re.TULIP,quote:Re.USDC,decimals:Re.TULIP.decimals,version:4},WOO_USDC_V4:{symbol:"WOO-USDC",name:"WOO-USDC V4 LP",mint:"7cu42ao8Jgrd5A3y3bNQsCxq5poyGZNmTydkGfJYQfzh",base:Re.WOO,quote:Re.USDC,decimals:Re.WOO.decimals,version:4},SNY_USDC_V4:{symbol:"SNY-USDC",name:"SNY-USDC V4 LP",mint:"G8qcfeFqxwbCqpxv5LpLWxUCd1PyMB5nWb5e5YyxLMKg",base:Re.SNY,quote:Re.USDC,decimals:Re.SNY.decimals,version:4},BOP_RAY_V4:{symbol:"BOP-RAY",name:"BOP-RAY V4 LP",mint:"9nQPYJvysyfnXhQ6nkK5V7sZG26hmDgusfdNQijRk5LD",base:Re.BOP,quote:Re.RAY,decimals:Re.BOP.decimals,version:4},SLRS_USDC_V4:{symbol:"SLRS-USDC",name:"SLRS-USDC V4 LP",mint:"2Xxbm1hdv5wPeen5ponDSMT3VqhGMTQ7mH9stNXm9shU",base:Re.SLRS,quote:Re.USDC,decimals:Re.SLRS.decimals,version:4},SAMO_RAY_V4:{symbol:"SAMO-RAY",name:"SAMO-RAY V4 LP",mint:"HwzkXyX8B45LsaHXwY8su92NoRBS5GQC32HzjQRDqPnr",base:Re.SAMO,quote:Re.RAY,decimals:Re.SAMO.decimals,version:4},renBTC_USDC_V4:{symbol:"renBTC-USDC",name:"renBTC-USDC V4 LP",mint:"CTEpsih91ZLo5gunvryLpJ3pzMjmt5jbS6AnSQrzYw7V",base:Re.renBTC,quote:Re.USDC,decimals:Re.renBTC.decimals,version:4},renDOGE_USDC_V4:{symbol:"renDOGE-USDC",name:"renDOGE-USDC V4 LP",mint:"Hb8KnZNKvRxu7pgMRWJgoMSMcepfvNiBFFDDrdf9o3wA",base:Re.renDOGE,quote:Re.USDC,decimals:Re.renDOGE.decimals,version:4},RAY_USDC_V4:{symbol:"RAY-USDC",name:"RAY-USDC V4 LP",mint:"FbC6K13MzHvN42bXrtGaWsvZY9fxrackRSZcBGfjPc7m",base:Re.RAY,quote:Re.USDC,decimals:Re.RAY.decimals,version:4},RAY_SRM_V4:{symbol:"RAY-SRM",name:"RAY-SRM V4 LP",mint:"7P5Thr9Egi2rvMmEuQkLn8x8e8Qro7u2U7yLD2tU2Hbe",base:Re.RAY,quote:Re.SRM,decimals:Re.RAY.decimals,version:4},RAY_ETH_V4:{symbol:"RAY-ETH",name:"RAY-ETH V4 LP",mint:"mjQH33MqZv5aKAbKHi8dG3g3qXeRQqq1GFcXceZkNSr",base:Re.RAY,quote:Re.ETH,decimals:Re.RAY.decimals,version:4},RAY_SOL_V4:{symbol:"RAY-SOL",name:"RAY-SOL V4 LP",mint:"89ZKE4aoyfLBe2RuV6jM3JGNhaV18Nxh8eNtjRcndBip",base:Re.RAY,quote:Re.WSOL,decimals:Re.RAY.decimals,version:4},DXL_USDC_V4:{symbol:"DXL-USDC",name:"DXL-USDC V4 LP",mint:"4HFaSvfgskipvrzT1exoVKsUZ174JyExEsA8bDfsAdY5",base:Re.DXL,quote:Re.USDC,decimals:Re.DXL.decimals,version:4},LIKE_USDC_V4:{symbol:"LIKE-USDC",name:"LIKE-USDC V4 LP",mint:"cjZmbt8sJgaoyWYUttomAu5LJYU44ZrcKTbzTSEPDVw",base:Re.LIKE,quote:Re.USDC,decimals:Re.LIKE.decimals,version:4},mSOL_USDC_V4:{symbol:"mSOL-USDC",name:"mSOL-USDC V4 LP",mint:"4xTpJ4p76bAeggXoYywpCCNKfJspbuRzZ79R7pRhbqSf",base:Re.mSOL,quote:Re.USDC,decimals:Re.mSOL.decimals,version:4},mSOL_SOL_V4:{symbol:"mSOL-SOL",name:"mSOL-SOL V4 LP",mint:"5ijRoAHVgd5T5CNtK5KDRUBZ7Bffb69nktMj5n6ks6m4",base:Re.mSOL,quote:Re.WSOL,decimals:Re.mSOL.decimals,version:4},MER_PAI_V4:{symbol:"MER-PAI",name:"MER-PAI V4 LP",mint:"DU5RT2D9EviaSmX6Ta8MZwMm85HwSEqGMRdqUiuCGfmD",base:Re.MER,quote:Re.PAI,decimals:Re.MER.decimals,version:4},PORT_USDC_V4:{symbol:"PORT-USDC",name:"PORT-USDC V4 LP",mint:"9tmNtbUCrLS15qC4tEfr5NNeqcqpZ4uiGgi2vS5CLQBS",base:Re.PORT,quote:Re.USDC,decimals:Re.PORT.decimals,version:4},MNGO_USDC_V4:{symbol:"MNGO-USDC",name:"MNGO-USDC V4 LP",mint:"DkiqCQ792n743xjWQVCbBUaVtkdiuvQeYndM53ReWnCC",base:Re.MNGO,quote:Re.USDC,decimals:Re.MNGO.decimals,version:4},ATLAS_USDC_V4:{symbol:"ATLAS-USDC",name:"ATLAS-USDC V4 LP",mint:"9shGU9f1EsxAbiR567MYZ78WUiS6ZNCYbHe53WUULQ7n",base:Re.ATLAS,quote:Re.USDC,decimals:Re.ATLAS.decimals,version:4},POLIS_USDC_V4:{symbol:"POLIS-USDC",name:"POLIS-USDC V4 LP",mint:"8MbKSBpyXs8fVneKgt71jfHrn5SWtX8n4wMLpiVfF9So",base:Re.POLIS,quote:Re.USDC,decimals:Re.POLIS.decimals,version:4},ATLAS_RAY_V4:{symbol:"ATLAS-RAY",name:"ATLAS-RAY V4 LP",mint:"418MFhkaYQtbn529wmjLLqL6uKxDz7j4eZBaV1cobkyd",base:Re.ATLAS,quote:Re.RAY,decimals:Re.ATLAS.decimals,version:4},POLIS_RAY_V4:{symbol:"POLIS-RAY",name:"POLIS-RAY V4 LP",mint:"9ysGKUH6WqzjQEUT4dxqYCUaFNVK9QFEa24pGzjFq8xg",base:Re.POLIS,quote:Re.RAY,decimals:Re.POLIS.decimals,version:4},ALEPH_RAY_V4:{symbol:"ALEPH-RAY",name:"ALEPH-RAY V4 LP",mint:"n76skjqv4LirhdLok2zJELXNLdRpYDgVJQuQFbamscy",base:Re.ALEPH,quote:Re.RAY,decimals:Re.ALEPH.decimals,version:4},TULIP_RAY_V4:{symbol:"TULIP-RAY",name:"TULIP-RAY V4 LP",mint:"3AZTviji5qduMG2s4FfWGR3SSQmNUCyx8ao6UKCPg3oJ",base:Re.TULIP,quote:Re.RAY,decimals:Re.TULIP.decimals,version:4},SLRS_RAY_V4:{symbol:"SLRS-RAY",name:"SLRS-RAY V4 LP",mint:"2pk78vsKT3jfJAcN2zbpMUnrR57SZrxHqaZYyFgp92mM",base:Re.SLRS,quote:Re.RAY,decimals:Re.SLRS.decimals,version:4},MER_RAY_V4:{symbol:"MER-RAY",name:"MER-RAY V4 LP",mint:"214hxy3AbKoaEKgqcg2aC1cP5R67cGGAyDEg5GDwC7Ub",base:Re.MER,quote:Re.RAY,decimals:Re.MER.decimals,version:4},MEDIA_RAY_V4:{symbol:"MEDIA-RAY",name:"MEDIA-RAY V4 LP",mint:"9Aseg5A1JD1yCiFFdDaNNxCiJ7XzrpZFmcEmLjXFdPaH",base:Re.MEDIA,quote:Re.RAY,decimals:Re.MEDIA.decimals,version:4},SNY_RAY_V4:{symbol:"SNY-RAY",name:"SNY-RAY V4 LP",mint:"2k4quTuuLUxrSEhFH99qcoZzvgvVEc3b5sz3xz3qstfS",base:Re.SNY,quote:Re.RAY,decimals:Re.SNY.decimals,version:4},LIKE_RAY_V4:{symbol:"LIKE-RAY",name:"LIKE-RAY V4 LP",mint:"7xqDycbFSCpUpzkYapFeyPJWPwEpV7zdWbYf2MVHTNjv",base:Re.LIKE,quote:Re.RAY,decimals:Re.LIKE.decimals,version:4},COPE_RAY_V4:{symbol:"COPE-RAY",name:"COPE-RAY V4 LP",mint:"A7GCVHA8NSsbdFscHdoNU41tL1TRKNmCH4K94CgcLK9F",base:Re.COPE,quote:Re.RAY,decimals:Re.COPE.decimals,version:4},ETH_SOL_V4:{symbol:"ETH-SOL",name:"ETH-SOL V4 LP",mint:"GKfgC86iJoMjwAtcyiLu6nWnjggqUXsDQihXkP14fDez",base:Re.ETH,quote:Re.WSOL,decimals:Re.ETH.decimals,version:4},stSOL_USDC_V4:{symbol:"stSOL-USDC",name:"stSOL-USDC V4 LP",mint:"HDUJMwYZkjUZre63xUeDhdCi8c6LgUDiBqxmP3QC3VPX",base:Re.stSOL,quote:Re.USDC,decimals:Re.stSOL.decimals,version:4},GRAPE_USDC_V4:{symbol:"GRAPE-USDC",name:"GRAPE-USDC V4 LP",mint:"A8ZYmnZ1vwxUa4wpJVUaJgegsuTEz5TKy5CiJXffvmpt",base:Re.GRAPE,quote:Re.USDC,decimals:Re.GRAPE.decimals,version:4},LARIX_USDC_V4:{symbol:"LARIX-USDC",name:"LARIX-USDC V4 LP",mint:"7yieit4YsNsZ9CAK8H5ZEMvvk35kPEHHeXwp6naoWU9V",base:Re.LARIX,quote:Re.USDC,decimals:Re.LARIX.decimals,version:4},RIN_USDC_V4:{symbol:"RIN-USDC",name:"RIN-USDC V4 LP",mint:"GfCWfrZez7BDmCSEeMERVDVUaaM2TEreyYUgb2cpuS3w",base:Re.RIN,quote:Re.USDC,decimals:Re.RIN.decimals,version:4},APEX_USDC_V4:{symbol:"APEX-USDC",name:"APEX-USDC V4 LP",mint:"444cVqYyDxJNo6FqiMb9qQWFUd7tYzFRdDuJRFrSAGnU",base:Re.APEX,quote:Re.USDC,decimals:Re.APEX.decimals,version:4},mSOL_RAY_V4:{symbol:"mSOL-RAY",name:"mSOL-RAY V4 LP",mint:"De2EHBAdkgfc72DpShqDGG42cV3iDWh8wvvZdPsiEcqP",base:Re.mSOL,quote:Re.RAY,decimals:Re.mSOL.decimals,version:4},MNDE_mSOL_V4:{symbol:"MNDE-mSOL",name:"MNDE-mSOL V4 LP",mint:"4bh8XCzTHSbqbWN8o1Jn4ueBdz1LvJFoEasN6K6CQ8Ny",base:Re.MNDE,quote:Re.mSOL,decimals:Re.MNDE.decimals,version:4},LARIX_RAY_V4:{symbol:"LARIX-RAY",name:"LARIX-RAY V4 LP",mint:"ZRDfSLgWGeaYSmhdPvFNKQQhDcYdZQaue2N8YDmHX4q",base:Re.LARIX,quote:Re.RAY,decimals:Re.LARIX.decimals,version:4},LIQ_USDC_V4:{symbol:"LIQ-USDC",name:"LIQ-USDC V4 LP",mint:"GWpD3eTfhJB5KDCcnE85dBQrjAk2CsrgDF9b52R9CrjV",base:Re.LIQ,quote:Re.USDC,decimals:Re.LIQ.decimals,version:4},WAG_USDC_V4:{symbol:"WAG-USDC",name:"WAG-USDC V4 LP",mint:"4yykyPugitUVRewNPXXCviRvxGfsfsRMoP32z3b6FmUC",base:Re.WAG,quote:Re.USDC,decimals:Re.WAG.decimals,version:4},ETH_mSOL_V4:{symbol:"ETH-mSOL",name:"ETH-mSOL V4 LP",mint:"HYv3grQfi8QbV7nG7EFgNK1aJSrsJ7HynXJKJVPLL2Uh",base:Re.ETH,quote:Re.mSOL,decimals:Re.ETH.decimals,version:4},mSOL_USDT_V4:{symbol:"mSOL-USDT",name:"mSOL-USDT V4 LP",mint:"69NCmEW9mGpiWLjAcAWHq51k4ionJZmzgRfRT3wQaCCf",base:Re.mSOL,quote:Re.USDT,decimals:Re.mSOL.decimals,version:4},BTC_mSOL_V4:{symbol:"BTC-mSOL",name:"BTC-mSOL V4 LP",mint:"92bcERNtUmuaJ6mwLSxYHZYSph37jdKxRdoYNxpcYNPp",base:Re.BTC,quote:Re.mSOL,decimals:Re.BTC.decimals,version:4},SLIM_SOL_V4:{symbol:"SLIM-SOL",name:"SLIM-SOL V4 LP",mint:"9X4EK8E59VAVi6ChnNvvd39m6Yg9RtkBbAPq1mDVJT57",base:Re.SLIM,quote:Re.WSOL,decimals:Re.SLIM.decimals,version:4},AURY_USDC_V4:{symbol:"AURY-USDC",name:"AURY-USDC V4 LP",mint:"Gub5dvTy4nzP82qpmpNkBxmRqjtqRddBTBqHSdNcf2oS",base:Re.AURY,quote:Re.USDC,decimals:Re.AURY.decimals,version:4},PRT_SOL_V4:{symbol:"PRT-SOL",name:"PRT-SOL V4 LP",mint:"EcJ8Wgwt1AzSPiDpVr6aaSur8TKAsNTPmmzRACeqT68Z",base:Re.PRT,quote:Re.WSOL,decimals:Re.PRT.decimals,version:4},LIQ_RAY_V4:{symbol:"LIQ-RAY",name:"LIQ-RAY V4 LP",mint:"49YUsDrThJosHSagCn1F59Uc9NRxbr9thVrZikUnQDXy",base:Re.LIQ,quote:Re.RAY,decimals:Re.LIQ.decimals,version:4},SYP_SOL_V4:{symbol:"SYP-SOL",name:"SYP-SOL V4 LP",mint:"KHV6dfj2bDntzJ9z1S26cDfqWfUZdJRFmteLR6LxHwW",base:Re.SYP,quote:Re.WSOL,decimals:Re.SYP.decimals,version:4},SYP_RAY_V4:{symbol:"SYP-RAY",name:"SYP-RAY V4 LP",mint:"FT2KZqxxM8F2h9pZtTF4PyjK88bM4YbuBzd7ZPwQ5wMB",base:Re.SYP,quote:Re.RAY,decimals:Re.SYP.decimals,version:4},SYP_USDC_V4:{symbol:"SYP-USDC",name:"SYP-USDC V4 LP",mint:"2xJGuLAivAR1WkARRA6zP1v4jaA9jV2Qis8JfMNvrVyZ",base:Re.SYP,quote:Re.USDC,decimals:Re.SYP.decimals,version:4},FAB_USDC_V4:{symbol:"FAB-USDC",name:"FAB-USDC V4 LP",mint:"5rTCvZq6BcApsC3VV1EEUuTJfaVd8uYhcGjwTy1By6P8",base:Re.FAB,quote:Re.USDC,decimals:Re.FAB.decimals,version:4},WOOF_RAY_V4:{symbol:"WOOF-RAY",name:"WOOF-RAY V4 LP",mint:"H2FAnazDaGFutcmnrwDxhmdncR1Bd7GG4mhPCSUiamDX",base:Re.WOOF,quote:Re.RAY,decimals:Re.WOOF.decimals,version:4},WOOF_USDC_V4:{symbol:"WOOF-USDC",name:"WOOF-USDC V4 LP",mint:"EFSu5TMc1ijRevaYCxUkS7uGvbhsymDHEaTK3UVdNE3q",base:Re.WOOF,quote:Re.USDC,decimals:Re.WOOF.decimals,version:4},SLND_USDC_V4:{symbol:"SLND-USDC",name:"SLND-USDC V4 LP",mint:"EunE9uDh2cGsyJcsGuGKc6wte7kBn8iye2gzC4w2ePHn",base:Re.SLND,quote:Re.USDC,decimals:Re.SLND.decimals,version:4},FRKT_SOL_V4:{symbol:"FRKT-SOL",name:"FRKT-SOL V4 LP",mint:"HYUKXgpjaxMXHttyrFYtv3z2rdhZ1U9QDH8zEc8BooQC",base:Re.FRKT,quote:Re.WSOL,decimals:Re.FRKT.decimals,version:4},weWETH_SOL_V4:{symbol:"weWETH-SOL",name:"weWETH-SOL V4 LP",mint:"3hbozt2Por7bcrGod8N7kEeJNMocFFjCJrQR16TQGBrE",base:Re.weWETH,quote:Re.WSOL,decimals:Re.weWETH.decimals,version:4},weWETH_USDC_V4:{symbol:"weWETH-USDC",name:"weWETH-USDC V4 LP",mint:"3529SBnMCDW3S3xQ52aABbRHo7PcHvpQA4no8J12L5eK",base:Re.weWETH,quote:Re.USDC,decimals:Re.weWETH.decimals,version:4},weUNI_USDC_V4:{symbol:"weUNI-USDC",name:"weUNI-USDC V4 LP",mint:"EEC4QnT41py39QaYnzQnoYQEtDUDNa6Se8SBDgfPSN2a",base:Re.weUNI,quote:Re.USDC,decimals:Re.weUNI.decimals,version:4},weSUSHI_USDC_V4:{symbol:"weSUSHI-USDC",name:"weSUSHI-USDC V4 LP",mint:"3wVrtQZsiDNp5yTPyfEzQHPU6iuJoMmpnWg6CTt4V8sR",base:Re.weSUSHI,quote:Re.USDC,decimals:Re.weSUSHI.decimals,version:4},CYS_USDC_V4:{symbol:"CYS-USDC",name:"CYS-USDC V4 LP",mint:"GfV3QDzzdVUwCNSdfn6PjhmyJvjw18tn51RingWZYwk3",base:Re.CYS,quote:Re.USDC,decimals:Re.CYS.decimals,version:4},SAMO_USDC_V4:{symbol:"SAMO-USDC",name:"SAMO-USDC V4 LP",mint:"B2PjGEP3vPf1999fUD14pYdxvSDRVBk43hxB2rgthwEY",base:Re.SAMO,quote:Re.USDC,decimals:Re.SAMO.decimals,version:4},ABR_USDC_V4:{symbol:"ABR-USDC",name:"ABR-USDC V4 LP",mint:"ECHfxkf5zjjZFTX95QfFahNyzG7feyEKcfTdjsdrMSGU",base:Re.ABR,quote:Re.USDC,decimals:Re.ABR.decimals,version:4},IN_USDC_V4:{symbol:"IN-USDC",name:"IN-USDC V4 LP",mint:"GbmJtVgg9fRmmmjKUYGMZeSt8wZ47cDDXasg5Y3iF4kz",base:Re.IN,quote:Re.USDC,decimals:Re.IN.decimals,version:4},weDYDX_USDC_V4:{symbol:"weDYDX-USDC",name:"weDYDX-USDC V4 LP",mint:"BjkkMZnnzmgLqzGErzDbkk15ozv48iVKQuunpeM2Hqnk",base:Re.weDYDX,quote:Re.USDC,decimals:Re.weDYDX.decimals,version:4},STARS_USDC_V4:{symbol:"STARS-USDC",name:"STARS-USDC V4 LP",mint:"FJ68q7NChhETcGVdinMbM2FF1Cy79dpmUi6HC83K55Hv",base:Re.STARS,quote:Re.USDC,decimals:Re.STARS.decimals,version:4},weAXS_USDC_V4:{symbol:"weAXS-USDC",name:"weAXS-USDC V4 LP",mint:"6PSoJQ7myQ1BJtbQC6oiWR8HSecQGyoWsPYTZRJo2ci3",base:Re.weAXS,quote:Re.USDC,decimals:Re.weAXS.decimals,version:4},weSHIB_USDC_V4:{symbol:"weSHIB-USDC",name:"weSHIB-USDC V4 LP",mint:"AcjX5pmTMGSgxkdxc3r82r6WMKBvS6eQXXFz5ck5KKUa",base:Re.weSHIB,quote:Re.USDC,decimals:Re.weSHIB.decimals,version:4},SBR_USDC_V4:{symbol:"SBR-USDC",name:"SBR-USDC V4 LP",mint:"9FC8xTFRbgTpuZZYAYnZLxgnQ8r7FwfSBM1SWvGwgF7s",base:Re.SBR,quote:Re.USDC,decimals:Re.SBR.decimals,version:4},OXS_USDC_V4:{symbol:"OXS-USDC",name:"OXS-USDC V4 LP",mint:"et9pdjWm97rbmsJoN183GkFV5qzTGru79GE1Zhe7NTU",base:Re.OXS,quote:Re.USDC,decimals:Re.OXS.decimals,version:4},CWAR_USDC_V4:{symbol:"CWAR-USDC",name:"CWAR-USDC V4 LP",mint:"HjR23bxn2gtRDB2P1Tm3DLepAPPZgazsWJpLG9wqjnYR",base:Re.CWAR,quote:Re.USDC,decimals:Re.CWAR.decimals,version:4},UPS_USDC_V4:{symbol:"UPS-USDC",name:"UPS-USDC V4 LP",mint:"9hSUZdREEsbaYaKY4FouvXr7xyAqtpdHRDoYCb6Mb28a",base:Re.UPS,quote:Re.USDC,decimals:Re.UPS.decimals,version:4},weSAND_USDC_V4:{symbol:"weSAND-USDC",name:"weSAND-USDC V4 LP",mint:"3dADrQa7utyiCsaFeVk9r7oebW1WheowhKo5soBYKBVT",base:Re.weSAND,quote:Re.USDC,decimals:Re.weSAND.decimals,version:4},weMANA_USDC_V4:{symbol:"weMANA-USDC",name:"weMANA-USDC V4 LP",mint:"HpUkVAPRJ5zNRuJ1ZwMXEhbMHL3gSuPb2QuSER9YUd3a",base:Re.weMANA,quote:Re.USDC,decimals:Re.weMANA.decimals,version:4},CAVE_USDC_V4:{symbol:"CAVE-USDC",name:"CAVE-USDC V4 LP",mint:"5Gba1k3fU7Vh7UtAiBmie9vhQNNq1JfEwgn1DPGZ7NKQ",base:Re.CAVE,quote:Re.USDC,decimals:Re.CAVE.decimals,version:4},GENE_USDC_V4:{symbol:"GENE-USDC",name:"GENE-USDC V4 LP",mint:"7GKvfHEXenNiWYbJBKae89mdaMPr5gGMYwZmyC8gBNVG",base:Re.GENE,quote:Re.USDC,decimals:Re.GENE.decimals,version:4},GENE_RAY_V4:{symbol:"GENE-RAY",name:"GENE-RAY V4 LP",mint:"3HzXnc1qZ8mGqun18Ck3KA616XnZNqF1RWbgYE2nGRMA",base:Re.GENE,quote:Re.RAY,decimals:Re.GENE.decimals,version:4},APT_USDC_V4:{symbol:"APT-USDC",name:"APT-USDC V4 LP",mint:"Hk8mDAJFq4E9kF3DtNgPFwzbo5kbeiusNFJgWmo3LoQ5",base:Re.APT,quote:Re.USDC,decimals:Re.APT.decimals,version:4},GOFX_USDC_V4:{symbol:"GOFX-USDC",name:"GOFX-USDC V4 LP",mint:"4svqAwrLPGRDCQuuieYTmtLXF75wiahjeK2rEN9tY1YL",base:Re.GOFX,quote:Re.USDC,decimals:Re.GOFX.decimals,version:4},SONAR_USDC_V4:{symbol:"SONAR-USDC",name:"SONAR-USDC V4 LP",mint:"2tAcfqJ1YYjpGLqwh76kyNt9VaNFDd4fJySfH6SmWfKt",base:Re.SONAR,quote:Re.USDC,decimals:Re.SONAR.decimals,version:4},JSOL_SOL_V4:{symbol:"JSOL-SOL",name:"JSOL-SOL V4 LP",mint:"61z37rpHsU6d3Fq5sUjJ85K6tXGzkoYKDAG3kPJQNDRo",base:Re.JSOL,quote:Re.WSOL,decimals:Re.JSOL.decimals,version:4},JSOL_USDC_V4:{symbol:"JSOL-USDC",name:"JSOL-USDC V4 LP",mint:"3JZqf2VPNxj1kDZQsfzC7myM6spsGQbGuFv1gVfdYosN",base:Re.JSOL,quote:Re.USDC,decimals:Re.JSOL.decimals,version:4},SHILL_USDC_V4:{symbol:"SHILL-USDC",name:"SHILL-USDC V4 LP",mint:"CnUhYBtQEbSBZ76bgxAouVCTCb8rofZzwerVF5z5LREJ",base:Re.SHILL,quote:Re.USDC,decimals:Re.SHILL.decimals,version:4},DFL_USDC_V4:{symbol:"DFL-USDC",name:"DFL-USDC V4 LP",mint:"Fffijd6UVJdQeLVXhenS8YcsnMUdWJqpbBeH42LFkXgS",base:Re.DFL,quote:Re.USDC,decimals:Re.DFL.decimals,version:4},BOKU_USDC_V4:{symbol:"BOKU-USDC",name:"BOKU-USDC V4 LP",mint:"8jjQn5Yagb6Nm2WGAxPW1bcGqrTWpg5adf6QukXEarcP",base:Re.BOKU,quote:Re.USDC,decimals:Re.BOKU.decimals,version:4},MIMO_SOL_V4:{symbol:"MIMO-SOL",name:"MIMO-SOL V4 LP",mint:"HUJ1opSk8AiPfDT47r7n4hTiK2EXgrR3Msy7T8q1BywS",base:Re.MIMO,quote:Re.WSOL,decimals:Re.MIMO.decimals,version:4},wbWBNB_USDC_V4:{symbol:"wbWBNB-USDC",name:"wbWBNB-USDC V4 LP",mint:"FEsEfEJJSfiMQcshUgZ5UigfytfGRQ3z5puyF6DXDp9C",base:Re.wbWBNB,quote:Re.USDC,decimals:Re.wbWBNB.decimals,version:4},wePEOPLE_USDC_V4:{symbol:"wePEOPLE-USDC",name:"wePEOPLE-USDC V4 LP",mint:"3e5ZCKi4etorpV4pv1fSckP5iJD67xcUkx3RtFCZhbzD",base:Re.wePEOPLE,quote:Re.USDC,decimals:Re.wePEOPLE.decimals,version:4},ISOLA_USDT_V4:{symbol:"ISOLA-USDT",name:"ISOLA-USDT V4 LP",mint:"H8s1wQsZpRK61pyLF3XwyQc6E8vNUnwRDhy3TBDCDENQ",base:Re.ISOLA,quote:Re.USDT,decimals:Re.ISOLA.decimals,version:4},SPWN_USDC_V4:{symbol:"SPWN-USDC",name:"SPWN-USDC V4 LP",mint:"B5uyCAQcX6nAjZypLgiivbEKabSptgUb8JK9tkaSnqdW",base:Re.SPWN,quote:Re.USDC,decimals:Re.SPWN.decimals,version:4},STR_USDC_V4:{symbol:"STR-USDC",name:"STR-USDC V4 LP",mint:"8uDVKmVwNmbXHDB7rNKqtpcT9VAsFHTJ5pPYxjyoBbNg",base:Re.STR,quote:Re.USDC,decimals:Re.STR.decimals,version:4},SOLC_USDT_V4:{symbol:"SOLC-USDT",name:"SOLC-USDT V4 LP",mint:"2g9JzTWycLzK4KEBBHsponAtZRee2ii63bRrJ8tefEyt",base:Re.SOLC,quote:Re.USDT,decimals:Re.SOLC.decimals,version:4},VI_USDC_V4:{symbol:"VI-USDC",name:"VI-USDC V4 LP",mint:"3MwHyHCRfVqtH3ABFtdKXdY9dwemr9GGxQFaBkeq6NjY",base:Re.VI,quote:Re.USDC,decimals:Re.VI.decimals,version:4},KKO_USDC_V4:{symbol:"KKO-USDC",name:"KKO-USDC V4 LP",mint:"7xr1Doc1NiMWbUg99YVFqQSLfYXNzo6YvacXUsSgBMNW",base:Re.KKO,quote:Re.USDC,decimals:Re.KKO.decimals,version:4},XTAG_USDC_V4:{symbol:"XTAG-USDC",name:"XTAG-USDC V4 LP",mint:"GCEQbLg4ik5YJ4CMcbtuVqEc4sjLdSGy34rFk1CtGjdg",base:Re.XTAG,quote:Re.USDC,decimals:Re.XTAG.decimals,version:4},TTT_USDC_V4:{symbol:"TTT-USDC",name:"TTT-USDC V4 LP",mint:"84fmrerHGohoRf4iLPDQ1KG4CjSjCRksYWGzjWfCRM8a",base:Re.TTT,quote:Re.USDC,decimals:Re.TTT.decimals,version:4},RUN_USDC_V4:{symbol:"RUN-USDC",name:"RUN-USDC V4 LP",mint:"CjTLvvKSQdEujcSzeZRYgk4w1DpuXBbMppLHaxZyz11Y",base:Re.RUN,quote:Re.USDC,decimals:Re.RUN.decimals,version:4},CRWNY_USDC_V4:{symbol:"CRWNY-USDC",name:"CRWNY-USDC V4 LP",mint:"H3D9Gyi4frRLW6bS9vBthDVDJyzyRJ6XhhpP6PJGWaDC",base:Re.CRWNY,quote:Re.USDC,decimals:Re.CRWNY.decimals,version:4},CRWNY_RAY_V4:{symbol:"CRWNY-RAY",name:"CRWNY-RAY V4 LP",mint:"5Cz9wGStNjiUg81q8t6sJJeckuT2C14CYSfyQbtYirSX",base:Re.CRWNY,quote:Re.RAY,decimals:Re.CRWNY.decimals,version:4},BLOCK_USDC_V4:{symbol:"BLOCK-USDC",name:"BLOCK-USDC V4 LP",mint:"8i44Y23GkkwDYZ5iSkVEqmrXUfwNmwo9grguTDWKM8wg",base:Re.BLOCK,quote:Re.USDC,decimals:Re.BLOCK.decimals,version:4},REAL_USDC_V4:{symbol:"REAL-USDC",name:"REAL-USDC V4 LP",mint:"EN43tp8xdkcM8RYSJ4msFHMPTJRXKhUteVYBDJLwTvr3",base:Re.REAL,quote:Re.USDC,decimals:Re.REAL.decimals,version:4},FRKT_USDC_V4:{symbol:"FRKT-USDC",name:"FRKT-USDC V4 LP",mint:"7MgzqVTGeA4wENme81QPTrPy45NJMKVL9XGwxmNT87cG",base:Re.FRKT,quote:Re.USDC,decimals:Re.FRKT.decimals,version:4},MBS_USDC_V4:{symbol:"MBS-USDC",name:"MBS-USDC V4 LP",mint:"BAgSWaPZpsQKyZJdvB5KyvmCNj6hzczzentt5FhDCVHb",base:Re.MBS,quote:Re.USDC,decimals:Re.MBS.decimals,version:4},PRISM_USDC_V4:{symbol:"PRISM-USDC",name:"PRISM-USDC V4 LP",mint:"3baYkTcudvSFMe25UpZcBfdp4FA5kL2E4pfaeJ8AiYJB",base:Re.PRISM,quote:Re.USDC,decimals:Re.PRISM.decimals,version:4},CHICKS_USDC_V4:{symbol:"CHICKS-USDC",name:"CHICKS-USDC V4 LP",mint:"CPzmcw81a6PDasSXhVLfDRKuTJXZPUqocS9VFf5zCFhs",base:Re.CHICKS,quote:Re.USDC,decimals:Re.CHICKS.decimals,version:4},MEAN_RAY_V4:{symbol:"MEAN-RAY",name:"MEAN-RAY V4 LP",mint:"H9wUyrxpAErmdNVPitpHSXgwoomoh91ggJKPWtQQoCn1",base:Re.MEAN,quote:Re.RAY,decimals:Re.MEAN.decimals,version:4},TINY_USDC_V4:{symbol:"TINY-USDC",name:"TINY-USDC V4 LP",mint:"Hho6ZzRDj49L4z6zog8nQZFaxMSz6FX6wNzVpMeAMen",base:Re.TINY,quote:Re.USDC,decimals:Re.TINY.decimals,version:4},SCY_USDC_V4:{symbol:"SCY-USDC",name:"SCY-USDC V4 LP",mint:"EcYk7t6Vw59HDnY2u6H1KDPkk8juMeA1NpGpHiGk1LDf",base:Re.SCY,quote:Re.USDC,decimals:Re.SCY.decimals,version:4}},ve={WSOL:Object.assign({},he)},De={},Le=v.from("token/util");class Ee{constructor(e){this.tokenList=e,this.filterByMint=e=>this.tokenList.filter((t=>t.mint===e)),this.filterUniqueByMint=(e,t="all")=>{const n=this.tokenList.filter((t=>t.mint===e));if(0===n.length)return Le.throwArgumentError("No token found","mint",e);if(n.length>1)return Le.throwArgumentError(`Multiple tokens found: ${n.length}`,"mint",e);const i=n[0];return"spl"===t&&"version"in i?Le.throwArgumentError("invalid SPL token mint","mint",e):"lp"!==t||"version"in i?i:Le.throwArgumentError("invalid LP token mint","mint",e)},this.getList=()=>this.tokenList}}class Be{constructor(e,t="UNKNOWN",n="UNKNOWN"){this.decimals=e,this.symbol=t,this.name=n}}function Me(){Be.prototype.inspect=function(){return`<Currency: decimals=${this.decimals}, name=${this.name}, symbol=${this.symbol}>`}}Be.SOL=new Be(Ie.decimals,Ie.symbol,Ie.name);class Ve extends Be{constructor(e,t,n,i="UNKNOWN",o="UNKNOWN"){super(n,i,o),this.programId=_(e),this.mint=_(t)}equals(e){return this===e||this.mint.equals(e.mint)}}function _e(){Ve.prototype.inspect=function(){return`<Token: mint=${this.mint.toBase58()}, decimals=${this.decimals}, name=${this.name}, symbol=${this.symbol}>`}}function qe(e,t){return e instanceof Ve&&t instanceof Ve?e.equals(t):!(e instanceof Ve||t instanceof Ve)&&e===t}Ve.WSOL=new Ve(f.TOKEN_PROGRAM_ID,he.mint,he.decimals,Ie.symbol,Ie.name);const Ue=(e=>{var t={};return u.d(t,e),t})({default:()=>r.default}),Ke=(e=>{var t={};return u.d(t,e),t})({default:()=>a.default}),xe=Ke.default,Ne=v.from("entity/fraction"),We=xe(g.default),Fe=xe(Ue.default),Ge={[ce.ROUND_DOWN]:Fe.ROUND_DOWN,[ce.ROUND_HALF_UP]:Fe.ROUND_HALF_UP,[ce.ROUND_UP]:Fe.ROUND_UP},Ye={[ce.ROUND_DOWN]:We.roundDown,[ce.ROUND_HALF_UP]:We.roundHalfUp,[ce.ROUND_UP]:We.roundUp};class Xe{constructor(e,t=me){this.numerator=be(e),this.denominator=be(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Xe(this.denominator,this.numerator)}add(e){const t=e instanceof Xe?e:new Xe(be(e));return this.denominator.eq(t.denominator)?new Xe(this.numerator.add(t.numerator),this.denominator):new Xe(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){const t=e instanceof Xe?e:new Xe(be(e));return this.denominator.eq(t.denominator)?new Xe(this.numerator.sub(t.numerator),this.denominator):new Xe(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){const t=e instanceof Xe?e:new Xe(be(e));return new Xe(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){const t=e instanceof Xe?e:new Xe(be(e));return new Xe(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=ce.ROUND_HALF_UP){Ne.assert(Number.isInteger(e),`${e} is not an integer.`),Ne.assert(e>0,`${e} is not positive.`),Fe.set({precision:e+1,rounding:Ge[n]});const i=new Fe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=ce.ROUND_HALF_UP){return Ne.assert(Number.isInteger(e),`${e} is not an integer.`),Ne.assert(e>=0,`${e} is negative.`),We.DP=e,We.RM=Ye[n],new We(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}}const He=v.from("entity/amount"),ze=xe(g.default);function je(e,t){let n="0",i="0";if(e.includes(".")){const o=e.split(".");if(2!==o.length)return He.throwArgumentError("invalid number string","num",e);[n,i]=o,i=i.padEnd(t,"0")}else n=e;return[n,i.slice(0,t)||i]}class Qe extends Xe{constructor(e,t,n=!0){let i=new y.default(0);const o=fe.pow(new y.default(e.decimals));if(n)i=be(t);else{let n=new y.default(0),r=new y.default(0);if("string"==typeof t||"number"==typeof t||"bigint"==typeof t){const[i,o]=je(t.toString(),e.decimals);n=be(i),r=be(o)}n=n.mul(o),i=n.add(r)}super(i,o),this.currency=e}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(e){return He.assert(qe(this.currency,e.currency),"gt currency not equals"),this.raw.gt(e.raw)}lt(e){return He.assert(qe(this.currency,e.currency),"lt currency not equals"),this.raw.lt(e.raw)}add(e){return He.assert(qe(this.currency,e.currency),"add currency not equals"),new Qe(this.currency,this.raw.add(e.raw))}sub(e){return He.assert(qe(this.currency,e.currency),"sub currency not equals"),new Qe(this.currency,this.raw.sub(e.raw))}toSignificant(e=this.currency.decimals,t,n=ce.ROUND_DOWN){return super.toSignificant(e,t,n)}toFixed(e=this.currency.decimals,t,n=ce.ROUND_DOWN){return He.assert(e<=this.currency.decimals,"decimals overflow"),super.toFixed(e,t,n)}toExact(e={groupSeparator:""}){return ze.DP=this.currency.decimals,new ze(this.numerator.toString()).div(this.denominator.toString()).toFormat(e)}}class Ze extends Qe{constructor(e,t,n=!0){super(e,t,n),this.token=e}add(e){return He.assert(qe(this.token,e.token),"add token not equals"),new Ze(this.token,this.raw.add(e.raw))}subtract(e){return He.assert(qe(this.token,e.token),"sub token not equals"),new Ze(this.token,this.raw.sub(e.raw))}}const Je=new Xe(Ae);class $e extends Xe{toSignificant(e=5,t,n){return this.mul(Je).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Je).toFixed(e,t,n)}}const et=v.from("entity/price");class tt extends Xe{constructor(e,t,n,i){super(i,t),this.baseCurrency=e,this.quoteCurrency=n,this.scalar=new Xe(Se(e.decimals),Se(n.decimals))}get raw(){return new Xe(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new tt(this.quoteCurrency,this.numerator,this.baseCurrency,this.denominator)}mul(e){et.assert(qe(this.quoteCurrency,e.baseCurrency),"mul currency not equals");const t=super.mul(e);return new tt(this.baseCurrency,t.denominator,e.quoteCurrency,t.numerator)}toSignificant(e=this.quoteCurrency.decimals,t,n){return this.adjusted.toSignificant(e,t,n)}toFixed(e=this.quoteCurrency.decimals,t,n){return this.adjusted.toFixed(e,t,n)}}const nt=(e=>{var t={};return u.d(t,e),t})({BitStructure:()=>s.BitStructure,Blob:()=>s.Blob,Layout:()=>s.Layout,Structure:()=>s.Structure,UInt:()=>s.UInt,Union:()=>s.Union,bits:()=>s.bits,blob:()=>s.blob,cstr:()=>s.cstr,f32:()=>s.f32,f32be:()=>s.f32be,f64:()=>s.f64,f64be:()=>s.f64be,greedy:()=>s.greedy,ns64:()=>s.ns64,ns64be:()=>s.ns64be,nu64:()=>s.nu64,nu64be:()=>s.nu64be,offset:()=>s.offset,s16:()=>s.s16,s16be:()=>s.s16be,s24:()=>s.s24,s24be:()=>s.s24be,s32:()=>s.s32,s32be:()=>s.s32be,s40:()=>s.s40,s40be:()=>s.s40be,s48:()=>s.s48,s48be:()=>s.s48be,s8:()=>s.s8,seq:()=>s.seq,u16:()=>s.u16,u16be:()=>s.u16be,u24:()=>s.u24,u24be:()=>s.u24be,u32:()=>s.u32,u32be:()=>s.u32be,u40:()=>s.u40,u40be:()=>s.u40be,u48:()=>s.u48,u48be:()=>s.u48be,u8:()=>s.u8,union:()=>s.union,unionLayoutDiscriminator:()=>s.unionLayoutDiscriminator,utf8:()=>s.utf8}),it=nt.Layout,ot=nt.Structure,rt=nt.Union,at=nt.BitStructure,st=nt.UInt,ct=nt.Blob,ut=nt.greedy,mt=nt.u8,dt=nt.u16,lt=nt.u24,pt=nt.u32,ft=nt.u40,At=nt.u48,gt=nt.nu64,yt=nt.u16be,kt=nt.u24be,wt=nt.u32be,bt=nt.u40be,St=nt.u48be,Tt=nt.nu64be,It=nt.s8,ht=nt.s16,Pt=nt.s24,Ct=nt.s32,Rt=nt.s40,Ot=nt.s48,vt=nt.ns64,Dt=nt.s16be,Lt=nt.s24be,Et=nt.s32be,Bt=nt.s40be,Mt=nt.s48be,Vt=nt.ns64be,_t=nt.f32,qt=nt.f32be,Ut=nt.f64,Kt=nt.f64be,xt=nt.seq,Nt=nt.union,Wt=nt.unionLayoutDiscriminator,Ft=nt.blob,Gt=nt.cstr,Yt=nt.utf8,Xt=nt.bits,Ht=nt.offset;class zt extends it{constructor(e,t,n){super(e,n),this.blob=Ft(e),this.signed=t}decode(e,t=0){const n=new y.default(this.blob.decode(e,t),10,"le");return this.signed?n.fromTwos(8*this.span).clone():n}encode(e,t,n=0){return"number"==typeof e&&(e=new y.default(e)),this.signed&&(e=e.toTwos(8*this.span)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,n)}}class jt extends it{constructor(e){super(8,e),this._lower=Xt(pt(),!1),this._upper=Xt(pt(),!1)}addBoolean(e){this._lower.fields.length<32?this._lower.addBoolean(e):this._upper.addBoolean(e)}decode(e,t=0){const n=this._lower.decode(e,t),i=this._upper.decode(e,t+this._lower.span);return Object.assign(Object.assign({},n),i)}encode(e,t,n=0){return this._lower.encode(e,t,n)+this._upper.encode(e,t,n+this._lower.span)}}function Qt(e){return new st(1,e)}function Zt(e){return new st(4,e)}function Jt(e){return new zt(8,!1,e)}function $t(e){return new zt(16,!1,e)}function en(e){return new zt(1,!0,e)}function tn(e){return new zt(8,!0,e)}function nn(e){return new zt(16,!0,e)}class on extends it{constructor(e,t,n,i){super(e.span,i),this.layout=e,this.decoder=t,this.encoder=n}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,n){return this.layout.encode(this.encoder(e),t,n)}getSpan(e,t){return this.layout.getSpan(e,t)}}function rn(e){return new on(Ft(32),(e=>new A.PublicKey(e)),(e=>e.toBuffer()),e)}class an extends it{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=mt()}encode(e,t,n=0){return null==e?this.discriminator.encode(0,t,n):(this.discriminator.encode(1,t,n),this.layout.encode(e,t,n+1)+1)}decode(e,t=0){const n=this.discriminator.decode(e,t);if(0===n)return null;if(1===n)return this.layout.decode(e,t+1);throw new Error("Invalid option "+this.property)}getSpan(e,t=0){const n=this.discriminator.decode(e,t);if(0===n)return 1;if(1===n)return this.layout.getSpan(e,t+1)+1;throw new Error("Invalid option "+this.property)}}function sn(e,t){return new an(e,t)}function cn(e){return new on(mt(),un,mn,e)}function un(e){if(0===e)return!1;if(1===e)return!0;throw new Error("Invalid bool: "+e)}function mn(e){return e?1:0}function dn(e,t){const n=pt("length"),i=kn([n,In(e,Ht(n,-n.span),"values")]);return new on(i,(({values:e})=>e),(e=>({values:e})),t)}function ln(e,t,n){const i=kn([Jt("tag"),t.replicate("data")]);return new on(i,(function({tag:t,data:n}){if(!t.eq(e))throw new Error("Invalid tag, expected: "+e.toString("hex")+", got: "+t.toString("hex"));return n}),(t=>({tag:e,data:t})),n)}function pn(e){const t=pt("length"),n=kn([t,Ft(Ht(t,-t.span),"data")]);return new on(n,(({data:e})=>e),(e=>({data:e})),e)}function fn(e){return new on(pn(),(e=>e.toString("utf-8")),(e=>Buffer.from(e,"utf-8")),e)}function An(e,t){const n=Nt(mt(),t);return e.forEach(((e,t)=>n.addVariant(t,e,e.property))),n}function gn(e,t,n){const i=kn([In(e,t,"values")]);return new on(i,(({values:e})=>e),(e=>({values:e})),n)}class yn extends ot{decode(e,t){return super.decode(e,t)}}function kn(e,t,n){return new yn(e,t,n)}class wn extends rt{encodeInstruction(e){const t=Math.max(...Object.values(this.registry).map((e=>e.span))),n=Buffer.alloc(t);return n.slice(0,this.encode(e,n))}decodeInstruction(e){return this.decode(e)}}function bn(e,t,n){return new wn(e,t,n)}class Sn extends ct{decode(e,t){const n=super.decode(e,t);if(!n.every((e=>0===e)))throw new Error("nonzero padding bytes");return n}}function Tn(e){return new Sn(e)}function In(e,t,n){let i;const o="number"==typeof t?t:(0,y.isBN)(t)?t.toNumber():new Proxy(t,{get(e,t){if(!i){const t=Reflect.get(e,"count");i=(0,y.isBN)(t)?t.toNumber():t,Reflect.set(e,"count",i)}return Reflect.get(e,t)},set:(e,t,n)=>("count"===t&&(i=n),Reflect.set(e,t,n))});return xt(e,o,n)}const hn=kn([Zt("mintAuthorityOption"),rn("mintAuthority"),Jt("supply"),Qt("decimals"),Qt("isInitialized"),Zt("freezeAuthorityOption"),rn("freezeAuthority")]),Pn=kn([rn("mint"),rn("owner"),Jt("amount"),Zt("delegateOption"),rn("delegate"),Qt("state"),Zt("isNativeOption"),Jt("isNative"),Jt("delegatedAmount"),Zt("closeAuthorityOption"),rn("closeAuthority")]);function Cn(e,t,n){return q([e.toBuffer(),n.toBuffer(),t.toBuffer()],new A.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}class Rn{static getAssociatedTokenAccount({mint:e,owner:t,programId:n}){return Cn(t,e,n).publicKey}static makeCreateAssociatedTokenAccountInstruction({programId:e,mint:t,associatedAccount:n,owner:i,payer:o,instructionsType:r}){return r.push(vn.createATA),(0,f.createAssociatedTokenAccountInstruction)(o,n,i,t,e)}static async makeCreateWrappedNativeAccountInstructions({connection:e,owner:t,payer:n,amount:i,commitment:o}){const r=[],a=[],s=await e.getMinimumBalanceForRentExemption(Pn.span,o),c=be(i).add(new y.default(s)),u=Ln({fromPublicKey:n,programId:f.TOKEN_PROGRAM_ID});return r.push(A.SystemProgram.createAccountWithSeed({fromPubkey:n,basePubkey:n,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:Pn.span,programId:f.TOKEN_PROGRAM_ID})),a.push(vn.createAccount),r.push(this.makeInitAccountInstruction({programId:f.TOKEN_PROGRAM_ID,mint:_(he.mint),tokenAccount:u.publicKey,owner:t,instructionTypes:a})),{address:{newAccount:u.publicKey},innerTransaction:{instructions:r,signers:[],lookupTableAddress:[],instructionTypes:a}}}static async insertCreateWrappedNativeAccount({connection:e,owner:t,payer:n,amount:i,instructions:o,instructionsType:r,signers:a,commitment:s}){const c=await this.makeCreateWrappedNativeAccountInstructions({connection:e,owner:t,payer:n,amount:i,commitment:s});return o.push(...c.innerTransaction.instructions),a.push(...c.innerTransaction.signers),r.push(...c.innerTransaction.instructionTypes),c.address.newAccount}static makeInitMintInstruction({programId:e,mint:t,decimals:n,mintAuthority:i,freezeAuthority:o=null,instructionTypes:r}){return r.push(vn.initMint),(0,f.createInitializeMintInstruction)(t,n,i,o,e)}static makeMintToInstruction({programId:e,mint:t,dest:n,authority:i,amount:o,multiSigners:r=[],instructionTypes:a}){return a.push(vn.mintTo),(0,f.createMintToInstruction)(t,n,i,BigInt(String(o)),r,e)}static makeInitAccountInstruction({programId:e,mint:t,tokenAccount:n,owner:i,instructionTypes:o}){return o.push(vn.initAccount),(0,f.createInitializeAccountInstruction)(n,t,i,e)}static makeTransferInstruction({programId:e,source:t,destination:n,owner:i,amount:o,multiSigners:r=[],instructionsType:a}){return a.push(vn.transferAmount),(0,f.createTransferInstruction)(t,n,i,BigInt(String(o)),r,e)}static makeCloseAccountInstruction({programId:e,tokenAccount:t,owner:n,payer:i,multiSigners:o=[],instructionsType:r}){return r.push(vn.closeAccount),(0,f.createCloseAccountInstruction)(t,i,n,o,e)}static createInitAccountInstruction(e,t,n,i){const o=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:A.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}],r=Qt("instruction"),a=Buffer.alloc(r.span);return r.encode(1,a),new A.TransactionInstruction({keys:o,programId:e,data:a})}}var On,vn;!function(e){e[e.V0=0]="V0",e[e.LEGACY=1]="LEGACY"}(On||(On={})),function(e){e[e.createAccount=0]="createAccount",e[e.initAccount=1]="initAccount",e[e.createATA=2]="createATA",e[e.closeAccount=3]="closeAccount",e[e.transferAmount=4]="transferAmount",e[e.initMint=5]="initMint",e[e.mintTo=6]="mintTo",e[e.initMarket=7]="initMarket",e[e.util1216OwnerClaim=8]="util1216OwnerClaim",e[e.setComputeUnitPrice=9]="setComputeUnitPrice",e[e.setComputeUnitLimit=10]="setComputeUnitLimit",e[e.clmmCreatePool=11]="clmmCreatePool",e[e.clmmOpenPosition=12]="clmmOpenPosition",e[e.clmmIncreasePosition=13]="clmmIncreasePosition",e[e.clmmDecreasePosition=14]="clmmDecreasePosition",e[e.clmmClosePosition=15]="clmmClosePosition",e[e.clmmSwapBaseIn=16]="clmmSwapBaseIn",e[e.clmmSwapBaseOut=17]="clmmSwapBaseOut",e[e.clmmInitReward=18]="clmmInitReward",e[e.clmmSetReward=19]="clmmSetReward",e[e.clmmCollectReward=20]="clmmCollectReward",e[e.ammV4Swap=21]="ammV4Swap",e[e.ammV4AddLiquidity=22]="ammV4AddLiquidity",e[e.ammV4RemoveLiquidity=23]="ammV4RemoveLiquidity",e[e.ammV4SimulatePoolInfo=24]="ammV4SimulatePoolInfo",e[e.ammV4SwapBaseIn=25]="ammV4SwapBaseIn",e[e.ammV4SwapBaseOut=26]="ammV4SwapBaseOut",e[e.ammV4CreatePool=27]="ammV4CreatePool",e[e.ammV4InitPool=28]="ammV4InitPool",e[e.ammV4CreatePoolV2=29]="ammV4CreatePoolV2",e[e.ammV5AddLiquidity=30]="ammV5AddLiquidity",e[e.ammV5RemoveLiquidity=31]="ammV5RemoveLiquidity",e[e.ammV5SimulatePoolInfo=32]="ammV5SimulatePoolInfo",e[e.ammV5SwapBaseIn=33]="ammV5SwapBaseIn",e[e.ammV5SwapBaseOut=34]="ammV5SwapBaseOut",e[e.routeSwap=35]="routeSwap",e[e.routeSwap1=36]="routeSwap1",e[e.routeSwap2=37]="routeSwap2",e[e.farmV3Deposit=38]="farmV3Deposit",e[e.farmV3Withdraw=39]="farmV3Withdraw",e[e.farmV3CreateLedger=40]="farmV3CreateLedger",e[e.farmV5Deposit=41]="farmV5Deposit",e[e.farmV5Withdraw=42]="farmV5Withdraw",e[e.farmV5CreateLedger=43]="farmV5CreateLedger",e[e.farmV6Deposit=44]="farmV6Deposit",e[e.farmV6Withdraw=45]="farmV6Withdraw",e[e.farmV6Create=46]="farmV6Create",e[e.farmV6Restart=47]="farmV6Restart",e[e.farmV6CreatorAddReward=48]="farmV6CreatorAddReward",e[e.farmV6CreatorWithdraw=49]="farmV6CreatorWithdraw",e[e.test=50]="test"}(vn||(vn={}));class Dn{static _selectTokenAccount(e){const{tokenAccounts:t,programId:n,mint:i,owner:o,config:r}=e,{associatedOnly:a}=Object.assign({associatedOnly:!0},r),s=t.filter((({accountInfo:e})=>e.mint.equals(i))).sort(((e,t)=>e.accountInfo.amount.lt(t.accountInfo.amount)?1:-1)),c=Rn.getAssociatedTokenAccount({mint:i,owner:o,programId:n});for(const e of s){const{pubkey:t}=e;if(!a)return t;if(c.equals(t))return t}return null}static async _handleTokenAccount(e){const{connection:t,side:n,amount:i,programId:o,mint:r,tokenAccount:a,owner:s,payer:c=s,frontInstructions:u,endInstructions:m,signers:d,bypassAssociatedCheck:l,frontInstructionsType:p,endInstructionsType:A,checkCreateATAOwner:g}=e,y=Rn.getAssociatedTokenAccount({mint:r,owner:s,programId:o});if(Ve.WSOL.mint.equals(r)){const e=await Rn.insertCreateWrappedNativeAccount({connection:t,owner:s,payer:c,instructions:u,instructionsType:p,signers:d,amount:i});return m&&m.push(Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:e,owner:s,payer:c,instructionsType:null!=A?A:[]})),e}if(!a||"out"===n&&!y.equals(a)&&!l){const e=Rn.makeCreateAssociatedTokenAccountInstruction({programId:o,mint:r,associatedAccount:y,owner:s,payer:c,instructionsType:p});if(g){const n=await t.getAccountInfo(y);if(null===n)u.push(e);else if(!(n.owner.equals(f.TOKEN_PROGRAM_ID)&&f.AccountLayout.decode(n.data).mint.equals(r)&&f.AccountLayout.decode(n.data).owner.equals(s)))throw Error(`create ata check error -> mint: ${r.toString()}, ata: ${y.toString()}`)}else u.push(e);return y}return a}static async _selectOrCreateTokenAccount(e){var t,n,i,o,r,a,s,c,u,m;const{mint:d,tokenAccounts:l,createInfo:p,associatedOnly:g,owner:y,checkCreateATAOwner:k,programId:w}=e,b=Rn.getAssociatedTokenAccount({mint:d,owner:y,programId:w}),S=l.filter((e=>e.accountInfo.mint.equals(d)&&(!g||e.pubkey.equals(b)))).sort(((e,t)=>e.accountInfo.amount.lt(t.accountInfo.amount)?1:-1));if(void 0===p||S.length>0)return S.length>0?S[0].pubkey:void 0;if(g){const e=Rn.makeCreateAssociatedTokenAccountInstruction({programId:w,mint:d,associatedAccount:b,owner:y,payer:p.payer,instructionsType:p.frontInstructionsType});if(k){const t=await p.connection.getAccountInfo(b);if(null===t)p.frontInstructions.push(e);else if(!(t.owner.equals(w)&&f.AccountLayout.decode(t.data).mint.equals(d)&&f.AccountLayout.decode(t.data).owner.equals(y)))throw Error(`create ata check error -> mint: ${d.toString()}, ata: ${b.toString()}`)}else p.frontInstructions.push(e);if(d.equals(Ve.WSOL.mint)&&p.amount){const e=await Rn.insertCreateWrappedNativeAccount({connection:p.connection,owner:y,payer:p.payer,instructions:p.frontInstructions,instructionsType:p.frontInstructionsType,signers:p.signers,amount:null!==(t=p.amount)&&void 0!==t?t:0});(null!==(n=p.endInstructions)&&void 0!==n?n:[]).push(Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:e,owner:y,payer:p.payer,instructionsType:null!==(i=p.endInstructionsType)&&void 0!==i?i:[]})),p.amount&&p.frontInstructions.push(Rn.makeTransferInstruction({programId:f.TOKEN_PROGRAM_ID,source:e,destination:b,owner:y,amount:p.amount,instructionsType:p.frontInstructionsType}))}return(null!==(o=p.endInstructions)&&void 0!==o?o:[]).push(Rn.makeCloseAccountInstruction({programId:w,tokenAccount:b,owner:y,payer:p.payer,instructionsType:null!==(r=p.endInstructionsType)&&void 0!==r?r:[]})),b}if(d.equals(Ve.WSOL.mint)){const e=await Rn.insertCreateWrappedNativeAccount({connection:p.connection,owner:y,payer:p.payer,instructions:p.frontInstructions,instructionsType:p.frontInstructionsType,signers:p.signers,amount:null!==(a=p.amount)&&void 0!==a?a:0});return(null!==(s=p.endInstructions)&&void 0!==s?s:[]).push(Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:e,owner:y,payer:p.payer,instructionsType:null!==(c=p.endInstructionsType)&&void 0!==c?c:[]})),e}{const e=Ln({fromPublicKey:y,programId:w}),t=await p.connection.getMinimumBalanceForRentExemption(f.AccountLayout.span),n=A.SystemProgram.createAccountWithSeed({fromPubkey:y,basePubkey:y,seed:e.seed,newAccountPubkey:e.publicKey,lamports:t,space:f.AccountLayout.span,programId:w}),i=Rn.createInitAccountInstruction(w,d,e.publicKey,y);return p.frontInstructions.push(n,i),p.frontInstructionsType.push(vn.createAccount,vn.initAccount),(null!==(u=p.endInstructions)&&void 0!==u?u:[]).push(Rn.makeCloseAccountInstruction({programId:w,tokenAccount:e.publicKey,owner:y,payer:p.payer,instructionsType:null!==(m=p.endInstructionsType)&&void 0!==m?m:[]})),e.publicKey}}}function Ln({fromPublicKey:e,programId:t=f.TOKEN_PROGRAM_ID}){const n=A.Keypair.generate().publicKey.toBase58().slice(0,32),i=function(e,t,n){const i=Buffer.concat([e.toBuffer(),Buffer.from(t),n.toBuffer()]),o=(0,d.sha256)(i);return new A.PublicKey(o)}(e,n,t);return{publicKey:i,seed:n}}const En={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new A.AddressLookupTableAccount({key:new A.PublicKey("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:A.AddressLookupTableAccount.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};function Bn({tokenAccounts:e}){const t=new A.PublicKey(he.mint);return e.filter((e=>e.accountInfo.mint.equals(t))).map((e=>e.accountInfo.amount)).reduce(((e,t)=>e.add(t)),new y.default(0))}async function Mn({ownerInfo:e,tokenAccounts:t,makeTxVersion:n,connection:i}){const o=new A.PublicKey(he.mint),r=t.filter((e=>e.accountInfo.mint.equals(o))).map((t=>({amount:t.accountInfo.amount,tx:Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:t.pubkey,owner:e.wallet,payer:e.payer,instructionsType:[]})})));return{address:{},innerTransactions:await oe({connection:i,makeTxVersion:n,payer:e.payer,innerTransaction:r.map((e=>({instructionTypes:[vn.closeAccount],instructions:[e.tx],signers:[]})))})}}async function Vn({connection:e,makeTxVersion:t,payer:n,innerTransactions:i,recentBlockhash:o,addLookupTableInfo:r}){var a;if(t!==On.V0&&t!==On.LEGACY)throw Error(" make tx version args error");const s=null!=o?o:(await e.getLatestBlockhash()).blockhash,c=[];for(const e of i)c.push(qn({makeTxVersion:t,instructions:e.instructions,payer:n,recentBlockhash:s,signers:e.signers,lookupTableInfos:Object.values(Object.assign(Object.assign({},null!=r?r:{}),null!==(a=e.lookupTableAddress)&&void 0!==a?a:{}))}));return c}async function _n({connection:e,makeTxVersion:t,payer:n,innerTransactions:i,recentBlockhash:o,lookupTableCache:r}){var a;if(t!==On.V0&&t!==On.LEGACY)throw Error(" make tx version args error");const s=null!=o?o:(await e.getLatestBlockhash()).blockhash,c=null!=r?r:{},u=[...new Set([...i.map((e=>{var t;return null!==(t=e.lookupTableAddress)&&void 0!==t?t:[]})).flat().map((e=>e.toString()))])],m=[];for(const e of u)void 0===c[e]&&m.push(new A.PublicKey(e));const d=m.length>0?await se({connection:e,address:m}):{};for(const[e,t]of Object.entries(d))c[e]=t;const l=[];for(const e of i){const i={};if(t===On.V0)for(const t of null!==(a=e.lookupTableAddress)&&void 0!==a?a:[])i[t.toString()]=c[t.toString()];l.push(qn({makeTxVersion:t,instructions:e.instructions,payer:n,recentBlockhash:s,signers:e.signers,lookupTableInfos:Object.values(i)}))}return l}function qn({makeTxVersion:e,instructions:t,payer:n,recentBlockhash:i,signers:o,lookupTableInfos:r}){if(e===On.LEGACY){const e=new A.Transaction;return e.add(...t),e.feePayer=n,e.recentBlockhash=i,o.length>0&&e.sign(...o),e}if(e===On.V0){const e=new A.TransactionMessage({payerKey:n,recentBlockhash:i,instructions:t}),a=new A.VersionedTransaction(e.compileToV0Message(r));return a.sign(o),a}throw Error(" make tx version check error ")}const Un=1e4;function Kn(e,t,n,i){if(void 0===t)return{amount:e,fee:void 0,expirationTime:void 0};const o=n.epoch<t.newerTransferFee.epoch?t.olderTransferFee:t.newerTransferFee,r=new y.default(o.maximumFee.toString()),a=n.epoch<t.newerTransferFee.epoch?400*(Number(t.newerTransferFee.epoch)*n.slotsInEpoch-n.absoluteSlot)/1e3:void 0;if(i){if(o.transferFeeBasisPoints===Un){const t=new y.default(o.maximumFee.toString());return{amount:e.add(t),fee:t,expirationTime:a}}{const t=Wn(e.mul(new y.default(Un)),new y.default(Un-o.transferFeeBasisPoints)),n=new y.default(o.maximumFee.toString()),i=t.sub(e).gt(n)?e.add(n):t,s=Wn(i.mul(new y.default(o.transferFeeBasisPoints)),new y.default(Un));return{amount:i,fee:s.gt(r)?r:s,expirationTime:a}}}{const t=Wn(e.mul(new y.default(o.transferFeeBasisPoints)),new y.default(Un));return{amount:e,fee:t.gt(r)?r:t,expirationTime:a}}}function xn(e,t){return void 0===e?t:void 0===t?e:Math.min(e,t)}async function Nn({connection:e,mints:t}){var n,i;if(0===t.length)return{};const o=await J(e,t.map((e=>({pubkey:e})))),r={};for(const e of o){const t=(0,f.unpackMint)(e.pubkey,e.accountInfo,null===(n=e.accountInfo)||void 0===n?void 0:n.owner);r[e.pubkey.toString()]=Object.assign(Object.assign({},t),{feeConfig:null!==(i=(0,f.getTransferFeeConfig)(t))&&void 0!==i?i:void 0})}return r}function Wn(e,t){const{div:n,mod:i}=e.divmod(t);return i.gt(ue)?n.add(me):n}const Fn={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])},Gn=kn([Jt("state"),Jt("nonce"),rn("lpVault"),rn("rewardVault"),rn(),rn(),Jt(),Jt(),Jt("totalReward"),$t("perShareReward"),Jt("lastSlot"),Jt("perSlotReward")]),Yn=kn([Jt("state"),Jt("nonce"),rn("lpVault"),rn("rewardVaultA"),Jt("totalRewardA"),$t("perShareRewardA"),Jt("perSlotRewardA"),Qt("option"),rn("rewardVaultB"),Ft(7),Jt("totalRewardB"),$t("perShareRewardB"),Jt("perSlotRewardB"),Jt("lastSlot"),rn()]),Xn=kn([Jt("rewardState"),Jt("rewardOpenTime"),Jt("rewardEndTime"),Jt("rewardLastUpdateTime"),Jt("totalReward"),Jt("totalRewardEmissioned"),Jt("rewardClaimed"),Jt("rewardPerSecond"),$t("accRewardPerShare"),rn("rewardVault"),rn("rewardMint"),rn("rewardSender"),Jt("rewardType"),In(Jt(),15,"padding")]),Hn=kn([Jt(),Jt("state"),Jt("nonce"),Jt("validRewardTokenNum"),$t("rewardMultiplier"),Jt("rewardPeriodMax"),Jt("rewardPeriodMin"),Jt("rewardPeriodExtend"),rn("lpMint"),rn("lpVault"),In(Xn,5,"rewardInfos"),rn("creator"),rn(),In(Jt(),32,"padding")]),zn=new Proxy(Gn,{get:(e,t,n)=>"decode"===t?(...t)=>{const n=e.decode(...t);return Object.assign(Object.assign({},n),{version:3,rewardInfos:[{rewardVault:n.rewardVault,totalReward:n.totalReward,perSlotReward:n.perSlotReward,perShareReward:n.perShareReward}]})}:Reflect.get(e,t,n)}),jn=new Proxy(Yn,{get:(e,t,n)=>"decode"===t?(...t)=>{const n=e.decode(...t);return Object.assign(Object.assign({},n),{version:5,rewardInfos:[{rewardVault:n.rewardVaultA,totalReward:n.totalRewardA,perSlotReward:n.perSlotRewardA,perShareReward:n.perShareRewardA},{rewardVault:n.rewardVaultB,totalReward:n.totalRewardB,perSlotReward:n.perSlotRewardB,perShareReward:n.perShareRewardB}]})}:Reflect.get(e,t,n)}),Qn=new Proxy(Hn,{get:(e,t,n)=>"decode"===t?(...t)=>{const n=e.decode(...t);return Object.assign(Object.assign({},n),{version:6,rewardInfos:n.rewardInfos.map((e=>{var t;return Object.assign(Object.assign({},e),{rewardType:(null!==(t=Object.entries(gi).find((t=>String(t[1])===e.rewardType.toString())))&&void 0!==t?t:["Standard SPL"])[0]})}))})}:Reflect.get(e,t,n)}),Zn=kn([Jt("state"),rn("id"),rn("owner"),Jt("deposited"),In(Jt(),1,"rewardDebts")]),Jn=kn([Jt("state"),rn("id"),rn("owner"),Jt("deposited"),In($t(),1,"rewardDebts"),Jt(""),Jt("voteLockedBalance"),In(Jt(),15)]),$n=kn([Jt("state"),rn("id"),rn("owner"),Jt("deposited"),In(Jt(),2,"rewardDebts")]),ei=kn([Jt("state"),rn("id"),rn("owner"),Jt("deposited"),In($t(),2,"rewardDebts"),In(Jt(),17)]),ti=kn([Jt(),Jt("state"),rn("id"),rn("owner"),Jt("deposited"),In($t(),5,"rewardDebts"),In(Jt(),16)]),ni={3:zn,5:jn,6:Qn},ii={3:Jn,5:ei,6:ti},oi=kn([rn("mint"),rn("grantAuthority"),Jt("baselineVoteWeightScaledFactor"),Jt("maxExtraLockupVoteWeightScaledFactor"),Jt("lockupSaturationSecs"),en("digitShift"),In(Qt(),7,"reserved1"),In(Jt(),7,"reserved2")]),ri=kn([Ft(8),rn("governanceProgramId"),rn("realm"),rn("realmGoverningTokenMint"),rn("realmAuthority"),In(Qt(),32,"reserved1"),In(oi,4,"votingMints"),tn("timeOffset"),Qt("bump"),In(Qt(),7,"reserved2"),In(Jt(),11,"reserved3")]),ai=kn([tn("startTime"),tn("endTime"),Qt("kind"),In(Qt(),15,"reserved")]),si=kn([In(ai,1,"lockup"),Jt("amountDeposited_native"),Jt("amountInitiallyLockedNative"),cn("isUsed"),cn("allowClawback"),Qt("votingMintConfigIdx"),In(Qt(),29,"reserved")]),ci=kn([Ft(8),rn("voterAuthority"),rn("registrar"),In(si,32,"deposits"),Qt("voterBump"),Qt("voterWweightRecordBump"),In(Qt(),94,"reserved")]);function ui(e,t,n){return q([t.toBuffer(),Buffer.from("registrar","utf8"),n.toBuffer()],e)}function mi(e,t){return q([t.toBuffer(),Buffer.from("voting_mint_seed","utf8")],e)}function di(e,t){return q([t.toBuffer()],e)}function li(e,t,n){return q([t.toBuffer(),Buffer.from("voter","utf8"),n.toBuffer()],e)}function pi(e,t,n){return q([t.toBuffer(),Buffer.from("voter-weight-record","utf8"),n.toBuffer()],e)}function fi(e,t,n,i){return q([Buffer.from("governance","utf8"),t.toBuffer(),n.toBuffer(),i.toBuffer()],e)}const Ai=v.from("Farm"),gi={"Standard SPL":0,"Option tokens":1};class yi extends Dn{static getStateLayout(e){const t=ni[e];return Ai.assertArgument(!!t,"invalid version","version",e),t}static getLedgerLayout(e){const t=ii[e];return Ai.assertArgument(!!t,"invalid version","version",e),t}static getLayouts(e){return{state:this.getStateLayout(e),ledger:this.getLedgerLayout(e)}}static getAssociatedAuthority({programId:e,poolId:t}){return q([t.toBuffer()],e)}static getAssociatedLedgerAccount({programId:e,poolId:t,owner:n,version:i}){const{publicKey:o}=q([t.toBuffer(),n.toBuffer(),Buffer.from(6===i?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],e);return o}static getAssociatedLedgerPoolAccount({programId:e,poolId:t,mint:n,type:i}){const{publicKey:o}=q([t.toBuffer(),n.toBuffer(),Buffer.from("lpVault"===i?"lp_vault_associated_seed":"rewardVault"===i?"reward_vault_associated_seed":"","utf-8")],e);return o}static makeDepositInstruction(e){const{poolKeys:t}=e,{version:n}=t;return 3===n?this.makeDepositInstructionV3(e):5===n?this.makeDepositInstructionV5(e):6===n?this.makeDepositInstructionV6(e):Ai.throwArgumentError("invalid version","poolKeys.version",n)}static makeDepositInstructionV3({poolKeys:e,userKeys:t,amount:n}){Ai.assertArgument(1===e.rewardInfos.length,"lengths not equal 1","poolKeys.rewardInfos",e.rewardInfos),Ai.assertArgument(1===t.rewardTokenAccounts.length,"lengths not equal 1","userKeys.rewardTokenAccounts",t.rewardTokenAccounts);const i=kn([Qt("instruction"),Jt("amount")]),o=Buffer.alloc(i.span);i.encode({instruction:10,amount:be(n)},o);const r=[U(e.id,!1),K(e.authority,!1),U(t.ledger,!1),K(t.owner,!0),U(t.lpTokenAccount,!1),U(e.lpVault,!1),U(t.rewardTokenAccounts[0],!1),U(e.rewardInfos[0].rewardVault,!1),K(A.SYSVAR_CLOCK_PUBKEY,!1),K(f.TOKEN_PROGRAM_ID,!1)];if(t.auxiliaryLedgers)for(const e of t.auxiliaryLedgers)r.push(U(e,!1));return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:r,data:o})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV3Deposit]}}}static makeDepositInstructionV5({poolKeys:e,userKeys:t,amount:n}){Ai.assertArgument(t.rewardTokenAccounts.length===e.rewardInfos.length,"lengths not equal with poolKeys.rewardInfos","userKeys.rewardTokenAccounts",t.rewardTokenAccounts);const i=kn([Qt("instruction"),Jt("amount")]),o=Buffer.alloc(i.span);i.encode({instruction:11,amount:be(n)},o);const r=[U(e.id,!1),K(e.authority,!1),U(t.ledger,!1),K(t.owner,!0),U(t.lpTokenAccount,!1),U(e.lpVault,!1),U(t.rewardTokenAccounts[0],!1),U(e.rewardInfos[0].rewardVault,!1),K(A.SYSVAR_CLOCK_PUBKEY,!1),K(f.TOKEN_PROGRAM_ID,!1)];for(let n=1;n<e.rewardInfos.length;n++)r.push(U(t.rewardTokenAccounts[n],!1)),r.push(U(e.rewardInfos[n].rewardVault,!1));if(t.auxiliaryLedgers)for(const e of t.auxiliaryLedgers)r.push(U(e,!1));return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:r,data:o})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV5Deposit]}}}static makeDepositInstructionV6({poolKeys:e,userKeys:t,amount:n}){Ai.assertArgument(0!==t.rewardTokenAccounts.length,"lengths equal zero","userKeys.rewardTokenAccounts",t.rewardTokenAccounts),Ai.assertArgument(t.rewardTokenAccounts.length===e.rewardInfos.length,"lengths not equal with poolKeys.rewardInfos","userKeys.rewardTokenAccounts",t.rewardTokenAccounts);const i=kn([Qt("instruction"),Jt("amount")]),o=Buffer.alloc(i.span);i.encode({instruction:1,amount:be(n)},o);const r=[K(f.TOKEN_PROGRAM_ID,!1),K(L,!1),U(e.id,!1),K(e.authority,!1),U(e.lpVault,!1),U(t.ledger,!1),K(t.owner,!0),U(t.lpTokenAccount,!1)];for(let n=0;n<e.rewardInfos.length;n++)r.push(U(e.rewardInfos[n].rewardVault,!1)),r.push(U(t.rewardTokenAccounts[n],!1));return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:r,data:o})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV6Deposit]}}}static makeWithdrawInstruction(e){const{poolKeys:t}=e,{version:n}=t;return 3===n?this.makeWithdrawInstructionV3(e):5===n?this.makeWithdrawInstructionV5(e):6===n?this.makeWithdrawInstructionV6(e):Ai.throwArgumentError("invalid version","poolKeys.version",n)}static makeWithdrawInstructionV3({poolKeys:e,userKeys:t,amount:n}){Ai.assertArgument(1===e.rewardInfos.length,"lengths not equal 1","poolKeys.rewardInfos",e.rewardInfos),Ai.assertArgument(1===t.rewardTokenAccounts.length,"lengths not equal 1","userKeys.rewardTokenAccounts",t.rewardTokenAccounts);const i=kn([Qt("instruction"),Jt("amount")]),o=Buffer.alloc(i.span);i.encode({instruction:11,amount:be(n)},o);const r=[U(e.id,!1),K(e.authority,!1),U(t.ledger,!1),K(t.owner,!0),U(t.lpTokenAccount,!1),U(e.lpVault,!1),U(t.rewardTokenAccounts[0],!1),U(e.rewardInfos[0].rewardVault,!1),K(A.SYSVAR_CLOCK_PUBKEY,!1),K(f.TOKEN_PROGRAM_ID,!1)];if(t.auxiliaryLedgers)for(const e of t.auxiliaryLedgers)r.push(U(e,!1));return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:r,data:o})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV5Deposit]}}}static makeWithdrawInstructionV5({poolKeys:e,userKeys:t,amount:n}){Ai.assertArgument(t.rewardTokenAccounts.length===e.rewardInfos.length,"lengths not equal with params.poolKeys.rewardInfos","userKeys.rewardTokenAccounts",t.rewardTokenAccounts);const i=kn([Qt("instruction"),Jt("amount")]),o=Buffer.alloc(i.span);i.encode({instruction:12,amount:be(n)},o);const r=[U(e.id,!1),K(e.authority,!1),U(t.ledger,!1),K(t.owner,!0),U(t.lpTokenAccount,!1),U(e.lpVault,!1),U(t.rewardTokenAccounts[0],!1),U(e.rewardInfos[0].rewardVault,!1),K(A.SYSVAR_CLOCK_PUBKEY,!1),K(f.TOKEN_PROGRAM_ID,!1)];for(let n=1;n<e.rewardInfos.length;n++)r.push(U(t.rewardTokenAccounts[n],!1)),r.push(U(e.rewardInfos[n].rewardVault,!1));if(t.auxiliaryLedgers)for(const e of t.auxiliaryLedgers)r.push(U(e,!1));return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:r,data:o})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV5Withdraw]}}}static makeWithdrawInstructionV6({poolKeys:e,userKeys:t,amount:n}){Ai.assertArgument(0!==t.rewardTokenAccounts.length,"lengths equal zero","userKeys.rewardTokenAccounts",t.rewardTokenAccounts),Ai.assertArgument(t.rewardTokenAccounts.length===e.rewardInfos.length,"lengths not equal with params.poolKeys.rewardInfos","userKeys.rewardTokenAccounts",t.rewardTokenAccounts);const i=kn([Qt("instruction"),Jt("amount")]),o=Buffer.alloc(i.span);i.encode({instruction:2,amount:be(n)},o);const r=[K(f.TOKEN_PROGRAM_ID,!1),U(e.id,!1),K(e.authority,!1),U(e.lpVault,!1),U(t.ledger,!1),K(t.owner,!0),U(t.lpTokenAccount,!1)];for(let n=0;n<e.rewardInfos.length;n++)r.push(U(e.rewardInfos[n].rewardVault,!1)),r.push(U(t.rewardTokenAccounts[n],!1));return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:r,data:o})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV6Withdraw]}}}static makeCreateAssociatedLedgerAccountInstruction(e){const{poolKeys:t}=e,{version:n}=t;return 3===n?this.makeCreateAssociatedLedgerAccountInstructionV3(e):5===n?this.makeCreateAssociatedLedgerAccountInstructionV5(e):Ai.throwArgumentError("invalid version","poolKeys.version",n)}static makeCreateAssociatedLedgerAccountInstructionV3({poolKeys:e,userKeys:t}){const n=kn([Qt("instruction")]),i=Buffer.alloc(n.span);n.encode({instruction:9},i);const o=[U(e.id,!1),U(t.ledger,!1),K(t.owner,!0),K(L,!1),K(A.SYSVAR_RENT_PUBKEY,!1)];return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:o,data:i})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV3CreateLedger]}}}static makeCreateAssociatedLedgerAccountInstructionV5({poolKeys:e,userKeys:t}){const n=kn([Qt("instruction")]),i=Buffer.alloc(n.span);n.encode({instruction:10},i);const o=[U(e.id,!1),U(t.ledger,!1),K(t.owner,!0),K(L,!1),K(A.SYSVAR_RENT_PUBKEY,!1)];return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:o,data:i})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV5CreateLedger]}}}static makeCreateFarmInstruction({connection:e,userKeys:t,poolInfo:n}){const{version:i}=n;return 6===i?this.makeCreateFarmInstructionV6({connection:e,userKeys:t,poolInfo:n}):Ai.throwArgumentError("invalid version","version",i)}static async makeCreateFarmInstructionV6({connection:e,userKeys:t,poolInfo:n}){var i,o,r;const a=null!==(i=t.payer)&&void 0!==i?i:t.owner,s=Ln({fromPublicKey:a,programId:n.programId}),c=await e.getMinimumBalanceForRentExemption(Qn.span),u=[],m=[],d=[],l=[],p=[];u.push(A.SystemProgram.createAccountWithSeed({fromPubkey:a,basePubkey:a,seed:s.seed,newAccountPubkey:s.publicKey,lamports:c,space:Qn.span,programId:n.programId}));const{publicKey:g,nonce:k}=yi.getAssociatedAuthority({programId:n.programId,poolId:s.publicKey}),w=yi.getAssociatedLedgerPoolAccount({programId:n.programId,poolId:s.publicKey,mint:n.lpMint,type:"lpVault"}),b=[],S=[];for(const i of n.rewardInfos){let a;Ai.assertArgument(i.rewardOpenTime<i.rewardEndTime,"start time error","rewardInfo.rewardOpenTime",i.rewardOpenTime),Ai.assertArgument(void 0!==gi[i.rewardType],"reward type error","rewardInfo.rewardType",i.rewardType),Ai.assertArgument(be(i.rewardPerSecond).gt(ue),"rewardPerSecond error","rewardInfo.rewardPerSecond",i.rewardPerSecond),b.push({isSet:new y.default(1),rewardPerSecond:be(i.rewardPerSecond),rewardOpenTime:be(i.rewardOpenTime),rewardEndTime:be(i.rewardEndTime),rewardType:be(gi[i.rewardType])}),i.rewardMint.equals(A.PublicKey.default)?(a=await Rn.insertCreateWrappedNativeAccount({connection:e,owner:t.owner,payer:null!==(o=t.payer)&&void 0!==o?o:t.owner,instructions:u,signers:p,amount:be(i.rewardEndTime).sub(be(i.rewardOpenTime)).mul(be(i.rewardPerSecond)),instructionsType:d}),m.push(Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:a,owner:t.owner,payer:null!==(r=t.payer)&&void 0!==r?r:t.owner,instructionsType:l}))):a=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:t.tokenAccounts,mint:i.rewardMint,owner:t.owner,config:{associatedOnly:!1}}),Ai.assertArgument(null!==a,"cannot found target token accounts","tokenAccounts",t.tokenAccounts);const c=i.rewardMint.equals(A.PublicKey.default)?Ve.WSOL.mint:i.rewardMint;S.push({rewardMint:c,rewardVault:yi.getAssociatedLedgerPoolAccount({programId:n.programId,poolId:s.publicKey,mint:c,type:"rewardVault"}),userRewardToken:a})}const T=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:t.tokenAccounts,mint:n.lockInfo.lockMint,owner:t.owner,config:{associatedOnly:!1}});Ai.assertArgument(null!==T,"cannot found lock vault","tokenAccounts",t.tokenAccounts);const I=kn([Jt("isSet"),Jt("rewardPerSecond"),Jt("rewardOpenTime"),Jt("rewardEndTime"),Jt("rewardType")]),h=kn([Qt("instruction"),Jt("nonce"),In(I,5,"rewardTimeInfo")]),P=Buffer.alloc(h.span);h.encode({instruction:0,nonce:new y.default(k),rewardTimeInfo:b},P);const C=[K(f.TOKEN_PROGRAM_ID,!1),K(L,!1),K(A.SYSVAR_RENT_PUBKEY,!1),U(s.publicKey,!1),K(g,!1),U(w,!1),K(n.lpMint,!1),U(n.lockInfo.lockVault,!1),K(n.lockInfo.lockMint,!1),U(null!=T?T:A.PublicKey.default,!1),K(t.owner,!0)];for(const e of S)C.push({pubkey:e.rewardMint,isSigner:!1,isWritable:!1},{pubkey:e.rewardVault,isSigner:!1,isWritable:!0},{pubkey:e.userRewardToken,isSigner:!1,isWritable:!0});const R=new A.TransactionInstruction({programId:n.programId,keys:C,data:P});return{address:{farmId:s.publicKey},innerTransaction:{instructions:[...u,R,...m],signers:p,lookupTableAddress:[],instructionTypes:[...d,vn.farmV6Create,...l]}}}static makeCreatorWithdrawFarmRewardInstruction(e){const{poolKeys:t}=e,{version:n}=t;return 6===n?this.makeCreatorWithdrawFarmRewardInstructionV6(e):Ai.throwArgumentError("invalid version","version",n)}static makeCreatorWithdrawFarmRewardInstructionV6({poolKeys:e,userKeys:t,withdrawMint:n}){var i;const o=e.rewardInfos.find((e=>e.rewardMint.equals(n.equals(A.PublicKey.default)?Ve.WSOL.mint:n)));Ai.assertArgument(void 0!==o,"withdraw mint error","poolKeys.rewardInfos",e.rewardInfos);const r=null!==(i=null==o?void 0:o.rewardVault)&&void 0!==i?i:A.PublicKey.default,a=kn([Qt("instruction")]),s=Buffer.alloc(a.span);a.encode({instruction:5},s);const c=[K(f.TOKEN_PROGRAM_ID,!1),U(e.id,!1),K(e.authority,!1),K(e.lpVault,!1),U(r,!1),U(t.userRewardToken,!1),K(t.owner,!0)];return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:c,data:s})],signers:[],lookupTableAddress:[],instructionTypes:[vn.farmV6CreatorWithdraw]}}}static async fetchMultipleInfoAndUpdate({connection:e,pools:t,owner:n,config:i,chainTime:o}){let r=!1,a=!1;const s=[],c={};for(const e of t)c[e.id.toString()]=e,6===e.version?a=!0:r=!0,s.push({pubkey:e.id,version:e.version,key:"state",poolId:e.id}),s.push({pubkey:e.lpVault,version:e.version,key:"lpVault",poolId:e.id}),n&&s.push({pubkey:this.getAssociatedLedgerAccount({programId:e.programId,poolId:e.id,owner:n,version:e.version}),version:e.version,key:"ledger",poolId:e.id});const u={},m=await J(e,s,i);for(const{pubkey:e,version:t,key:n,poolId:i,accountInfo:o}of m){const r=i.toBase58();if("state"===n){const n=this.getStateLayout(t);if(!o||!o.data||o.data.length!==n.span)return Ai.throwArgumentError("invalid farm state account info","pools.id",e);u[r]=Object.assign(Object.assign(Object.assign({},u[r]),{apiPoolInfo:c[r]}),{state:n.decode(o.data)})}else if("lpVault"===n){if(!o||!o.data||o.data.length!==Pn.span)return Ai.throwArgumentError("invalid farm lp vault account info","pools.lpVault",e);u[r]=Object.assign(Object.assign({},u[r]),{lpVault:Pn.decode(o.data)})}else if("ledger"===n){const n=this.getLedgerLayout(t);o&&o.data&&(Ai.assertArgument(o.data.length===n.span,"invalid farm ledger account info","ledger",e),u[r]=Object.assign(Object.assign({},u[r]),{ledger:n.decode(o.data)}))}}const d=a||r?await e.getSlot():0;for(const e of Object.keys(u))void 0!==u[e]&&(u[e].state=yi.updatePoolInfo(u[e].state,u[e].lpVault,d,o));for(const[e,{state:t,ledger:n}]of Object.entries(u))if(n){let i;i=6===t.version?t.rewardMultiplier:1===t.rewardInfos.length?fe.pow(new y.default(9)):fe.pow(new y.default(15));const o=t.rewardInfos.map(((e,o)=>{const r=n.rewardDebts[o];return n.deposited.mul(6===t.version?e.accRewardPerShare:e.perShareReward).div(i).sub(r)}));u[e].wrapped=Object.assign(Object.assign({},u[e].wrapped),{pendingRewards:o})}return u}static updatePoolInfo(e,t,n,i){if(3===e.version||5===e.version){if(e.lastSlot.gte(new y.default(n)))return e;const i=new y.default(n).sub(e.lastSlot);e.lastSlot=new y.default(n);for(const n of e.rewardInfos){if(t.amount.eq(new y.default(0)))continue;const o=n.perSlotReward.mul(i);n.perShareReward=n.perShareReward.add(o.mul(new y.default(10).pow(new y.default(3===e.version?9:15))).div(t.amount)),n.totalReward=n.totalReward.add(o)}}else if(6===e.version)for(const n of e.rewardInfos){if(n.rewardState.eq(new y.default(0)))continue;const o=y.default.min(new y.default(i),n.rewardEndTime);if(n.rewardOpenTime.gte(o))continue;let r=o.sub(n.rewardLastUpdateTime).mul(n.rewardPerSecond);const a=n.totalReward.sub(n.totalRewardEmissioned);a.lt(r)?(r=a,n.rewardLastUpdateTime=n.rewardLastUpdateTime.add(a.div(n.rewardPerSecond))):n.rewardLastUpdateTime=o,t.amount.eq(new y.default(0))||(n.accRewardPerShare=n.accRewardPerShare.add(r.mul(e.rewardMultiplier).div(t.amount)),n.totalRewardEmissioned=n.totalRewardEmissioned.add(r))}return e}static makeCreatorWithdrawFarmRewardInstructionSimple(e){const{poolKeys:t}=e,{version:n}=t;return 6===n?this.makeCreatorWithdrawFarmRewardInstructionV6Simple(e):Ai.throwArgumentError("invalid version","version",n)}static async makeCreatorWithdrawFarmRewardInstructionV6Simple({connection:e,poolKeys:t,userKeys:n,withdrawMint:i,makeTxVersion:o,lookupTableCache:r,computeBudgetConfig:a}){var s,c,u,m;const d=[],l=[],p=[],g=[],y=[];let k;if(i.equals(A.PublicKey.default))k=await Rn.insertCreateWrappedNativeAccount({connection:e,owner:n.owner,payer:null!==(s=n.payer)&&void 0!==s?s:n.owner,instructions:d,signers:y,amount:0,instructionsType:p}),l.push(Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:k,owner:n.owner,payer:null!==(c=n.payer)&&void 0!==c?c:n.owner,instructionsType:g}));else{const e=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:n.tokenAccounts,mint:i,owner:n.owner});null===e?(k=Cn(n.owner,i,f.TOKEN_PROGRAM_ID).publicKey,d.push(Rn.makeCreateAssociatedTokenAccountInstruction({programId:f.TOKEN_PROGRAM_ID,mint:i,associatedAccount:k,owner:n.owner,payer:null!==(u=n.payer)&&void 0!==u?u:n.owner,instructionsType:p}))):k=e}const w=this.makeCreatorWithdrawFarmRewardInstructionV6({poolKeys:t,userKeys:{userRewardToken:k,owner:n.owner,payer:n.payer},withdrawMint:i});return{address:{},innerTransactions:await oe({connection:e,makeTxVersion:o,computeBudgetConfig:a,payer:null!==(m=n.payer)&&void 0!==m?m:n.owner,innerTransaction:[{instructionTypes:p,instructions:d,signers:y},w.innerTransaction,{instructionTypes:g,instructions:l,signers:[]}],lookupTableCache:r})}}static makeCreateFarmInstructionSimple(e){const{version:t}=e.poolInfo;return 6===t?this.makeCreateFarmInstructionV6Simple(e):Ai.throwArgumentError("invalid version","version",t)}static async makeCreateFarmInstructionV6Simple({connection:e,userKeys:t,poolInfo:n,makeTxVersion:i,lookupTableCache:o,computeBudgetConfig:r}){var a,s,c,u;const m=null!==(a=t.payer)&&void 0!==a?a:t.owner,d=Ln({fromPublicKey:m,programId:n.programId}),l=await e.getMinimumBalanceForRentExemption(Qn.span),p=[],g=[],k=[],w=[],b=[];p.push(A.SystemProgram.createAccountWithSeed({fromPubkey:m,basePubkey:m,seed:d.seed,newAccountPubkey:d.publicKey,lamports:l,space:Qn.span,programId:n.programId}));const{publicKey:S,nonce:T}=yi.getAssociatedAuthority({programId:n.programId,poolId:d.publicKey}),I=yi.getAssociatedLedgerPoolAccount({programId:n.programId,poolId:d.publicKey,mint:n.lpMint,type:"lpVault"}),h=[],P=[];for(const i of n.rewardInfos){let o;if(Ai.assertArgument(i.rewardOpenTime<i.rewardEndTime,"start time error","rewardInfo.rewardOpenTime",i.rewardOpenTime),Ai.assertArgument(void 0!==gi[i.rewardType],"reward type error","rewardInfo.rewardType",i.rewardType),Ai.assertArgument(be(i.rewardPerSecond).gt(ue),"rewardPerSecond error","rewardInfo.rewardPerSecond",i.rewardPerSecond),h.push({isSet:new y.default(1),rewardPerSecond:be(i.rewardPerSecond),rewardOpenTime:be(i.rewardOpenTime),rewardEndTime:be(i.rewardEndTime),rewardType:be(gi[i.rewardType])}),i.rewardMint.equals(A.PublicKey.default)?(o=await Rn.insertCreateWrappedNativeAccount({connection:e,owner:t.owner,payer:null!==(s=t.payer)&&void 0!==s?s:t.owner,instructions:p,signers:b,amount:be(i.rewardEndTime).sub(be(i.rewardOpenTime)).mul(be(i.rewardPerSecond)),instructionsType:k}),g.push(Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:o,owner:t.owner,payer:null!==(c=t.payer)&&void 0!==c?c:t.owner,instructionsType:w}))):o=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:t.tokenAccounts,mint:i.rewardMint,owner:t.owner,config:{associatedOnly:!1}}),Ai.assertArgument(null!==o,"cannot found target token accounts","tokenAccounts",t.tokenAccounts),null===o)throw Error("cannot found target token accounts");const r=i.rewardMint.equals(A.PublicKey.default)?Ve.WSOL.mint:i.rewardMint;P.push({rewardMint:r,rewardVault:yi.getAssociatedLedgerPoolAccount({programId:n.programId,poolId:d.publicKey,mint:r,type:"rewardVault"}),userRewardToken:o})}const C=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:t.tokenAccounts,mint:n.lockInfo.lockMint,owner:t.owner,config:{associatedOnly:!1}});Ai.assertArgument(null!==C,"cannot found lock vault","tokenAccounts",t.tokenAccounts);const R=kn([Jt("isSet"),Jt("rewardPerSecond"),Jt("rewardOpenTime"),Jt("rewardEndTime"),Jt("rewardType")]),O=kn([Qt("instruction"),Jt("nonce"),In(R,5,"rewardTimeInfo")]),v=Buffer.alloc(O.span);O.encode({instruction:0,nonce:new y.default(T),rewardTimeInfo:h},v);const D=[K(f.TOKEN_PROGRAM_ID,!1),K(L,!1),K(A.SYSVAR_RENT_PUBKEY,!1),U(d.publicKey,!1),K(S,!1),U(I,!1),K(n.lpMint,!1),U(n.lockInfo.lockVault,!1),K(n.lockInfo.lockMint,!1),U(null!=C?C:A.PublicKey.default,!1),K(t.owner,!0)];for(const e of P)D.push({pubkey:e.rewardMint,isSigner:!1,isWritable:!1},{pubkey:e.rewardVault,isSigner:!1,isWritable:!0},{pubkey:e.userRewardToken,isSigner:!1,isWritable:!0});const E=new A.TransactionInstruction({programId:n.programId,keys:D,data:v});return{address:{farmId:d.publicKey},innerTransactions:await oe({connection:e,makeTxVersion:i,computeBudgetConfig:r,payer:null!==(u=t.payer)&&void 0!==u?u:t.owner,innerTransaction:[{instructionTypes:k,instructions:p,signers:b},{instructionTypes:[vn.farmV6Create],instructions:[E],signers:[]},{instructionTypes:w,instructions:g,signers:[]}],lookupTableCache:o})}}static makeRestartFarmInstructionSimple(e){const{poolKeys:t}=e,{version:n}=t;return 6===n?this.makeRestartFarmInstructionV6Simple(e):Ai.throwArgumentError("invalid version","version",n)}static async makeRestartFarmInstructionV6Simple({connection:e,poolKeys:t,userKeys:n,newRewardInfo:i,makeTxVersion:o,lookupTableCache:r,computeBudgetConfig:a}){var s,c,u,m;Ai.assertArgument(i.rewardOpenTime<i.rewardEndTime,"start time error","newRewardInfo",i);const d=i.rewardMint.equals(A.PublicKey.default)?Ve.WSOL.mint:i.rewardMint,l=t.rewardInfos.find((e=>e.rewardMint.equals(d)));Ai.assertArgument(l,"configuration does not exist","rewardInfo",l);const p=null!==(s=null==l?void 0:l.rewardVault)&&void 0!==s?s:A.PublicKey.default,g=[],y=[],k=[],w=[],b=[];let S;if(i.rewardMint.equals(A.PublicKey.default)?(S=await Rn.insertCreateWrappedNativeAccount({connection:e,owner:n.owner,payer:null!==(c=n.payer)&&void 0!==c?c:n.owner,instructions:g,signers:b,amount:be(i.rewardEndTime).sub(be(i.rewardOpenTime)).mul(be(i.rewardPerSecond)),instructionsType:k}),y.push(Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:S,owner:n.owner,payer:null!==(u=n.payer)&&void 0!==u?u:n.owner,instructionsType:w}))):S=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:n.tokenAccounts,mint:i.rewardMint,owner:n.owner,config:{associatedOnly:!1}}),Ai.assertArgument(null!==S,"cannot found target token accounts","tokenAccounts",n.tokenAccounts),null===S)throw Error("cannot found target token accounts");const T=kn([Qt("instruction"),Jt("rewardReopenTime"),Jt("rewardEndTime"),Jt("rewardPerSecond")]),I=Buffer.alloc(T.span);T.encode({instruction:3,rewardReopenTime:be(i.rewardOpenTime),rewardEndTime:be(i.rewardEndTime),rewardPerSecond:be(i.rewardPerSecond)},I);const h=[K(f.TOKEN_PROGRAM_ID,!1),U(t.id,!1),K(t.lpVault,!1),U(p,!1),U(S,!1),K(n.owner,!0)],P=new A.TransactionInstruction({programId:t.programId,keys:h,data:I});return{address:{},innerTransactions:await oe({connection:e,makeTxVersion:o,computeBudgetConfig:a,payer:null!==(m=n.payer)&&void 0!==m?m:n.owner,innerTransaction:[{instructionTypes:k,instructions:g,signers:b},{instructionTypes:[vn.farmV6Restart],instructions:[P],signers:[]},{instructionTypes:w,instructions:y,signers:[]}],lookupTableCache:r})}}static makeFarmCreatorAddRewardTokenInstructionSimple(e){const{poolKeys:t}=e,{version:n}=t;return 6===n?this.makeFarmCreatorAddRewardTokenInstructionV6Simple(e):Ai.throwArgumentError("invalid version","version",n)}static async makeFarmCreatorAddRewardTokenInstructionV6Simple({connection:e,poolKeys:t,userKeys:n,newRewardInfo:i,makeTxVersion:o,lookupTableCache:r,computeBudgetConfig:a}){var s,c,u;const m=yi.getAssociatedLedgerPoolAccount({programId:t.programId,poolId:t.id,mint:i.rewardMint.equals(A.PublicKey.default)?Ve.WSOL.mint:i.rewardMint,type:"rewardVault"}),d=[],l=[],p=[],g=[],k=[];let w;if(i.rewardMint.equals(A.PublicKey.default)?(w=await Rn.insertCreateWrappedNativeAccount({connection:e,owner:n.owner,payer:null!==(s=n.payer)&&void 0!==s?s:n.owner,instructions:d,signers:k,amount:be(i.rewardEndTime).sub(be(i.rewardOpenTime)).mul(be(i.rewardPerSecond)),instructionsType:p}),l.push(Rn.makeCloseAccountInstruction({programId:f.TOKEN_PROGRAM_ID,tokenAccount:w,owner:n.owner,payer:null!==(c=n.payer)&&void 0!==c?c:n.owner,instructionsType:g}))):w=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:n.tokenAccounts,mint:i.rewardMint,owner:n.owner,config:{associatedOnly:!1}}),Ai.assertArgument(null!==w,"cannot found target token accounts","tokenAccounts",n.tokenAccounts),null===w)throw Error("cannot found target token accounts");const b=i.rewardMint.equals(A.PublicKey.default)?Ve.WSOL.mint:i.rewardMint,S=kn([Qt("instruction"),Jt("isSet"),Jt("rewardPerSecond"),Jt("rewardOpenTime"),Jt("rewardEndTime"),Jt("rewardType")]),T=Buffer.alloc(S.span);S.encode({instruction:4,isSet:new y.default(1),rewardPerSecond:be(i.rewardPerSecond),rewardOpenTime:be(i.rewardOpenTime),rewardEndTime:be(i.rewardEndTime),rewardType:be(gi[i.rewardType])},T);const I=[K(f.TOKEN_PROGRAM_ID,!1),K(L,!1),K(A.SYSVAR_RENT_PUBKEY,!1),U(t.id,!1),K(t.authority,!1),K(b,!1),U(m,!1),U(w,!1),K(n.owner,!0)],h=new A.TransactionInstruction({programId:t.programId,keys:I,data:T});return{address:{},innerTransactions:await oe({connection:e,makeTxVersion:o,computeBudgetConfig:a,payer:null!==(u=n.payer)&&void 0!==u?u:n.owner,innerTransaction:[{instructionTypes:p,instructions:d,signers:k},{instructionTypes:[vn.farmV6CreatorAddReward],instructions:[h],signers:[]},{instructionTypes:g,instructions:l,signers:[]}],lookupTableCache:r})}}static async makeDepositInstructionSimple({connection:e,poolKeys:t,fetchPoolInfo:n,ownerInfo:i,amount:o,associatedOnly:r=!0,checkCreateATAOwner:a=!1,makeTxVersion:s,lookupTableCache:c,computeBudgetConfig:u}){var m;const d={};for(const e of i.tokenAccounts)r?Cn(i.wallet,e.accountInfo.mint,e.programId).publicKey.equals(e.pubkey)&&(d[e.accountInfo.mint.toString()]=e.pubkey):d[e.accountInfo.mint.toString()]=e.pubkey;const l=[],p=[],g=[],y=[],k=[],{lpVault:w,apiPoolInfo:b,ledger:S}=n,T=d[w.mint.toString()];Ai.assertArgument(T,"you don't have any lp","lp zero",d);const I=[];for(const t of b.rewardInfos){const n=i.useSOLBalance&&t.rewardMint.equals(Ve.WSOL.mint),o=null!==(m=d[t.rewardMint.toString()])&&void 0!==m?m:await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:t.rewardMint,tokenAccounts:n?[]:i.tokenAccounts,owner:i.wallet,createInfo:{connection:e,payer:i.feePayer,amount:0,frontInstructions:l,frontInstructionsType:g,endInstructions:n?p:[],endInstructionsType:n?y:[],signers:k},associatedOnly:!n&&r,checkCreateATAOwner:a});d[t.rewardMint.toString()]=o,I.push(o)}const h=await yi.getAssociatedLedgerAccount({programId:new A.PublicKey(b.programId),poolId:new A.PublicKey(b.id),owner:i.wallet,version:b.version});if(b.version<6&&!S){const e=yi.makeCreateAssociatedLedgerAccountInstruction({poolKeys:t,userKeys:{owner:i.wallet,ledger:h}});l.push(...e.innerTransaction.instructions),g.push(...e.innerTransaction.instructionTypes)}const P=yi.makeDepositInstruction({poolKeys:t,userKeys:{ledger:h,lpTokenAccount:T,owner:i.wallet,rewardTokenAccounts:I},amount:o});return{address:P.address,innerTransactions:await oe({connection:e,makeTxVersion:s,computeBudgetConfig:u,payer:i.feePayer,innerTransaction:[{instructionTypes:g,instructions:l,signers:k},P.innerTransaction,{instructionTypes:y,instructions:p,signers:[]}],lookupTableCache:c})}}static async makeWithdrawInstructionSimple({connection:e,fetchPoolInfo:t,ownerInfo:n,amount:i,associatedOnly:o=!0,checkCreateATAOwner:r=!1,makeTxVersion:a,lookupTableCache:s,computeBudgetConfig:c}){var u,m;const d={};for(const e of n.tokenAccounts)o?Cn(n.wallet,e.accountInfo.mint,e.programId).publicKey.equals(e.pubkey)&&(d[e.accountInfo.mint.toString()]=e.pubkey):d[e.accountInfo.mint.toString()]=e.pubkey;const l=[],p=[],A=[],g=[],y=[],k=[],w=[],{lpVault:b,wrapped:S,apiPoolInfo:T}=t;if(void 0===S)throw Error("no lp");const I=b.mint,h=n.useSOLBalance&&I.equals(Ve.WSOL.mint),P=null!==(u=d[I.toString()])&&void 0!==u?u:await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:I,tokenAccounts:h?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:l,frontInstructionsType:A,signers:w},associatedOnly:!h&&o,checkCreateATAOwner:r});d[I.toString()]=P;const C=[];for(const t of T.rewardInfos){const i=n.useSOLBalance&&t.rewardMint.equals(Ve.WSOL.mint),a=null!==(m=d[t.rewardMint.toString()])&&void 0!==m?m:await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:t.rewardMint,tokenAccounts:i?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:l,frontInstructionsType:A,endInstructions:i?p:[],endInstructionsType:i?g:[],signers:w},associatedOnly:!i&&o,checkCreateATAOwner:r});d[t.rewardMint.toString()]=a,C.push(a)}const R=this.makeWithdrawInstruction({poolKeys:T,userKeys:{ledger:this.getAssociatedLedgerAccount({programId:T.programId,poolId:T.id,owner:n.wallet,version:T.version}),lpTokenAccount:P,rewardTokenAccounts:C,owner:n.wallet},amount:i});return y.push(...R.innerTransaction.instructions),k.push(...R.innerTransaction.instructionTypes),{address:{},innerTransactions:await oe({connection:e,makeTxVersion:a,computeBudgetConfig:c,payer:n.feePayer,innerTransaction:[{instructionTypes:A,instructions:l,signers:w},{instructionTypes:k,instructions:y,signers:[]},{instructionTypes:g,instructions:p,signers:[]}],lookupTableCache:s})}}static async makeHarvestAllRewardInstructionSimple({connection:e,fetchPoolInfos:t,ownerInfo:n,associatedOnly:i=!0,checkCreateATAOwner:o=!1,makeTxVersion:r,lookupTableCache:a,computeBudgetConfig:s}){var c,u;const m={};for(const e of n.tokenAccounts)i?Cn(n.wallet,e.accountInfo.mint,e.programId).publicKey.equals(e.pubkey)&&(m[e.accountInfo.mint.toString()]=e.pubkey):m[e.accountInfo.mint.toString()]=e.pubkey;const d=[],l=[],p=[],A=[],g=[],y=[];for(const{lpVault:r,wrapped:a,apiPoolInfo:s,ledger:k}of Object.values(t)){if(void 0===a||void 0===k||void 0===a.pendingRewards.find((e=>e.gt(ue)))&&!k.deposited.isZero())continue;const t=r.mint,w=n.useSOLBalance&&t.equals(Ve.WSOL.mint),b=null!==(c=m[t.toString()])&&void 0!==c?c:await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:t,tokenAccounts:w?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:d,frontInstructionsType:p,signers:y},associatedOnly:!w&&i,checkCreateATAOwner:o});m[t.toString()]=b;const S=[];for(const t of s.rewardInfos){const r=n.useSOLBalance&&t.rewardMint.equals(Ve.WSOL.mint),a=null!==(u=m[t.rewardMint.toString()])&&void 0!==u?u:await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:t.rewardMint,tokenAccounts:r?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:d,frontInstructionsType:p,endInstructions:r?l:[],endInstructionsType:r?A:[],signers:y},associatedOnly:!r&&i,checkCreateATAOwner:o});m[t.rewardMint.toString()]=a,S.push(a)}const T=this.makeWithdrawInstruction({poolKeys:s,userKeys:{ledger:this.getAssociatedLedgerAccount({programId:s.programId,poolId:s.id,owner:n.wallet,version:s.version}),lpTokenAccount:b,rewardTokenAccounts:S,owner:n.wallet},amount:0});g.push(T.innerTransaction)}return{address:{},innerTransactions:await oe({connection:e,makeTxVersion:r,computeBudgetConfig:s,payer:n.feePayer,innerTransaction:[{instructionTypes:p,instructions:d,signers:y},...g,{instructionTypes:A,instructions:l,signers:[]}],lookupTableCache:a})}}static async makeV1InfoToV2PdaAndHarvestSimple({connection:e,wallet:t,tokenAccounts:n,programIdV3:i,programIdV5:o,makeTxVersion:r,lookupTableCache:a,computeBudgetConfig:s}){const c={};for(const e of n){const n=e.accountInfo.mint,i=Cn(t,n,e.programId).publicKey;i.equals(e.pubkey)&&(c[n.toString()]=i),void 0===c[n.toString()]&&(c[n.toString()]=e.pubkey)}const u=await e.getProgramAccounts(i,{filters:[{memcmp:{offset:40,bytes:t.toString()}}]}),m=await e.getProgramAccounts(o,{filters:[{memcmp:{offset:40,bytes:t.toString()}}]}),d={},l={};for(const e of u){const n=(e.account.data.length===Zn.span?Zn:Jn).decode(e.account.data),o=n.id.toString(),r=this.getAssociatedLedgerAccount({programId:i,poolId:n.id,owner:t,version:3});void 0===d[o]&&(d[o]={pda:void 0,other:[]}),r.equals(e.pubkey)?d[o].pda=e.pubkey:d[o].other.push(e.pubkey)}for(const e of m){const n=(e.account.data.length===$n.span?$n:ei).decode(e.account.data),i=n.id.toString(),r=this.getAssociatedLedgerAccount({programId:o,poolId:n.id,owner:t,version:5});void 0===l[i]&&(l[i]={pda:void 0,other:[]}),r.equals(e.pubkey)?l[i].pda=e.pubkey:l[i].other.push(e.pubkey)}const p=[...Object.entries(d).filter((e=>e[1].other.length>0)).map((e=>e[0])),...Object.entries(l).filter((e=>e[1].other.length>0)).map((e=>e[0]))],f=await e.getMultipleAccountsInfo(p.map((e=>new A.PublicKey(e)))),g={};for(let e=0;e<p.length;e++){const t=p[e],n=f[e];null!==n&&(g[t]=n.data)}const y=[],k=[],w=[],b=[],S=[];for(const[n,o]of Object.entries(d)){if(0===o.other.length)continue;if(void 0===g[n])continue;const r=Gn.decode(g[n]),[a,s]=await e.getMultipleAccountsInfo([r.lpVault,r.rewardVault]);if(null===a||null===s)throw Error("get lp and reward info error");const u=Pn.decode(a.data),m=Pn.decode(s.data);let d=c[u.mint.toString()];void 0===d&&(d=await this._selectOrCreateTokenAccount({programId:a.owner,mint:u.mint,tokenAccounts:[],owner:t,createInfo:{connection:e,payer:t,amount:0,frontInstructions:y,frontInstructionsType:k,endInstructions:[],endInstructionsType:[],signers:[]},associatedOnly:!0,checkCreateATAOwner:!0}),c[u.mint.toString()]=d);let l=c[m.mint.toString()];if(void 0===l&&(l=await this._selectOrCreateTokenAccount({programId:s.owner,mint:m.mint,tokenAccounts:[],owner:t,createInfo:{connection:e,payer:t,amount:0,frontInstructions:y,frontInstructionsType:k,endInstructions:m.mint.toString()===he.mint?b:[],endInstructionsType:m.mint.toString()===he.mint?S:[],signers:[]},associatedOnly:!0,checkCreateATAOwner:!0}),c[m.mint.toString()]=l),void 0===o.pda){const e=this.makeCreateAssociatedLedgerAccountInstructionV3({poolKeys:{programId:i,id:new A.PublicKey(n)},userKeys:{ledger:this.getAssociatedLedgerAccount({programId:i,poolId:new A.PublicKey(n),owner:t,version:3}),owner:t}});w.push(e.innerTransaction)}const p=this.makeDepositInstructionV3({amount:0,userKeys:{ledger:this.getAssociatedLedgerAccount({programId:i,poolId:new A.PublicKey(n),owner:t,version:3}),owner:t,lpTokenAccount:d,rewardTokenAccounts:[l],auxiliaryLedgers:o.other},poolKeys:{programId:i,id:new A.PublicKey(n),authority:this.getAssociatedAuthority({programId:i,poolId:new A.PublicKey(n)}).publicKey,lpVault:r.lpVault,rewardInfos:[{rewardVault:r.rewardVault}]}});w.push(p.innerTransaction)}for(const[n,i]of Object.entries(l)){if(0===i.other.length)continue;if(void 0===g[n])continue;const r=Yn.decode(g[n]),[a,s,u]=await e.getMultipleAccountsInfo([r.lpVault,r.rewardVaultA,r.rewardVaultB]);if(null===a||null===s||null===u)throw Error("get lp and reward A / B info error");const m=Pn.decode(a.data),d=Pn.decode(s.data),l=Pn.decode(u.data);let p=c[m.mint.toString()];void 0===p&&(p=await this._selectOrCreateTokenAccount({programId:a.owner,mint:m.mint,tokenAccounts:[],owner:t,createInfo:{connection:e,payer:t,amount:0,frontInstructions:y,frontInstructionsType:k,endInstructions:[],endInstructionsType:[],signers:[]},associatedOnly:!0,checkCreateATAOwner:!0}),c[m.mint.toString()]=p);let f=c[d.mint.toString()];void 0===f&&(f=await this._selectOrCreateTokenAccount({programId:s.owner,mint:d.mint,tokenAccounts:[],owner:t,createInfo:{connection:e,payer:t,amount:0,frontInstructions:y,frontInstructionsType:k,endInstructions:d.mint.toString()===he.mint?b:[],endInstructionsType:d.mint.toString()===he.mint?S:[],signers:[]},associatedOnly:!0,checkCreateATAOwner:!0}),c[d.mint.toString()]=f);let T=c[l.mint.toString()];if(void 0===T&&(T=await this._selectOrCreateTokenAccount({programId:u.owner,mint:l.mint,tokenAccounts:[],owner:t,createInfo:{connection:e,payer:t,amount:0,frontInstructions:y,frontInstructionsType:k,endInstructions:l.mint.toString()===he.mint?b:[],endInstructionsType:l.mint.toString()===he.mint?S:[],signers:[]},associatedOnly:!0,checkCreateATAOwner:!0}),c[l.mint.toString()]=T),void 0===i.pda){const e=this.makeCreateAssociatedLedgerAccountInstructionV5({poolKeys:{programId:o,id:new A.PublicKey(n)},userKeys:{ledger:this.getAssociatedLedgerAccount({programId:o,poolId:new A.PublicKey(n),owner:t,version:5}),owner:t}});w.push(e.innerTransaction)}const I=this.makeDepositInstructionV5({amount:0,userKeys:{ledger:this.getAssociatedLedgerAccount({programId:o,poolId:new A.PublicKey(n),owner:t,version:5}),owner:t,lpTokenAccount:p,rewardTokenAccounts:[f,T],auxiliaryLedgers:i.other},poolKeys:{programId:o,id:new A.PublicKey(n),authority:this.getAssociatedAuthority({programId:o,poolId:new A.PublicKey(n)}).publicKey,lpVault:r.lpVault,rewardInfos:[{rewardVault:r.rewardVaultA},{rewardVault:r.rewardVaultB}]}});w.push(I.innerTransaction)}return{address:{},innerTransactions:await oe({connection:e,makeTxVersion:r,computeBudgetConfig:s,payer:t,innerTransaction:[{instructionTypes:k.slice(0,10),instructions:y.slice(0,10),signers:[]},...y.length>10?[{instructionTypes:k.slice(10),instructions:y.slice(10),signers:[]}]:[],...w,{instructionTypes:S,instructions:b,signers:[]}],lookupTableCache:a})}}static async makeDepositTokenInstruction({connection:e,programId:t,governanceProgramId:n,voteWeightAddinProgramId:i,realm:o,communityTokenMint:r,owner:a,poolId:s}){const c=ui(i,o,r).publicKey,u=this.getAssociatedLedgerAccount({programId:t,poolId:s,owner:a,version:3}),m=await e.getAccountInfo(u);if(null===m)throw Error("user is not staker");const d=Jn.decode(m.data),l=d.deposited.sub(d.voteLockedBalance);if(l.eq(ue))throw Error("user do not has new stake amount");const p=mi(t,s).publicKey,g=di(t,s).publicKey,{publicKey:y,nonce:k}=li(i,c,a),w=Cn(y,p,f.TOKEN_PROGRAM_ID).publicKey,{publicKey:b,nonce:S}=pi(i,c,a),T=fi(n,o,r,a).publicKey,I=[],h=Cn(a,p,f.TOKEN_PROGRAM_ID).publicKey;if(null===await e.getAccountInfo(h)&&I.push(Rn.makeCreateAssociatedTokenAccountInstruction({programId:f.TOKEN_PROGRAM_ID,mint:p,associatedAccount:h,owner:a,payer:a,instructionsType:[]})),null===await e.getAccountInfo(y)){const e=function(e,t,n,i,o,r){const a=kn([Qt("ins")]),s=[K(t,!1),K(n,!1),U(r,!1),K(i,!1),U(o,!0),K(L,!1)],c=Buffer.alloc(a.span);return a.encode({ins:23},c),new A.TransactionInstruction({keys:s,programId:e,data:c})}(n,o,a,r,a,T);I.push(e,function(e,t,n,i,o,r,a,s){const c=kn([Qt("voterBump"),Qt("voterWeightRecordBump")]),u=[K(t,!1),U(n,!1),K(o,!0),U(i,!1),U(r,!0),K(L,!1),K(B,!1),K(V,!1)],m=Buffer.alloc(c.span);c.encode({voterBump:a,voterWeightRecordBump:s},m);const d=Buffer.from([...Fn.voterStakeRegistryCreateVoter,...m]);return new A.TransactionInstruction({keys:u,programId:e,data:d})}(i,c,y,b,a,a,k,S))}const{index:P,isInit:C}=await ki(e,c,y,p);return C||I.push(function(e,t,n,i,o,r,a,s,c,u,m,d){const l=kn([Qt("depositEntryIndex"),Qt("kind"),Qt("option"),Jt("startTs"),Zt("periods"),cn("allowClawback")]),p=[K(t,!1),U(n,!1),U(i,!1),K(o,!0),U(r,!0),K(a,!1),K(L,!1),K(f.TOKEN_PROGRAM_ID,!1),K(f.ASSOCIATED_TOKEN_PROGRAM_ID,!1),K(B,!1)],g=Buffer.alloc(l.span);l.encode({depositEntryIndex:s,kind:0,option:0,startTs:ue,periods:0,allowClawback:!1},g);const y=Buffer.from([...Fn.voterStakeRegistryCreateDepositEntry,...g]);return new A.TransactionInstruction({keys:p,programId:e,data:y})}(i,c,y,w,a,a,p,P)),I.push(function(e,t,n,i,o,r,a,s,c,u,m,d,l){const p=kn([Qt("depositEntryIndex"),Jt("amount")]),g=[K(t,!1),U(n,!1),U(i,!1),U(o,!1),K(r,!0),K(f.TOKEN_PROGRAM_ID,!1),U(a,!1),K(s,!1),U(c,!1),K(u,!1),K(m,!1),K(V,!1)],y=Buffer.alloc(p.span);p.encode({depositEntryIndex:d,amount:l},y);const k=Buffer.from([...Fn.voterStakeRegistryDeposit,...y]);return new A.TransactionInstruction({keys:g,programId:e,data:k})}(i,c,y,w,h,a,u,s,p,g,t,P,l),function(e,t,n,i){const o=kn([]),r=[K(t,!1),K(n,!1),U(i,!1),K(L,!1)],a=Buffer.alloc(o.span);o.encode({},a);const s=Buffer.from([...Fn.voterStakeRegistryUpdateVoterWeightRecord,...a]);return new A.TransactionInstruction({keys:r,programId:e,data:s})}(i,c,y,b)),{address:{},innerTransaction:{instructions:I,signers:[],lookupTableAddress:[],instructionTypes:Array(I.length).fill(vn.test)}}}static async makeWithdrawTokenInstruction({connection:e,programId:t,governanceProgramId:n,voteWeightAddinProgramId:i,realm:o,communityTokenMint:r,owner:a,poolId:s}){const c=ui(i,o,r).publicKey,u=this.getAssociatedLedgerAccount({programId:t,poolId:s,owner:a,version:3}),m=await e.getAccountInfo(u);if(null===m)throw Error("user is not staker");const d=Jn.decode(m.data);if(d.voteLockedBalance.eq(ue))throw Error("user has vote locked balance = 0");const l=mi(t,s).publicKey,p=di(t,s).publicKey,{publicKey:g}=li(i,c,a),y=Cn(g,l,f.TOKEN_PROGRAM_ID).publicKey,{publicKey:k}=pi(i,c,a),w=fi(n,o,r,a).publicKey,b=[],{index:S,isInit:T}=await ki(e,c,g,l);if(!T)throw Error("deposit entry index check error");return b.push(function(e,t,n,i,o,r,a,s,c,u,m,d,l,p,g){const y=kn([Qt("depositEntryIndex"),Jt("amount")]),k=[K(t,!1),U(n,!1),K(i,!0),K(o,!1),U(r,!1),U(a,!1),U(s,!1),K(f.TOKEN_PROGRAM_ID,!1),U(c,!1),K(u,!1),U(m,!1),K(d,!1),K(l,!1),K(V,!1)],w=Buffer.alloc(y.span);y.encode({depositEntryIndex:p,amount:g},w);const b=Buffer.from([...Fn.voterStakeRegistryWithdraw,...w]);return new A.TransactionInstruction({keys:k,programId:e,data:b})}(i,c,g,a,w,k,y,Cn(a,l,f.TOKEN_PROGRAM_ID).publicKey,u,s,l,p,t,S,d.voteLockedBalance)),{address:{},innerTransaction:{instructions:b,signers:[],lookupTableAddress:[],instructionTypes:Array(b.length).fill(vn.test)}}}}async function ki(e,t,n,i){const o=await e.getAccountInfo(t);if(null===o)throw Error("registrar info check error");const r=ri.decode(o.data).votingMints.findIndex((e=>e.mint.equals(i)));if(-1===r)throw Error("find voter mint error");const a=await e.getAccountInfo(n);if(null===a)return{index:r,isInit:!1};const s=ci.decode(a.data).deposits.findIndex((e=>e.isUsed&&e.votingMintConfigIdx===r));return-1===s?{index:r,isInit:!1}:{index:s,isInit:!0}}const wi=[{id:"AvbVWpBi2e4C9HPmZgShGdPoNydG4Yw8GJvG9HUcLgce",lp:Oe.RAY_USDT_V4,version:3},{id:"4EwbZo8BZXP5313z5A2H11MRBP15M5n6YxfmkjXESKAW",lp:Re.RAY,version:3},{id:"XnRBbNMf6YcWvC1u2vBXXuMcagmRBRLu1y84mpqnKwW",lp:Oe.xCOPE_USDC_V4,version:5},{id:"8xhjCzfzVcP79jE7jXR2xtNaSL6aJYoDRLVT9FMjpRTC",lp:Oe.STEP_USDC_V4,version:5},{id:"Ef1gD9JMzWF6PNw2uc4744zouh57GyWAeVTjHHbQ2nsu",lp:Oe.MEDIA_USDC_V4,version:5},{id:"AxVvbT9fDFEkmdLwKUJRY5HsG2RXAZbe1dRAgJ2bDDwg",lp:Oe.COPE_USDC_V4,version:5},{id:"D4pYuD4tbir9KBsb7Kr63v9e86JY2UoUZeFK9eHKQFZM",lp:Oe.MER_USDC_V4,version:5},{id:"BLy8KuRck5bcJkQdMDLSZnL1Ka4heAZSGiwTJfEfY727",lp:Oe.ROPE_USDC_V4,version:5},{id:"JAP8SFagJBm6vt2LoFGNeSJ1hKDZ2p3yXb3CvBx11How",lp:Oe.ALEPH_USDC_V4,version:5},{id:"7U8Z6TWQMtsMcHV2htALnF9VQonnD1MrVm17YtmGEGEw",lp:Oe.TULIP_USDC_V4,version:5},{id:"31QSh1TwgoA9GbvkgfEEwKEm11t8CR4KiQr6WCyJr7EN",lp:Oe.SNY_USDC_V4,version:5},{id:"EEe8b72w5q6T86nYRNJdFcY25tznPzrd1jGjuxZ7f9mX",lp:Oe.BOP_RAY_V4,version:5},{id:"5PVVwSqwzkCvuiKEZwWkM35ApBnoWqF8XopsVZjPwA8z",lp:Oe.SLRS_USDC_V4,version:5},{id:"Bw932pURVJRYjEJwRZGWjfUNpeyz18kjMNdb833eMxoj",lp:Oe.SAMO_RAY_V4,version:5},{id:"BRM5bdX2mjmFGg2RAent1Whd61o9asQD16BXsC6QvEni",lp:Oe.LIKE_USDC_V4,version:5},{id:"HUDr9BDaAGqi37xbQHzxCyXvfMCKPTPNF8g9c9bPu1Fu",lp:Oe.RAY_SOL_V4,version:3},{id:"CHYrUBX2RKX8iBg7gYTkccoGNBzP44LdaazMHCLcdEgS",lp:Oe.RAY_USDC_V4,version:3},{id:"B6fbnZZ7sbKHR18ffEDD5Nncgp54iKN1GbCgjTRdqhS1",lp:Oe.RAY_ETH_V4,version:3},{id:"5DFbcYNLLy5SJiBpCCDzNSs7cWCsUbYnCkLXzcPQiKnR",lp:Oe.RAY_SRM_V4,version:3},{id:"GzEDEkHSFFfxKMu3Toww1nrEjtbQGJKRPNRK1Pfd59Zn",lp:Oe.MNGO_USDC_V4,version:5},{id:"CM9XTJfXEHceGPXhmXxheR87Ng9CZ4jiBoTVQHhs9DVN",lp:Oe.COPE_RAY_V4,version:5},{id:"AMcVWK66iexwwCHn8drxywdNr2UgH3vmRzLXQFdErGmL",lp:Oe.LIKE_RAY_V4,version:5},{id:"DJfvL6srBht8XFMWYuuKHYGainqvwXyA5icVsDne3pwN",lp:Oe.MEDIA_RAY_V4,version:5},{id:"21xhrT4j8QnaBvj3QjhP5kZu8sXJMCE7hzHKGtWEkdKr",lp:Oe.MER_RAY_V4,version:5},{id:"J61AnYYSwjtJ4wDqEqqWSBuZbiR2SDDrtF7FFobutM6a",lp:Oe.SLRS_RAY_V4,version:5},{id:"JEC3P83x2GEijYDwXiksuh5H6YrQt5xW6MC2GDKkMoe",lp:Oe.SNY_RAY_V4,version:5},{id:"BmbG9hv5PazcW3rYWvatA6HpNPkozEdkWBiU64pZxuwr",lp:Oe.TULIP_RAY_V4,version:5},{id:"4wvZ9SwWaHKTpshQbCSKQoPosZp9KGwUzuQdESi39qPn",lp:Oe.ALEPH_RAY_V4,version:5},{id:"BnYoq5y2MoH4TsBHeEZrEPowhwebHxQq7nJW1vTjPTWu",lp:Oe.RAY_SRM_V4,version:5},{id:"93wRz2LeQ3TJoair827VTng62MjCzYDgJjG9Q5GmQ3Pd",lp:Oe.ATLAS_USDC_V4,version:5},{id:"7qcihXTsRW5wS5BgK7iuD84W43ECByoJP45R3hu2r6mF",lp:Oe.POLIS_USDC_V4,version:5},{id:"BHHhNLdJn69K1XPJcpcw4MBY3TPetpLxhj8s4K4ydsDV",lp:Oe.ATLAS_RAY_V4,version:5},{id:"HHm8Pgnzc56fTUYkicPv4DqGYp5fcPZFV1V1uhixSrMk",lp:Oe.POLIS_RAY_V4,version:5},{id:"8GBa1cK1NxevoxiRNK6YW9tWuo2xftcA3as9Cu4nhFL7",lp:Oe.GRAPE_USDC_V4,version:5},{id:"HzxveT6pUMwYByqnScvTbpUv4avzkUDrDpS9D7DToEry",lp:Oe.LARIX_USDC_V4,version:5},{id:"Fbwy4XWMjXuP1nXg4xph4RJ9E9twVXeknXokF38PVgG1",lp:Oe.LARIX_RAY_V4,version:5},{id:"5gzQgxaKAU13SZeffmjjE2y9HwMJ42FxQkqJhJ5nqHeh",lp:Oe.stSOL_USDC_V4,version:5},{id:"914jyHBQFiroKFVCpKkzjGSaZyr4gMwgxE7snbNfGjnL",lp:Oe.BTC_mSOL_V4,version:5},{id:"54vUWjEmg9wfCsZF7wwq2HJu5BU3cfDFAQQQgXPECcwE",lp:Oe.ETH_mSOL_V4,version:5},{id:"HxhxYASqdLcR6yehT9hB9HUpgcF1R2t9HtkHdngGZ2Dh",lp:Oe.mSOL_USDT_V4,version:5},{id:"97N6tPMVCrAunC9embwTcffye9xC95fA5y3LauhNZ444",lp:Oe.MNDE_mSOL_V4,version:5},{id:"DjtZxyFBgifzpaZEzfsWXogNX5zUCnTRXJqarGe9CiSv",lp:Oe.mSOL_USDC_V4,version:5},{id:"7wNhbTS6XQczXs52wcVmfiodRMPfycB3YaG52dWWY6SD",lp:Oe.mSOL_RAY_V4,version:5},{id:"CzKUrVbP7hH8EjcHNc55ZFW33rJyLQ2r52bxCzaGTpz",lp:Oe.LIQ_USDC_V4,version:5},{id:"5XdeFdcJoCAPMfgYndMPcsijFBKFp2cPSCjrCZzmpTE5",lp:Oe.LIQ_RAY_V4,version:5},{id:"Gf3qFzKnGvMCVMQZERW2Qso5uEYxd9B9kWZZHsrMmmHj",lp:Oe.SYP_RAY_V4,version:5},{id:"2pQQnoNpm5LoG6sZs5toNBXi4m1Pj3ExXdggPQYyiP2x",lp:Oe.SYP_SOL_V4,version:5},{id:"Byt2kL5qi45pMpdAsNNciKZ8HLp7oU5jizCbyARLtQJy",lp:Oe.SYP_USDC_V4,version:5},{id:"8W2TqGCiFiqR1JD4sbW8uTRjV2HvFjLhkZ2tAQTYE4Gc",lp:Oe.WOOF_RAY_V4,version:5},{id:"FgApVk6mASrkuWNxmsFvsaAYkFKqdiwMTvYZK36A2DaC",lp:Oe.KIN_RAY_V4,version:5},{id:"AwUDfg4NYbLQRAcFipoJwyZTpqNvw5v6C7EypryL12Y6",lp:Oe.STARS_USDC_V4,version:5},{id:"Gi3Z6TXeH1ZhCCbwg6oJL8SE4LcmxmGRNhhfA6NZhwTK",lp:Oe.weWETH_SOL_V4,version:5},{id:"8JJSdD1ca5SDtGCEm3yBbQKek2FvJ1EbNt9q2ET3E9Jt",lp:Oe.weWETH_USDC_V4,version:5},{id:"6X495xkPWkw9SQFYf7yL1K8QooZyaeEQ6u7yMWNNZxNV",lp:Oe.weUNI_USDC_V4,version:5},{id:"AuyqPBiY6sNUpH6jx415NGcdvNdYbkbYsyVabUqEVdkj",lp:Oe.weSUSHI_USDC_V4,version:5},{id:"7fe8QcJ6W2kHKL1h1HMYYJoGXz2LUcwCjkxX6MX35orK",lp:Oe.weAXS_USDC_V4,version:5},{id:"C8BjS9DGDvC2zS3n6fTvm1rjPbA33uZ7CAvEUZ3tg7aM",lp:Oe.weDYDX_USDC_V4,version:5},{id:"CZZnmfvSgNVUiDBG4wN2NNcaYbsKDN4kLsc3SN8DMw6i",lp:Oe.weSHIB_USDC_V4,version:5},{id:"FAKzZoGVCEBDRuHN4gDswAx7PsocCorDqH6dQaxnyorT",lp:Oe.weSAND_USDC_V4,version:5},{id:"EBS8tc4proQE2Fj6HxU4piiZP8oiDrvyJUijDCX7P7QN",lp:Oe.weMANA_USDC_V4,version:5},{id:"6AxxjJhAz6APspTQM4vVCHgfzEyZgBTCogJLdai7bXYE",lp:Oe.wbWBNB_USDC_V4,version:5},{id:"3HGPRHH3XFFu972MR1EdS65qc1nN9sM7miZtFTi6QcEd",lp:Oe.wePEOPLE_USDC_V4,version:5},{id:"27bysJaX5eu5Urb5kftR66otiVc6DKK7TnifKwnpNzYu",lp:Oe.SRM_USDC_V4,version:5},{id:"FDnxy4NkJVG3GNMMrtUZmUmoYeYE34YRDwCYTi1yBTM",lp:Oe.CAVE_USDC_V4,version:5},{id:"DDRNVVJBEXEemcprVVUcrTbYnR88JyN6jjT2ypgAQHC8",lp:Oe.GENE_USDC_V4,version:5},{id:"GVfLbXA3dpEHPvc4do9HvMZ8TACxm3x54BVrHPMEixcr",lp:Oe.GENE_RAY_V4,version:5},{id:"7NZ18KhsSdJBQkJEJwhEHfdaPRNdbMd17CMoxsKxavEo",lp:Oe.CWAR_USDC_V4,version:5},{id:"5Mdq5o3KKPyeVVBsbnivVk9qCATjfEQ22oysXVsd2DvJ",lp:Oe.SONAR_USDC_V4,version:5},{id:"7W8BKbMgcVpGYvTgEK758pJgDRZJ9WafKfgkV1XCkP33",lp:Oe.APT_USDC_V4,version:5},{id:"CgokwBwwdYsgo8hbUMtJ3GoNM3bVjvMcmaPrVvCw4sBi",lp:Oe.SHILL_USDC_V4,version:5},{id:"AWbmotuJS7NLBmra9ctbfVR1BnoHmiG1HGW6hm49TuRZ",lp:Oe.DFL_USDC_V4,version:5},{id:"665VvECKsLpXN4fLy8GYbyQpGJRNkxRx56X93U9FVSbv",lp:Oe.BOKU_USDC_V4,version:5},{id:"7yk1XUWmZpWMCoFpUT985z61UNTypyBGgZF3JpKgcwmL",lp:Oe.MIMO_SOL_V4,version:5},{id:"E5L4Bx3Lsif7bDb9XMWi5guHUt4kkYpbqQ4CbmnRjHs1",lp:Oe.XTAG_USDC_V4,version:5},{id:"HtvQ5AEvu8sDM7C1oB4r5fJ5E2Q1wsJ4TADwNMqR9ccF",lp:Oe.TTT_USDC_V4,version:5},{id:"GUzaohfNuFbBqQTnPgPSNciv3aUvriXYjQduRE3ZkqFw",lp:Oe.SOL_USDC_V4,version:5},{id:"5r878BSWPtoXgnqaeFJi7BCycKZ5CodBB2vS9SeiV8q",lp:Oe.SOL_USDT_V4,version:5},{id:"3J3SYLeFZWKnUCsrPzikw9bcD9vRs7YNGfmg7ZSg3tsK",lp:Oe.RUN_USDC_V4,version:5},{id:"BYmeWrwA4ixvJhNrxWzQsA3Fsz6EtUDJTo39WYZ6o1FS",lp:Oe.CRWNY_RAY_V4,version:5},{id:"6VNF4rF7ESUohzNeRf3aTg61dyFjbab749RGUHCTDFQL",lp:Oe.CRWNY_USDC_V4,version:5},{id:"7RQDGZ1cvHcREu211R35WSKHFjTxM5dmJHeFAWag29BA",lp:Oe.REAL_USDC_V4,version:5},{id:"ELovJ3jDKMiWhCUCdZzPfTeVmQwhj4cvYuGwS8FfhEtJ",lp:Oe.BLOCK_USDC_V4,version:5},{id:"36Rf8dzq5gy4Ew2bLQEgKoCKVTku4EJPLqFYG6mzFrkr",lp:Oe.FRKT_SOL_V4,version:5},{id:"HXpQJeAcBCKfGY6YhZgBocZGgV4xApPVK7r8CPXfvCin",lp:Oe.FRKT_USDC_V4,version:5},{id:"Eqn7unnxmneDuTuXQ7EAN1wBkHMFD4LgCCAkCdPA9KbV",lp:Oe.MBS_USDC_V4,version:5},{id:"DtU5pZB99rVtxe5qe5hQa2rRpw7poFiqaHvMAbPgT2TM",lp:Oe.PRISM_USDC_V4,version:5},{id:"Gue2c9J2aRtY3aJ1HEwabQznwg2MUt9d9kUyr6otujR",lp:Oe.CHICKS_USDC_V4,version:5},{id:"Ej7iBkW79EdF26RxaRQfGo58PqRdzHzRmE4C2e3z3dPY",lp:Oe.MEAN_RAY_V4,version:5},{id:"Bd1hAsMAghtCjK38Ut4m938Ep7zyEp2TydQ7G35nPvUj",lp:Oe.TINY_USDC_V4,version:5},{id:"2G7qTQzw3KXm7WEMJf2izqFQWh8CLZ1wFbQVP5qo3ME9",lp:Oe.SCY_USDC_V4,version:5}],bi=[],Si=[],Ti=kn([Jt("status"),Jt("nonce"),Jt("maxOrder"),Jt("depth"),Jt("baseDecimal"),Jt("quoteDecimal"),Jt("state"),Jt("resetFlag"),Jt("minSize"),Jt("volMaxCutRatio"),Jt("amountWaveRatio"),Jt("baseLotSize"),Jt("quoteLotSize"),Jt("minPriceMultiplier"),Jt("maxPriceMultiplier"),Jt("systemDecimalValue"),Jt("minSeparateNumerator"),Jt("minSeparateDenominator"),Jt("tradeFeeNumerator"),Jt("tradeFeeDenominator"),Jt("pnlNumerator"),Jt("pnlDenominator"),Jt("swapFeeNumerator"),Jt("swapFeeDenominator"),Jt("baseNeedTakePnl"),Jt("quoteNeedTakePnl"),Jt("quoteTotalPnl"),Jt("baseTotalPnl"),Jt("poolOpenTime"),Jt("punishPcAmount"),Jt("punishCoinAmount"),Jt("orderbookToInitTime"),$t("swapBaseInAmount"),$t("swapQuoteOutAmount"),Jt("swapBase2QuoteFee"),$t("swapQuoteInAmount"),$t("swapBaseOutAmount"),Jt("swapQuote2BaseFee"),rn("baseVault"),rn("quoteVault"),rn("baseMint"),rn("quoteMint"),rn("lpMint"),rn("openOrders"),rn("marketId"),rn("marketProgramId"),rn("targetOrders"),rn("withdrawQueue"),rn("lpVault"),rn("owner"),Jt("lpReserve"),In(Jt(),3,"padding")]),Ii=kn([Jt("accountType"),Jt("status"),Jt("nonce"),Jt("maxOrder"),Jt("depth"),Jt("baseDecimal"),Jt("quoteDecimal"),Jt("state"),Jt("resetFlag"),Jt("minSize"),Jt("volMaxCutRatio"),Jt("amountWaveRatio"),Jt("baseLotSize"),Jt("quoteLotSize"),Jt("minPriceMultiplier"),Jt("maxPriceMultiplier"),Jt("systemDecimalsValue"),Jt("abortTradeFactor"),Jt("priceTickMultiplier"),Jt("priceTick"),Jt("minSeparateNumerator"),Jt("minSeparateDenominator"),Jt("tradeFeeNumerator"),Jt("tradeFeeDenominator"),Jt("pnlNumerator"),Jt("pnlDenominator"),Jt("swapFeeNumerator"),Jt("swapFeeDenominator"),Jt("baseNeedTakePnl"),Jt("quoteNeedTakePnl"),Jt("quoteTotalPnl"),Jt("baseTotalPnl"),Jt("poolOpenTime"),Jt("punishPcAmount"),Jt("punishCoinAmount"),Jt("orderbookToInitTime"),$t("swapBaseInAmount"),$t("swapQuoteOutAmount"),$t("swapQuoteInAmount"),$t("swapBaseOutAmount"),Jt("swapQuote2BaseFee"),Jt("swapBase2QuoteFee"),rn("baseVault"),rn("quoteVault"),rn("baseMint"),rn("quoteMint"),rn("lpMint"),rn("modelDataAccount"),rn("openOrders"),rn("marketId"),rn("marketProgramId"),rn("targetOrders"),rn("owner"),In(Jt(),64,"padding")]),hi={4:Ti,5:Ii},Pi=(e=>{var t={};return u.d(t,e),t})({default:()=>c.default}),Ci={createPool:[233,146,209,142,207,104,64,188],initReward:[95,135,192,196,242,129,230,68],setRewardEmissions:[112,52,167,75,32,201,211,137],openPosition:[77,184,74,214,112,86,241,199],closePosition:[123,134,81,0,49,68,98,98],increaseLiquidity:[133,29,89,223,69,238,176,10],decreaseLiquidity:[58,127,188,62,79,82,196,96],swap:[43,4,237,11,26,201,30,98],collectReward:[18,237,166,197,34,16,213,144]};function Ri(e,t,n,i,o,r,a,s,c,u,m,d,l,p){const f=kn([$t("sqrtPriceX64"),Jt("startTime")]),g=[{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:L,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!1}],y=Buffer.alloc(f.span);f.encode({sqrtPriceX64:l,startTime:p},y);const k=Buffer.from([...Ci.createPool,...y]);return new A.TransactionInstruction({keys:g,programId:e,data:k})}function Oi(e,t,n,i,o,r,a,s,c,u,m,d,l,p,g,y,k,w,b,S,T,I,h,P,C,R){const O=kn([Ct("tickLowerIndex"),Ct("tickUpperIndex"),Ct("tickArrayLowerStartIndex"),Ct("tickArrayUpperStartIndex"),$t("liquidity"),Jt("amountMaxA"),Jt("amountMaxB"),cn("withMetadata"),Qt("optionBaseFlag"),cn("baseFlag")]),v=[...R?[{pubkey:R,isSigner:!1,isWritable:!0}]:[]],D=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:L,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:M,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},...v],E=Buffer.alloc(O.span);O.encode({tickLowerIndex:w,tickUpperIndex:b,tickArrayLowerStartIndex:S,tickArrayUpperStartIndex:T,liquidity:I,amountMaxA:h,amountMaxB:P,withMetadata:"create"===C,baseFlag:!1,optionBaseFlag:0},E);const V=Buffer.from([...Ci.openPosition,...E]);return new A.TransactionInstruction({keys:D,programId:e,data:V})}function vi(e,t,n,i,o,r,a,s,c,u,m,d,l,p,g,y,k,w,b,S,T,I,h,P,C,R){const O=kn([Ct("tickLowerIndex"),Ct("tickUpperIndex"),Ct("tickArrayLowerStartIndex"),Ct("tickArrayUpperStartIndex"),$t("liquidity"),Jt("amountMaxA"),Jt("amountMaxB"),cn("withMetadata"),Qt("optionBaseFlag"),cn("baseFlag")]),v=[...R?[{pubkey:R,isSigner:!1,isWritable:!0}]:[]],D=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:L,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:M,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},...v],E=Buffer.alloc(O.span);O.encode({tickLowerIndex:w,tickUpperIndex:b,tickArrayLowerStartIndex:S,tickArrayUpperStartIndex:T,liquidity:ue,amountMaxA:"MintA"===h?P:C,amountMaxB:"MintA"===h?C:P,withMetadata:"create"===I,baseFlag:"MintA"===h,optionBaseFlag:1},E);const V=Buffer.from([...Ci.openPosition,...E]);return new A.TransactionInstruction({keys:D,programId:e,data:V})}function Di(e,t,n,i,o){const r=kn([]),a=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:L,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1}],s=Buffer.alloc(r.span);r.encode({},s);const c=Buffer.from([...Ci.closePosition,...s]);return new A.TransactionInstruction({keys:a,programId:e,data:c})}function Li(e,t,n,i,o,r,a,s,c,u,m,d,l,p,g,y,k,w){const b=kn([$t("liquidity"),Jt("amountMaxA"),Jt("amountMaxB"),Qt("optionBaseFlag"),cn("baseFlag")]),S=[...w?[{pubkey:w,isSigner:!1,isWritable:!0}]:[]],T=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},...S],I=Buffer.alloc(b.span);b.encode({liquidity:g,amountMaxA:y,amountMaxB:k,optionBaseFlag:0,baseFlag:!1},I);const h=Buffer.from([...Ci.increaseLiquidity,...I]);return new A.TransactionInstruction({keys:T,programId:e,data:h})}function Ei(e,t,n,i,o,r,a,s,c,u,m,d,l,p,g,y,k,w){const b=kn([$t("liquidity"),Jt("amountMaxA"),Jt("amountMaxB"),Qt("optionBaseFlag"),cn("baseFlag")]),S=[...w?[{pubkey:w,isSigner:!1,isWritable:!0}]:[]],T=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},...S],I=Buffer.alloc(b.span);b.encode({liquidity:ue,amountMaxA:"MintA"===g?y:k,amountMaxB:"MintA"===g?k:y,baseFlag:"MintA"===g,optionBaseFlag:1},I);const h=Buffer.from([...Ci.increaseLiquidity,...I]);return new A.TransactionInstruction({keys:T,programId:e,data:h})}function Bi(e,t,n,i,o,r,a,s,c,u,m,d,l,p,g,y,k,w,b){const S=kn([$t("liquidity"),Jt("amountMinA"),Jt("amountMinB")]),T=[...b?[{pubkey:b,isSigner:!1,isWritable:!0}]:[],...g.map((e=>[{pubkey:e.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:e.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:e.rewardMint,isSigner:!1,isWritable:!1}])).flat()],I=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:E,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},...T],h=Buffer.alloc(S.span);S.encode({liquidity:y,amountMinA:k,amountMinB:w},h);const P=Buffer.from([...Ci.decreaseLiquidity,...h]);return new A.TransactionInstruction({keys:I,programId:e,data:P})}function Mi(e,t,n,i,o,r,a,s,c,u,m,d,l,p,g,y,k){const w=kn([Jt("amount"),Jt("otherAmountThreshold"),$t("sqrtPriceLimitX64"),cn("isBaseInput")]),b=[...k?[{pubkey:k,isSigner:!1,isWritable:!0}]:[],...m.map((e=>({pubkey:e,isSigner:!1,isWritable:!0})))],S=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:E,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},...b],T=Buffer.alloc(w.span);w.encode({amount:l,otherAmountThreshold:p,sqrtPriceLimitX64:g,isBaseInput:y},T);const I=Buffer.from([...Ci.swap,...T]);return new A.TransactionInstruction({keys:S,programId:e,data:I})}function Vi(e,t,n,i,o,r,a,s,c,u,m,d){const l=kn([Jt("openTime"),Jt("endTime"),$t("emissionsPerSecondX64")]),p=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:L,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!1}],f=Buffer.alloc(l.span);l.encode({openTime:be(u),endTime:be(m),emissionsPerSecondX64:d},f);const g=Buffer.from([...Ci.initReward,...f]);return new A.TransactionInstruction({keys:p,programId:e,data:g})}function _i(e,t,n,i,o,r,a,s,c,u,m,d){const l=kn([Qt("rewardIndex"),$t("emissionsPerSecondX64"),Jt("openTime"),Jt("endTime")]),p=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0}],g=Buffer.alloc(l.span);l.encode({rewardIndex:c,emissionsPerSecondX64:d,openTime:be(u),endTime:be(m)},g);const y=Buffer.from([...Ci.setRewardEmissions,...g]);return new A.TransactionInstruction({keys:p,programId:e,data:y})}function qi(e,t,n,i,o,r,a){const s=kn([Qt("rewardIndex")]),c=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:E,isSigner:!1,isWritable:!1}],u=Buffer.alloc(s.span);s.encode({rewardIndex:a},u);const m=Buffer.from([...Ci.collectReward,...u]);return new A.TransactionInstruction({keys:c,programId:e,data:m})}const Ui=new y.default(-1),Ki=new y.default(1).shln(64),xi=new y.default(1).shln(128),Ni=Ki.sub(me),Wi=64,Fi=xi.subn(1),Gi=-443636,Yi=-Gi,Xi=new y.default("4295048016"),Hi=new y.default("79226673521066979257578248091"),zi=16,ji="59543866431248",Qi="184467440737095516",Zi="15793534762490258745",Ji=new y.default(10).pow(new y.default(6));var $i;!function(e){e[e.rate_500=500]="rate_500",e[e.rate_3000=3e3]="rate_3000",e[e.rate_10000=1e4]="rate_10000"}($i||($i={}));const eo={[$i.rate_500]:10,[$i.rate_3000]:60,[$i.rate_10000]:200},to=new y.default("18446744073700000000");function no(e){const t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e,!1),new Uint8Array(t)}function io(e){const t=new ArrayBuffer(2);return new DataView(t).setInt16(0,e,!1),new Uint8Array(t)}function oo(e){const t=new ArrayBuffer(4);return new DataView(t).setUint32(0,e,!1),new Uint8Array(t)}function ro(e){const t=new ArrayBuffer(4);return new DataView(t).setInt32(0,e,!1),new Uint8Array(t)}function ao(e,t){let n=0;for(let i=e-1;i>=0&&!t.testn(i);i--)n++;return n}function so(e,t){let n=0;for(let i=0;i<e&&!t.testn(i);i++)n++;return n}function co(e,t){for(let n=0;n<e;n++)if(t.testn(n))return!1;return!0}function uo(e,t){return co(e,t)?null:ao(e,t)}function mo(e,t){return co(e,t)?null:so(e,t)}const lo=Buffer.from("amm_config","utf8"),po=Buffer.from("pool","utf8"),fo=Buffer.from("pool_vault","utf8"),Ao=Buffer.from("pool_reward_vault","utf8"),go=Buffer.from("position","utf8"),yo=Buffer.from("tick_array","utf8"),ko=Buffer.from("operation","utf8"),wo=Buffer.from("pool_tick_array_bitmap_extension","utf8");function bo(e,t){return q([lo,no(t)],e)}function So(e,t,n,i){return q([po,t.toBuffer(),n.toBuffer(),i.toBuffer()],e)}function To(e,t,n){return q([fo,t.toBuffer(),n.toBuffer()],e)}function Io(e,t,n){return q([Ao,t.toBuffer(),n.toBuffer()],e)}function ho(e,t,n){return q([yo,t.toBuffer(),ro(n)],e)}function Po(e,t,n,i){return q([go,t.toBuffer(),ro(n),ro(i)],e)}function Co(e,t){return q([go,t.toBuffer()],e)}function Ro(e){return q([Buffer.from("metadata","utf8"),M.toBuffer(),e.toBuffer()],M)}function Oo(e){return q([ko],e)}function vo(e,t){return q([wo,t.toBuffer()],e)}const Do=15;class Lo{static async getTickArrays(e,t,n,i,o,r,a){const s=[],c=Mo.getTickArrayStartIndexByTick(i,o),u=Mo.getInitializedTickArrayInRange(r,a,o,c,Math.floor(Do/2));for(let e=0;e<u.length;e++){const{publicKey:i}=ho(t,n,u[e]);s.push(i)}const m=(await Z(e,s)).map((e=>null!==e?Ho.decode(e.data):null)),d={};for(let e=0;e<s.length;e++){const t=m[e];null!==t&&(d[t.startTickIndex]=Object.assign(Object.assign({},t),{address:s[e]}))}return d}static nextInitializedTick(e,t,n,i,o,r){let{initializedTick:a,tickArrayAddress:s,tickArrayStartTickIndex:c}=this.nextInitializedTickInOneArray(e,t,n,i,o,r);for(;null==a||a.liquidityGross.lten(0);){if(c=Mo.getNextTickArrayStartIndex(c,o,r),this.checkIsValidStartIndex(c,o))throw new Error("No enough initialized tickArray");const i=n[c];if(void 0===i)continue;const{nextTick:u,tickArrayAddress:m,tickArrayStartTickIndex:d}=this.firstInitializedTickInOneArray(e,t,i,r);[a,s,c]=[u,m,d]}if(null==a)throw new Error("No invaild tickArray cache");return{nextTick:a,tickArrayAddress:s,tickArrayStartTickIndex:c}}static nextInitializedTickArray(e,t,n,i,o){const r=Math.floor(e/Lo.tickCount(t)),a=n?Mo.searchLowBitFromStart(i,o,r-1,1,t):Mo.searchHightBitFromStart(i,o,r+1,1,t);return a.length>0?{isExist:!0,nextStartIndex:a[0]}:{isExist:!1,nextStartIndex:0}}static firstInitializedTickInOneArray(e,t,n,i){let o;if(i){let e=Eo-1;for(;e>=0;){const t=n.ticks[e];if(t.liquidityGross.gtn(0)){o=t;break}e-=1}}else{let e=0;for(;e<Eo;){const t=n.ticks[e];if(t.liquidityGross.gtn(0)){o=t;break}e+=1}}const{publicKey:r}=ho(e,t,n.startTickIndex);return{nextTick:o,tickArrayAddress:r,tickArrayStartTickIndex:n.startTickIndex}}static nextInitializedTickInOneArray(e,t,n,i,o,r){const a=Mo.getTickArrayStartIndexByTick(i,o);let s=Math.floor((i-a)/o);const c=n[a];if(null==c)return{initializedTick:void 0,tickArrayAddress:void 0,tickArrayStartTickIndex:a};let u;if(r)for(;s>=0;){const e=c.ticks[s];if(e.liquidityGross.gtn(0)){u=e;break}s-=1}else for(s+=1;s<Eo;){const e=c.ticks[s];if(e.liquidityGross.gtn(0)){u=e;break}s+=1}const{publicKey:m}=ho(e,t,a);return{initializedTick:u,tickArrayAddress:m,tickArrayStartTickIndex:c.startTickIndex}}static getArrayStartIndex(e,t){const n=this.tickCount(t);return Math.floor(e/n)*n}static checkIsValidStartIndex(e,t){return Mo.checkIsOutOfBoundary(e)?!(e>Yi)&&e==Mo.getTickArrayStartIndexByTick(Gi,t):e%this.tickCount(t)==0}static tickCount(e){return Eo*e}}const Eo=60,Bo=512;class Mo{static getTickArrayAddressByTick(e,t,n,i){const o=Mo.getTickArrayStartIndexByTick(n,i),{publicKey:r}=ho(e,t,o);return r}static getTickOffsetInArray(e,t){if(e%t!=0)throw new Error("tickIndex % tickSpacing not equal 0");const n=Mo.getTickArrayStartIndexByTick(e,t),i=Math.floor((e-n)/t);if(i<0||i>=Eo)throw new Error("tick offset in array overflow");return i}static getTickArrayBitIndex(e,t){const n=Lo.tickCount(t);let i=e/n;return i=e<0&&e%n!=0?Math.ceil(i)-1:Math.floor(i),i}static getTickArrayStartIndexByTick(e,t){return this.getTickArrayBitIndex(e,t)*Lo.tickCount(t)}static getTickArrayOffsetInBitmapByTick(e,t){const n=t*Eo,i=Math.floor(e/n)+512;return Math.abs(i)}static checkTickArrayIsInitialized(e,t,n){const i=n*Eo,o=Math.floor(t/i)+512,r=Math.abs(o);return{isInitialized:e.testn(r),startIndex:(r-512)*i}}static getNextTickArrayStartIndex(e,t,n){return n?e-t*Eo:e+t*Eo}static mergeTickArrayBitmap(e){let t=new y.default(0);for(let n=0;n<e.length;n++)t=t.add(e[n].shln(64*n));return t}static getInitializedTickArrayInRange(e,t,n,i,o){const r=Math.floor(i/(n*Eo));return[...Mo.searchLowBitFromStart(e,t,r-1,o,n),...Mo.searchHightBitFromStart(e,t,r,o,n)]}static getAllInitializedTickArrayStartIndex(e,t,n){return Mo.searchHightBitFromStart(e,t,0,Bo,n)}static getAllInitializedTickArrayInfo(e,t,n,i,o){const r=[],a=Mo.getAllInitializedTickArrayStartIndex(n,i,o);for(const n of a){const{publicKey:i}=ho(e,t,n);r.push({tickArrayStartIndex:n,tickArrayAddress:i})}return r}static getAllInitializedTickInTickArray(e){return e.ticks.filter((e=>e.liquidityGross.gtn(0)))}static searchLowBitFromStart(e,t,n,i,o){const r=[...[...t.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...t.positiveTickArrayBitmap].map((e=>Mo.mergeTickArrayBitmap(e))),a=[];for(;n>=-7680;){const e=(n+7680)%512;if(r[Math.floor((n+7680)/512)].testn(e)&&a.push(n),n--,a.length===i)break}const s=Lo.tickCount(o);return a.map((e=>e*s))}static searchHightBitFromStart(e,t,n,i,o){const r=[...[...t.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...t.positiveTickArrayBitmap].map((e=>Mo.mergeTickArrayBitmap(e))),a=[];for(;n<7680;){const e=(n+7680)%512;if(r[Math.floor((n+7680)/512)].testn(e)&&a.push(n),n++,a.length===i)break}const s=Lo.tickCount(o);return a.map((e=>e*s))}static checkIsOutOfBoundary(e){return e<Gi||e>Yi}static nextInitTick(e,t,n,i){if(Lo.getArrayStartIndex(t,n)!=e.startTickIndex)return null;let o=Math.floor((t-e.startTickIndex)/n);if(i)for(;o>=0;){if(e.ticks[o].liquidityGross.gtn(0))return e.ticks[o];o-=1}else for(o+=1;o<Eo;){if(e.ticks[o].liquidityGross.gtn(0))return e.ticks[o];o+=1}return null}static firstInitializedTick(e,t){if(t){let t=Eo-1;for(;t>=0;){if(e.ticks[t].liquidityGross.gtn(0))return e.ticks[t];t-=1}}else{let t=0;for(;t<Eo;){if(e.ticks[t].liquidityGross.gtn(0))return e.ticks[t];t+=1}}throw Error(`firstInitializedTick check error: ${e} - ${t}`)}}const Vo=14;class _o{static maxTickInTickarrayBitmap(e){return e*Eo*Bo}static getBitmapTickBoundary(e,t){const n=this.maxTickInTickarrayBitmap(t);let i=Math.floor(Math.abs(e)/n);e<0&&Math.abs(e)%n!=0&&(i+=1);const o=n*i;return e<0?{minValue:-o,maxValue:-o+n}:{minValue:o,maxValue:o+n}}static nextInitializedTickArrayStartIndex(e,t,n,i){if(!Lo.checkIsValidStartIndex(t,n))throw Error("nextInitializedTickArrayStartIndex check error");const o=this.maxTickInTickarrayBitmap(n),r=i?t-Lo.tickCount(n):t+Lo.tickCount(n);if(r<-o||r>=o)return{isInit:!1,tickIndex:t};const a=n*Eo;let s=r/a+512;r<0&&r%a!=0&&s--;const c=Math.abs(s);if(i){const t=uo(1024,e.shln(1024-c-1));return null!==t?{isInit:!0,tickIndex:(c-t-512)*a}:{isInit:!1,tickIndex:-o}}{const t=mo(1024,e.shrn(c));return null!==t?{isInit:!0,tickIndex:(c+t-512)*a}:{isInit:!1,tickIndex:o-Lo.tickCount(n)}}}}class qo{static getBitmapOffset(e,t){if(!Lo.checkIsValidStartIndex(e,t))throw new Error("No enough initialized tickArray");this.checkExtensionBoundary(e,t);const n=_o.maxTickInTickarrayBitmap(t);let i=Math.floor(Math.abs(e)/n)-1;return e<0&&Math.abs(e)%n==0&&i--,i}static getBitmap(e,t,n){const i=this.getBitmapOffset(e,t);return e<0?{offset:i,tickarrayBitmap:n.negativeTickArrayBitmap[i]}:{offset:i,tickarrayBitmap:n.positiveTickArrayBitmap[i]}}static checkExtensionBoundary(e,t){const{positiveTickBoundary:n,negativeTickBoundary:i}=this.extensionTickBoundary(t);if(e>=i&&e<n)throw Error("checkExtensionBoundary -> InvalidTickArrayBoundary")}static extensionTickBoundary(e){const t=_o.maxTickInTickarrayBitmap(e),n=-t;if(Yi<=t)throw Error(`extensionTickBoundary check error: ${Yi}, ${t}`);if(n<=Gi)throw Error(`extensionTickBoundary check error: ${n}, ${Gi}`);return{positiveTickBoundary:t,negativeTickBoundary:n}}static checkTickArrayIsInit(e,t,n){const{tickarrayBitmap:i}=this.getBitmap(e,t,n),o=this.tickArrayOffsetInBitmap(e,t);return{isInitialized:Mo.mergeTickArrayBitmap(i).testn(o),startIndex:e}}static nextInitializedTickArrayFromOneBitmap(e,t,n,i){const o=Lo.tickCount(t),r=n?e-o:e+o,a=Lo.getArrayStartIndex(Gi,t),s=Lo.getArrayStartIndex(Yi,t);if(r<a||r>s)return{isInit:!1,tickIndex:r};const{tickarrayBitmap:c}=this.getBitmap(r,t,i);return this.nextInitializedTickArrayInBitmap(c,r,t,n)}static nextInitializedTickArrayInBitmap(e,t,n,i){const{minValue:o,maxValue:r}=_o.getBitmapTickBoundary(t,n),a=this.tickArrayOffsetInBitmap(t,n);if(i){const i=Mo.mergeTickArrayBitmap(e).shln(Bo-1-a),r=co(512,i)?null:ao(512,i);return null!==r?{isInit:!0,tickIndex:t-r*Lo.tickCount(n)}:{isInit:!1,tickIndex:o}}{const i=Mo.mergeTickArrayBitmap(e).shrn(a),o=co(512,i)?null:so(512,i);return null!==o?{isInit:!0,tickIndex:t+o*Lo.tickCount(n)}:{isInit:!1,tickIndex:r-Lo.tickCount(n)}}}static tickArrayOffsetInBitmap(e,t){const n=Math.abs(e)%_o.maxTickInTickarrayBitmap(t);let i=Math.floor(n/Lo.tickCount(t));return e<0&&0!=n&&(i=Bo-i),i}}const Uo=kn([Ft(8),Qt("bump"),dt("index"),rn(""),Zt("protocolFeeRate"),Zt("tradeFeeRate"),dt("tickSpacing"),Zt("fundFeeRate"),In(Zt(),1,"padding"),rn("fundOwner"),In(Jt(),3,"padding")]),Ko=kn([Zt("blockTimestamp"),$t("sqrtPriceX64"),$t("cumulativeTimePriceX64"),In($t(),1,"")]),xo=kn([Ft(8),cn("initialized"),rn("poolId"),In(Ko,1e3,"observations"),In($t(),5,"")]),No=kn([Qt("rewardState"),Jt("openTime"),Jt("endTime"),Jt("lastUpdateTime"),$t("emissionsPerSecondX64"),Jt("rewardTotalEmissioned"),Jt("rewardClaimed"),rn("tokenMint"),rn("tokenVault"),rn("creator"),$t("rewardGrowthGlobalX64")]),Wo=kn([Ft(8),Qt("bump"),rn("ammConfig"),rn("creator"),rn("mintA"),rn("mintB"),rn("vaultA"),rn("vaultB"),rn("observationId"),Qt("mintDecimalsA"),Qt("mintDecimalsB"),dt("tickSpacing"),$t("liquidity"),$t("sqrtPriceX64"),Ct("tickCurrent"),dt("observationIndex"),dt("observationUpdateDuration"),$t("feeGrowthGlobalX64A"),$t("feeGrowthGlobalX64B"),Jt("protocolFeesTokenA"),Jt("protocolFeesTokenB"),$t("swapInAmountTokenA"),$t("swapOutAmountTokenB"),$t("swapInAmountTokenB"),$t("swapOutAmountTokenA"),Qt("status"),In(Qt(),7,""),In(No,3,"rewardInfos"),In(Jt(),16,"tickArrayBitmap"),Jt("totalFeesTokenA"),Jt("totalFeesClaimedTokenA"),Jt("totalFeesTokenB"),Jt("totalFeesClaimedTokenB"),Jt("fundFeesTokenA"),Jt("fundFeesTokenB"),Jt("startTime"),In(Jt(),57,"padding")]),Fo=kn([$t("growthInsideLastX64"),Jt("rewardAmountOwed")]),Go=kn([Ft(8),Qt("bump"),rn("nftMint"),rn("poolId"),Ct("tickLower"),Ct("tickUpper"),$t("liquidity"),$t("feeGrowthInsideLastX64A"),$t("feeGrowthInsideLastX64B"),Jt("tokenFeesOwedA"),Jt("tokenFeesOwedB"),In(Fo,3,"rewardInfos"),In(Jt(),8,"")]),Yo=kn([Ft(8),Qt("bump"),rn("poolId"),Ct("tickLowerIndex"),Ct("tickUpperIndex"),$t("liquidity"),$t("feeGrowthInsideLastX64A"),$t("feeGrowthInsideLastX64B"),Jt("tokenFeesOwedA"),Jt("tokenFeesOwedB"),In($t(),3,"rewardGrowthInside"),In(Jt(),8,"")]),Xo=kn([Ct("tick"),nn("liquidityNet"),$t("liquidityGross"),$t("feeGrowthOutsideX64A"),$t("feeGrowthOutsideX64B"),In($t(),3,"rewardGrowthsOutsideX64"),In(Zt(),13,"")]),Ho=kn([Ft(8),rn("poolId"),Ct("startTickIndex"),In(Xo,Eo,"ticks"),Qt("initializedTickCount"),In(Qt(),115,"")]),zo=kn([Ft(329),In(rn(),100,"whitelistMints")]),jo=kn([Ft(8),rn("poolId"),In(In(Jt(),8),Vo,"positiveTickArrayBitmap"),In(In(Jt(),8),Vo,"negativeTickArrayBitmap")]);class Qo{static getOutputAmountAndRemainAccounts(e,t,n,i,o,r=!1){const a=n.equals(e.mintA.mint),s=[],{isExist:c,startIndex:u,nextAccountMeta:m}=this.getFirstInitializedTickArray(e,a);if(!c||void 0===u||!m)throw new Error("Invalid tick array");try{const t=this.preInitializedTickArrayStartIndex(e,a);if(t.isExist){const{publicKey:n}=ho(e.programId,e.id,t.nextStartIndex);s.push(n)}}catch(e){}s.push(m);const{allTrade:d,amountSpecifiedRemaining:l,amountCalculated:p,accounts:f,sqrtPriceX64:A,feeAmount:g}=ir.swapCompute(e.programId,e.id,t,e.tickArrayBitmap,e.exBitmapInfo,a,e.ammConfig.tradeFeeRate,e.liquidity,e.tickCurrent,e.tickSpacing,e.sqrtPriceX64,i,u,o,r);return s.push(...f),{allTrade:d,realTradeAmountIn:i.sub(l),expectedAmountOut:p.mul(Ui),remainingAccounts:s,executionPrice:A,feeAmount:g}}static getInputAmountAndRemainAccounts(e,t,n,i,o){const r=n.equals(e.mintB.mint),a=[],{isExist:s,startIndex:c,nextAccountMeta:u}=this.getFirstInitializedTickArray(e,r);if(!s||void 0===c||!u)throw new Error("Invalid tick array");try{const t=this.preInitializedTickArrayStartIndex(e,r);if(t.isExist){const{publicKey:n}=ho(e.programId,e.id,t.nextStartIndex);a.push(n)}}catch(e){}a.push(u);const{amountCalculated:m,accounts:d,sqrtPriceX64:l,feeAmount:p}=ir.swapCompute(e.programId,e.id,t,e.tickArrayBitmap,e.exBitmapInfo,r,e.ammConfig.tradeFeeRate,e.liquidity,e.tickCurrent,e.tickSpacing,e.sqrtPriceX64,i.mul(Ui),c,o);return a.push(...d),{expectedAmountIn:m,remainingAccounts:a,executionPrice:l,feeAmount:p}}static getFirstInitializedTickArray(e,t){const{isInitialized:n,startIndex:i}=Qo.isOverflowDefaultTickarrayBitmap(e.tickSpacing,[e.tickCurrent])?qo.checkTickArrayIsInit(Lo.getArrayStartIndex(e.tickCurrent,e.tickSpacing),e.tickSpacing,e.exBitmapInfo):Mo.checkTickArrayIsInitialized(Mo.mergeTickArrayBitmap(e.tickArrayBitmap),e.tickCurrent,e.tickSpacing);if(n){const{publicKey:t}=ho(e.programId,e.id,i);return{isExist:!0,startIndex:i,nextAccountMeta:t}}const{isExist:o,nextStartIndex:r}=this.nextInitializedTickArrayStartIndex(e,Lo.getArrayStartIndex(e.tickCurrent,e.tickSpacing),t);if(o){const{publicKey:t}=ho(e.programId,e.id,r);return{isExist:!0,startIndex:r,nextAccountMeta:t}}return{isExist:!1,nextAccountMeta:void 0,startIndex:void 0}}static preInitializedTickArrayStartIndex(e,t){const n=Math.floor(e.tickCurrent/Lo.tickCount(e.tickSpacing)),i=t?Mo.searchHightBitFromStart(e.tickArrayBitmap,e.exBitmapInfo,n+1,1,e.tickSpacing):Mo.searchLowBitFromStart(e.tickArrayBitmap,e.exBitmapInfo,n-1,1,e.tickSpacing);return i.length>0?{isExist:!0,nextStartIndex:i[0]}:{isExist:!1,nextStartIndex:0}}static nextInitializedTickArrayStartIndex(e,t,n){for(t=Lo.getArrayStartIndex(t,e.tickSpacing);;){const{isInit:i,tickIndex:o}=_o.nextInitializedTickArrayStartIndex(Mo.mergeTickArrayBitmap(e.tickArrayBitmap),t,e.tickSpacing,n);if(i)return{isExist:!0,nextStartIndex:o};t=o;const{isInit:r,tickIndex:a}=qo.nextInitializedTickArrayFromOneBitmap(t,e.tickSpacing,n,e.exBitmapInfo);if(r)return{isExist:!0,nextStartIndex:a};if((t=a)<Gi||t>Yi)return{isExist:!1,nextStartIndex:0}}}static async updatePoolRewardInfos({connection:e,apiPoolInfo:t,chainTime:n,poolLiquidity:i,rewardInfos:o}){var r,a,s;const c=[];for(let u=0;u<o.length;u++){const m=o[u],d=null!==(a=null===(r=t.rewardInfos[u])||void 0===r?void 0:r.programId)&&void 0!==a?a:null===(s=await e.getAccountInfo(m.tokenMint))||void 0===s?void 0:s.owner;if(void 0===d)throw Error("get new reward mint info error");const l=Object.assign(Object.assign({},m),{perSecond:Zo.x64ToDecimal(m.emissionsPerSecondX64),remainingRewards:void 0,tokenProgramId:new A.PublicKey(d)});if(l.tokenMint.equals(A.PublicKey.default))continue;if(n<=l.openTime.toNumber()||i.eq(ue)){c.push(l);continue}const p=new y.default(Math.min(l.endTime.toNumber(),n)),f=p.sub(l.lastUpdateTime),g=Zo.mulDivFloor(f,l.emissionsPerSecondX64,i),k=l.rewardGrowthGlobalX64.add(g),w=Zo.mulDivFloor(f,l.emissionsPerSecondX64,Ki),b=l.rewardTotalEmissioned.add(w);c.push(Object.assign(Object.assign({},l),{rewardGrowthGlobalX64:k,rewardTotalEmissioned:b,lastUpdateTime:p}))}return c}static isOverflowDefaultTickarrayBitmap(e,t){const{maxTickBoundary:n,minTickBoundary:i}=this.tickRange(e);for(const o of t){const t=Mo.getTickArrayStartIndexByTick(o,e);if(t>=n||t<i)return!0}return!1}static tickRange(e){let t=_o.maxTickInTickarrayBitmap(e),n=-t;return t>Yi&&(t=Yi),n<Gi&&(n=Gi),{maxTickBoundary:t,minTickBoundary:n}}static get_tick_array_offset(e,t){if(!Lo.checkIsValidStartIndex(e,t))throw new Error("No enough initialized tickArray");return e/Lo.tickCount(t)*Bo}}class Zo{static mulDivRoundingUp(e,t,n){const i=e.mul(t);let o=i.div(n);return i.mod(n).eq(ue)||(o=o.add(me)),o}static mulDivFloor(e,t,n){if(n.eq(ue))throw new Error("division by 0");return e.mul(t).div(n)}static mulDivCeil(e,t,n){if(n.eq(ue))throw new Error("division by 0");return e.mul(t).add(n.sub(me)).div(n)}static x64ToDecimal(e,t){return new Pi.default(e.toString()).div(Pi.default.pow(2,64)).toDecimalPlaces(t)}static decimalToX64(e){return new y.default(e.mul(Pi.default.pow(2,64)).floor().toFixed())}static wrappingSubU128(e,t){return e.add(xi).sub(t).mod(xi)}}function Jo(e,t){return $o(e.mul(t),64,256)}function $o(e,t,n){const i=e.toTwos(n).shrn(t);return i.imaskn(n-t+1),i.fromTwos(n-t)}class er{static sqrtPriceX64ToPrice(e,t,n){return Zo.x64ToDecimal(e).pow(2).mul(Pi.default.pow(10,t-n))}static priceToSqrtPriceX64(e,t,n){return Zo.decimalToX64(e.mul(Pi.default.pow(10,n-t)).sqrt())}static getNextSqrtPriceX64FromInput(e,t,n,i){if(!e.gt(ue))throw new Error("sqrtPriceX64 must greater than 0");if(!t.gt(ue))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,!0):this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,!0)}static getNextSqrtPriceX64FromOutput(e,t,n,i){if(!e.gt(ue))throw new Error("sqrtPriceX64 must greater than 0");if(!t.gt(ue))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,!1):this.getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,!1)}static getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,i){if(n.eq(ue))return e;const o=t.shln(Wi);if(i){const t=o,i=o.add(n.mul(e));return i.gte(t)?Zo.mulDivCeil(t,e,i):Zo.mulDivRoundingUp(t,me,t.div(e).add(n))}{const t=n.mul(e);if(!o.gt(t))throw new Error("getNextSqrtPriceFromTokenAmountARoundingUp,liquidityLeftShift must gt amountMulSqrtPrice");const i=o.sub(t);return Zo.mulDivCeil(o,e,i)}}static getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,i){const o=n.shln(Wi);if(i)return e.add(o.div(t));{const n=Zo.mulDivRoundingUp(o,me,t);if(!e.gt(n))throw new Error("getNextSqrtPriceFromTokenAmountBRoundingDown sqrtPriceX64 must gt amountDivLiquidity");return e.sub(n)}}static getSqrtPriceX64FromTick(e){if(!Number.isInteger(e))throw new Error("tick must be integer");if(e<Gi||e>Yi)throw new Error("tick must be in MIN_TICK and MAX_TICK");const t=e<0?-1*e:e;let n=0!=(1&t)?new y.default("18445821805675395072"):new y.default("18446744073709551616");return 0!=(2&t)&&(n=Jo(n,new y.default("18444899583751176192"))),0!=(4&t)&&(n=Jo(n,new y.default("18443055278223355904"))),0!=(8&t)&&(n=Jo(n,new y.default("18439367220385607680"))),0!=(16&t)&&(n=Jo(n,new y.default("18431993317065453568"))),0!=(32&t)&&(n=Jo(n,new y.default("18417254355718170624"))),0!=(64&t)&&(n=Jo(n,new y.default("18387811781193609216"))),0!=(128&t)&&(n=Jo(n,new y.default("18329067761203558400"))),0!=(256&t)&&(n=Jo(n,new y.default("18212142134806163456"))),0!=(512&t)&&(n=Jo(n,new y.default("17980523815641700352"))),0!=(1024&t)&&(n=Jo(n,new y.default("17526086738831433728"))),0!=(2048&t)&&(n=Jo(n,new y.default("16651378430235570176"))),0!=(4096&t)&&(n=Jo(n,new y.default("15030750278694412288"))),0!=(8192&t)&&(n=Jo(n,new y.default("12247334978884435968"))),0!=(16384&t)&&(n=Jo(n,new y.default("8131365268886854656"))),0!=(32768&t)&&(n=Jo(n,new y.default("3584323654725218816"))),0!=(65536&t)&&(n=Jo(n,new y.default("696457651848324352"))),0!=(131072&t)&&(n=Jo(n,new y.default("26294789957507116"))),0!=(262144&t)&&(n=Jo(n,new y.default("37481735321082"))),e>0&&(n=Fi.div(n)),n}static getTickFromPrice(e,t,n){return er.getTickFromSqrtPriceX64(er.priceToSqrtPriceX64(e,t,n))}static getTickFromSqrtPriceX64(e){if(e.gt(Hi)||e.lt(Xi))throw new Error("Provided sqrtPrice is not within the supported sqrtPrice range.");const t=e.bitLength()-1,n=function(e,t,n){const i=e.toTwos(128).shln(32);return i.imaskn(129),i.fromTwos(128)}(new y.default(t-64));let i=new y.default("8000000000000000","hex"),o=0,r=new y.default(0),a=t>=64?e.shrn(t-63):e.shln(63-t);for(;i.gt(new y.default(0))&&o<zi;){a=a.mul(a);const e=a.shrn(127);a=a.shrn(63+e.toNumber()),r=r.add(i.mul(e)),i=i.shrn(1),o+=1}const s=r.shrn(32),c=n.add(s).mul(new y.default(ji)),u=$o(c.sub(new y.default(Qi)),64,128).toNumber(),m=$o(c.add(new y.default(Zi)),64,128).toNumber();return u==m?u:er.getSqrtPriceX64FromTick(m).lte(e)?m:u}}class tr{static getTickWithPriceAndTickspacing(e,t,n,i){let o=er.getTickFromSqrtPriceX64(er.priceToSqrtPriceX64(e,n,i))/t;return o=o<0?Math.floor(o):Math.ceil(o),o*t}static roundPriceWithTickspacing(e,t,n,i){const o=tr.getTickWithPriceAndTickspacing(e,t,n,i),r=er.getSqrtPriceX64FromTick(o);return er.sqrtPriceX64ToPrice(r,n,i)}}class nr{static addDelta(e,t){return e.add(t)}static getTokenAmountAFromLiquidity(e,t,n,i){if(e.gt(t)&&([e,t]=[t,e]),!e.gt(ue))throw new Error("sqrtPriceX64A must greater than 0");const o=n.ushln(Wi),r=t.sub(e);return i?Zo.mulDivRoundingUp(Zo.mulDivCeil(o,r,t),me,e):Zo.mulDivFloor(o,r,t).div(e)}static getTokenAmountBFromLiquidity(e,t,n,i){if(e.gt(t)&&([e,t]=[t,e]),!e.gt(ue))throw new Error("sqrtPriceX64A must greater than 0");return i?Zo.mulDivCeil(n,t.sub(e),Ki):Zo.mulDivFloor(n,t.sub(e),Ki)}static getLiquidityFromTokenAmountA(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);const o=n.mul(e).mul(t),r=t.sub(e),a=o.div(r);return i?Zo.mulDivRoundingUp(a,me,Ni):a.shrn(Wi)}static getLiquidityFromTokenAmountB(e,t,n){return e.gt(t)&&([e,t]=[t,e]),Zo.mulDivFloor(n,Ni,t.sub(e))}static getLiquidityFromTokenAmounts(e,t,n,i,o){if(t.gt(n)&&([t,n]=[n,t]),e.lte(t))return nr.getLiquidityFromTokenAmountA(t,n,i,!1);if(e.lt(n)){const r=nr.getLiquidityFromTokenAmountA(e,n,i,!1),a=nr.getLiquidityFromTokenAmountB(t,e,o);return r.lt(a)?r:a}return nr.getLiquidityFromTokenAmountB(t,n,o)}static getAmountsFromLiquidity(e,t,n,i,o){return t.gt(n)&&([t,n]=[n,t]),e.lte(t)?{amountA:nr.getTokenAmountAFromLiquidity(t,n,i,o),amountB:new y.default(0)}:e.lt(n)?{amountA:nr.getTokenAmountAFromLiquidity(e,n,i,o),amountB:nr.getTokenAmountBFromLiquidity(t,e,i,o)}:{amountA:new y.default(0),amountB:nr.getTokenAmountBFromLiquidity(t,n,i,o)}}static getAmountsFromLiquidityWithSlippage(e,t,n,i,o,r,a){const{amountA:s,amountB:c}=nr.getAmountsFromLiquidity(e,t,n,i,r),u=o?1+a:1-a;return{amountSlippageA:new y.default(new Pi.default(s.toString()).mul(u).toFixed(0)),amountSlippageB:new y.default(new Pi.default(c.toString()).mul(u).toFixed(0))}}}class ir{static swapCompute(e,t,n,i,o,r,a,s,c,u,m,d,l,p,f=!1){if(d.eq(ue))throw new Error("amountSpecified must not be 0");if(p||(p=r?Xi.add(me):Hi.sub(me)),r){if(p.lt(Xi))throw new Error("sqrtPriceX64 must greater than MIN_SQRT_PRICE_X64");if(p.gte(m))throw new Error("sqrtPriceX64 must smaller than current")}else{if(p.gt(Hi))throw new Error("sqrtPriceX64 must smaller than MAX_SQRT_PRICE_X64");if(p.lte(m))throw new Error("sqrtPriceX64 must greater than current")}const A=d.gt(ue),g={amountSpecifiedRemaining:d,amountCalculated:ue,sqrtPriceX64:m,tick:c>l?Math.min(l+Lo.tickCount(u)-1,c):l,accounts:[],liquidity:s,feeAmount:new y.default(0)};let k=l,w=n[l];for(;!g.amountSpecifiedRemaining.eq(ue)&&!g.sqrtPriceX64.eq(p);){const s={};s.sqrtPriceStartX64=g.sqrtPriceX64;let c,m=Mo.nextInitTick(w,g.tick,u,r)||null,d=null;if(!(null==m?void 0:m.liquidityGross.gtn(0))){const a=Qo.nextInitializedTickArrayStartIndex({tickCurrent:g.tick,tickSpacing:u,tickArrayBitmap:i,exBitmapInfo:o},k,r);if(!a.isExist){if(f)return{allTrade:!1,amountSpecifiedRemaining:g.amountSpecifiedRemaining,amountCalculated:g.amountCalculated,feeAmount:g.feeAmount,sqrtPriceX64:g.sqrtPriceX64,liquidity:g.liquidity,tickCurrent:g.tick,accounts:g.accounts};throw Error("swapCompute LiquidityInsufficient")}k=a.nextStartIndex;const{publicKey:s}=ho(e,t,k);d=s,w=n[k];try{m=Mo.firstInitializedTick(w,r)}catch(e){throw Error("not found next tick info")}}if(s.tickNext=m.tick,s.initialized=m.liquidityGross.gtn(0),l!==k&&d&&(g.accounts.push(d),l=k),s.tickNext<Gi?s.tickNext=Gi:s.tickNext>Yi&&(s.tickNext=Yi),s.sqrtPriceNextX64=er.getSqrtPriceX64FromTick(s.tickNext),c=r&&s.sqrtPriceNextX64.lt(p)||!r&&s.sqrtPriceNextX64.gt(p)?p:s.sqrtPriceNextX64,[g.sqrtPriceX64,s.amountIn,s.amountOut,s.feeAmount]=ir.swapStepCompute(g.sqrtPriceX64,c,g.liquidity,g.amountSpecifiedRemaining,a),g.feeAmount=g.feeAmount.add(s.feeAmount),A?(g.amountSpecifiedRemaining=g.amountSpecifiedRemaining.sub(s.amountIn.add(s.feeAmount)),g.amountCalculated=g.amountCalculated.sub(s.amountOut)):(g.amountSpecifiedRemaining=g.amountSpecifiedRemaining.add(s.amountOut),g.amountCalculated=g.amountCalculated.add(s.amountIn.add(s.feeAmount))),g.sqrtPriceX64.eq(s.sqrtPriceNextX64)){if(s.initialized){let e=m.liquidityNet;r&&(e=e.mul(Ui)),g.liquidity=nr.addDelta(g.liquidity,e)}g.tick=r?s.tickNext-1:s.tickNext}else g.sqrtPriceX64!=s.sqrtPriceStartX64&&(g.tick=er.getTickFromSqrtPriceX64(g.sqrtPriceX64))}try{const{nextStartIndex:n,isExist:a}=Lo.nextInitializedTickArray(g.tick,u,r,i,o);a&&l!==n&&(g.accounts.push(ho(e,t,n).publicKey),l=n)}catch(e){}return{allTrade:!0,amountSpecifiedRemaining:ue,amountCalculated:g.amountCalculated,feeAmount:g.feeAmount,sqrtPriceX64:g.sqrtPriceX64,liquidity:g.liquidity,tickCurrent:g.tick,accounts:g.accounts}}static swapStepCompute(e,t,n,i,o){const r={sqrtPriceX64Next:new y.default(0),amountIn:new y.default(0),amountOut:new y.default(0),feeAmount:new y.default(0)},a=e.gte(t),s=i.gte(ue);if(s){const s=Zo.mulDivFloor(i,Ji.sub(new y.default(o.toString())),Ji);r.amountIn=a?nr.getTokenAmountAFromLiquidity(t,e,n,!0):nr.getTokenAmountBFromLiquidity(e,t,n,!0),s.gte(r.amountIn)?r.sqrtPriceX64Next=t:r.sqrtPriceX64Next=er.getNextSqrtPriceX64FromInput(e,n,s,a)}else r.amountOut=a?nr.getTokenAmountBFromLiquidity(t,e,n,!1):nr.getTokenAmountAFromLiquidity(e,t,n,!1),i.mul(Ui).gte(r.amountOut)?r.sqrtPriceX64Next=t:r.sqrtPriceX64Next=er.getNextSqrtPriceX64FromOutput(e,n,i.mul(Ui),a);const c=t.eq(r.sqrtPriceX64Next);return a?(c&&s||(r.amountIn=nr.getTokenAmountAFromLiquidity(r.sqrtPriceX64Next,e,n,!0)),c&&!s||(r.amountOut=nr.getTokenAmountBFromLiquidity(r.sqrtPriceX64Next,e,n,!1))):(r.amountIn=c&&s?r.amountIn:nr.getTokenAmountBFromLiquidity(e,r.sqrtPriceX64Next,n,!0),r.amountOut=c&&!s?r.amountOut:nr.getTokenAmountAFromLiquidity(e,r.sqrtPriceX64Next,n,!1)),!s&&r.amountOut.gt(i.mul(Ui))&&(r.amountOut=i.mul(Ui)),s&&!r.sqrtPriceX64Next.eq(t)?r.feeAmount=i.sub(r.amountIn):r.feeAmount=Zo.mulDivCeil(r.amountIn,new y.default(o),Ji.sub(new y.default(o))),[r.sqrtPriceX64Next,r.amountIn,r.amountOut,r.feeAmount]}}class or{static getfeeGrowthInside(e,t,n){let i=new y.default(0),o=new y.default(0);e.tickCurrent>=t.tick?(i=t.feeGrowthOutsideX64A,o=t.feeGrowthOutsideX64B):(i=e.feeGrowthGlobalX64A.sub(t.feeGrowthOutsideX64A),o=e.feeGrowthGlobalX64B.sub(t.feeGrowthOutsideX64B));let r=new y.default(0),a=new y.default(0);return e.tickCurrent<n.tick?(r=n.feeGrowthOutsideX64A,a=n.feeGrowthOutsideX64B):(r=e.feeGrowthGlobalX64A.sub(n.feeGrowthOutsideX64A),a=e.feeGrowthGlobalX64B.sub(n.feeGrowthOutsideX64B)),{feeGrowthInsideX64A:Zo.wrappingSubU128(Zo.wrappingSubU128(e.feeGrowthGlobalX64A,i),r),feeGrowthInsideBX64:Zo.wrappingSubU128(Zo.wrappingSubU128(e.feeGrowthGlobalX64B,o),a)}}static GetPositionFees(e,t,n,i){const{feeGrowthInsideX64A:o,feeGrowthInsideBX64:r}=this.getfeeGrowthInside(e,n,i),a=Zo.mulDivFloor(Zo.wrappingSubU128(o,t.feeGrowthInsideLastX64A),t.liquidity,Ki),s=t.tokenFeesOwedA.add(a),c=Zo.mulDivFloor(Zo.wrappingSubU128(r,t.feeGrowthInsideLastX64B),t.liquidity,Ki);return{tokenFeeAmountA:s,tokenFeeAmountB:t.tokenFeesOwedB.add(c)}}static GetPositionRewards(e,t,n,i){const o=[],r=this.getRewardGrowthInside(e.tickCurrent,n,i,e.rewardInfos);for(let e=0;e<r.length;e++){const n=r[e],i=t.rewardInfos[e],a=Zo.wrappingSubU128(n,i.growthInsideLastX64),s=Zo.mulDivFloor(a,t.liquidity,Ki),c=i.rewardAmountOwed.add(s);o.push(c)}return o}static getRewardGrowthInside(e,t,n,i){const o=[];for(let r=0;r<i.length;r++){let a=new y.default(0);a=t.liquidityGross.eqn(0)?i[r].rewardGrowthGlobalX64:e<t.tick?i[r].rewardGrowthGlobalX64.sub(t.rewardGrowthsOutsideX64[r]):t.rewardGrowthsOutsideX64[r];let s=new y.default(0);n.liquidityGross.eqn(0)||(s=e<n.tick?n.rewardGrowthsOutsideX64[r]:i[r].rewardGrowthGlobalX64.sub(n.rewardGrowthsOutsideX64[r])),o.push(Zo.wrappingSubU128(Zo.wrappingSubU128(i[r].rewardGrowthGlobalX64,a),s))}return o}}const rr=v.from("Clmm");class ar extends Dn{static makeMockPoolInfo({programId:e,mint1:t,mint2:n,ammConfig:i,createPoolInstructionSimpleAddress:o,initialPrice:r,startTime:a,owner:s}){const[c,u,m]=new y.default(t.mint.toBuffer()).gt(new y.default(n.mint.toBuffer()))?[n,t,new Pi.default(1).div(r)]:[t,n,r],d=er.priceToSqrtPriceX64(m,c.decimals,u.decimals);return{id:o.poolId,mintA:{programId:o.mintProgramIdA,mint:o.mintA,vault:o.mintAVault,decimals:c.decimals},mintB:{programId:o.mintProgramIdB,mint:o.mintB,vault:o.mintBVault,decimals:u.decimals},ammConfig:i,observationId:o.observationId,creator:s,programId:e,version:6,tickSpacing:i.tickSpacing,liquidity:ue,sqrtPriceX64:d,currentPrice:m,tickCurrent:0,observationIndex:0,observationUpdateDuration:0,feeGrowthGlobalX64A:ue,feeGrowthGlobalX64B:ue,protocolFeesTokenA:ue,protocolFeesTokenB:ue,swapInAmountTokenA:ue,swapOutAmountTokenB:ue,swapInAmountTokenB:ue,swapOutAmountTokenA:ue,tickArrayBitmap:[],rewardInfos:[],day:{volume:0,volumeFee:0,feeA:0,feeB:0,feeApr:0,rewardApr:{A:0,B:0,C:0},apr:0,priceMax:0,priceMin:0},week:{volume:0,volumeFee:0,feeA:0,feeB:0,feeApr:0,rewardApr:{A:0,B:0,C:0},apr:0,priceMax:0,priceMin:0},month:{volume:0,volumeFee:0,feeA:0,feeB:0,feeApr:0,rewardApr:{A:0,B:0,C:0},apr:0,priceMax:0,priceMin:0},tvl:0,lookupTableAccount:A.PublicKey.default,startTime:a.toNumber(),exBitmapInfo:{poolId:o.poolId,positiveTickArrayBitmap:Array.from({length:Vo},(()=>Array.from({length:8},(()=>new y.default(0))))),negativeTickArrayBitmap:Array.from({length:Vo},(()=>Array.from({length:8},(()=>new y.default(0)))))}}}static async makeCreatePoolInstructionSimple({makeTxVersion:e,connection:t,programId:n,owner:i,payer:o,mint1:r,mint2:a,ammConfig:s,initialPrice:c,startTime:u,computeBudgetConfig:m,lookupTableCache:d}){const[l,p,f]=new y.default(r.mint.toBuffer()).gt(new y.default(a.mint.toBuffer()))?[a,r,new Pi.default(1).div(c)]:[r,a,c],A=er.priceToSqrtPriceX64(f,l.decimals,p.decimals),g=await this.makeCreatePoolInstructions({connection:t,programId:n,owner:i,mintA:l,mintB:p,ammConfigId:s.id,initialPriceX64:A,startTime:u});return{address:Object.assign(Object.assign({},g.address),{mintA:l.mint,mintB:p.mint,mintProgramIdA:l.programId,mintProgramIdB:p.programId}),innerTransactions:await oe({connection:t,makeTxVersion:e,computeBudgetConfig:m,payer:o,innerTransaction:[g.innerTransaction],lookupTableCache:d})}}static async makeOpenPositionFromLiquidityInstructionSimple({makeTxVersion:e,connection:t,poolInfo:n,ownerInfo:i,amountMaxA:o,amountMaxB:r,tickLower:a,tickUpper:s,liquidity:c,associatedOnly:u=!0,checkCreateATAOwner:m=!1,withMetadata:d="create",getEphemeralSigners:l,computeBudgetConfig:p,lookupTableCache:f}){const A=[],g=[],y=[],k=[],w=[],b=i.useSOLBalance&&n.mintA.mint.equals(Ve.WSOL.mint),S=i.useSOLBalance&&n.mintB.mint.equals(Ve.WSOL.mint),T=await this._selectOrCreateTokenAccount({programId:n.mintA.programId,mint:n.mintA.mint,tokenAccounts:b?[]:i.tokenAccounts,owner:i.wallet,createInfo:b||o.eq(ue)?{connection:t,payer:i.feePayer,amount:o,frontInstructions:A,endInstructions:g,frontInstructionsType:y,endInstructionsType:k,signers:w}:void 0,associatedOnly:!b&&u,checkCreateATAOwner:m}),I=await this._selectOrCreateTokenAccount({programId:n.mintB.programId,mint:n.mintB.mint,tokenAccounts:S?[]:i.tokenAccounts,owner:i.wallet,createInfo:S||r.eq(ue)?{connection:t,payer:i.feePayer,amount:r,frontInstructions:A,endInstructions:g,frontInstructionsType:y,endInstructionsType:k,signers:w}:void 0,associatedOnly:!S&&u,checkCreateATAOwner:m});rr.assertArgument(void 0!==T&&void 0!==I,"cannot found target token accounts","tokenAccounts",i.tokenAccounts);const h=await this.makeOpenPositionFromLiquidityInstructions({poolInfo:n,ownerInfo:Object.assign(Object.assign({},i),{tokenAccountA:T,tokenAccountB:I}),tickLower:a,tickUpper:s,liquidity:c,amountMaxA:o,amountMaxB:r,withMetadata:d,getEphemeralSigners:l});return{address:h.address,innerTransactions:await oe({connection:t,makeTxVersion:e,computeBudgetConfig:p,payer:i.feePayer,innerTransaction:[{instructionTypes:y,instructions:A,signers:w},h.innerTransaction,{instructionTypes:k,instructions:g,signers:[]}],lookupTableCache:f})}}static async makeOpenPositionFromBaseInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,tickLower:i,tickUpper:o,base:r,baseAmount:a,otherAmountMax:s,associatedOnly:c=!0,checkCreateATAOwner:u=!1,computeBudgetConfig:m,withMetadata:d="create",makeTxVersion:l,lookupTableCache:p,getEphemeralSigners:f}){const A=[],g=[],y=[],k=[],w=[],b=n.useSOLBalance&&t.mintA.mint.equals(Ve.WSOL.mint),S=n.useSOLBalance&&t.mintB.mint.equals(Ve.WSOL.mint),T=await this._selectOrCreateTokenAccount({programId:t.mintA.programId,mint:t.mintA.mint,tokenAccounts:b?[]:n.tokenAccounts,owner:n.wallet,createInfo:b?{connection:e,payer:n.feePayer,amount:"MintA"===r?a:s,frontInstructions:A,endInstructions:g,frontInstructionsType:y,endInstructionsType:k,signers:w}:void 0,associatedOnly:!b&&c,checkCreateATAOwner:u}),I=await this._selectOrCreateTokenAccount({programId:t.mintB.programId,mint:t.mintB.mint,tokenAccounts:S?[]:n.tokenAccounts,owner:n.wallet,createInfo:S?{connection:e,payer:n.feePayer,amount:"MintA"===r?s:a,frontInstructions:A,endInstructions:g,frontInstructionsType:y,endInstructionsType:k,signers:w}:void 0,associatedOnly:!S&&c,checkCreateATAOwner:u});rr.assertArgument(void 0!==T&&void 0!==I,"cannot found target token accounts","tokenAccounts",n.tokenAccounts);const h=await this.makeOpenPositionFromBaseInstructions({poolInfo:t,ownerInfo:Object.assign(Object.assign({},n),{tokenAccountA:T,tokenAccountB:I}),tickLower:i,tickUpper:o,base:r,baseAmount:a,otherAmountMax:s,withMetadata:d,getEphemeralSigners:f});return{address:h.address,innerTransactions:await oe({connection:e,makeTxVersion:l,computeBudgetConfig:m,payer:n.feePayer,innerTransaction:[{instructionTypes:y,instructions:A,signers:w},h.innerTransaction,{instructionTypes:k,instructions:g,signers:[]}],lookupTableCache:p})}}static async makeIncreasePositionFromLiquidityInstructionSimple({connection:e,poolInfo:t,ownerPosition:n,ownerInfo:i,amountMaxA:o,amountMaxB:r,liquidity:a,associatedOnly:s=!0,checkCreateATAOwner:c=!1,computeBudgetConfig:u,makeTxVersion:m,lookupTableCache:d}){const l=[],p=[],f=[],A=[],g=[],y=i.useSOLBalance&&t.mintA.mint.equals(Ve.WSOL.mint),k=i.useSOLBalance&&t.mintB.mint.equals(Ve.WSOL.mint),w=await this._selectOrCreateTokenAccount({programId:t.mintA.programId,mint:t.mintA.mint,tokenAccounts:y?[]:i.tokenAccounts,owner:i.wallet,createInfo:y?{connection:e,payer:i.feePayer,amount:o,frontInstructions:l,endInstructions:p,frontInstructionsType:f,endInstructionsType:A,signers:g}:void 0,associatedOnly:!y&&s,checkCreateATAOwner:c}),b=await this._selectOrCreateTokenAccount({programId:t.mintB.programId,mint:t.mintB.mint,tokenAccounts:k?[]:i.tokenAccounts,owner:i.wallet,createInfo:k?{connection:e,payer:i.feePayer,amount:r,frontInstructions:l,endInstructions:p,frontInstructionsType:f,endInstructionsType:A,signers:g}:void 0,associatedOnly:!k&&s,checkCreateATAOwner:c});rr.assertArgument(!!w||!!b,"cannot found target token accounts","tokenAccounts",i.tokenAccounts);const S=this.makeIncreasePositionFromLiquidityInstructions({poolInfo:t,ownerPosition:n,ownerInfo:{wallet:i.wallet,tokenAccountA:w,tokenAccountB:b},liquidity:a,amountMaxA:o,amountMaxB:r});return{address:S.address,innerTransactions:await oe({connection:e,makeTxVersion:m,computeBudgetConfig:u,payer:i.feePayer,innerTransaction:[{instructionTypes:f,instructions:l,signers:g},S.innerTransaction,{instructionTypes:A,instructions:p,signers:[]}],lookupTableCache:d})}}static async makeIncreasePositionFromBaseInstructionSimple({connection:e,poolInfo:t,ownerPosition:n,ownerInfo:i,base:o,baseAmount:r,otherAmountMax:a,associatedOnly:s=!0,checkCreateATAOwner:c=!1,computeBudgetConfig:u,makeTxVersion:m,lookupTableCache:d}){const l=[],p=[],f=[],A=[],g=[],y=i.useSOLBalance&&t.mintA.mint.equals(Ve.WSOL.mint),k=i.useSOLBalance&&t.mintB.mint.equals(Ve.WSOL.mint),w=await this._selectOrCreateTokenAccount({programId:t.mintA.programId,mint:t.mintA.mint,tokenAccounts:y?[]:i.tokenAccounts,owner:i.wallet,createInfo:y?{connection:e,payer:i.feePayer,amount:"MintA"===o?r:a,frontInstructions:l,endInstructions:p,frontInstructionsType:f,endInstructionsType:A,signers:g}:void 0,associatedOnly:!y&&s,checkCreateATAOwner:c}),b=await this._selectOrCreateTokenAccount({programId:t.mintB.programId,mint:t.mintB.mint,tokenAccounts:k?[]:i.tokenAccounts,owner:i.wallet,createInfo:k?{connection:e,payer:i.feePayer,amount:"MintA"===o?a:r,frontInstructions:l,endInstructions:p,frontInstructionsType:f,endInstructionsType:A,signers:g}:void 0,associatedOnly:!k&&s,checkCreateATAOwner:c});rr.assertArgument(!!w||!!b,"cannot found target token accounts","tokenAccounts",i.tokenAccounts);const S=this.makeIncreasePositionFromBaseInstructions({poolInfo:t,ownerPosition:n,ownerInfo:{wallet:i.wallet,tokenAccountA:w,tokenAccountB:b},base:o,baseAmount:r,otherAmountMax:a});return{address:S.address,innerTransactions:await oe({connection:e,makeTxVersion:m,computeBudgetConfig:u,payer:i.feePayer,innerTransaction:[{instructionTypes:f,instructions:l,signers:g},S.innerTransaction,{instructionTypes:A,instructions:p,signers:[]}],lookupTableCache:d})}}static async makeDecreaseLiquidityInstructionSimple({connection:e,poolInfo:t,ownerPosition:n,ownerInfo:i,liquidity:o,amountMinA:r,amountMinB:a,associatedOnly:s=!0,checkCreateATAOwner:c=!1,computeBudgetConfig:u,makeTxVersion:m,lookupTableCache:d}){const l=[],p=[],f=[],A=[],g=[],y=i.useSOLBalance&&t.mintA.mint.equals(Ve.WSOL.mint),k=i.useSOLBalance&&t.mintB.mint.equals(Ve.WSOL.mint),w=await this._selectOrCreateTokenAccount({programId:t.mintA.programId,mint:t.mintA.mint,tokenAccounts:y?[]:i.tokenAccounts,owner:i.wallet,createInfo:{connection:e,payer:i.feePayer,amount:0,frontInstructions:l,frontInstructionsType:f,endInstructions:y?p:[],endInstructionsType:y?A:[],signers:g},associatedOnly:!y&&s,checkCreateATAOwner:c}),b=await this._selectOrCreateTokenAccount({programId:t.mintB.programId,mint:t.mintB.mint,tokenAccounts:k?[]:i.tokenAccounts,owner:i.wallet,createInfo:{connection:e,payer:i.feePayer,amount:0,frontInstructions:l,frontInstructionsType:f,endInstructions:k?p:[],endInstructionsType:k?A:[],signers:g},associatedOnly:!k&&s,checkCreateATAOwner:c}),S=[];for(const n of t.rewardInfos){const o=i.useSOLBalance&&n.tokenMint.equals(Ve.WSOL.mint),r=n.tokenMint.equals(t.mintA.mint)?w:n.tokenMint.equals(t.mintB.mint)?b:await this._selectOrCreateTokenAccount({programId:n.tokenProgramId,mint:n.tokenMint,tokenAccounts:o?[]:i.tokenAccounts,owner:i.wallet,createInfo:{connection:e,payer:i.feePayer,amount:0,frontInstructions:l,frontInstructionsType:f,endInstructions:o?p:[],endInstructionsType:o?A:[],signers:g},associatedOnly:!o&&s,checkCreateATAOwner:c});S.push(r)}rr.assertArgument(!!w||!!b,"cannot found target token accounts","tokenAccounts",i.tokenAccounts);const T=this.makeDecreaseLiquidityInstructions({poolInfo:t,ownerPosition:n,ownerInfo:{wallet:i.wallet,tokenAccountA:w,tokenAccountB:b,rewardAccounts:S},liquidity:o,amountMinA:r,amountMinB:a}),I=i.closePosition?this.makeClosePositionInstructions({poolInfo:t,ownerInfo:i,ownerPosition:n}):{address:{},innerTransaction:{instructions:[],signers:[],instructionTypes:[]}};return{address:T.address,innerTransactions:await oe({connection:e,makeTxVersion:m,computeBudgetConfig:u,payer:i.feePayer,innerTransaction:[{instructionTypes:f,instructions:l,signers:g},T.innerTransaction,{instructionTypes:A,instructions:p,signers:[]},I.innerTransaction],lookupTableCache:d})}}static async makeSwapBaseInInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,inputMint:i,amountIn:o,amountOutMin:r,priceLimit:a,remainingAccounts:s,associatedOnly:c=!0,checkCreateATAOwner:u=!1,computeBudgetConfig:m,makeTxVersion:d,lookupTableCache:l}){const p=[],f=[],A=[],g=[],y=[];let k;k=!a||a.equals(new Pi.default(0))?i.equals(t.mintA.mint)?Xi.add(me):Hi.sub(me):er.priceToSqrtPriceX64(a,t.mintA.decimals,t.mintB.decimals);const w=t.mintA.mint.equals(i),b=n.useSOLBalance&&t.mintA.mint.equals(Ve.WSOL.mint),S=n.useSOLBalance&&t.mintB.mint.equals(Ve.WSOL.mint),T=await this._selectOrCreateTokenAccount({programId:t.mintA.programId,mint:t.mintA.mint,tokenAccounts:b?[]:n.tokenAccounts,owner:n.wallet,createInfo:b||!w?{connection:e,payer:n.feePayer,amount:w?o:0,frontInstructions:p,endInstructions:f,frontInstructionsType:A,endInstructionsType:g,signers:y}:void 0,associatedOnly:!b&&c,checkCreateATAOwner:u}),I=await this._selectOrCreateTokenAccount({programId:t.mintB.programId,mint:t.mintB.mint,tokenAccounts:S?[]:n.tokenAccounts,owner:n.wallet,createInfo:S||w?{connection:e,payer:n.feePayer,amount:w?0:o,frontInstructions:p,endInstructions:f,frontInstructionsType:A,endInstructionsType:g,signers:y}:void 0,associatedOnly:!S&&c,checkCreateATAOwner:u});rr.assertArgument(!!T||!!I,"cannot found target token accounts","tokenAccounts",n.tokenAccounts);const h=this.makeSwapBaseInInstructions({poolInfo:t,ownerInfo:{wallet:n.wallet,tokenAccountA:T,tokenAccountB:I},inputMint:i,amountIn:o,amountOutMin:r,sqrtPriceLimitX64:k,remainingAccounts:s});return{address:h.address,innerTransactions:await oe({connection:e,makeTxVersion:d,computeBudgetConfig:m,payer:n.feePayer,innerTransaction:[{instructionTypes:A,instructions:p,signers:y},h.innerTransaction,{instructionTypes:g,instructions:f,signers:[]}],lookupTableCache:l})}}static async makeSwapBaseOutInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,outputMint:i,amountOut:o,amountInMax:r,priceLimit:a,remainingAccounts:s,associatedOnly:c=!0,checkCreateATAOwner:u=!1,computeBudgetConfig:m,makeTxVersion:d,lookupTableCache:l}){const p=[],f=[],A=[],g=[],y=[];let k;k=!a||a.equals(new Pi.default(0))?i.equals(t.mintB.mint)?Xi.add(me):Hi.sub(me):er.priceToSqrtPriceX64(a,t.mintA.decimals,t.mintB.decimals);const w=t.mintA.mint.equals(i),b=n.useSOLBalance&&t.mintA.mint.equals(Ve.WSOL.mint),S=n.useSOLBalance&&t.mintB.mint.equals(Ve.WSOL.mint),T=await this._selectOrCreateTokenAccount({programId:t.mintA.programId,mint:t.mintA.mint,tokenAccounts:b?[]:n.tokenAccounts,owner:n.wallet,createInfo:b||!w?{connection:e,payer:n.feePayer,amount:w?r:0,frontInstructions:p,endInstructions:f,frontInstructionsType:A,endInstructionsType:g,signers:y}:void 0,associatedOnly:!b&&c,checkCreateATAOwner:u}),I=await this._selectOrCreateTokenAccount({programId:t.mintB.programId,mint:t.mintB.mint,tokenAccounts:S?[]:n.tokenAccounts,owner:n.wallet,createInfo:S||w?{connection:e,payer:n.feePayer,amount:w?0:r,frontInstructions:p,endInstructions:f,frontInstructionsType:A,endInstructionsType:g,signers:y}:void 0,associatedOnly:!S&&c,checkCreateATAOwner:u});rr.assertArgument(!!T||!!I,"cannot found target token accounts","tokenAccounts",n.tokenAccounts);const h=this.makeSwapBaseOutInstructions({poolInfo:t,ownerInfo:{wallet:n.wallet,tokenAccountA:T,tokenAccountB:I},outputMint:i,amountOut:o,amountInMax:r,sqrtPriceLimitX64:k,remainingAccounts:s});return{address:h.address,innerTransactions:await oe({connection:e,makeTxVersion:d,computeBudgetConfig:m,payer:n.feePayer,innerTransaction:[{instructionTypes:A,instructions:p,signers:y},h.innerTransaction,{instructionTypes:g,instructions:f,signers:[]}],lookupTableCache:l})}}static async makeCLosePositionInstructionSimple({poolInfo:e,ownerPosition:t,ownerInfo:n,makeTxVersion:i,lookupTableCache:o,connection:r}){const a=this.makeClosePositionInstructions({poolInfo:e,ownerInfo:n,ownerPosition:t});return{address:a.address,innerTransactions:await oe({connection:r,makeTxVersion:i,computeBudgetConfig:void 0,payer:n.feePayer,innerTransaction:[a.innerTransaction],lookupTableCache:o})}}static async makeInitRewardInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,rewardInfo:i,chainTime:o,associatedOnly:r=!0,checkCreateATAOwner:a=!1,makeTxVersion:s,lookupTableCache:c}){rr.assertArgument(i.endTime>i.openTime,"reward time error","rewardInfo",i),rr.assertArgument(i.openTime>o,"reward must be paid later","rewardInfo",i);const u=[],m=[],d=[],l=[],p=[],f=n.useSOLBalance&&i.mint.equals(Ve.WSOL.mint),A=i.perSecond.mul(i.endTime-i.openTime),g=await this._selectOrCreateTokenAccount({programId:i.programId,mint:i.mint,tokenAccounts:f?[]:n.tokenAccounts,owner:n.wallet,createInfo:f?{connection:e,payer:n.feePayer,amount:new y.default(new Pi.default(A.toFixed(0)).gte(A)?A.toFixed(0):A.add(1).toFixed(0)),frontInstructions:u,endInstructions:m,frontInstructionsType:d,endInstructionsType:l,signers:p}:void 0,associatedOnly:!f&&r,checkCreateATAOwner:a});rr.assertArgument(g,"no money","ownerRewardAccount",n.tokenAccounts);const k=this.makeInitRewardInstructions({poolInfo:t,ownerInfo:{wallet:n.wallet,tokenAccount:g},rewardInfo:{programId:i.programId,mint:i.mint,openTime:i.openTime,endTime:i.endTime,emissionsPerSecondX64:Zo.decimalToX64(i.perSecond)}});return{address:k.address,innerTransactions:await oe({connection:e,makeTxVersion:s,computeBudgetConfig:void 0,payer:n.feePayer,innerTransaction:[{instructionTypes:d,instructions:u,signers:p},k.innerTransaction,{instructionTypes:l,instructions:m,signers:[]}],lookupTableCache:c})}}static async makeInitRewardsInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,rewardInfos:i,associatedOnly:o=!0,checkCreateATAOwner:r=!1,computeBudgetConfig:a,makeTxVersion:s,lookupTableCache:c}){for(const e of i)rr.assertArgument(e.endTime>e.openTime,"reward time error","rewardInfo",e);const u=[],m=[],d=[],l=[],p=[],f=[];for(const a of i){const i=n.useSOLBalance&&a.mint.equals(Ve.WSOL.mint),s=a.perSecond.mul(a.endTime-a.openTime),c=await this._selectOrCreateTokenAccount({programId:a.programId,mint:a.mint,tokenAccounts:i?[]:n.tokenAccounts,owner:n.wallet,createInfo:i?{connection:e,payer:n.feePayer,amount:new y.default(new Pi.default(s.toFixed(0)).gte(s)?s.toFixed(0):s.add(1).toFixed(0)),frontInstructions:u,endInstructions:m,frontInstructionsType:d,endInstructionsType:l,signers:f}:void 0,associatedOnly:!i&&o,checkCreateATAOwner:r});rr.assertArgument(c,"no money","ownerRewardAccount",n.tokenAccounts),p.push(this.makeInitRewardInstructions({poolInfo:t,ownerInfo:{wallet:n.wallet,tokenAccount:c},rewardInfo:{programId:a.programId,mint:a.mint,openTime:a.openTime,endTime:a.endTime,emissionsPerSecondX64:Zo.decimalToX64(a.perSecond)}}))}let A={};for(const e of p)A=Object.assign(Object.assign({},A),e.address);return{address:A,innerTransactions:await oe({connection:e,makeTxVersion:s,computeBudgetConfig:a,payer:n.feePayer,innerTransaction:[{instructionTypes:d,instructions:u,signers:f},...p.map((e=>e.innerTransaction)),{instructionTypes:l,instructions:m,signers:[]}],lookupTableCache:c})}}static async makeSetRewardInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,rewardInfo:i,chainTime:o,associatedOnly:r=!0,checkCreateATAOwner:a=!1,makeTxVersion:s,lookupTableCache:c}){rr.assertArgument(i.endTime>i.openTime,"reward time error","rewardInfo",i),rr.assertArgument(i.openTime>o,"reward must be paid later","rewardInfo",i);const u=[],m=[],d=[],l=[],p=[],f=n.useSOLBalance&&i.mint.equals(Ve.WSOL.mint),A=await this._selectOrCreateTokenAccount({programId:i.programId,mint:i.mint,tokenAccounts:f?[]:n.tokenAccounts,owner:n.wallet,createInfo:f?{connection:e,payer:n.feePayer,amount:new y.default(new Pi.default(i.perSecond.sub(i.endTime-i.openTime).toFixed(0)).gte(i.perSecond.sub(i.endTime-i.openTime))?i.perSecond.sub(i.endTime-i.openTime).toFixed(0):i.perSecond.sub(i.endTime-i.openTime).add(1).toFixed(0)),frontInstructions:u,endInstructions:m,frontInstructionsType:d,endInstructionsType:l,signers:p}:void 0,associatedOnly:!f&&r,checkCreateATAOwner:a});rr.assertArgument(A,"no money","ownerRewardAccount",n.tokenAccounts);const g=this.makeSetRewardInstructions({poolInfo:t,ownerInfo:{wallet:n.wallet,tokenAccount:A},rewardInfo:{mint:i.mint,openTime:i.openTime,endTime:i.endTime,emissionsPerSecondX64:Zo.decimalToX64(i.perSecond)}});return{address:g.address,innerTransactions:await oe({connection:e,makeTxVersion:s,computeBudgetConfig:void 0,payer:n.feePayer,innerTransaction:[{instructionTypes:d,instructions:u,signers:p},g.innerTransaction,{instructionTypes:l,instructions:m,signers:[]}],lookupTableCache:c})}}static async makeSetRewardsInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,rewardInfos:i,chainTime:o,associatedOnly:r=!0,checkCreateATAOwner:a=!1,computeBudgetConfig:s,makeTxVersion:c,lookupTableCache:u}){const m=[],d=[],l=[],p=[],f=[],A=[];for(const s of i){rr.assertArgument(s.endTime>s.openTime,"reward time error","rewardInfo",s),rr.assertArgument(s.openTime>o,"reward must be paid later","rewardInfo",s);const i=n.useSOLBalance&&s.mint.equals(Ve.WSOL.mint),c=await this._selectOrCreateTokenAccount({programId:s.programId,mint:s.mint,tokenAccounts:i?[]:n.tokenAccounts,owner:n.wallet,createInfo:i?{connection:e,payer:n.feePayer,amount:new y.default(new Pi.default(s.perSecond.sub(s.endTime-s.openTime).toFixed(0)).gte(s.perSecond.sub(s.endTime-s.openTime))?s.perSecond.sub(s.endTime-s.openTime).toFixed(0):s.perSecond.sub(s.endTime-s.openTime).add(1).toFixed(0)),frontInstructions:m,endInstructions:d,frontInstructionsType:l,endInstructionsType:p,signers:A}:void 0,associatedOnly:!i&&r,checkCreateATAOwner:a});rr.assertArgument(c,"no money","ownerRewardAccount",n.tokenAccounts),f.push(this.makeSetRewardInstructions({poolInfo:t,ownerInfo:{wallet:n.wallet,tokenAccount:c},rewardInfo:{mint:s.mint,openTime:s.openTime,endTime:s.endTime,emissionsPerSecondX64:Zo.decimalToX64(s.perSecond)}}))}let g={};for(const e of f)g=Object.assign(Object.assign({},g),e.address);return{address:g,innerTransactions:await oe({connection:e,makeTxVersion:c,computeBudgetConfig:s,payer:n.feePayer,innerTransaction:[{instructionTypes:l,instructions:m,signers:A},...f.map((e=>e.innerTransaction)),{instructionTypes:p,instructions:d,signers:[]}],lookupTableCache:u})}}static async makeCollectRewardInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,rewardMint:i,associatedOnly:o=!0,checkCreateATAOwner:r=!1,computeBudgetConfig:a,makeTxVersion:s,lookupTableCache:c}){const u=[],m=[],d=[],l=[],p=[],f=t.rewardInfos.find((e=>e.tokenMint.equals(i)));if(rr.assertArgument(void 0!==f,"reward mint error","not found reward mint",i),void 0===f)throw Error("reward mint error");const A=n.useSOLBalance&&i.equals(Ve.WSOL.mint),g=await this._selectOrCreateTokenAccount({programId:f.tokenProgramId,mint:i,tokenAccounts:A?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:u,endInstructions:A?m:[],frontInstructionsType:d,endInstructionsType:l,signers:p},associatedOnly:!A&&o,checkCreateATAOwner:r});rr.assertArgument(g,"no money","ownerRewardAccount",n.tokenAccounts);const y=this.makeCollectRewardInstructions({poolInfo:t,ownerInfo:{wallet:n.wallet,tokenAccount:g},rewardMint:i});return{address:y.address,innerTransactions:await oe({connection:e,makeTxVersion:s,computeBudgetConfig:a,payer:n.feePayer,innerTransaction:[{instructionTypes:d,instructions:u,signers:p},y.innerTransaction,{instructionTypes:l,instructions:m,signers:[]}],lookupTableCache:c})}}static async makeCollectRewardsInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,rewardMints:i,associatedOnly:o=!0,checkCreateATAOwner:r=!1,computeBudgetConfig:a,makeTxVersion:s,lookupTableCache:c}){const u=[],m=[],d=[],l=[],p=[],f=[];for(const a of i){const i=t.rewardInfos.find((e=>e.tokenMint.equals(a)));if(rr.assertArgument(void 0!==i,"reward mint error","not found reward mint",a),void 0===i)throw Error("reward mint error");const s=n.useSOLBalance&&a.equals(Ve.WSOL.mint),c=await this._selectOrCreateTokenAccount({programId:i.tokenProgramId,mint:a,tokenAccounts:s?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:u,endInstructions:s?m:[],signers:f,frontInstructionsType:d,endInstructionsType:l},associatedOnly:!s&&o,checkCreateATAOwner:r});rr.assertArgument(c,"no money","ownerRewardAccount",n.tokenAccounts),p.push(this.makeCollectRewardInstructions({poolInfo:t,ownerInfo:{wallet:n.wallet,tokenAccount:c},rewardMint:a}))}let A={};for(const e of p)A=Object.assign(Object.assign({},A),e.address);return{address:A,innerTransactions:await oe({connection:e,makeTxVersion:s,computeBudgetConfig:a,payer:n.feePayer,innerTransaction:[{instructionTypes:d,instructions:u,signers:f},...p.map((e=>e.innerTransaction)),{instructionTypes:l,instructions:m,signers:[]}],lookupTableCache:c})}}static async makeHarvestAllRewardInstructionSimple({connection:e,fetchPoolInfos:t,ownerInfo:n,associatedOnly:i=!0,checkCreateATAOwner:o=!1,makeTxVersion:r,lookupTableCache:a}){var s,c,u;const m={};for(const e of n.tokenAccounts)i?Cn(n.wallet,e.accountInfo.mint,e.programId).publicKey.equals(e.pubkey)&&(m[e.accountInfo.mint.toString()]=e.pubkey):m[e.accountInfo.mint.toString()]=e.pubkey;const d=[],l=[],p=[],f=[],A=[],g=[];for(const r of Object.values(t)){if(void 0===r.positionAccount)continue;if(!r.positionAccount.find((e=>!e.tokenFeeAmountA.isZero()||!e.tokenFeeAmountB.isZero()||e.rewardInfos.find((e=>!e.pendingReward.isZero())))))continue;const t=r.state,a=n.useSOLBalance&&t.mintA.mint.equals(Ve.WSOL.mint),y=n.useSOLBalance&&t.mintB.mint.equals(Ve.WSOL.mint),k=null!==(s=m[t.mintA.mint.toString()])&&void 0!==s?s:await this._selectOrCreateTokenAccount({programId:t.mintA.programId,mint:t.mintA.mint,tokenAccounts:a?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:d,frontInstructionsType:p,endInstructions:a?l:[],endInstructionsType:a?f:[],signers:g},associatedOnly:!a&&i,checkCreateATAOwner:o}),w=null!==(c=m[t.mintB.mint.toString()])&&void 0!==c?c:await this._selectOrCreateTokenAccount({programId:t.mintB.programId,mint:t.mintB.mint,tokenAccounts:y?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:d,frontInstructionsType:p,endInstructions:y?l:[],endInstructionsType:y?f:[],signers:g},associatedOnly:!y&&i,checkCreateATAOwner:o});m[t.mintA.mint.toString()]=k,m[t.mintB.mint.toString()]=w;const b=[];for(const r of t.rewardInfos){const t=n.useSOLBalance&&r.tokenMint.equals(Ve.WSOL.mint),a=null!==(u=m[r.tokenMint.toString()])&&void 0!==u?u:await this._selectOrCreateTokenAccount({programId:r.tokenProgramId,mint:r.tokenMint,tokenAccounts:t?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.feePayer,amount:0,frontInstructions:d,endInstructions:t?l:[],frontInstructionsType:p,endInstructionsType:f,signers:g},associatedOnly:!t&&i,checkCreateATAOwner:o});m[r.tokenMint.toString()]=a,b.push(a)}for(const e of r.positionAccount)A.push(this.makeDecreaseLiquidityInstructions({poolInfo:t,ownerPosition:e,ownerInfo:{wallet:n.wallet,tokenAccountA:k,tokenAccountB:w,rewardAccounts:b},liquidity:ue,amountMinA:ue,amountMinB:ue}))}return{address:{},innerTransactions:await oe({connection:e,makeTxVersion:r,computeBudgetConfig:void 0,payer:n.feePayer,innerTransaction:[{instructionTypes:p,instructions:d,signers:g},...A.map((e=>e.innerTransaction)),{instructionTypes:f,instructions:l,signers:[]}],lookupTableCache:a})}}static async makeCreatePoolInstructions({connection:e,programId:t,owner:n,mintA:i,mintB:o,ammConfigId:r,initialPriceX64:a,startTime:s}){const c=Ln({fromPublicKey:n,programId:t}),u=So(t,r,i.mint,o.mint).publicKey,m=To(t,u,i.mint).publicKey,d=To(t,u,o.mint).publicKey,l=[A.SystemProgram.createAccountWithSeed({fromPubkey:n,basePubkey:n,seed:c.seed,newAccountPubkey:c.publicKey,lamports:await e.getMinimumBalanceForRentExemption(xo.span),space:xo.span,programId:t}),Ri(t,u,n,r,c.publicKey,i.mint,m,i.programId,o.mint,d,o.programId,vo(t,u).publicKey,a,s)];return{address:{observationId:c.publicKey,poolId:u,mintAVault:m,mintBVault:d},innerTransaction:{instructions:l,signers:[],instructionTypes:[vn.createAccount,vn.clmmCreatePool],lookupTableAddress:[]}}}static async makeOpenPositionFromLiquidityInstructions({poolInfo:e,ownerInfo:t,tickLower:n,tickUpper:i,liquidity:o,amountMaxA:r,amountMaxB:a,withMetadata:s,getEphemeralSigners:c}){const u=[];let m;if(c)m=new A.PublicKey((await c(1))[0]);else{const e=A.Keypair.generate();u.push(e),m=e.publicKey}const d=Mo.getTickArrayStartIndexByTick(n,e.ammConfig.tickSpacing),l=Mo.getTickArrayStartIndexByTick(i,e.ammConfig.tickSpacing),{publicKey:p}=ho(e.programId,e.id,d),{publicKey:g}=ho(e.programId,e.id,l),{publicKey:y}=Cn(t.wallet,m,f.TOKEN_PROGRAM_ID),{publicKey:k}=Ro(m),{publicKey:w}=Co(e.programId,m),{publicKey:b}=Po(e.programId,e.id,n,i);return{address:{nftMint:m,tickArrayLower:p,tickArrayUpper:g,positionNftAccount:y,metadataAccount:k,personalPosition:w,protocolPosition:b},innerTransaction:{instructions:[Oi(e.programId,t.feePayer,e.id,t.wallet,m,y,k,b,p,g,w,t.tokenAccountA,t.tokenAccountB,e.mintA.vault,e.mintB.vault,e.mintA.mint,e.mintB.mint,n,i,d,l,o,r,a,s,Qo.isOverflowDefaultTickarrayBitmap(e.tickSpacing,[d,l])?vo(e.programId,e.id).publicKey:void 0)],signers:u,instructionTypes:[vn.clmmOpenPosition],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static async makeOpenPositionFromBaseInstructions({poolInfo:e,ownerInfo:t,tickLower:n,tickUpper:i,base:o,baseAmount:r,otherAmountMax:a,withMetadata:s,getEphemeralSigners:c}){const u=[];let m;if(c)m=new A.PublicKey((await c(1))[0]);else{const e=A.Keypair.generate();u.push(e),m=e.publicKey}const d=Mo.getTickArrayStartIndexByTick(n,e.ammConfig.tickSpacing),l=Mo.getTickArrayStartIndexByTick(i,e.ammConfig.tickSpacing),{publicKey:p}=ho(e.programId,e.id,d),{publicKey:g}=ho(e.programId,e.id,l),{publicKey:y}=Cn(t.wallet,m,f.TOKEN_PROGRAM_ID),{publicKey:k}=Ro(m),{publicKey:w}=Co(e.programId,m),{publicKey:b}=Po(e.programId,e.id,n,i);return{address:{nftMint:m,tickArrayLower:p,tickArrayUpper:g,positionNftAccount:y,metadataAccount:k,personalPosition:w,protocolPosition:b},innerTransaction:{instructions:[vi(e.programId,t.feePayer,e.id,t.wallet,m,y,k,b,p,g,w,t.tokenAccountA,t.tokenAccountB,e.mintA.vault,e.mintB.vault,e.mintA.mint,e.mintB.mint,n,i,d,l,s,o,r,a,Qo.isOverflowDefaultTickarrayBitmap(e.tickSpacing,[d,l])?vo(e.programId,e.id).publicKey:void 0)],signers:u,instructionTypes:[vn.clmmOpenPosition],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static makeIncreasePositionFromLiquidityInstructions({poolInfo:e,ownerPosition:t,ownerInfo:n,liquidity:i,amountMaxA:o,amountMaxB:r}){const a=Mo.getTickArrayStartIndexByTick(t.tickLower,e.ammConfig.tickSpacing),s=Mo.getTickArrayStartIndexByTick(t.tickUpper,e.ammConfig.tickSpacing),{publicKey:c}=ho(e.programId,e.id,a),{publicKey:u}=ho(e.programId,e.id,s),{publicKey:m}=Cn(n.wallet,t.nftMint,f.TOKEN_PROGRAM_ID),{publicKey:d}=Co(e.programId,t.nftMint),{publicKey:l}=Po(e.programId,e.id,t.tickLower,t.tickUpper);return{address:{tickArrayLower:c,tickArrayUpper:u,positionNftAccount:m,personalPosition:d,protocolPosition:l},innerTransaction:{instructions:[Li(e.programId,n.wallet,m,d,e.id,l,c,u,n.tokenAccountA,n.tokenAccountB,e.mintA.vault,e.mintB.vault,e.mintA.mint,e.mintB.mint,i,o,r,Qo.isOverflowDefaultTickarrayBitmap(e.tickSpacing,[a,s])?vo(e.programId,e.id).publicKey:void 0)],signers:[],instructionTypes:[vn.clmmIncreasePosition],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static makeIncreasePositionFromBaseInstructions({poolInfo:e,ownerPosition:t,ownerInfo:n,base:i,baseAmount:o,otherAmountMax:r}){const a=Mo.getTickArrayStartIndexByTick(t.tickLower,e.ammConfig.tickSpacing),s=Mo.getTickArrayStartIndexByTick(t.tickUpper,e.ammConfig.tickSpacing),{publicKey:c}=ho(e.programId,e.id,a),{publicKey:u}=ho(e.programId,e.id,s),{publicKey:m}=Cn(n.wallet,t.nftMint,f.TOKEN_PROGRAM_ID),{publicKey:d}=Co(e.programId,t.nftMint),{publicKey:l}=Po(e.programId,e.id,t.tickLower,t.tickUpper);return{address:{tickArrayLower:c,tickArrayUpper:u,positionNftAccount:m,personalPosition:d,protocolPosition:l},innerTransaction:{instructions:[Ei(e.programId,n.wallet,m,d,e.id,l,c,u,n.tokenAccountA,n.tokenAccountB,e.mintA.vault,e.mintB.vault,e.mintA.mint,e.mintB.mint,i,o,r,Qo.isOverflowDefaultTickarrayBitmap(e.tickSpacing,[a,s])?vo(e.programId,e.id).publicKey:void 0)],signers:[],instructionTypes:[vn.clmmIncreasePosition],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static makeDecreaseLiquidityInstructions({poolInfo:e,ownerPosition:t,ownerInfo:n,liquidity:i,amountMinA:o,amountMinB:r}){const a=Mo.getTickArrayStartIndexByTick(t.tickLower,e.ammConfig.tickSpacing),s=Mo.getTickArrayStartIndexByTick(t.tickUpper,e.ammConfig.tickSpacing),{publicKey:c}=ho(e.programId,e.id,a),{publicKey:u}=ho(e.programId,e.id,s),{publicKey:m}=Cn(n.wallet,t.nftMint,f.TOKEN_PROGRAM_ID),{publicKey:d}=Co(e.programId,t.nftMint),{publicKey:l}=Po(e.programId,e.id,t.tickLower,t.tickUpper),p=[];for(let t=0;t<e.rewardInfos.length;t++)p.push({poolRewardVault:e.rewardInfos[t].tokenVault,ownerRewardVault:n.rewardAccounts[t],rewardMint:e.rewardInfos[t].tokenMint});return{address:{tickArrayLower:c,tickArrayUpper:u,positionNftAccount:m,personalPosition:d,protocolPosition:l},innerTransaction:{instructions:[Bi(e.programId,n.wallet,m,d,e.id,l,c,u,n.tokenAccountA,n.tokenAccountB,e.mintA.vault,e.mintB.vault,e.mintA.mint,e.mintB.mint,p,i,o,r,Qo.isOverflowDefaultTickarrayBitmap(e.tickSpacing,[a,s])?vo(e.programId,e.id).publicKey:void 0)],signers:[],instructionTypes:[vn.clmmDecreasePosition],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static makeClosePositionInstructions({poolInfo:e,ownerInfo:t,ownerPosition:n}){const{publicKey:i}=Cn(t.wallet,n.nftMint,f.TOKEN_PROGRAM_ID),{publicKey:o}=Co(e.programId,n.nftMint);return{address:{positionNftAccount:i,personalPosition:o},innerTransaction:{instructions:[Di(e.programId,t.wallet,n.nftMint,i,o)],signers:[],instructionTypes:[vn.clmmClosePosition],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static makeSwapBaseInInstructions({poolInfo:e,ownerInfo:t,inputMint:n,amountIn:i,amountOutMin:o,sqrtPriceLimitX64:r,remainingAccounts:a}){const s=e.mintA.mint.equals(n);return{address:{},innerTransaction:{instructions:[Mi(e.programId,t.wallet,e.id,e.ammConfig.id,s?t.tokenAccountA:t.tokenAccountB,s?t.tokenAccountB:t.tokenAccountA,s?e.mintA.vault:e.mintB.vault,s?e.mintB.vault:e.mintA.vault,s?e.mintA.mint:e.mintB.mint,s?e.mintB.mint:e.mintA.mint,a,e.observationId,i,o,r,!0,vo(e.programId,e.id).publicKey)],signers:[],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default))),instructionTypes:[vn.clmmSwapBaseIn]}}}static makeSwapBaseOutInstructions({poolInfo:e,ownerInfo:t,outputMint:n,amountOut:i,amountInMax:o,sqrtPriceLimitX64:r,remainingAccounts:a}){const s=e.mintA.mint.equals(n);return{address:{},innerTransaction:{instructions:[Mi(e.programId,t.wallet,e.id,e.ammConfig.id,s?t.tokenAccountB:t.tokenAccountA,s?t.tokenAccountA:t.tokenAccountB,s?e.mintB.vault:e.mintA.vault,s?e.mintA.vault:e.mintB.vault,s?e.mintB.mint:e.mintA.mint,s?e.mintA.mint:e.mintB.mint,a,e.observationId,i,o,r,!1,vo(e.programId,e.id).publicKey)],signers:[],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default))),instructionTypes:[vn.clmmSwapBaseOut]}}}static makeInitRewardInstructions({poolInfo:e,ownerInfo:t,rewardInfo:n}){const i=Io(e.programId,e.id,n.mint).publicKey,o=Oo(e.programId).publicKey;return{address:{poolRewardVault:i,operationId:o},innerTransaction:{instructions:[Vi(e.programId,t.wallet,e.id,o,e.ammConfig.id,t.tokenAccount,n.programId,n.mint,i,n.openTime,n.endTime,n.emissionsPerSecondX64)],signers:[],instructionTypes:[vn.clmmInitReward],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static makeSetRewardInstructions({poolInfo:e,ownerInfo:t,rewardInfo:n}){let i,o,r;for(let t=0;t<e.rewardInfos.length;t++)e.rewardInfos[t].tokenMint.equals(n.mint)&&(i=t,o=e.rewardInfos[t].tokenVault,r=e.rewardInfos[t].tokenMint);if(void 0===i||void 0===o||void 0===r)throw Error("reward mint check error");const a=Oo(e.programId).publicKey;return{address:{rewardVault:o,operationId:a},innerTransaction:{instructions:[_i(e.programId,t.wallet,e.id,a,e.ammConfig.id,t.tokenAccount,o,r,i,n.openTime,n.endTime,n.emissionsPerSecondX64)],signers:[],instructionTypes:[vn.clmmInitReward],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static makeCollectRewardInstructions({poolInfo:e,ownerInfo:t,rewardMint:n}){let i,o;for(let t=0;t<e.rewardInfos.length;t++)e.rewardInfos[t].tokenMint.equals(n)&&(i=t,o=e.rewardInfos[t].tokenVault);if(void 0===i||void 0===o)throw Error("reward mint check error");return{address:{rewardVault:o},innerTransaction:{instructions:[qi(e.programId,t.wallet,e.id,t.tokenAccount,o,n,i)],signers:[],instructionTypes:[vn.clmmInitReward],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default)))}}}static getLiquidityAmountOutFromAmountIn({poolInfo:e,inputA:t,tickLower:n,tickUpper:i,amount:o,slippage:r,add:a,token2022Infos:s,epochInfo:c,amountHasFee:u}){var m,d;const l=e.sqrtPriceX64,p=er.getSqrtPriceX64FromTick(n),f=er.getSqrtPriceX64FromTick(i),A=a?1-r:1+r,g=Kn(o,null===(m=s[t?e.mintA.mint.toString():e.mintB.mint.toString()])||void 0===m?void 0:m.feeConfig,c,!u),k=new y.default(new Pi.default(g.amount.sub(null!==(d=g.fee)&&void 0!==d?d:ue).toString()).mul(A).toFixed(0));let w;if(l.lte(p))w=t?nr.getLiquidityFromTokenAmountA(p,f,k,!a):new y.default(0);else if(l.lte(f)){const e=nr.getLiquidityFromTokenAmountA(l,f,k,!a),n=nr.getLiquidityFromTokenAmountB(p,l,k);w=t?e:n}else w=t?new y.default(0):nr.getLiquidityFromTokenAmountB(p,f,k);return this.getAmountsFromLiquidity({poolInfo:e,tickLower:n,tickUpper:i,liquidity:w,slippage:r,add:a,token2022Infos:s,epochInfo:c,amountAddFee:u})}static getLiquidityFromAmounts({poolInfo:e,tickLower:t,tickUpper:n,amountA:i,amountB:o,slippage:r,add:a,token2022Infos:s,epochInfo:c,amountHasFee:u}){var m,d,l,p;const[f,A,g,y]=t<n?[t,n,i,o]:[n,t,o,i],k=e.sqrtPriceX64,w=er.getSqrtPriceX64FromTick(f),b=er.getSqrtPriceX64FromTick(A),[S,T]=[Kn(g,null===(m=s[e.mintA.mint.toString()])||void 0===m?void 0:m.feeConfig,c,!u),Kn(y,null===(d=s[e.mintB.mint.toString()])||void 0===d?void 0:d.feeConfig,c,!u)],I=nr.getLiquidityFromTokenAmounts(k,w,b,S.amount.sub(null!==(l=S.fee)&&void 0!==l?l:ue),T.amount.sub(null!==(p=T.fee)&&void 0!==p?p:ue));return this.getAmountsFromLiquidity({poolInfo:e,tickLower:t,tickUpper:n,liquidity:I,slippage:r,add:a,token2022Infos:s,epochInfo:c,amountAddFee:!u})}static getAmountsFromLiquidity({poolInfo:e,tickLower:t,tickUpper:n,liquidity:i,slippage:o,add:r,token2022Infos:a,epochInfo:s,amountAddFee:c}){var u,m,d,l;const p=er.getSqrtPriceX64FromTick(t),f=er.getSqrtPriceX64FromTick(n),A=r?1+o:1-o,g=nr.getAmountsFromLiquidity(e.sqrtPriceX64,p,f,i,r),[k,w]=[Kn(g.amountA,null===(u=a[e.mintA.mint.toString()])||void 0===u?void 0:u.feeConfig,s,c),Kn(g.amountB,null===(m=a[e.mintB.mint.toString()])||void 0===m?void 0:m.feeConfig,s,c)],[b,S]=[Kn(new y.default(new Pi.default(g.amountA.toString()).mul(A).toFixed(0)),null===(d=a[e.mintA.mint.toString()])||void 0===d?void 0:d.feeConfig,s,c),Kn(new y.default(new Pi.default(g.amountB.toString()).mul(A).toFixed(0)),null===(l=a[e.mintB.mint.toString()])||void 0===l?void 0:l.feeConfig,s,c)];return{liquidity:i,amountA:k,amountB:w,amountSlippageA:b,amountSlippageB:S,expirationTime:xn(k.expirationTime,w.expirationTime)}}static getPriceAndTick({poolInfo:e,price:t,baseIn:n}){const i=n?t:new Pi.default(1).div(t),o=tr.getTickWithPriceAndTickspacing(i,e.ammConfig.tickSpacing,e.mintA.decimals,e.mintB.decimals),r=er.getSqrtPriceX64FromTick(o),a=er.sqrtPriceX64ToPrice(r,e.mintA.decimals,e.mintB.decimals);return n?{tick:o,price:a}:{tick:o,price:new Pi.default(1).div(a)}}static getTickPrice({poolInfo:e,tick:t,baseIn:n}){const i=er.getSqrtPriceX64FromTick(t),o=er.sqrtPriceX64ToPrice(i,e.mintA.decimals,e.mintB.decimals);return n?{tick:t,price:o,tickSqrtPriceX64:i}:{tick:t,price:new Pi.default(1).div(o),tickSqrtPriceX64:i}}static computeAmountOutFormat({poolInfo:e,tickArrayCache:t,token2022Infos:n,epochInfo:i,amountIn:o,currencyOut:r,slippage:a,catchLiquidityInsufficient:s=!1}){const c=o instanceof Ze,u=(c?o.token:Ve.WSOL).mint,m=o.raw,d=a.numerator.toNumber()/a.denominator.toNumber(),{allTrade:l,realAmountIn:p,amountOut:f,minAmountOut:A,expirationTime:g,currentPrice:k,executionPrice:w,priceImpact:b,fee:S,remainingAccounts:T}=this.computeAmountOut({poolInfo:e,tickArrayCache:t,baseMint:u,amountIn:m,slippage:d,token2022Infos:n,epochInfo:i,catchLiquidityInsufficient:s});return{allTrade:l,realAmountIn:Object.assign(Object.assign({},p),{amount:c?new Ze(o.token,p.amount):new Qe(Be.SOL,p.amount),fee:void 0===p.fee?void 0:c?new Ze(o.token,p.fee):new Qe(Be.SOL,p.fee)}),amountOut:Object.assign(Object.assign({},f),{amount:r instanceof Ve?new Ze(r,f.amount):new Qe(r,f.amount),fee:void 0===f.fee?void 0:r instanceof Ve?new Ze(r,f.fee):new Qe(r,f.fee)}),minAmountOut:Object.assign(Object.assign({},A),{amount:r instanceof Ve?new Ze(r,A.amount):new Qe(r,A.amount),fee:void 0===A.fee?void 0:r instanceof Ve?new Ze(r,A.fee):new Qe(r,A.fee)}),expirationTime:g,currentPrice:new tt(c?o.token:o.currency,new y.default(10).pow(new y.default(20+(c?o.token:o.currency).decimals)),r instanceof Ve?r:Ve.WSOL,k.mul(new Pi.default(10**(20+(r instanceof Ve?r:Ve.WSOL).decimals))).toFixed(0)),executionPrice:new tt(c?o.token:o.currency,new y.default(10).pow(new y.default(20+(c?o.token:o.currency).decimals)),r instanceof Ve?r:Ve.WSOL,w.mul(new Pi.default(10**(20+(r instanceof Ve?r:Ve.WSOL).decimals))).toFixed(0)),priceImpact:b,fee:c?new Ze(o.token,S):new Qe(o.currency,S),remainingAccounts:T}}static async computeAmountOutAndCheckToken({connection:e,poolInfo:t,tickArrayCache:n,baseMint:i,amountIn:o,slippage:r,priceLimit:a=new Pi.default(0),catchLiquidityInsufficient:s=!1}){const c=await e.getEpochInfo(),u=await Nn({connection:e,mints:[t.mintA,t.mintB].filter((e=>e.programId.equals(f.TOKEN_2022_PROGRAM_ID))).map((e=>e.mint))});return this.computeAmountOut({poolInfo:t,tickArrayCache:n,baseMint:i,amountIn:o,slippage:r,priceLimit:a,token2022Infos:u,epochInfo:c,catchLiquidityInsufficient:s})}static computeAmountOut({poolInfo:e,tickArrayCache:t,baseMint:n,token2022Infos:i,epochInfo:o,amountIn:r,slippage:a,priceLimit:s=new Pi.default(0),catchLiquidityInsufficient:c=!1}){var u,m,d,l,p;let f;f=s.equals(new Pi.default(0))?n.equals(e.mintA.mint)?Xi.add(me):Hi.sub(me):er.priceToSqrtPriceX64(s,e.mintA.decimals,e.mintB.decimals);const A=Kn(r,null===(u=i[n.toString()])||void 0===u?void 0:u.feeConfig,o,!1),{allTrade:g,realTradeAmountIn:k,expectedAmountOut:w,remainingAccounts:b,executionPrice:S,feeAmount:T}=Qo.getOutputAmountAndRemainAccounts(e,t,n,A.amount.sub(null!==(m=A.fee)&&void 0!==m?m:ue),f,c),I=Kn(k,null===(d=i[n.toString()])||void 0===d?void 0:d.feeConfig,o,!0),h=e.mintA.mint.equals(n)?e.mintB.mint:e.mintA.mint,P=Kn(w,null===(l=i[h.toString()])||void 0===l?void 0:l.feeConfig,o,!1),C=er.sqrtPriceX64ToPrice(S,e.mintA.decimals,e.mintB.decimals),R=n.equals(e.mintA.mint)?C:new Pi.default(1).div(C),O=Kn(w.mul(new y.default(Math.floor(1e10*(1-a)))).div(new y.default(1e10)),null===(p=i[h.toString()])||void 0===p?void 0:p.feeConfig,o,!1),v=e.mintA.mint.equals(n)?e.currentPrice:new Pi.default(1).div(e.currentPrice),D=new Pi.default(R).sub(v).abs(),L=v,E=new $e(new Pi.default(D).mul(10**15).toFixed(0),new Pi.default(L).mul(10**15).toFixed(0));return{allTrade:g,realAmountIn:I,amountOut:P,minAmountOut:O,expirationTime:xn(I.expirationTime,P.expirationTime),currentPrice:e.currentPrice,executionPrice:R,priceImpact:E,fee:T,remainingAccounts:b}}static async computeAmountInAndCheckToken({connection:e,poolInfo:t,tickArrayCache:n,baseMint:i,amountOut:o,slippage:r,priceLimit:a=new Pi.default(0)}){const s=await e.getEpochInfo(),c=await Nn({connection:e,mints:[t.mintA,t.mintB].filter((e=>e.programId.equals(f.TOKEN_2022_PROGRAM_ID))).map((e=>e.mint))});return this.computeAmountIn({poolInfo:t,tickArrayCache:n,baseMint:i,amountOut:o,slippage:r,priceLimit:a,token2022Infos:c,epochInfo:s})}static computeAmountIn({poolInfo:e,tickArrayCache:t,baseMint:n,token2022Infos:i,epochInfo:o,amountOut:r,slippage:a,priceLimit:s=new Pi.default(0)}){var c,u,m,d;let l;l=s.equals(new Pi.default(0))?n.equals(e.mintB.mint)?Xi.add(me):Hi.sub(me):er.priceToSqrtPriceX64(s,e.mintA.decimals,e.mintB.decimals);const p=Kn(r,null===(c=i[n.toString()])||void 0===c?void 0:c.feeConfig,o,!0),{expectedAmountIn:f,remainingAccounts:A,executionPrice:g,feeAmount:k}=Qo.getInputAmountAndRemainAccounts(e,t,n,p.amount.sub(null!==(u=p.fee)&&void 0!==u?u:ue),l),w=e.mintA.mint.equals(n)?e.mintB.mint:e.mintA.mint,b=Kn(f,null===(m=i[w.toString()])||void 0===m?void 0:m.feeConfig,o,!0),S=er.sqrtPriceX64ToPrice(g,e.mintA.decimals,e.mintB.decimals),T=n.equals(e.mintA.mint)?S:new Pi.default(1).div(S),I=Kn(f.mul(new y.default(Math.floor(1e10*(1+a)))).div(new y.default(1e10)),null===(d=i[w.toString()])||void 0===d?void 0:d.feeConfig,o,!0),h=e.mintA.mint.equals(n)?e.currentPrice:new Pi.default(1).div(e.currentPrice),P=new Pi.default(T).sub(h).abs(),C=h,R=new $e(new Pi.default(P).mul(10**15).toFixed(0),new Pi.default(C).mul(10**15).toFixed(0));return{amountIn:b,maxAmountIn:I,realAmountOut:p,expirationTime:xn(b.expirationTime,p.expirationTime),currentPrice:e.currentPrice,executionPrice:T,priceImpact:R,fee:k,remainingAccounts:A}}static estimateAprsForPriceRangeMultiplier({poolInfo:e,aprType:t,positionTickLowerIndex:n,positionTickUpperIndex:i}){const o=e[t],r=this.getTickPrice({poolInfo:e,tick:n,baseIn:!0}).price.toNumber(),a=this.getTickPrice({poolInfo:e,tick:i,baseIn:!0}).price.toNumber(),s=Math.max(r,o.priceMin),c=Math.min(a,o.priceMax)-s,u=a-r,m=o.priceMax-o.priceMin;let d;return d=c<=0?0:u===c?m/c:m===c?c/u:c/m*(c/u),{feeApr:o.feeApr*d,rewardsApr:[o.rewardApr.A*d,o.rewardApr.B*d,o.rewardApr.C*d],apr:o.apr*d}}static estimateAprsForPriceRangeDelta({poolInfo:e,aprType:t,mintPrice:n,rewardMintDecimals:i,liquidity:o,positionTickLowerIndex:r,positionTickUpperIndex:a,chainTime:s}){const c="day"===t?1:"week"===t?7:"month"===t?30:0,u=e[t],m=n[e.mintA.mint.toString()],d=n[e.mintB.mint.toString()],l=e.mintA.decimals,p=e.mintB.decimals;if(!u||!m||!d)return{feeApr:0,rewardsApr:[0,0,0],apr:0};const f=er.getSqrtPriceX64FromTick(r),A=er.getSqrtPriceX64FromTick(a),{amountSlippageA:g,amountSlippageB:y}=nr.getAmountsFromLiquidityWithSlippage(e.sqrtPriceX64,f,A,e.liquidity,!1,!1,0),{amountSlippageA:k,amountSlippageB:w}=nr.getAmountsFromLiquidityWithSlippage(e.sqrtPriceX64,f,A,o,!1,!1,0),b=new Pi.default(g.toString()).div(new Pi.default(10).pow(l)).mul(m.toFixed(l)).add(new Pi.default(y.toString()).div(new Pi.default(10).pow(p)).mul(d.toFixed(p))),S=new Pi.default(k.toString()).div(new Pi.default(10).pow(l)).mul(m.toFixed(l)).add(new Pi.default(w.toString()).div(new Pi.default(10).pow(p)).mul(d.toFixed(p))),T=S.div(b.add(S)).div(S),I=new Pi.default(u.volumeFee).mul(365).div(c).mul(T).mul(100).toNumber(),h=e.rewardInfos.map((e=>{const t=i[e.tokenMint.toString()],o=n[e.tokenMint.toString()];return s<e.openTime.toNumber()||s>e.endTime.toNumber()||e.perSecond.equals(0)||!o||void 0===t?0:new Pi.default(o.toFixed(t)).mul(e.perSecond.mul(31536e3)).div(new Pi.default(10).pow(t)).mul(T).mul(100).toNumber()}));return{feeApr:I,rewardsApr:h,apr:I+h.reduce(((e,t)=>e+t),0)}}static async fetchMultiplePoolInfos({connection:e,poolKeys:t,ownerInfo:n,chainTime:i,batchRequest:o=!1,updateOwnerRewardAndFee:r=!0}){var a;const s=await Z(e,t.map((e=>new A.PublicKey(e.id))),{batchRequest:o}),c={};for(let e=0;e<t.length;e++){const n=t[e],i=s[e];null!==i&&(c[n.id]=vo(i.owner,new A.PublicKey(n.id)).publicKey)}const u=await this.fetchExBitmaps({connection:e,exBitmapAddress:Object.values(c),batchRequest:o}),m=[],d={},l=[];for(let o=0;o<t.length;o++){const r=t[o],a=s[o],p=u[c[r.id].toString()];if(null===a)continue;const f=Wo.decode(a.data);d[r.id]={state:{id:new A.PublicKey(r.id),mintA:{programId:new A.PublicKey(r.mintProgramIdA),mint:f.mintA,vault:f.vaultA,decimals:f.mintDecimalsA},mintB:{programId:new A.PublicKey(r.mintProgramIdB),mint:f.mintB,vault:f.vaultB,decimals:f.mintDecimalsB},observationId:f.observationId,ammConfig:Object.assign(Object.assign({},r.ammConfig),{id:new A.PublicKey(r.ammConfig.id)}),creator:f.creator,programId:a.owner,version:6,tickSpacing:f.tickSpacing,liquidity:f.liquidity,sqrtPriceX64:f.sqrtPriceX64,currentPrice:er.sqrtPriceX64ToPrice(f.sqrtPriceX64,f.mintDecimalsA,f.mintDecimalsB),tickCurrent:f.tickCurrent,observationIndex:f.observationIndex,observationUpdateDuration:f.observationUpdateDuration,feeGrowthGlobalX64A:f.feeGrowthGlobalX64A,feeGrowthGlobalX64B:f.feeGrowthGlobalX64B,protocolFeesTokenA:f.protocolFeesTokenA,protocolFeesTokenB:f.protocolFeesTokenB,swapInAmountTokenA:f.swapInAmountTokenA,swapOutAmountTokenB:f.swapOutAmountTokenB,swapInAmountTokenB:f.swapInAmountTokenB,swapOutAmountTokenA:f.swapOutAmountTokenA,tickArrayBitmap:f.tickArrayBitmap,rewardInfos:await Qo.updatePoolRewardInfos({connection:e,apiPoolInfo:r,chainTime:i,poolLiquidity:f.liquidity,rewardInfos:f.rewardInfos.filter((e=>!e.tokenMint.equals(A.PublicKey.default)))}),day:r.day,week:r.week,month:r.month,tvl:r.tvl,lookupTableAccount:r.lookupTableAccount?new A.PublicKey(r.lookupTableAccount):A.PublicKey.default,startTime:f.startTime.toNumber(),exBitmapInfo:p}},n&&l.push(...d[r.id].state.rewardInfos.filter((e=>e.creator.equals(n.wallet)))),m.find((e=>e.equals(a.owner)))||m.push(a.owner)}if(n){const t=n.tokenAccounts.filter((e=>e.accountInfo.amount.eq(new y.default(1)))).map((e=>e.accountInfo.mint)),i=[];for(const e of t)for(const t of m)i.push(Co(t,e).publicKey);const s=await Z(e,i,{batchRequest:o}),c={};for(const e of s){if(null===e)continue;const t=Go.decode(e.data),n=t.poolId.toString(),i=d[n];if(void 0===i)continue;const o=i.state,r=this.getTickPrice({poolInfo:o,tick:t.tickLower,baseIn:!0}),s=this.getTickPrice({poolInfo:o,tick:t.tickUpper,baseIn:!0}),{amountA:u,amountB:m}=nr.getAmountsFromLiquidity(o.sqrtPriceX64,r.tickSqrtPriceX64,s.tickSqrtPriceX64,t.liquidity,!1),l=1/(1-Math.sqrt(Math.sqrt(r.price.div(s.price).toNumber())));d[n].positionAccount=[...null!==(a=d[n].positionAccount)&&void 0!==a?a:[],{poolId:t.poolId,nftMint:t.nftMint,priceLower:r.price,priceUpper:s.price,amountA:u,amountB:m,tickLower:t.tickLower,tickUpper:t.tickUpper,liquidity:t.liquidity,feeGrowthInsideLastX64A:t.feeGrowthInsideLastX64A,feeGrowthInsideLastX64B:t.feeGrowthInsideLastX64B,tokenFeesOwedA:t.tokenFeesOwedA,tokenFeesOwedB:t.tokenFeesOwedB,rewardInfos:t.rewardInfos.map((e=>Object.assign(Object.assign({},e),{pendingReward:new y.default(0)}))),leverage:l,tokenFeeAmountA:new y.default(0),tokenFeeAmountB:new y.default(0)}];const p=Mo.getTickArrayAddressByTick(d[n].state.programId,t.poolId,t.tickLower,d[n].state.tickSpacing),f=Mo.getTickArrayAddressByTick(d[n].state.programId,t.poolId,t.tickUpper,d[n].state.tickSpacing);c[`${d[n].state.programId.toString()}-${t.poolId.toString()}-${t.tickLower}`]=p,c[`${d[n].state.programId.toString()}-${t.poolId.toString()}-${t.tickUpper}`]=f}if(r){const t=Object.values(c),n=await Z(e,t,{batchRequest:o}),i={};for(let e=0;e<t.length;e++){const o=n[e];if(null===o)continue;const r=t[e];i[r.toString()]=Object.assign({address:r},Ho.decode(o.data))}for(const{state:e,positionAccount:t}of Object.values(d))if(t)for(const n of t){const t=`${e.programId.toString()}-${e.id.toString()}-${n.tickLower}`,o=`${e.programId.toString()}-${e.id.toString()}-${n.tickUpper}`,r=i[c[t].toString()],a=i[c[o].toString()],s=r.ticks[Mo.getTickOffsetInArray(n.tickLower,e.tickSpacing)],u=a.ticks[Mo.getTickOffsetInArray(n.tickUpper,e.tickSpacing)],{tokenFeeAmountA:m,tokenFeeAmountB:d}=or.GetPositionFees(e,n,s,u),l=or.GetPositionRewards(e,n,s,u);n.tokenFeeAmountA=m.gte(ue)&&m.lt(to)?m:ue,n.tokenFeeAmountB=d.gte(ue)&&m.lt(to)?d:ue;for(let e=0;e<l.length;e++)n.rewardInfos[e].pendingReward=l[e].gte(ue)&&l[e].lt(to)?l[e]:ue}}}if(l.length>0){const t=l.map((e=>e.tokenVault)),n=await Z(e,t,{batchRequest:o}),i={};for(let e=0;e<t.length;e++){const o=t[e].toString(),r=n[e];if(null===r)continue;const a=Pn.decode(r.data);i[o]=a.amount}for(const e of l){const t=i[e.tokenVault.toString()];e.remainingRewards=void 0!==t?t.sub(e.rewardTotalEmissioned.sub(e.rewardClaimed)):ue}}return d}static async fetchMultiplePoolTickArrays({connection:e,poolKeys:t,batchRequest:n}){const i={},o=[];for(const e of t){const t=Mo.getTickArrayStartIndexByTick(e.tickCurrent,e.tickSpacing),n=Mo.getInitializedTickArrayInRange(e.tickArrayBitmap,e.exBitmapInfo,e.tickSpacing,t,7);for(const t of n){const{publicKey:n}=ho(e.programId,e.id,t);o.push({pubkey:n}),i[n.toString()]=e.id}}const r=await J(e,o,{batchRequest:n}),a={};for(const e of r){if(!e.accountInfo)continue;const t=i[e.pubkey.toString()];if(!t)continue;void 0===a[t.toString()]&&(a[t.toString()]={});const n=Ho.decode(e.accountInfo.data);a[t.toString()][n.startTickIndex]=Object.assign(Object.assign({},n),{address:e.pubkey})}return a}static async fetchExBitmaps({connection:e,exBitmapAddress:t,batchRequest:n}){const i=await J(e,t.map((e=>({pubkey:e}))),{batchRequest:n}),o={};for(const e of i)null!==e.accountInfo&&(o[e.pubkey.toString()]=jo.decode(e.accountInfo.data));return o}static async getWhiteListMint({connection:e,programId:t}){const n=await e.getAccountInfo(Oo(t).publicKey);return n?zo.decode(n.data).whitelistMints.filter((e=>!e.equals(A.PublicKey.default))):[]}}const sr="9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",cr=new A.PublicKey(sr),ur={[sr]:3},mr={3:cr},dr=kn([Ft(5),Ft(8),rn("ownAddress"),Jt("vaultSignerNonce"),rn("baseMint"),rn("quoteMint"),rn("baseVault"),Jt("baseDepositsTotal"),Jt("baseFeesAccrued"),rn("quoteVault"),Jt("quoteDepositsTotal"),Jt("quoteFeesAccrued"),Jt("quoteDustThreshold"),rn("requestQueue"),rn("eventQueue"),rn("bids"),rn("asks"),Jt("baseLotSize"),Jt("quoteLotSize"),Jt("feeRateBps"),Jt("referrerRebatesAccrued"),Ft(7)]),lr={3:dr},pr=v.from("Serum");class fr{static getProgramId(e){const t=mr[e];return pr.assertArgument(!!t,"invalid version","version",e),t}static getVersion(e){const t=e.toBase58(),n=ur[t];return pr.assertArgument(!!n,"invalid program id","programId",t),n}static getStateLayout(e){const t=lr[e];return pr.assertArgument(!!t,"invalid version","version",e),t}static getLayouts(e){return{state:this.getStateLayout(e)}}static getAssociatedAuthority({programId:e,marketId:t}){const n=[t.toBuffer()];let i,o=0;for(;o<100;){try{const t=n.concat(Buffer.from([o]),Buffer.alloc(7));i=A.PublicKey.createProgramAddressSync(t,e)}catch(e){if(e instanceof TypeError)throw e;o++;continue}return{publicKey:i,nonce:o}}return pr.throwArgumentError("unable to find a viable program address nonce","params",{programId:e,marketId:t})}}const Ar=new A.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),gr=5e4,yr=kn([Jt("x"),Jt("y"),Jt("price")]),kr=kn([Jt("accountType"),Jt("status"),Jt("multiplier"),Jt("validDataCount"),In(yr,gr,"DataElement")]);function wr(e,t,n){const[i,o,r]=function(e,t,n){const[i,o]=[0,gr-2];let r=i,a=o,s=0;const c=t*e.multiplier/n;for(;r<=a;){if(s=Math.floor((a+r)/2),0===s||s>=gr-2)return[s,s,!1];const t=e.DataElement[s].x*e.multiplier/e.DataElement[s].y,n=e.DataElement[s-1].x*e.multiplier/e.DataElement[s-1].y,i=e.DataElement[s+1].x*e.multiplier/e.DataElement[s+1].y;if(c===t)return[s,s,!0];if(c===n)return[s-1,s-1,!0];if(c===i)return[s+1,s+1,!0];if(c<n)a=s-1;else{if(c>n&&c<t)return[s-1,s,!0];if(c>t&&c<i)return[s,s+1,!0];r=s+1}}return[s,s,!1]}(e,t,n);if(!r)return 0;if(i===o){const n=e.DataElement[i].x;return t*e.multiplier/n}{const r=e.DataElement[i].x,a=e.DataElement[i].y,s=e.DataElement[o].x,c=e.DataElement[o].y,u=n*(s*a-r*c),m=r*u+(s-r)*(t*a-r*n)*c;return t*e.multiplier*u/m}}function br(e,t,n){return t*e.multiplier/n}function Sr(e,t,n){return t*n/e.multiplier}function Tr(e,t,n,i){const o=i?t+n:t-n,[r,a,s]=function(e,t){const[n,i]=[0,gr-2];let o=n,r=i,a=0;const s=t;for(;o<r;){if(a=Math.floor((r+o)/2),a<=0||a>gr-2)return[a,a,!1];const t=e.DataElement[a].x,n=e.DataElement[a-1].x,i=e.DataElement[a+1].x;if(s===t)return[a,a,!0];if(s===n)return[a-1,a-1,!0];if(s===i)return[a+1,a+1,!0];if(s<n)r=a-1;else{if(s>n&&s<t)return[a-1,a,!0];if(s>t&&s<i)return[a,a+1,!0];o=a+1}}return[a,a,!1]}(e,o);if(!s)return[0,0,!1,s];if(r===a)return[e.DataElement[a].price,e.DataElement[a].y,!1,s];{const n=e.DataElement[r].x,c=e.DataElement[a].x,u=e.DataElement[r].price,m=e.DataElement[a].price,d=e.DataElement[r].y,l=e.DataElement[a].y;if(t>=n&&t<=c)return i?[m,l,!0,s]:[u,d,!0,s];{let r,a;return i?(r=u+(m-u)*(t-n)/(c-n),a=d-(o-n)*e.multiplier/m):(r=u+(m-u)*(t-n)/(c-n),a=l+(c-o)*e.multiplier/u),[r,a,!1,s]}}}function Ir(e,t,n,i){const o=wr(e,t,n),r=br(e,t,o),a=br(e,n,o),s=br(e,i,o),[c,u,m,d]=Tr(e,r,s,!0);return d?m?i*e.multiplier/c:Sr(e,a-u,o):0}function hr(e,t,n,i){const o=wr(e,t,n),r=br(e,t,o),a=br(e,n,o),s=br(e,i,o),[c,u,m,d]=function(e,t,n,i){const o=t+n,[r,a,s]=function(e,t){const[n,i]=[0,gr-2];let o=n,r=i,a=0;const s=t;for(;o<=r;){if(a=Math.floor((r+o)/2),a<=0||a>=gr-2)return[a,a,!1];const t=e.DataElement[a].y,n=e.DataElement[a-1].y,i=e.DataElement[a+1].y;if(s===t)return[a,a,!0];if(s===n)return[a-1,a-1,!0];if(s===i)return[a+1,a+1,!0];if(s<i)o=a+1;else{if(s<n&&s>t)return[a-1,a,!0];if(s<t&&s>i)return[a,a+1,!0];r=a-1}}return[a,a,!1]}(e,o);if(!s)return[0,0,!1,s];if(r===a)return[e.DataElement[a].price,e.DataElement[a].x,!1,s];{const n=e.DataElement[r].x,i=e.DataElement[a].x,c=e.DataElement[r].price,u=e.DataElement[a].price,m=e.DataElement[r].y,d=e.DataElement[a].y;if(t>=d&&t<=m)return[c,n,!0,s];{let n,r;return n=c+(u-c)*(m-t)/(m-d),r=i-c*(o-d)/e.multiplier,[n,r,!1,s]}}}(e,a,s);return d?m?i*c/e.multiplier:Sr(e,r-u,o):0}function Pr(e){const t=kr.decode(e);return{accountType:t.accountType.toNumber(),status:t.status.toNumber(),multiplier:t.multiplier.toNumber(),validDataCount:t.validDataCount.toNumber(),DataElement:t.DataElement.map((e=>({x:e.x.toNumber(),y:e.y.toNumber(),price:e.price.toNumber()})))}}function Cr(e,t,n,i){const o=function(e,t){const n=Tr(e,t,0,!1);return n[3]?n[0]:0}(e,br(e,t,wr(e,t,n)))/e.multiplier;return i?o:1/o}var Rr;const Or=v.from("Liquidity");let vr={accountType:0,status:0,multiplier:0,validDataCount:0,DataElement:[]};async function Dr(e){await Lr((t=>e.getAccountInfo(t).then((e=>{var t;return null!==(t=null==e?void 0:e.data)&&void 0!==t?t:null}))))}async function Lr(e){if(0===vr.validDataCount){const t=await e(Ar);t&&(vr=Pr(t))}}var Er;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initialized=1]="Initialized",e[e.Disabled=2]="Disabled",e[e.RemoveLiquidityOnly=3]="RemoveLiquidityOnly",e[e.LiquidityOnly=4]="LiquidityOnly",e[e.OrderBook=5]="OrderBook",e[e.Swap=6]="Swap",e[e.WaitingForStart=7]="WaitingForStart"}(Er||(Er={}));const Br=new y.default(25),Mr=new y.default(1e4);class Vr extends Dn{static getStateLayout(e){const t=hi[e];return Or.assertArgument(!!t,"invalid version","version",e),t}static getLayouts(e){return{state:this.getStateLayout(e)}}static getAssociatedId({programId:e,marketId:t}){const{publicKey:n}=q([e.toBuffer(),t.toBuffer(),Buffer.from("amm_associated_seed","utf-8")],e);return n}static getAssociatedAuthority({programId:e}){return q([Buffer.from([97,109,109,32,97,117,116,104,111,114,105,116,121])],e)}static getAssociatedBaseVault({programId:e,marketId:t}){const{publicKey:n}=q([e.toBuffer(),t.toBuffer(),Buffer.from("coin_vault_associated_seed","utf-8")],e);return n}static getAssociatedQuoteVault({programId:e,marketId:t}){const{publicKey:n}=q([e.toBuffer(),t.toBuffer(),Buffer.from("pc_vault_associated_seed","utf-8")],e);return n}static getAssociatedLpMint({programId:e,marketId:t}){const{publicKey:n}=q([e.toBuffer(),t.toBuffer(),Buffer.from("lp_mint_associated_seed","utf-8")],e);return n}static getAssociatedLpVault({programId:e,marketId:t}){const{publicKey:n}=q([e.toBuffer(),t.toBuffer(),Buffer.from("temp_lp_token_associated_seed","utf-8")],e);return n}static getAssociatedTargetOrders({programId:e,marketId:t}){const{publicKey:n}=q([e.toBuffer(),t.toBuffer(),Buffer.from("target_associated_seed","utf-8")],e);return n}static getAssociatedWithdrawQueue({programId:e,marketId:t}){const{publicKey:n}=q([e.toBuffer(),t.toBuffer(),Buffer.from("withdraw_associated_seed","utf-8")],e);return n}static getAssociatedOpenOrders({programId:e,marketId:t}){const{publicKey:n}=q([e.toBuffer(),t.toBuffer(),Buffer.from("open_order_associated_seed","utf-8")],e);return n}static getAssociatedConfigId({programId:e}){const{publicKey:t}=q([Buffer.from("amm_config_account_seed","utf-8")],e);return t}static getAssociatedPoolKeys({version:e,marketVersion:t,marketId:n,baseMint:i,quoteMint:o,baseDecimals:r,quoteDecimals:a,programId:s,marketProgramId:c}){const u=this.getAssociatedId({programId:s,marketId:n}),m=this.getAssociatedLpMint({programId:s,marketId:n}),{publicKey:d,nonce:l}=this.getAssociatedAuthority({programId:s}),p=this.getAssociatedBaseVault({programId:s,marketId:n}),f=this.getAssociatedQuoteVault({programId:s,marketId:n}),g=this.getAssociatedLpVault({programId:s,marketId:n}),y=this.getAssociatedOpenOrders({programId:s,marketId:n}),k=this.getAssociatedTargetOrders({programId:s,marketId:n}),w=this.getAssociatedWithdrawQueue({programId:s,marketId:n}),{publicKey:b}=fr.getAssociatedAuthority({programId:c,marketId:n});return{id:u,baseMint:i,quoteMint:o,lpMint:m,baseDecimals:r,quoteDecimals:a,lpDecimals:r,version:e,programId:s,authority:d,nonce:l,baseVault:p,quoteVault:f,lpVault:g,openOrders:y,targetOrders:k,withdrawQueue:w,marketVersion:t,marketProgramId:c,marketId:n,marketAuthority:b,lookupTableAccount:A.PublicKey.default,configId:this.getAssociatedConfigId({programId:s})}}static async getCreatePoolFee({connection:e,programId:t}){const n=this.getAssociatedConfigId({programId:t}),i=kn([Jt("fee")]),o=await e.getAccountInfo(n,{dataSlice:{offset:536,length:8}});if(null===o)throw Error("get config account error");return i.decode(o.data).fee}static makeAddLiquidityInstruction(e){const{poolKeys:t,userKeys:n,baseAmountIn:i,quoteAmountIn:o,fixedSide:r}=e,{version:a}=t;if(4===a||5===a){const e=kn([Qt("instruction"),Jt("baseAmountIn"),Jt("quoteAmountIn"),Jt("fixedSide")]),s=Buffer.alloc(e.span);e.encode({instruction:3,baseAmountIn:be(i),quoteAmountIn:be(o),fixedSide:be("base"===r?0:1)},s);const c=[K(f.TOKEN_PROGRAM_ID,!1),U(t.id,!1),K(t.authority,!1),K(t.openOrders,!1),U(t.targetOrders,!1),U(t.lpMint,!1),U(t.baseVault,!1),U(t.quoteVault,!1)];return 5===a&&c.push(U(Ar,!1)),c.push(K(t.marketId,!1),U(n.baseTokenAccount,!1),U(n.quoteTokenAccount,!1),U(n.lpTokenAccount,!1),K(n.owner,!0),K(t.marketEventQueue,!1)),{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:t.programId,keys:c,data:s})],signers:[],lookupTableAddress:[t.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default))),instructionTypes:[4===a?vn.ammV4AddLiquidity:vn.ammV5AddLiquidity]}}}return Or.throwArgumentError("invalid version","poolKeys.version",a)}static async makeAddLiquidityInstructionSimple(e){const{connection:t,poolKeys:n,userKeys:i,amountInA:o,amountInB:r,fixedSide:a,config:s,makeTxVersion:c,lookupTableCache:u,computeBudgetConfig:m}=e,{lpMint:d}=n,{tokenAccounts:l,owner:p,payer:A=p}=i;Or.debug("amountInA:",o),Or.debug("amountInB:",r),Or.assertArgument(!o.isZero()&&!r.isZero(),"amounts must greater than zero","amountInA & amountInB",{amountInA:o.toFixed(),amountInB:r.toFixed()});const{bypassAssociatedCheck:g,checkCreateATAOwner:y}=Object.assign({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},s),k=o instanceof Ze?o.token:Ve.WSOL,w=r instanceof Ze?r.token:Ve.WSOL,b=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:l,mint:k.mint,owner:p,config:{associatedOnly:!1}}),S=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:l,mint:w.mint,owner:p,config:{associatedOnly:!1}});Or.assertArgument(!!b||!!S,"cannot found target token accounts","tokenAccounts",l);const T=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:l,mint:d,owner:p}),I=[k,w],h=[b,S],P=[o.raw,r.raw],[C]=this._getAmountsSide(o,r,n);let R="base";if("quote"===C)if(I.reverse(),h.reverse(),P.reverse(),"a"===a)R="quote";else{if("b"!==a)return Or.throwArgumentError("invalid fixedSide","fixedSide",a);R="base"}else{if("base"!==C)return Or.throwArgumentError("invalid fixedSide","fixedSide",a);if("a"===a)R="base";else{if("b"!==a)return Or.throwArgumentError("invalid fixedSide","fixedSide",a);R="quote"}}const[O,v]=I,[D,L]=h,[E,B]=P,M=[],V=[],_=[],q=[],U=[],K=await this._handleTokenAccount({programId:f.TOKEN_PROGRAM_ID,connection:t,side:"in",amount:E,mint:O.mint,tokenAccount:D,owner:p,payer:A,frontInstructions:M,endInstructions:V,signers:U,bypassAssociatedCheck:g,frontInstructionsType:_,endInstructionsType:q,checkCreateATAOwner:y}),x=await this._handleTokenAccount({programId:f.TOKEN_PROGRAM_ID,connection:t,side:"in",amount:B,mint:v.mint,tokenAccount:L,owner:p,payer:A,frontInstructions:M,endInstructions:V,signers:U,bypassAssociatedCheck:g,frontInstructionsType:_,endInstructionsType:q,checkCreateATAOwner:y}),N=await this._handleTokenAccount({programId:f.TOKEN_PROGRAM_ID,connection:t,side:"out",amount:0,mint:d,tokenAccount:T,owner:p,payer:A,frontInstructions:M,endInstructions:V,signers:U,bypassAssociatedCheck:g,frontInstructionsType:_,endInstructionsType:q,checkCreateATAOwner:y}),W=this.makeAddLiquidityInstruction({poolKeys:n,userKeys:{baseTokenAccount:K,quoteTokenAccount:x,lpTokenAccount:N,owner:p},baseAmountIn:E,quoteAmountIn:B,fixedSide:R});return{address:{lpTokenAccount:N},innerTransactions:await oe({connection:t,makeTxVersion:c,computeBudgetConfig:m,payer:A,innerTransaction:[{instructionTypes:_,instructions:M,signers:U},W.innerTransaction,{instructionTypes:q,instructions:V,signers:[]}],lookupTableCache:u})}}static makeRemoveLiquidityInstruction(e){const{poolKeys:t,userKeys:n,amountIn:i}=e,{version:o}=t;if(4===o||5===o){const e=kn([Qt("instruction"),Jt("amountIn")]),r=Buffer.alloc(e.span);e.encode({instruction:4,amountIn:be(i)},r);const a=[K(f.TOKEN_PROGRAM_ID,!1),U(t.id,!1),K(t.authority,!1),U(t.openOrders,!1),U(t.targetOrders,!1),U(t.lpMint,!1),U(t.baseVault,!1),U(t.quoteVault,!1)];return 5===o?a.push(U(Ar,!1)):(a.push(U(t.withdrawQueue,!1)),a.push(U(t.lpVault,!1))),a.push(K(t.marketProgramId,!1),U(t.marketId,!1),U(t.marketBaseVault,!1),U(t.marketQuoteVault,!1),K(t.marketAuthority,!1),U(n.lpTokenAccount,!1),U(n.baseTokenAccount,!1),U(n.quoteTokenAccount,!1),K(n.owner,!0),U(t.marketEventQueue,!1),U(t.marketBids,!1),U(t.marketAsks,!1)),{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:t.programId,keys:a,data:r})],signers:[],lookupTableAddress:[t.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default))),instructionTypes:[4===o?vn.ammV4RemoveLiquidity:vn.ammV5RemoveLiquidity]}}}return Or.throwArgumentError("invalid version","poolKeys.version",o)}static async makeRemoveLiquidityInstructionSimple(e){const{connection:t,poolKeys:n,userKeys:i,amountIn:o,config:r,makeTxVersion:a,lookupTableCache:s,computeBudgetConfig:c}=e,{baseMint:u,quoteMint:m,lpMint:d}=n,{tokenAccounts:l,owner:p,payer:A=p}=i;Or.debug("amountIn:",o),Or.assertArgument(!o.isZero(),"amount must greater than zero","amountIn",o.toFixed()),Or.assertArgument(o instanceof Ze&&o.token.mint.equals(d),"amountIn's token not match lpMint","amountIn",o);const g=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:l,mint:d,owner:p,config:{associatedOnly:!1}});if(!g)return Or.throwArgumentError("cannot found lpTokenAccount","tokenAccounts",l);const y=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:l,mint:u,owner:p}),k=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:l,mint:m,owner:p}),{bypassAssociatedCheck:w,checkCreateATAOwner:b}=Object.assign({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},r),S=[],T=[],I=[],h=[],P=g,C=await this._handleTokenAccount({programId:f.TOKEN_PROGRAM_ID,connection:t,side:"out",amount:0,mint:u,tokenAccount:y,owner:p,payer:A,frontInstructions:S,endInstructions:T,signers:h,bypassAssociatedCheck:w,frontInstructionsType:I,checkCreateATAOwner:b}),R=await this._handleTokenAccount({programId:f.TOKEN_PROGRAM_ID,connection:t,side:"out",amount:0,mint:m,tokenAccount:k,owner:p,payer:A,frontInstructions:S,endInstructions:T,signers:h,bypassAssociatedCheck:w,frontInstructionsType:I,checkCreateATAOwner:b}),O=this.makeRemoveLiquidityInstruction({poolKeys:n,userKeys:{lpTokenAccount:P,baseTokenAccount:C,quoteTokenAccount:R,owner:p},amountIn:o.raw});return{address:{lpTokenAccount:P},innerTransactions:await oe({connection:t,makeTxVersion:a,computeBudgetConfig:c,payer:A,innerTransaction:[{instructionTypes:I,instructions:S,signers:h},O.innerTransaction,{instructionTypes:[],instructions:T,signers:[]}],lookupTableCache:s})}}static makeSwapInstruction(e){const{poolKeys:t,userKeys:n,amountIn:i,amountOut:o,fixedSide:r}=e,{version:a}=t;return 4===a||5===a?"in"===r?this.makeSwapFixedInInstruction({poolKeys:t,userKeys:n,amountIn:i,minAmountOut:o},a):"out"===r?this.makeSwapFixedOutInstruction({poolKeys:t,userKeys:n,maxAmountIn:i,amountOut:o},a):Or.throwArgumentError("invalid params","params",e):Or.throwArgumentError("invalid version","poolKeys.version",a)}static makeSwapFixedInInstruction({poolKeys:e,userKeys:t,amountIn:n,minAmountOut:i},o){const r=kn([Qt("instruction"),Jt("amountIn"),Jt("minAmountOut")]),a=Buffer.alloc(r.span);r.encode({instruction:9,amountIn:be(n),minAmountOut:be(i)},a);const s=[K(f.TOKEN_PROGRAM_ID,!1),U(e.id,!1),K(e.authority,!1),U(e.openOrders,!1)];return 4===o&&s.push(U(e.targetOrders,!1)),s.push(U(e.baseVault,!1),U(e.quoteVault,!1)),5===o&&s.push(U(Ar,!1)),s.push(K(e.marketProgramId,!1),U(e.marketId,!1),U(e.marketBids,!1),U(e.marketAsks,!1),U(e.marketEventQueue,!1),U(e.marketBaseVault,!1),U(e.marketQuoteVault,!1),K(e.marketAuthority,!1),U(t.tokenAccountIn,!1),U(t.tokenAccountOut,!1),K(t.owner,!0)),{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:s,data:a})],signers:[],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default))),instructionTypes:[4===o?vn.ammV4SwapBaseIn:vn.ammV5SwapBaseIn]}}}static makeSwapFixedOutInstruction({poolKeys:e,userKeys:t,maxAmountIn:n,amountOut:i},o){const r=kn([Qt("instruction"),Jt("maxAmountIn"),Jt("amountOut")]),a=Buffer.alloc(r.span);r.encode({instruction:11,maxAmountIn:be(n),amountOut:be(i)},a);const s=[K(f.TOKEN_PROGRAM_ID,!1),U(e.id,!1),K(e.authority,!1),U(e.openOrders,!1),U(e.targetOrders,!1),U(e.baseVault,!1),U(e.quoteVault,!1)];return 5===o&&s.push(U(Ar,!1)),s.push(K(e.marketProgramId,!1),U(e.marketId,!1),U(e.marketBids,!1),U(e.marketAsks,!1),U(e.marketEventQueue,!1),U(e.marketBaseVault,!1),U(e.marketQuoteVault,!1),K(e.marketAuthority,!1),U(t.tokenAccountIn,!1),U(t.tokenAccountOut,!1),K(t.owner,!0)),{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:s,data:a})],signers:[],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default))),instructionTypes:[4===o?vn.ammV4SwapBaseOut:vn.ammV5SwapBaseOut]}}}static async makeSwapInstructionSimple(e){const{connection:t,poolKeys:n,userKeys:i,amountIn:o,amountOut:r,fixedSide:a,config:s,makeTxVersion:c,lookupTableCache:u,computeBudgetConfig:m}=e,{tokenAccounts:d,owner:l,payer:p=l}=i;Or.debug("amountIn:",o),Or.debug("amountOut:",r),Or.assertArgument(!o.isZero()&&!r.isZero(),"amounts must greater than zero","currencyAmounts",{amountIn:o.toFixed(),amountOut:r.toFixed()});const{bypassAssociatedCheck:A,checkCreateATAOwner:g}=Object.assign({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},s),y=o instanceof Ze?o.token:Ve.WSOL,k=r instanceof Ze?r.token:Ve.WSOL,w=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:d,mint:y.mint,owner:l,config:{associatedOnly:!1}}),b=this._selectTokenAccount({programId:f.TOKEN_PROGRAM_ID,tokenAccounts:d,mint:k.mint,owner:l}),[S,T]=[o.raw,r.raw],I=[],h=[],P=[],C=[],R=await this._handleTokenAccount({programId:f.TOKEN_PROGRAM_ID,connection:t,side:"in",amount:S,mint:y.mint,tokenAccount:w,owner:l,payer:p,frontInstructions:I,endInstructions:h,signers:C,bypassAssociatedCheck:A,frontInstructionsType:P,checkCreateATAOwner:g}),O=await this._handleTokenAccount({programId:f.TOKEN_PROGRAM_ID,connection:t,side:"out",amount:0,mint:k.mint,tokenAccount:b,owner:l,payer:p,frontInstructions:I,endInstructions:h,signers:C,bypassAssociatedCheck:A,frontInstructionsType:P,checkCreateATAOwner:g}),v=this.makeSwapInstruction({poolKeys:n,userKeys:{tokenAccountIn:R,tokenAccountOut:O,owner:l},amountIn:S,amountOut:T,fixedSide:a});return{address:{},innerTransactions:await oe({connection:t,makeTxVersion:c,computeBudgetConfig:m,payer:p,innerTransaction:[{instructionTypes:P,instructions:I,signers:C},v.innerTransaction,{instructionTypes:[],instructions:h,signers:[]}],lookupTableCache:u})}}static makeSimulatePoolInfoInstruction({poolKeys:e}){const t=kn([Qt("instruction"),Qt("simulateType")]),n=Buffer.alloc(t.span);t.encode({instruction:12,simulateType:0},n);const i=[K(e.id,!1),K(e.authority,!1),K(e.openOrders,!1),K(e.baseVault,!1),K(e.quoteVault,!1),K(e.lpMint,!1),K(e.marketId,!1),K(e.marketEventQueue,!1)];return{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({programId:e.programId,keys:i,data:n})],signers:[],lookupTableAddress:[e.lookupTableAccount].filter((e=>e&&!e.equals(A.PublicKey.default))),instructionTypes:[4===e.version?vn.ammV4SimulatePoolInfo:vn.ammV5SimulatePoolInfo]}}}static isV4(e){return void 0!==e.withdrawQueue}static async makeCreatePoolV4InstructionV2Simple({connection:e,programId:t,marketInfo:n,baseMintInfo:i,quoteMintInfo:o,baseAmount:r,quoteAmount:a,startTime:s,ownerInfo:c,associatedOnly:u=!1,computeBudgetConfig:m,checkCreateATAOwner:d=!1,makeTxVersion:l,lookupTableCache:p,feeDestinationId:A}){const g=[],y=[],k=[],w=[],b=[],S=c.useSOLBalance&&i.mint.equals(Ve.WSOL.mint),T=c.useSOLBalance&&o.mint.equals(Ve.WSOL.mint),I=await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:i.mint,tokenAccounts:S?[]:c.tokenAccounts,owner:c.wallet,createInfo:S?{connection:e,payer:c.feePayer,amount:r,frontInstructions:g,frontInstructionsType:k,endInstructions:S?y:[],endInstructionsType:S?w:[],signers:b}:void 0,associatedOnly:!S&&u,checkCreateATAOwner:d}),h=await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:o.mint,tokenAccounts:T?[]:c.tokenAccounts,owner:c.wallet,createInfo:T?{connection:e,payer:c.feePayer,amount:a,frontInstructions:g,frontInstructionsType:k,endInstructions:T?y:[],endInstructionsType:T?w:[],signers:b}:void 0,associatedOnly:!T&&u,checkCreateATAOwner:d});if(void 0===I||void 0===h)throw Error("you don't has some token account");const P=Rr.getAssociatedPoolKeys({version:4,marketVersion:3,marketId:n.marketId,baseMint:i.mint,quoteMint:o.mint,baseDecimals:i.decimals,quoteDecimals:o.decimals,programId:t,marketProgramId:n.programId}),C=this.makeCreatePoolV4InstructionV2({programId:t,ammId:P.id,ammAuthority:P.authority,ammOpenOrders:P.openOrders,lpMint:P.lpMint,coinMint:P.baseMint,pcMint:P.quoteMint,coinVault:P.baseVault,pcVault:P.quoteVault,ammTargetOrders:P.targetOrders,marketProgramId:P.marketProgramId,marketId:P.marketId,userWallet:c.wallet,userCoinVault:I,userPcVault:h,userLpVault:Cn(c.wallet,P.lpMint,f.TOKEN_PROGRAM_ID).publicKey,ammConfigId:P.configId,feeDestinationId:A,nonce:P.nonce,openTime:s,coinAmount:r,pcAmount:a}).innerTransaction;return{address:{programId:t,ammId:P.id,ammAuthority:P.authority,ammOpenOrders:P.openOrders,lpMint:P.lpMint,coinMint:P.baseMint,pcMint:P.quoteMint,coinVault:P.baseVault,pcVault:P.quoteVault,withdrawQueue:P.withdrawQueue,ammTargetOrders:P.targetOrders,poolTempLp:P.lpVault,marketProgramId:P.marketProgramId,marketId:P.marketId},innerTransactions:await oe({connection:e,makeTxVersion:l,computeBudgetConfig:m,payer:c.feePayer,innerTransaction:[{instructionTypes:k,instructions:g,signers:b},C,{instructionTypes:w,instructions:y,signers:[]}],lookupTableCache:p})}}static makeCreatePoolV4InstructionV2({programId:e,ammId:t,ammAuthority:n,ammOpenOrders:i,lpMint:o,coinMint:r,pcMint:a,coinVault:s,pcVault:c,ammTargetOrders:u,marketProgramId:m,marketId:d,userWallet:l,userCoinVault:p,userPcVault:g,userLpVault:y,nonce:k,openTime:w,coinAmount:b,pcAmount:S,lookupTableAddress:T,ammConfigId:I,feeDestinationId:h}){const P=kn([Qt("instruction"),Qt("nonce"),Jt("openTime"),Jt("pcAmount"),Jt("coinAmount")]),C=[{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:L,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:I,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!0,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0}],R=Buffer.alloc(P.span);return P.encode({instruction:1,nonce:k,openTime:w,coinAmount:b,pcAmount:S},R),{address:{},innerTransaction:{instructions:[new A.TransactionInstruction({keys:C,programId:e,data:R})],signers:[],lookupTableAddress:T?[T]:void 0,instructionTypes:[vn.ammV4CreatePoolV2]}}}static async makeRemoveAllLpAndCreateClmmPosition({connection:e,poolKeys:t,removeLpAmount:n,userKeys:i,clmmPoolKeys:o,createPositionInfo:r,farmInfo:a,computeBudgetConfig:s,checkCreateATAOwner:c=!1,getEphemeralSigners:u,makeTxVersion:m,lookupTableCache:d}){var l,p,A,g,k,w,b;if(!t.baseMint.equals(o.mintA.mint)&&!t.baseMint.equals(o.mintB.mint))throw Error("mint check error");if(!t.quoteMint.equals(o.mintA.mint)&&!t.quoteMint.equals(o.mintB.mint))throw Error("mint check error");const S=[],T=[],I=[],h=[],P=[],C={};for(const e of i.tokenAccounts)(void 0===C[e.accountInfo.mint.toString()]||Cn(i.owner,e.accountInfo.mint,f.TOKEN_PROGRAM_ID).publicKey.equals(e.pubkey))&&(C[e.accountInfo.mint.toString()]=e.pubkey);const R=C[t.lpMint.toString()];if(void 0===R)throw Error("find lp account error in trade accounts");const O=n.add(null!==(l=null==a?void 0:a.amount)&&void 0!==l?l:new y.default(0)),v=t.baseMint.equals(Ve.WSOL.mint),D=t.quoteMint.equals(Ve.WSOL.mint),L=await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:t.baseMint,tokenAccounts:i.tokenAccounts,owner:i.owner,createInfo:{connection:e,payer:null!==(p=i.payer)&&void 0!==p?p:i.owner,frontInstructions:S,frontInstructionsType:I,endInstructions:v?T:[],endInstructionsType:v?h:[],signers:P},associatedOnly:!0,checkCreateATAOwner:c}),E=await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:t.quoteMint,tokenAccounts:i.tokenAccounts,owner:i.owner,createInfo:{connection:e,payer:null!==(A=i.payer)&&void 0!==A?A:i.owner,amount:0,frontInstructions:S,frontInstructionsType:I,endInstructions:D?T:[],endInstructionsType:D?h:[],signers:P},associatedOnly:!0,checkCreateATAOwner:c});C[t.baseMint.toString()]=L,C[t.quoteMint.toString()]=E;const B=this.makeRemoveLiquidityInstruction({poolKeys:t,userKeys:{lpTokenAccount:R,baseTokenAccount:L,quoteTokenAccount:E,owner:i.owner},amountIn:O}),[M,V]=t.baseMint.equals(o.mintA.mint)?[L,E]:[E,L],_=await ar.makeOpenPositionFromLiquidityInstructions(Object.assign(Object.assign({poolInfo:o,ownerInfo:{feePayer:null!==(g=i.payer)&&void 0!==g?g:i.owner,wallet:i.owner,tokenAccountA:M,tokenAccountB:V},withMetadata:"create"},r),{getEphemeralSigners:u}));let q={instructions:[],signers:[],instructionTypes:[]};if(void 0!==a){const t=[];for(const n of a.poolKeys.rewardInfos){const o=n.rewardMint.equals(Ve.WSOL.mint);t.push(null!==(k=C[n.rewardMint.toString()])&&void 0!==k?k:await this._selectOrCreateTokenAccount({programId:f.TOKEN_PROGRAM_ID,mint:n.rewardMint,tokenAccounts:i.tokenAccounts,owner:i.owner,createInfo:{connection:e,payer:null!==(w=i.payer)&&void 0!==w?w:i.owner,frontInstructions:S,frontInstructionsType:I,endInstructions:o?T:[],endInstructionsType:o?h:[],signers:P},associatedOnly:!0,checkCreateATAOwner:c}))}q=yi.makeWithdrawInstruction({poolKeys:a.poolKeys,amount:a.amount,userKeys:{ledger:yi.getAssociatedLedgerAccount({programId:a.poolKeys.programId,poolId:a.poolKeys.id,owner:i.owner,version:a.poolKeys.version}),lpTokenAccount:R,rewardTokenAccounts:t,owner:i.owner}}).innerTransaction}return{address:Object.assign(Object.assign({},B.address),_.address),innerTransactions:await oe({connection:e,makeTxVersion:m,computeBudgetConfig:s,payer:null!==(b=i.payer)&&void 0!==b?b:i.owner,innerTransaction:[{instructionTypes:I,instructions:S,signers:P},q,B.innerTransaction,_.innerTransaction,{instructionTypes:h,instructions:T,signers:[]}],lookupTableCache:d})}}static async fetchAllPoolKeys(e,t,n){const i=(await Promise.all(Object.entries(hi).map((([n,i])=>{try{return e.getProgramAccounts(t[Number(n)],{filters:[{dataSize:i.span}]}).then((e=>e.map((e=>Object.assign({id:e.pubkey,version:Number(n),programId:t[Number(n)]},i.decode(e.account.data))))))}catch(e){if(e instanceof Error)return Or.throwError("failed to fetch pool info",v.errors.RPC_ERROR,{message:e.message})}})))).flat(),o=i.map((e=>e.marketId)),r={};try{const t=await Z(e,o,n);for(const e of t){if(null===e)continue;const t=Object.assign({programId:e.owner},dr.decode(e.data));r[t.ownAddress.toString()]=t}}catch(e){if(e instanceof Error)return Or.throwError("failed to fetch markets",v.errors.RPC_ERROR,{message:e.message})}const a={};for(const[e,n]of Object.entries(t))a[e]=this.getAssociatedAuthority({programId:n}).publicKey;const s=[];for(const e of i){if(void 0===e)continue;if(e.baseMint.equals(A.PublicKey.default))continue;const t=r[e.marketId.toString()],n=t.programId;s.push(Object.assign(Object.assign({id:e.id,baseMint:e.baseMint,quoteMint:e.quoteMint,lpMint:e.lpMint,baseDecimals:e.baseDecimal.toNumber(),quoteDecimals:e.quoteDecimal.toNumber(),lpDecimals:"6kmMMacvoCKBkBrqssLEdFuEZu2wqtLdNQxh9VjtzfwT"===e.id.toString()?5:e.baseDecimal.toNumber(),version:e.version,programId:e.programId,authority:a[e.version],openOrders:e.openOrders,targetOrders:e.targetOrders,baseVault:e.baseVault,quoteVault:e.quoteVault,marketVersion:3,marketProgramId:n,marketId:t.ownAddress,marketAuthority:fr.getAssociatedAuthority({programId:n,marketId:t.ownAddress}).publicKey,marketBaseVault:t.baseVault,marketQuoteVault:t.quoteVault,marketBids:t.bids,marketAsks:t.asks,marketEventQueue:t.eventQueue},5===e.version?{modelDataAccount:e.modelDataAccount,withdrawQueue:A.PublicKey.default,lpVault:A.PublicKey.default}:{withdrawQueue:e.withdrawQueue,lpVault:e.lpVault}),{lookupTableAccount:A.PublicKey.default}))}return s}static async fetchInfo({connection:e,poolKeys:t,commitment:n}){const i=await this.fetchMultipleInfo({connection:e,pools:[t],commitment:n});return Or.assertArgument(1===i.length,`fetchInfo failed, ${i.length} pools found`,"poolKeys.id",t.id),i[0]}static async fetchMultipleInfo({connection:e,pools:t,commitment:n,config:i}){await Dr(e);const o=t.map((e=>this.makeSimulatePoolInfoInstruction({poolKeys:e})));return(await ee(e,o.map((e=>e.innerTransaction.instructions)).flat(),"GetPoolData",!0,n)).map((e=>{const t=te(e,"GetPoolData"),n=new y.default(ne(t,"status")),i=Number(ne(t,"coin_decimals")),o=Number(ne(t,"pc_decimals")),r=Number(ne(t,"lp_decimals")),a=new y.default(ne(t,"pool_coin_amount")),s=new y.default(ne(t,"pool_pc_amount")),c=new y.default(ne(t,"pool_lp_supply"));let u="0";try{u=ne(t,"pool_open_time")}catch(e){}return{status:n,baseDecimals:i,quoteDecimals:o,lpDecimals:r,baseReserve:a,quoteReserve:s,lpSupply:c,startTime:new y.default(u)}}))}static getEnabledFeatures(e){const{status:t}=e,n=t.toNumber();if(n===Er.Uninitialized)return{swap:!1,addLiquidity:!1,removeLiquidity:!1};if(n===Er.Initialized)return{swap:!0,addLiquidity:!0,removeLiquidity:!0};if(n===Er.Disabled)return{swap:!1,addLiquidity:!1,removeLiquidity:!1};if(n===Er.RemoveLiquidityOnly)return{swap:!1,addLiquidity:!1,removeLiquidity:!0};if(n===Er.LiquidityOnly)return{swap:!1,addLiquidity:!0,removeLiquidity:!0};if(n===Er.OrderBook)return{swap:!1,addLiquidity:!0,removeLiquidity:!0};if(n===Er.Swap)return{swap:!0,addLiquidity:!0,removeLiquidity:!0};if(n===Er.WaitingForStart){const{startTime:t}=e;return Date.now()/1e3<t.toNumber()?{swap:!1,addLiquidity:!0,removeLiquidity:!0}:{swap:!0,addLiquidity:!0,removeLiquidity:!0}}return{swap:!1,addLiquidity:!1,removeLiquidity:!1}}static includesToken(e,t){const{baseMint:n,quoteMint:i}=t;return e.mint.equals(n)||e.mint.equals(i)}static _getTokenSide(e,t){const{baseMint:n,quoteMint:i}=t;return e.mint.equals(n)?"base":e.mint.equals(i)?"quote":Or.throwArgumentError("token not match with pool","params",{token:e.mint,baseMint:n,quoteMint:i})}static _getTokensSide(e,t,n){const{baseMint:i,quoteMint:o}=n,r=this._getTokenSide(e,n),a=this._getTokenSide(t,n);return Or.assertArgument(r!==a,"tokens not match with pool","params",{tokenA:e.mint,tokenB:t.mint,baseMint:i,quoteMint:o}),[r,a]}static _getAmountSide(e,t){const n=e instanceof Ze?e.token:Ve.WSOL;return this._getTokenSide(n,t)}static _getAmountsSide(e,t,n){const i=e instanceof Ze?e.token:Ve.WSOL,o=t instanceof Ze?t.token:Ve.WSOL;return this._getTokensSide(i,o,n)}static computeAnotherAmount({poolKeys:e,poolInfo:t,amount:n,anotherCurrency:i,slippage:o}){const{baseReserve:r,quoteReserve:a}=t;Or.debug("baseReserve:",r.toString()),Or.debug("quoteReserve:",a.toString());const s=n instanceof Ze?n.token:n.currency;Or.debug("currencyIn:",s),Or.debug("amount:",n.toFixed()),Or.debug("anotherCurrency:",i),Or.debug("slippage:",`${o.toSignificant()}%`);const c=this._getAmountSide(n,e);Or.debug("input side:",c);let u=ue;n.isZero()||(u="base"===c?Te(n.raw.mul(a),r):Te(n.raw.mul(r),a));const m=Te(n.raw.mul(t.lpSupply),"base"===c?t.baseReserve:t.quoteReserve),d=new $e(me).add(o).mul(u).quotient,l=i instanceof Ve?new Ze(i,u):new Qe(i,u),p=i instanceof Ve?new Ze(i,d):new Qe(i,d);return Or.debug("anotheAmount:",l.toFixed()),Or.debug("maxAnotheAmount:",p.toFixed()),{anotherAmount:l,maxAnotherAmount:p,liquidity:m}}static _computePriceImpact(e,t,n){const i=e.raw.mul(t),o=i.sub(n).div(i);return new $e(o.numerator,o.denominator)}static getRate(e){const{baseReserve:t,quoteReserve:n,baseDecimals:i,quoteDecimals:o}=e;return new tt(new Be(i),t,new Be(o),n)}static computeAmountIn({poolKeys:e,poolInfo:t,amountOut:n,currencyIn:i,slippage:o}){const{baseReserve:r,quoteReserve:a}=t;Or.debug("baseReserve:",r.toString()),Or.debug("quoteReserve:",a.toString());const s=n instanceof Ze?n.token:n.currency;Or.debug("currencyOut:",s),Or.debug("amountOut:",n.toFixed()),Or.debug("currencyIn:",i),Or.debug("slippage:",`${o.toSignificant()}%`);const c=[r,a],u=this._getAmountSide(n,e);"base"===u&&c.reverse(),Or.debug("output side:",u);const[m,d]=c,l=new tt(i,m,s,d);Or.debug("currentPrice:",`1 ${i.symbol} ≈ ${l.toFixed()} ${s.symbol}`),Or.debug("currentPrice invert:",`1 ${s.symbol} ≈ ${l.invert().toFixed()} ${i.symbol}`);let p=ue,f=n.raw;if(!f.isZero()){f.gt(d)&&(f=d.sub(me));const e=d.sub(f);p=m.mul(f).div(e).mul(Mr).div(Mr.sub(Br))}const A=new $e(me).add(o).mul(p).quotient,g=i instanceof Ve?new Ze(i,p):new Qe(i,p),y=i instanceof Ve?new Ze(i,A):new Qe(i,A);Or.debug("amountIn:",g.toFixed()),Or.debug("maxAmountIn:",y.toFixed());let k=null;p.isZero()||f.isZero()||(k=new tt(i,p,s,f),Or.debug("executionPrice:",`1 ${i.symbol} ≈ ${k.toFixed()} ${s.symbol}`),Or.debug("executionPrice invert:",`1 ${s.symbol} ≈ ${k.invert().toFixed()} ${i.symbol}`));const w=this._computePriceImpact(l,p,f);return Or.debug("priceImpact:",`${w.toSignificant()}%`),{amountIn:g,maxAmountIn:y,currentPrice:l,executionPrice:k,priceImpact:w}}}Rr=Vr,Vr.computeAmountOut=({poolKeys:e,poolInfo:t,amountIn:n,currencyOut:i,slippage:o})=>{const r=n instanceof Ze?n.token:Ve.WSOL,a=i instanceof Ve?i:Ve.WSOL;Or.assertArgument(Rr.includesToken(r,e)&&Rr.includesToken(a,e),"token not match with pool","poolKeys",{poolKeys:e,tokenIn:r,tokenOut:a});const{baseReserve:s,quoteReserve:c}=t;Or.debug("baseReserve:",s.toString()),Or.debug("quoteReserve:",c.toString());const u=n instanceof Ze?n.token:n.currency;Or.debug("currencyIn:",u),Or.debug("amountIn:",n.toFixed()),Or.debug("currencyOut:",i),Or.debug("slippage:",`${o.toSignificant()}%`);const m=[s,c],d=Rr._getAmountSide(n,e);"quote"===d&&m.reverse(),Or.debug("input side:",d);const[l,p]=m;let f;if(4===e.version)f=new tt(u,l,i,p);else{const e=Cr(vr,s.toNumber(),c.toNumber(),!1);f="quote"===d?new tt(u,new y.default(1e6*e),i,new y.default(1e6)):new tt(u,new y.default(1e6),i,new y.default(1e6*e))}Or.debug("currentPrice:",`1 ${u.symbol} ≈ ${f.toFixed()} ${i.symbol}`),Or.debug("currentPrice invert:",`1 ${i.symbol} ≈ ${f.invert().toFixed()} ${u.symbol}`);const A=n.raw;let g=ue,k=ue;if(!A.isZero())if(4===e.version){k=Wn(A.mul(Br),Mr);const e=A.sub(k),t=l.add(e);g=p.mul(e).div(t)}else{k=A.mul(new y.default(2)).div(new y.default(1e4));const e=A.sub(k);g="quote"===d?new y.default(Ir(vr,c.toNumber(),s.toNumber(),e.toNumber())):new y.default(hr(vr,c.toNumber(),s.toNumber(),e.toNumber()))}const w=new $e(me).add(o).invert().mul(g).quotient,b=i instanceof Ve?new Ze(i,g):new Qe(i,g),S=i instanceof Ve?new Ze(i,w):new Qe(i,w);Or.debug("amountOut:",b.toFixed()),Or.debug("minAmountOut:",S.toFixed());let T=new tt(u,A.sub(k),i,g);A.isZero()||g.isZero()||(T=new tt(u,A.sub(k),i,g),Or.debug("executionPrice:",`1 ${u.symbol} ≈ ${T.toFixed()} ${i.symbol}`),Or.debug("executionPrice invert:",`1 ${i.symbol} ≈ ${T.invert().toFixed()} ${u.symbol}`));const I=T.denominator.mul(f.numerator),h=T.numerator.mul(f.denominator).sub(I).abs(),P=new $e(h,I);return Or.debug("priceImpact:",`${P.toSignificant()}%`),{amountOut:b,minAmountOut:S,currentPrice:f,executionPrice:T,priceImpact:P,fee:u instanceof Ve?new Ze(u,k):new Qe(u,k)}};const _r=["2dRNngAm729NzLbb1pzgHtfHvPqR4XHFmFyYK78EfEeX","B5ZguAWAGC3GXVtJZVfoMtzvEvDnDKBPCevsUKMy4DTZ","5VyLSjUvaRxsubirbvbfJMbrKZRx1b7JZzuCAfyqgimf","6kmMMacvoCKBkBrqssLEdFuEZu2wqtLdNQxh9VjtzfwT","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","83xxjVczDseaCzd7D61BRo7LcP7cMXut5n7thhB4rL4d","8tzS7SkUZyHPQY7gLqsMCXZ5EDCgjESUHcB17tiR1h3Z","4C2Mz1bVqe42QDDTyJ4HFCFFGsH5YDzo91Cen5w5NGun","6kbC5epG18DF2DwPEW34tBy5pGFS7pEGALR3v5MGxgc5","5dHEPTgvscKkAc54R77xUeGdgShdG9Mf6gJ9bwBqyb3V","8mBJC9qdPNDyrpAbrdwGbBpEAjPqwtvZQVmbnKFXXY2P","Hr8i6MAm4W5Lwb2fB2CD44A2t3Ag3gGc1rmd6amrWsWC","AoPebtuJC4f2RweZSxcVCcdeTgaEXY64Uho8b5HdPxAR","3mYsmBQLB8EZSjRwtWjPbbE8LiM1oCCtNZZKiVBKsePa","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","81PmLJ8j2P8CC5EJAAhWGYA4HgJvoKs4Y94ALZF2uKKG","af8HJg2ffWoKJ6vKvkWJUJ9iWbRR83WgXs8HPs26WGr","4fgubfZVL6L8tc5x1j65S14P2Tnxr1YayKtKavQV5MBo","AMMwkf57c7ZsbbDCXvBit9zFehMr1xRn8ZzaT1iDF18o","DWvhPYVogsEKEsehHApUtjhP1UFtApkAPFJqFh2HPmWz","GjrXcSvwzGrz1RwKYGVWdbZyXzyotgichSHB95moDmf8","E9EvurfzdSQaqCFBUaD4MgV93htuRQ93sghm922Pik88","He3iAEV5rYjv6Xf7PxKro19eVrC3QAcdic5CF2D2obPt","GDVhJmDTdSExwHeMT5RvUBUNKLwwXNKhH8ndm1tpTv6B","21r2zeCacmm5YvbGoPZh9ZoGREuodhcbQHaP5tZmzY14","DvxLb4NnQUYq1gErk35HVt9g8kxjNbviJfiZX1wqraMv","BLVjPTgzyfiKSgDujTNKKNzW2GXx7HhdMxgr2LQ2g83s","DkMAuUCQHC6BNgVnjtM5ZTKm1T8MsriQ6bL3Umi6NBtG","796pvggjoDCPUtUSVFSCLqPRyes5YPvRiu4zFWX582wf","3XwxHcbyqcd1xkdczaPv3TNCZsevELD4Zux3pu4sF2D8","EvWJC2mnmu9C9aQrsJLXw8FhUcwBzFEUQsP1E5Y6a5N7","4Sx1NLrQiK4b9FdLKe2DhQ9FHvRzJhzKN3LoD6BrEPnf","94CQopiGxxUXf2avyMZhAFaBdNatd62ttYGoTVQBRGdi","BuS4ScFcZjEBixF1ceCTiXs4rqt4WDfXLoth7VcM2Eoj","BkfGDk676QFtTiGxn7TtEpHayJZRr6LgNk9uTV2MH4bR","DiWxV1SPXPNJRCt5Ao1mJRAxjw97hJVyj8qGzZwFbAFb","GDHXjn9wF2zxW35DBkCegWQdoTfFBC9LXt7D5ovJxQ5B","96hPvuJ3SRT82m7BAc7G1AUVPVcoj8DABAa5gT7wjgzX","DSkXJYPZqJ3yHQECyVyh3xiE3HBrt7ARmepwNDA9rREn","5TgJXpv6H3KJhHCuP7KoDLSCmi8sM8nABizP7CmYAKm1","SJmR8rJgzzCi4sPjGnrNsqY4akQb3jn5nsxZBhyEifC","7XXKU8oGDbeGrkPyK5yHKzdsrMJtB7J2TMugjbrXEhB5","EyDgEU9BdG7m6ZK4bYERxbN4NCJ129WzPtv23dBkfsLg","61JtCkTQKSeBU8ztEScByZiBhS6KAHSXfQduVyA4s1h7","34oD4akb2DeNcCw1smKHPsD3iqQQQWmNy3cY81nz7HP8","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","GaqgfieVmnmY4ZsZHHA6L5RSVzCGL3sKx4UgHBaYNy8m","8iQFhWyceGREsWnLM8NkG9GC8DvZunGZyMzuyUScgkMK","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","asdEJnE7osjgnSyQkSZJ3e5YezbmXuDQPiyeyiBxoUm","GmaDNMWsTYWjaXVBjJTHNmCWAKU6cn5hhtWWYEZt4odo","ZfvDXXUhZDzDVsapffUyXHj9ByCoPjP4thL6YXcZ9ix","EGyhb2uLAsRUbRx9dNFBjMVYnFaASWMvD6RE1aEf2LxL","6GUF8Qb5FWmifzYpRdKomFNbSQAsLShhT45GbTGg34VJ","6nJes56KF999Q8VtQTrgWEHJGAfGMuJktGb8x2uWff2u","34tFULRrRwh4bMcBLPtJaNqqe5pVgGZACi5sR8Xz95KC","2bnZ1edbvK3CK3LTNZ5jH9anvXYCmzPR4W2HQ6Ngsv5K","9xyCzsHi1wUWva7t5Z8eAvZDRmUCVhRrbaFfm3VbU4Mf","F73euqPynBwrgcZn3fNSEneSnYasDQohPM5aZazW9hp2","5tho4By9RsqTF1rbm9Akiepik3kZBT7ffUzGg8bL1mD","8Fr3wxZXLtiSozqms5nF4XXGHNSNqcMC6K6MvRqEfk4a","Dm1Q15216uRARmQTbo6VfnyEGVzRvLTm4TfCWWX4MF3F","J3CoGcJqHquUdSgS7qAwdGbp3so4EpLX8eVDdGuauvi","BKLCqnuk4qc5iHWuJuewMxuvsNZXuTBSUyRT5ftnRb6H","5ZPBHzMr19iQjBaDgFDYGAx2bxaQ3TzWmSS7zAGrHtQJ","Am9FpX73ctZ3HzohcRdyCCv84iT7nugevqLjY5yTSUQP","DGSnfcE1kw4uDC6jgrsZ3s5CMfsWKN7JNjDNasHdvKfq","8hvVAhShYLPThcxrxwMNAWmgRCSjtxygj11EGHp2WHz8","9Hm8QX7ZhE9uB8L2arChmmagZZBtBmnzBbpfxzkQp85D","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","vVXfY15WdPsCmLvbiP4hWWECPFeAvPTuPNq3Q4BXfhy","A21ui9aYTSs3CbkscaY6irEMQx3Z59dLrRuZQTt2hJwQ","7qZJTK5NatxQJRTxZvHi3gRu4cZZsKr8ZPzs7BA5JMTC","43UHp4TuwQ7BYsaULN1qfpktmg7GWs9GpR8TDb8ovu9c","6gpZ9JkLoYvpA5cwdyPZFsDw6tkbPyyXM5FqRqHxMCny","2kPA9XUuHUifcCYTnjSuN7ZrC3ma8EKPrtzUhC86zj3m","EBqQdu9rGe6j3WGJQSyTvDjUMWcRd6uLcxSS4TbFT31t","33dWwj33J3NUzoTmkMAUq1VdXZL89qezxkdaHdN88vK2","FEFzBbbEK8yDigqyJPgJKMR5X1xZARC25QTCskvudjuK","Ghj3v2qYbSp6XqmH4NV4KRu4Rrgqoh2Ra7L9jEdsbNzF","BhuMVCzwFVZMSuc1kBbdcAnXwFg9p4HJp7A9ddwYjsaF","ynV2H2b7FcRBho2TvE25Zc4gDeuu2N45rUw9DuJYjJ9","8idN93ZBpdtMp4672aS4GGMDy7LdVWCCXH7FKFdMw9P4","Ek8uoHjADzbNk2yr2HysybwFk1h2j9XXDsWAjAJN38n1","7rVAbPFzqaBmydukTDFAuBiuyBrTVhpa5LpfDRrjX9mr","HuMDhYhW1BmBjXoJZBdjqaqoD3ehQeCUMbDSiZsaXSDU","D95EzH4ZsGLikvYzp7kmz1RM1xNMo1MXXiXaedQesA2m","3hhSfFhbk7Kd8XrRYKCcGAyUVYRaW9MLhcqAaU9kx6SA","2Tv6eMih3iqxHrLAWn372Nba4A8FT8AxFSbowBmmTuAd","7eM9KWYiJmNfDfeztMoEZE1KPyWD54LRxM9GmRY9ske6","3HYhQC6ne6SAPVT5sPTKawRUxv9ZpYyLuk1ifrw8baov","EZRHhpvAP4zEX1wZtTQcf6NP4FLWjs9c6tMRBqfrXgFD","GRM4jGMtx64sEocBFz6ZgdogF2fyTWiixht8thZoHjkK","H3dhkXcC5MRN7VRXNbWVSvogH8mUQPzpn8PYQL7HfBVg","4yrHms7ekgTBgJg77zJ33TsWrraqHsCXDtuSZqUsuGHb","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","8J5fa8WBGaDSv8AUpgtqdh9HM5AZuSf2ijvSkKoaCXCi","9SWy6nbSVZ44XuixEvHpona663pZPpVgzXQ3N7muG4ou","661trVCzDWp114gy4PEK4etbjb3u3RNaP4aENa5uN8Vp","7oYaghDwJ6ZbZwzdzcPqQtW6r4cojSLJDKB6U7tqAK1x","GQJjrG6f8HbxkE3ZVSRpzoyWhQ2RiivT68BybVK9DxME","5DECiJuqwmeCptoBEpyJtXKrVfiUrG9nBbBGkxGkPYyF","CbGQojcizFEHn3woL7NPu3P9BLL1SWz5a8zkL9gks24q","CWQVga1qUbpZXjrWQRj6U6tmL3HhrFiAT11VYnB8d3CF","HopVRTvFvRe1ED3dRCQrt1h5onkMvY3tKUHRVQMc7MMH","SU7vPveBjEuR5tgQwidRqqTxn1WwraHpydHHBpM2W96","5cmAS6Mj4pG2Vp9hhyu3kpK9yvC7P6ejh9HiobpTE6Jc","8ekXiGjEjtWzd2us3rAsusKv7kKEhPENV7nvzS7RGRYY","13uCPybNakXHGVd2DDVB7o2uwXuf9GqPFkvJMVgKy6UJ","FSSRqrGrDjDXnojhSDrDBknJeQ83pyACemnaMLaZDD1U","3cmPpX8kKzEra2umtLCDxMfjma82ELtAMaSYVmdaNLxi","7Z1c6GHutf3q2MNheyFE8KMNVEALuiPaqoEMyjbCbuku","2PfKnjEfoUoVDbDS1YwvZ8HuPGBCpN831mnTuqTAJZjH","Enq8vJucRbkzKA1i1PahJNhMyUTzoVL5Cs8n5rC3NLGn","8FrCybrh7UFznP1hVHg8kXZ8bhii37c7BGzmjkdcsGJp","4crhN3D8R5rnZd66q9b32P7K649e5XdzCfPMPiTzBceH","zoouer92idprkptX76yvhp4stK2keTzJpMNkeLqtxAx","CrWbfKwyAaUfYctXWF9iaDUP4AH5t6k6bbaWnXBL8nHm","D8pasgJWjP9wy39fzeD8BUjQMvYCZxABzPcnuoDSLHBB","7e8GrkwsRm5sS5UaKobLJUNu9esmrzg37dqX6aQyuver","FTyJCLwQ3YvVfanJp8mtC2eqmvZPpzSpmNLqWpaPaXbC","8GJdzPuEBPP3BHJpcspBcfpRZV4moZMFwhTAuXebaPL8","FsERtRjCEQNyND3ccnMGrd61ntPmJ3tbZs4vvcCzMr1L","DqYSvijBXydSx9GfvVDjEzUg5StLLrkqZVPzsU2FeVZ2","Fb1WR1kYvG1tHu4pwAxXQpdKT8Grh9i7ES9rZusLg7D6","GfvqUB36CPfqZDz5ntQ2YsoKRwg1MCewmurhc7jw3P5s","Hv1BFhyADPjYXTqEeMgwzoybnNwYrHXNv7U2VjcAuEDr","FvN7dJz7GX1XB1BTk6jD5rEKRxQc3ZwNkWJKai5sBJWS","MphbxYtji1FSkm7G2FNGpUUz5AWn7iRPNFAvEqD4mzE","783kPvwHwDXaU32kV8NK5dB4JVeMWQwe8a3WUNZFpupr","E9Z2JeEKS2WGGyA18mGU33rnQskK9moPhM4tdzrv24fh","Bhw7DbVwWMcTBXoKaWgsCaofL6QqmQQ65FCSGfgCEawm","69Mo81rUPDgru4UbigPQovx7cYBxpEm44qQok8wcut4M","HcqHvH27wk42L1ND5YPhLDJu7oGsU7HGSreMiXdq5LNK","zuivKkgkNFFkV9jfNpsU1p5tWNbDWUEx5XX16m4k2Ej","4ELBQuq3ivhLamfCT36As5sXLkQDWRJw1pJ9JVFLp6gK","HARRXESCwid3xMi2qThag1PXzmp6rDhAzMR9THhFRQGf","CfBSfVTcYFJsD8vZ2fTiMGkUYFim2rv8weAoqHxUU2pn","A7ZxDrK9LSkVXhfRTu2pRCinwYfdxW2kK6DaJk12jRWw","4ZYiiVakejxGyJ3tuBzYWoHyEV1rk7Hm7viydG6DNaUN","6eRECBcCVP82AvAd6Di4rZApa2btLf8RDUqrTigt4hS4"],qr=[],Ur=[],Kr="https://api.raydium.io",xr={time:"/v2/main/chain/time",info:"/v2/main/info",pairs:"/v2/main/pairs",price:"/v2/main/price",rpcs:"/v2/main/rpcs",version:"/v2/main/version",farmApr:"/v2/main/farm/info",farmAprLine:"/v2/main/farm-apr-tv",tokenInfo:"/v2/sdk/token/raydium.mainnet.json",poolInfo:"/v2/sdk/liquidity/mainnet.json",dailyPoolInfo:"/v2/sdk/liquidity/date",uiPoolInfo:"/v2/sdk/liquidity/mainnet.ui.json",searchPool:"/v2/sdk/liquidity/mint/",farmInfo:"/v2/sdk/farm-v2/mainnet.json",idoInfo:"/v2/main/ido/pools",idoProjectInfo:"/v2/main/ido/project/<id>",clmmPools:"/v2/ammV3/ammPools",clmmConfigs:"/v2/ammV3/ammConfigs",clmmPositionLine:"/v2/ammV3/positionLine/<poolId>"},Nr={SERUM_MARKET:new A.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),OPENBOOK_MARKET:new A.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),UTIL1216:new A.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),FarmV3:new A.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),FarmV5:new A.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),FarmV6:new A.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),AmmV4:new A.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),AmmStable:new A.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),CLMM:new A.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Router:new A.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS")},Wr={SERUM_MARKET:A.PublicKey.default,OPENBOOK_MARKET:new A.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:A.PublicKey.default,FarmV3:new A.PublicKey("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new A.PublicKey("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new A.PublicKey("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new A.PublicKey("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new A.PublicKey("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new A.PublicKey("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new A.PublicKey("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU")};function Fr(e,t,n,i,o,r,a,s,c,u,m,d){const l=kn([Qt("instruction"),Jt("amountIn"),Jt("amountOut")]),p=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1}];p.push(...Gr(s,r,n,i,d[0])),p.push(...Gr(c,a,i,o,d[1]));const g=Buffer.alloc(l.span);return l.encode({instruction:8,amountIn:u,amountOut:m},g),new A.TransactionInstruction({keys:p,programId:e,data:g})}function Gr(e,t,n,i,o){if(4===e.version){const t=N(e);return[{pubkey:t.programId,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:t.id,isSigner:!1,isWritable:!0},{pubkey:t.authority,isSigner:!1,isWritable:!1},{pubkey:t.marketProgramId,isSigner:!1,isWritable:!1},{pubkey:t.marketAuthority,isSigner:!1,isWritable:!1},{pubkey:t.openOrders,isSigner:!1,isWritable:!0},{pubkey:t.baseVault,isSigner:!1,isWritable:!0},{pubkey:t.quoteVault,isSigner:!1,isWritable:!0},{pubkey:t.marketId,isSigner:!1,isWritable:!0},{pubkey:t.marketBids,isSigner:!1,isWritable:!0},{pubkey:t.marketAsks,isSigner:!1,isWritable:!0},{pubkey:t.marketEventQueue,isSigner:!1,isWritable:!0},..."srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"===t.marketProgramId.toString()?[{pubkey:t.marketBaseVault,isSigner:!1,isWritable:!0},{pubkey:t.marketQuoteVault,isSigner:!1,isWritable:!0}]:[{pubkey:t.id,isSigner:!1,isWritable:!0},{pubkey:t.id,isSigner:!1,isWritable:!0}]]}if(5===e.version){const t=N(e);return[{pubkey:t.programId,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:t.id,isSigner:!1,isWritable:!0},{pubkey:t.authority,isSigner:!1,isWritable:!1},{pubkey:t.marketProgramId,isSigner:!1,isWritable:!1},{pubkey:t.id,isSigner:!1,isWritable:!0},{pubkey:new A.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),isSigner:!1,isWritable:!1},{pubkey:t.openOrders,isSigner:!1,isWritable:!0},{pubkey:t.baseVault,isSigner:!1,isWritable:!0},{pubkey:t.quoteVault,isSigner:!1,isWritable:!0},{pubkey:t.marketId,isSigner:!1,isWritable:!0},{pubkey:t.marketBids,isSigner:!1,isWritable:!0},{pubkey:t.marketAsks,isSigner:!1,isWritable:!0},{pubkey:t.marketEventQueue,isSigner:!1,isWritable:!0},{pubkey:t.id,isSigner:!1,isWritable:!0},{pubkey:t.id,isSigner:!1,isWritable:!0}]}if(6===e.version){const r=e.mintA.mint.toString()===t;return[{pubkey:new A.PublicKey(String(e.programId)),isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:e.ammConfig.id,isSigner:!1,isWritable:!1},{pubkey:e.id,isSigner:!1,isWritable:!0},{pubkey:r?e.mintA.vault:e.mintB.vault,isSigner:!1,isWritable:!0},{pubkey:r?e.mintB.vault:e.mintA.vault,isSigner:!1,isWritable:!0},{pubkey:e.observationId,isSigner:!1,isWritable:!0},...e.mintA.programId.equals(f.TOKEN_2022_PROGRAM_ID)||e.mintB.programId.equals(f.TOKEN_2022_PROGRAM_ID)?[{pubkey:f.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:E,isSigner:!1,isWritable:!1},{pubkey:r?e.mintA.mint:e.mintB.mint,isSigner:!1,isWritable:!1},{pubkey:r?e.mintB.mint:e.mintA.mint,isSigner:!1,isWritable:!1}]:[],...(null!=o?o:[]).map((e=>({pubkey:e,isSigner:!1,isWritable:!0}))),{pubkey:vo(new A.PublicKey(String(e.programId)),e.id).publicKey,isSigner:!1,isWritable:!0}]}throw Error("make swap ins error")}class Yr extends Dn{static getAllRoute({inputMint:e,outputMint:t,apiPoolList:n,clmmList:i,allowedRouteToken2022:o=!1}){var r,a;e=e.toString()===A.PublicKey.default.toString()?new A.PublicKey(he.mint):e,t=t.toString()===A.PublicKey.default.toString()?new A.PublicKey(he.mint):t;const s={},c={},u=new Set,m=[],d={};for(const n of null!=i?i:[]){if((n.mintA.mint.equals(e)&&n.mintB.mint.equals(t)||n.mintA.mint.equals(t)&&n.mintB.mint.equals(e))&&(m.push(n),c[n.id.toString()]=n),n.mintA.mint.equals(e)&&(n.mintB.programId.equals(f.TOKEN_PROGRAM_ID)||o)){const e=n.mintB.mint.toString();void 0===d[e]&&(d[e]={mintProgram:n.mintB.programId,in:[],out:[],mDecimals:n.mintB.decimals}),d[e].in.push(n)}if(n.mintB.mint.equals(e)&&(n.mintA.programId.equals(f.TOKEN_PROGRAM_ID)||o)){const e=n.mintA.mint.toString();void 0===d[e]&&(d[e]={mintProgram:n.mintA.programId,in:[],out:[],mDecimals:n.mintA.decimals}),d[e].in.push(n)}if(n.mintA.mint.equals(t)&&(n.mintB.programId.equals(f.TOKEN_PROGRAM_ID)||o)){const e=n.mintB.mint.toString();void 0===d[e]&&(d[e]={mintProgram:n.mintB.programId,in:[],out:[],mDecimals:n.mintB.decimals}),d[e].out.push(n)}if(n.mintB.mint.equals(t)&&(n.mintA.programId.equals(f.TOKEN_PROGRAM_ID)||o)){const e=n.mintA.mint.toString();void 0===d[e]&&(d[e]={mintProgram:n.mintA.programId,in:[],out:[],mDecimals:n.mintA.decimals}),d[e].out.push(n)}}const l=[],p=e.toString(),g=t.toString();for(const e of null!==(r=(null!=n?n:{}).official)&&void 0!==r?r:[])(e.baseMint===p&&e.quoteMint===g||e.baseMint===g&&e.quoteMint===p)&&(m.push(e),s[e.id]=e,l.push(e)),e.baseMint===p&&(void 0===d[e.quoteMint]&&(d[e.quoteMint]={mintProgram:f.TOKEN_PROGRAM_ID,in:[],out:[],mDecimals:e.quoteDecimals}),d[e.quoteMint].in.push(e)),e.quoteMint===p&&(void 0===d[e.baseMint]&&(d[e.baseMint]={mintProgram:f.TOKEN_PROGRAM_ID,in:[],out:[],mDecimals:e.baseDecimals}),d[e.baseMint].in.push(e)),e.baseMint===g&&(void 0===d[e.quoteMint]&&(d[e.quoteMint]={mintProgram:f.TOKEN_PROGRAM_ID,in:[],out:[],mDecimals:e.quoteDecimals}),d[e.quoteMint].out.push(e)),e.quoteMint===g&&(void 0===d[e.baseMint]&&(d[e.baseMint]={mintProgram:f.TOKEN_PROGRAM_ID,in:[],out:[],mDecimals:e.baseDecimals}),d[e.baseMint].out.push(e));const y=0===l.length;for(const e of null!==(a=(null!=n?n:{}).unOfficial)&&void 0!==a?a:[])(e.baseMint===p&&e.quoteMint===g||e.baseMint===g&&e.quoteMint===p)&&(m.push(e),s[e.id]=e,y&&l.push(e)),e.baseMint===p&&(void 0===d[e.quoteMint]&&(d[e.quoteMint]={mintProgram:f.TOKEN_PROGRAM_ID,in:[],out:[],mDecimals:e.quoteDecimals}),d[e.quoteMint].in.push(e)),e.quoteMint===p&&(void 0===d[e.baseMint]&&(d[e.baseMint]={mintProgram:f.TOKEN_PROGRAM_ID,in:[],out:[],mDecimals:e.baseDecimals}),d[e.baseMint].in.push(e)),e.baseMint===g&&(void 0===d[e.quoteMint]&&(d[e.quoteMint]={mintProgram:f.TOKEN_PROGRAM_ID,in:[],out:[],mDecimals:e.quoteDecimals}),d[e.quoteMint].out.push(e)),e.quoteMint===g&&(void 0===d[e.baseMint]&&(d[e.baseMint]={mintProgram:f.TOKEN_PROGRAM_ID,in:[],out:[],mDecimals:e.baseDecimals}),d[e.baseMint].out.push(e));for(const e of Object.keys(d)){if(1===d[e].in.length&&1===d[e].out.length&&String(d[e].in[0].id)===String(d[e].out[0].id)){delete d[e];continue}if(0===d[e].in.length||0===d[e].out.length){delete d[e];continue}const t=d[e];for(const e of t.in)for(const n of t.out)6===e.version&&void 0===c[e.id.toString()]?(c[e.id.toString()]=e,e.mintA.programId.equals(f.TOKEN_2022_PROGRAM_ID)&&u.add(e.mintA.mint.toString()),e.mintB.programId.equals(f.TOKEN_2022_PROGRAM_ID)&&u.add(e.mintB.mint.toString())):6!==e.version&&void 0===s[e.id]&&(s[e.id]=e),6===n.version&&void 0===c[n.id.toString()]?(c[n.id.toString()]=n,n.mintA.programId.equals(f.TOKEN_2022_PROGRAM_ID)&&u.add(n.mintA.mint.toString()),n.mintB.programId.equals(f.TOKEN_2022_PROGRAM_ID)&&u.add(n.mintB.mint.toString())):6!==n.version&&void 0===s[n.id]&&(s[n.id]=n)}for(const e of m)6===e.version&&(e.mintA.programId.equals(f.TOKEN_2022_PROGRAM_ID)&&u.add(e.mintA.mint.toString()),e.mintB.programId.equals(f.TOKEN_2022_PROGRAM_ID)&&u.add(e.mintB.mint.toString()));return{directPath:m,addLiquidityPools:l,routePathDict:d,needSimulate:Object.values(s),needTickArray:Object.values(c),needCheckToken:[...u]}}static async fetchMultipleInfo({connection:e,pools:t,batchRequest:n=!0}){t.find((e=>5===e.version))&&await Dr(e);const i=t.map((e=>Vr.makeSimulatePoolInfoInstruction({poolKeys:N(e)}))),o=await ee(e,i.map((e=>e.innerTransaction.instructions)).flat(),"GetPoolData",n),r={};for(const e of o){const t=te(e,"GetPoolData"),n=JSON.parse(t).amm_id,i=new y.default(ne(t,"status")),o=Number(ne(t,"coin_decimals")),a=Number(ne(t,"pc_decimals")),s=Number(ne(t,"lp_decimals")),c=new y.default(ne(t,"pool_coin_amount")),u=new y.default(ne(t,"pool_pc_amount")),m=new y.default(ne(t,"pool_lp_supply"));let d="0";try{d=ne(t,"pool_open_time")}catch(e){}r[n]={ammId:n,status:i,baseDecimals:o,quoteDecimals:a,lpDecimals:s,baseReserve:c,quoteReserve:u,lpSupply:m,startTime:new y.default(d)}}return r}static getAddLiquidityDefaultPool({addLiquidityPools:e,poolInfosCache:t}){if(0===e.length)return;if(1===e.length)return e[0];if(e.sort(((e,t)=>t.version-e.version)),e[0].version!==e[1].version)return e[0];const n=e.filter((t=>t.version===e[0].version));return n.sort(((e,n)=>this.ComparePoolSize(e,n,t))),n[0]}static ComparePoolSize(e,t,n){const i=n[e.id],o=n[t.id];return void 0===i?1:void 0===o?-1:e.baseMint===t.baseMint?i.baseReserve.sub(o.baseReserve).gte(ue)?-1:1:i.baseReserve.sub(o.quoteReserve).gte(ue)?-1:1}static getAllRouteComputeAmountOut({inputTokenAmount:e,outputToken:t,directPath:n,routePathDict:i,simulateCache:o,tickCache:r,mintInfos:a,slippage:s,chainTime:c,epochInfo:u,feeConfig:m}){var d,l,p,f,A,g,k,w,b,S,T,I;const h=void 0===m?new y.default(0):e.raw.mul(new y.default(m.feeBps.toNumber())).div(new y.default(1e4)),P=e.raw.sub(h),C=e instanceof Ze?new Ze(e.token,P):new Qe(e.currency,P),R=void 0===m?void 0:{feeAmount:h,feeAccount:m.feeAccount},O=[];for(const e of n)try{O.push(Object.assign(Object.assign({},this.computeAmountOut({itemPool:e,tickCache:r,simulateCache:o,chainTime:c,epochInfo:u,mintInfos:a,slippage:s,outputToken:t,amountIn:C})),{feeConfig:R}))}catch(e){}for(const[e,n]of Object.entries(i)){const i=new Ve(n.mintProgram,e,n.mDecimals),m=n.in.map((e=>{try{return{pool:e,data:this.computeAmountOut({itemPool:e,tickCache:r,simulateCache:o,chainTime:c,epochInfo:u,mintInfos:a,slippage:s,outputToken:i,amountIn:C})}}catch(e){return}})).sort(((e,t)=>{var n,i,o,r;const a=void 0===e?ue:e.data.amountOut.amount.raw.sub(null!==(i=null===(n=e.data.amountOut.fee)||void 0===n?void 0:n.raw)&&void 0!==i?i:ue),s=void 0===t?ue:t.data.amountOut.amount.raw.sub(null!==(r=null===(o=t.data.amountOut.fee)||void 0===o?void 0:o.raw)&&void 0!==r?r:ue);return a.lt(s)?1:-1}))[0];if(void 0===m)continue;const y=new Ze(i,m.data.amountOut.amount.raw.sub(null!==(l=null===(d=m.data.amountOut.fee)||void 0===d?void 0:d.raw)&&void 0!==l?l:ue));for(const e of n.out)try{const n=this.computeAmountOut({itemPool:e,tickCache:r,simulateCache:o,chainTime:c,epochInfo:u,mintInfos:a,slippage:s,outputToken:t,amountIn:y});O.push({allTrade:!(!m.data.allTrade||!n.allTrade),amountIn:m.data.amountIn,amountOut:n.amountOut,minAmountOut:n.minAmountOut,currentPrice:void 0,executionPrice:new tt(null!==(p=m.data.amountIn.amount.token)&&void 0!==p?p:m.data.amountIn.amount.currency,m.data.amountIn.amount.raw,null!==(f=n.amountOut.amount.token)&&void 0!==f?f:n.amountOut.amount.currency,n.amountOut.amount.raw.sub(null!==(g=null===(A=n.amountOut.fee)||void 0===A?void 0:A.raw)&&void 0!==g?g:ue)),priceImpact:m.data.priceImpact.add(n.priceImpact),fee:[m.data.fee[0],n.fee[0]],routeType:"route",poolKey:[m.pool,e],remainingAccounts:[m.data.remainingAccounts[0],n.remainingAccounts[0]],minMiddleAmountFee:(null===(k=n.amountOut.fee)||void 0===k?void 0:k.raw)?new Ze(null!==(w=m.data.amountOut.amount.token)&&void 0!==w?w:m.data.amountOut.amount.currency,(null!==(S=null===(b=m.data.amountOut.fee)||void 0===b?void 0:b.raw)&&void 0!==S?S:ue).add(null!==(I=null===(T=n.amountOut.fee)||void 0===T?void 0:T.raw)&&void 0!==I?I:ue)):void 0,middleToken:m.data.amountOut.amount.token,poolReady:m.data.poolReady&&n.poolReady,poolType:[m.data.poolType,n.poolType],feeConfig:R,expirationTime:xn(m.data.expirationTime,n.expirationTime)})}catch(e){}}return O.filter((e=>e.allTrade)).sort(((e,t)=>e.amountOut.amount.raw.sub(t.amountOut.amount.raw).gt(ue)?-1:1))}static computeAmountOut({itemPool:e,tickCache:t,simulateCache:n,chainTime:i,epochInfo:o,mintInfos:r,slippage:a,outputToken:s,amountIn:c}){if(6===e.version){const{allTrade:n,realAmountIn:u,amountOut:m,minAmountOut:d,expirationTime:l,currentPrice:p,executionPrice:f,priceImpact:A,fee:g,remainingAccounts:y}=ar.computeAmountOutFormat({poolInfo:e,tickArrayCache:t[e.id.toString()],amountIn:c,currencyOut:s,slippage:a,token2022Infos:r,epochInfo:o,catchLiquidityInsufficient:!0});return{allTrade:n,amountIn:u,amountOut:m,minAmountOut:d,currentPrice:p,executionPrice:f,priceImpact:A,fee:[g],remainingAccounts:[y],routeType:"amm",poolKey:[e],poolReady:e.startTime<i,poolType:"CLMM",expirationTime:xn(u.expirationTime,l)}}{if(![1,6,7].includes(n[e.id].status.toNumber()))throw Error("swap error");const{amountOut:t,minAmountOut:o,currentPrice:r,executionPrice:u,priceImpact:m,fee:d}=Vr.computeAmountOut({poolKeys:N(e),poolInfo:n[e.id],amountIn:c,currencyOut:s,slippage:a});return{amountIn:{amount:c,fee:void 0,expirationTime:void 0},amountOut:{amount:t,fee:void 0,expirationTime:void 0},minAmountOut:{amount:o,fee:void 0,expirationTime:void 0},currentPrice:r,executionPrice:u,priceImpact:m,fee:[d],routeType:"amm",poolKey:[e],remainingAccounts:[],poolReady:n[e.id].startTime.toNumber()<i,poolType:5===e.version?"STABLE":void 0,expirationTime:void 0,allTrade:!0}}}static makeSwapInstruction({routeProgram:e,ownerInfo:t,inputMint:n,swapInfo:i}){var o,r,a,s,c,u;if("amm"===i.routeType){if(6===i.poolKey[0].version){const e=i.poolKey[0],a=n.equals(e.mintA.mint)?Xi.add(me):Hi.sub(me);return ar.makeSwapBaseInInstructions({poolInfo:e,ownerInfo:{wallet:t.wallet,tokenAccountA:e.mintA.mint.equals(n)?t.sourceToken:t.destinationToken,tokenAccountB:e.mintA.mint.equals(n)?t.destinationToken:t.sourceToken},inputMint:n,amountIn:i.amountIn.amount.raw,amountOutMin:i.minAmountOut.amount.raw.sub(null!==(r=null===(o=i.minAmountOut.fee)||void 0===o?void 0:o.raw)&&void 0!==r?r:ue),sqrtPriceLimitX64:a,remainingAccounts:i.remainingAccounts[0]})}{const e=i.poolKey[0];return Vr.makeSwapInstruction({poolKeys:N(e),userKeys:{tokenAccountIn:t.sourceToken,tokenAccountOut:t.destinationToken,owner:t.wallet},amountIn:i.amountIn.amount.raw,amountOut:i.minAmountOut.amount.raw.sub(null!==(s=null===(a=i.minAmountOut.fee)||void 0===a?void 0:a.raw)&&void 0!==s?s:ue),fixedSide:"in"})}}if("route"===i.routeType){const o=i.poolKey[0],r=i.poolKey[1];if(void 0===t.routeToken)throw Error("owner route token account check error");return{address:{},innerTransaction:{instructions:[Fr(e,t.wallet,t.sourceToken,t.routeToken,t.destinationToken,n.toString(),i.middleToken.mint.toString(),o,r,i.amountIn.amount.raw,i.minAmountOut.amount.raw.sub(null!==(u=null===(c=i.minAmountOut.fee)||void 0===c?void 0:c.raw)&&void 0!==u?u:ue),i.remainingAccounts)],signers:[],lookupTableAddress:[o.lookupTableAccount?new A.PublicKey(o.lookupTableAccount):A.PublicKey.default,r.lookupTableAccount?new A.PublicKey(r.lookupTableAccount):A.PublicKey.default].filter((e=>e&&!e.equals(A.PublicKey.default))),instructionTypes:[vn.routeSwap]}}}throw Error("route type error")}static async makeSwapInstructionSimple({connection:e,swapInfo:t,ownerInfo:n,computeBudgetConfig:i,routeProgram:o,makeTxVersion:r,lookupTableCache:a}){const s=[],c=[],u=[],m=[],d=[],l=t.amountIn,p=t.amountOut,A=!(l.amount instanceof Ze),g=!(p.amount instanceof Ze),y=l.amount instanceof Ze?l.amount.token.mint:Ve.WSOL.mint,k=l.amount instanceof Ze?l.amount.token.programId:Ve.WSOL.programId,w=p.amount instanceof Ze?p.amount.token.mint:Ve.WSOL.mint,b=p.amount instanceof Ze?p.amount.token.programId:Ve.WSOL.programId,S=await this._selectOrCreateTokenAccount({programId:k,mint:y,tokenAccounts:A?[]:n.tokenAccounts,createInfo:A?{connection:e,payer:n.wallet,amount:l.amount.raw,frontInstructions:s,endInstructions:c,signers:d,frontInstructionsType:u,endInstructionsType:m}:void 0,owner:n.wallet,associatedOnly:!A&&n.associatedOnly,checkCreateATAOwner:n.checkCreateATAOwner});if(void 0===S)throw Error("input account check error");const T=await this._selectOrCreateTokenAccount({programId:b,mint:w,tokenAccounts:n.tokenAccounts,createInfo:{connection:e,payer:n.wallet,amount:0,frontInstructions:s,endInstructions:g?c:void 0,signers:d,frontInstructionsType:u,endInstructionsType:m},owner:n.wallet,associatedOnly:n.associatedOnly,checkCreateATAOwner:n.checkCreateATAOwner});let I;if("route"===t.routeType){const i=t.middleToken;I=await this._selectOrCreateTokenAccount({programId:i.programId,mint:i.mint,tokenAccounts:n.tokenAccounts,createInfo:{connection:e,payer:n.wallet,amount:0,frontInstructions:s,endInstructions:c,signers:d,frontInstructionsType:u,endInstructionsType:m},owner:n.wallet,associatedOnly:!1,checkCreateATAOwner:n.checkCreateATAOwner})}const h=this.makeSwapInstruction({routeProgram:o,inputMint:y,swapInfo:t,ownerInfo:{wallet:n.wallet,sourceToken:S,routeToken:I,destinationToken:T}}),P=[],C=[];void 0!==t.feeConfig&&(P.push((0,f.createTransferInstruction)(S,t.feeConfig.feeAccount,n.wallet,t.feeConfig.feeAmount.toNumber())),C.push(vn.transferAmount));const R=await oe({connection:e,makeTxVersion:r,computeBudgetConfig:i,payer:n.wallet,innerTransaction:[{instructionTypes:C,instructions:P,signers:[]},h.innerTransaction],lookupTableCache:a});return{address:h.address,innerTransactions:await oe({connection:e,makeTxVersion:r,computeBudgetConfig:i,payer:n.wallet,innerTransaction:[{instructionTypes:u,instructions:s,signers:d},...R.length>1?[]:[{instructionTypes:C,instructions:P,signers:[]}],h.innerTransaction,{instructionTypes:m,instructions:c,signers:[]}],lookupTableCache:a})}}}const Xr=kn([Ft(5),function(e="accountFlags"){const t=new jt(e);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}("accountFlags"),rn("ownAddress"),Jt("vaultSignerNonce"),rn("baseMint"),rn("quoteMint"),rn("baseVault"),Jt("baseDepositsTotal"),Jt("baseFeesAccrued"),rn("quoteVault"),Jt("quoteDepositsTotal"),Jt("quoteFeesAccrued"),Jt("quoteDustThreshold"),rn("requestQueue"),rn("eventQueue"),rn("bids"),rn("asks"),Jt("baseLotSize"),Jt("quoteLotSize"),Jt("feeRateBps"),Jt("referrerRebatesAccrued"),Ft(7)]);class Hr extends Dn{static async makeCreateMarketInstructionSimple({connection:e,wallet:t,baseInfo:n,quoteInfo:i,lotSize:o,tickSize:r,dexProgramId:a,makeTxVersion:s,lookupTableCache:c}){const u=Ln({fromPublicKey:t,programId:a}),m=Ln({fromPublicKey:t,programId:a}),d=Ln({fromPublicKey:t,programId:a}),l=Ln({fromPublicKey:t,programId:a}),p=Ln({fromPublicKey:t,programId:a}),g=Ln({fromPublicKey:t,programId:f.TOKEN_PROGRAM_ID}),k=Ln({fromPublicKey:t,programId:f.TOKEN_PROGRAM_ID}),w=new y.default(100),{vaultOwner:b,vaultSignerNonce:S}=function(){const e=new y.default(0);for(;;)try{return{vaultOwner:A.PublicKey.createProgramAddressSync([u.publicKey.toBuffer(),e.toArrayLike(Buffer,"le",8)],a),vaultSignerNonce:e}}catch(t){if(e.iaddn(1),e.gt(new y.default(25555)))throw Error("find vault owner error")}}(),T=new y.default(Math.round(10**n.decimals*o)),I=new y.default(Math.round(o*10**i.decimals*r));if(T.eq(ue))throw Error("lot size is too small");if(I.eq(ue))throw Error("tick size or lot size is too small");const h=await this.makeCreateMarketInstruction({connection:e,wallet:t,marketInfo:{programId:a,id:u,baseMint:n.mint,quoteMint:i.mint,baseVault:g,quoteVault:k,vaultOwner:b,requestQueue:m,eventQueue:d,bids:l,asks:p,feeRateBps:0,quoteDustThreshold:w,vaultSignerNonce:S,baseLotSize:T,quoteLotSize:I}});return{address:h.address,innerTransactions:await oe({connection:e,makeTxVersion:s,computeBudgetConfig:void 0,payer:t,innerTransaction:h.innerTransactions,lookupTableCache:c})}}static async makeCreateMarketInstruction({connection:e,wallet:t,marketInfo:n}){const i=[],o=await e.getMinimumBalanceForRentExemption(165);i.push(A.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:n.baseVault.seed,newAccountPubkey:n.baseVault.publicKey,lamports:o,space:165,programId:f.TOKEN_PROGRAM_ID}),A.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:n.quoteVault.seed,newAccountPubkey:n.quoteVault.publicKey,lamports:o,space:165,programId:f.TOKEN_PROGRAM_ID}),(0,f.createInitializeAccountInstruction)(n.baseVault.publicKey,n.baseMint,n.vaultOwner),(0,f.createInitializeAccountInstruction)(n.quoteVault.publicKey,n.quoteMint,n.vaultOwner));const r=[];return r.push(A.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:n.id.seed,newAccountPubkey:n.id.publicKey,lamports:await e.getMinimumBalanceForRentExemption(Xr.span),space:Xr.span,programId:n.programId}),A.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:n.requestQueue.seed,newAccountPubkey:n.requestQueue.publicKey,lamports:await e.getMinimumBalanceForRentExemption(5132),space:5132,programId:n.programId}),A.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:n.eventQueue.seed,newAccountPubkey:n.eventQueue.publicKey,lamports:await e.getMinimumBalanceForRentExemption(262156),space:262156,programId:n.programId}),A.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:n.bids.seed,newAccountPubkey:n.bids.publicKey,lamports:await e.getMinimumBalanceForRentExemption(65548),space:65548,programId:n.programId}),A.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:n.asks.seed,newAccountPubkey:n.asks.publicKey,lamports:await e.getMinimumBalanceForRentExemption(65548),space:65548,programId:n.programId}),this.initializeMarketInstruction({programId:n.programId,marketInfo:{id:n.id.publicKey,requestQueue:n.requestQueue.publicKey,eventQueue:n.eventQueue.publicKey,bids:n.bids.publicKey,asks:n.asks.publicKey,baseVault:n.baseVault.publicKey,quoteVault:n.quoteVault.publicKey,baseMint:n.baseMint,quoteMint:n.quoteMint,baseLotSize:n.baseLotSize,quoteLotSize:n.quoteLotSize,feeRateBps:n.feeRateBps,vaultSignerNonce:n.vaultSignerNonce,quoteDustThreshold:n.quoteDustThreshold}})),{address:{marketId:n.id.publicKey,requestQueue:n.requestQueue.publicKey,eventQueue:n.eventQueue.publicKey,bids:n.bids.publicKey,asks:n.asks.publicKey,baseVault:n.baseVault.publicKey,quoteVault:n.quoteVault.publicKey,baseMint:n.baseMint,quoteMint:n.quoteMint},innerTransactions:[{instructions:i,signers:[],instructionTypes:[vn.createAccount,vn.createAccount,vn.initAccount,vn.initAccount]},{instructions:r,signers:[],instructionTypes:[vn.createAccount,vn.createAccount,vn.createAccount,vn.createAccount,vn.createAccount,vn.initMarket]}]}}static initializeMarketInstruction({programId:e,marketInfo:t}){const n=kn([Qt("version"),Zt("instruction"),Jt("baseLotSize"),Jt("quoteLotSize"),dt("feeRateBps"),Jt("vaultSignerNonce"),Jt("quoteDustThreshold")]),i=[{pubkey:t.id,isSigner:!1,isWritable:!0},{pubkey:t.requestQueue,isSigner:!1,isWritable:!0},{pubkey:t.eventQueue,isSigner:!1,isWritable:!0},{pubkey:t.bids,isSigner:!1,isWritable:!0},{pubkey:t.asks,isSigner:!1,isWritable:!0},{pubkey:t.baseVault,isSigner:!1,isWritable:!0},{pubkey:t.quoteVault,isSigner:!1,isWritable:!0},{pubkey:t.baseMint,isSigner:!1,isWritable:!1},{pubkey:t.quoteMint,isSigner:!1,isWritable:!1},{pubkey:t.authority?t.quoteMint:A.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}].concat(t.authority?{pubkey:t.authority,isSigner:!1,isWritable:!1}:[]).concat(t.authority&&t.pruneAuthority?{pubkey:t.pruneAuthority,isSigner:!1,isWritable:!1}:[]),o=Buffer.alloc(n.span);return n.encode({version:0,instruction:0,baseLotSize:t.baseLotSize,quoteLotSize:t.quoteLotSize,feeRateBps:t.feeRateBps,vaultSignerNonce:t.vaultSignerNonce,quoteDustThreshold:t.quoteDustThreshold},o),new A.TransactionInstruction({keys:i,programId:e,data:o})}}var zr;class jr extends Dn{static getPdaPoolId(e,t){return q([this.SEED_CONFIG.pool.id,t.toBuffer()],e)}static getPdaOwnerId(e,t,n,i){return q([this.SEED_CONFIG.owner.id,t.toBuffer(),n.toBuffer(),Buffer.from(new y.default(i).toArray())],e)}static async getAllInfo({connection:e,programId:t,poolIds:n,wallet:i,chainTime:o}){if(0===n.length)return[];const r=n.map((e=>this.getPdaPoolId(t,e).publicKey)),a=[];for(let e=0;e<this.VERSION_PROJECT.length;e++)a.push(...r.map((n=>this.getPdaOwnerId(t,n,i,e).publicKey)));const s=await Z(e,[...r,...a]),c=[];for(let e=0;e<s.length;e++){const i=Math.floor(e/n.length),u=e%n.length,m=r[u],d=a[e],l=s[u],p=s[n.length+e];if(!l||!p)continue;if(l.data.length!==this.POOL_LAYOUT.span||p.data.length!==this.OWNER_LAYOUT.span)continue;const A=this.POOL_LAYOUT.decode(l.data),g=this.OWNER_LAYOUT.decode(p.data),k=A.openTime.toNumber(),w=A.endTime.toNumber(),b=3!==g.tokenInfo.map((e=>e.debtAmount.gt(new y.default(0)))).filter((e=>!e)).length,S=o>k&&o<w&&1===A.status,T=b&&S;c.push({programId:t,poolId:m,ammId:A.ammId,ownerAccountId:d,snapshotLpAmount:g.lpAmount,project:this.VERSION_PROJECT[i],openTime:k,endTime:w,canClaim:T,canClaimErrorType:b?S?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:A.tokenInfo.map(((e,t)=>({programId:f.TOKEN_PROGRAM_ID,mintAddress:e.mintAddress,mintVault:e.mintVault,mintDecimals:e.mintDecimals,perLpLoss:e.perLpLoss,debtAmount:g.tokenInfo[t].debtAmount.add(g.tokenInfo[t].claimedAmount)})))})}return c}static async makeClaimInstructionSimple({connection:e,poolInfo:t,ownerInfo:n,makeTxVersion:i,lookupTableCache:o}){const r=[],a=[],s=[],c=[],u=[],m=[],d=[],l=[];for(const i of t.tokenInfo)l.push(await this._selectOrCreateTokenAccount({programId:i.programId,mint:i.mintAddress,tokenAccounts:i.mintAddress.equals(Ve.WSOL.mint)?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.wallet,amount:0,frontInstructions:r,endInstructions:i.mintAddress.equals(Ve.WSOL.mint)?s:[],frontInstructionsType:a,endInstructionsType:c,signers:d},associatedOnly:!i.mintAddress.equals(Ve.WSOL.mint)&&n.associatedOnly,checkCreateATAOwner:n.checkCreateATAOwner}));return u.push(this.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:n.wallet,ownerPda:t.ownerAccountId,claimAddress:l}})),m.push(vn.util1216OwnerClaim),{address:{},innerTransactions:await oe({connection:e,makeTxVersion:i,computeBudgetConfig:void 0,payer:n.wallet,innerTransaction:[{instructionTypes:a,instructions:r,signers:d},{instructionTypes:m,instructions:u,signers:[]},{instructionTypes:c,instructions:s,signers:[]}],lookupTableCache:o})}}static async makeClaimAllInstructionSimple({connection:e,poolInfos:t,ownerInfo:n,makeTxVersion:i,lookupTableCache:o}){var r;const a=[],s=[],c=[],u=[],m=[],d=[],l=[],p={};for(const i of t){const t=[];for(const o of i.tokenInfo){const i=null!==(r=p[o.mintAddress.toString()])&&void 0!==r?r:await this._selectOrCreateTokenAccount({programId:o.programId,mint:o.mintAddress,tokenAccounts:o.mintAddress.equals(Ve.WSOL.mint)?[]:n.tokenAccounts,owner:n.wallet,createInfo:{connection:e,payer:n.wallet,amount:0,frontInstructions:a,endInstructions:o.mintAddress.equals(Ve.WSOL.mint)?c:[],frontInstructionsType:s,endInstructionsType:u,signers:l},associatedOnly:!o.mintAddress.equals(Ve.WSOL.mint)&&n.associatedOnly,checkCreateATAOwner:n.checkCreateATAOwner});p[o.mintAddress.toString()]=i,t.push(i)}m.push(this.makeClaimInstruction({programId:i.programId,poolInfo:i,ownerInfo:{wallet:n.wallet,ownerPda:i.ownerAccountId,claimAddress:t}})),d.push(vn.util1216OwnerClaim)}return{address:{},innerTransactions:await oe({connection:e,makeTxVersion:i,computeBudgetConfig:void 0,payer:n.wallet,innerTransaction:[{instructionTypes:s,instructions:a,signers:l},{instructionTypes:d,instructions:m,signers:[]},{instructionTypes:u,instructions:c,signers:[]}],lookupTableCache:o})}}static makeClaimInstruction({programId:e,poolInfo:t,ownerInfo:n}){const i=kn([]),o=[{pubkey:n.wallet,isSigner:!0,isWritable:!0},{pubkey:t.poolId,isSigner:!1,isWritable:!0},{pubkey:n.ownerPda,isSigner:!1,isWritable:!0},...n.claimAddress.map((e=>({pubkey:e,isSigner:!1,isWritable:!0}))),...t.tokenInfo.map((({mintVault:e})=>({pubkey:e,isSigner:!1,isWritable:!0}))),{pubkey:f.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1}],r=Buffer.alloc(i.span);i.encode({},r);const a=Buffer.from([10,66,208,184,161,6,191,98,...r]);return new A.TransactionInstruction({keys:o,programId:e,data:a})}}zr=jr,jr.CLAIMED_NUM=3,jr.POOL_LAYOUT=kn([Ft(8),Qt("bump"),Qt("status"),Jt("openTime"),Jt("endTime"),rn("ammId"),In(kn([Qt("mintDecimals"),rn("mintAddress"),rn("mintVault"),Jt("perLpLoss"),Jt("totalClaimedAmount")]),zr.CLAIMED_NUM,"tokenInfo"),In(Jt(),10,"padding")]),jr.OWNER_LAYOUT=kn([Ft(8),Qt("bump"),Qt("version"),rn("poolId"),rn("owner"),Jt("lpAmount"),In(kn([rn("mintAddress"),Jt("debtAmount"),Jt("claimedAmount")]),zr.CLAIMED_NUM,"tokenInfo"),In(Jt(),4,"padding")]),jr.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map((e=>new A.PublicKey(e))),jr.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},jr.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];var Qr=m.euO,Zr=m._uA,Jr=m.XGj,$r=m.f3u,ea=m.a7X,ta=m.XBP,na=m.roG,ia=m.OKd,oa=m.XYF,ra=m.VQn,aa=m.t6b,sa=m.jsJ,ca=m.Fa6,ua=m.ihT,ma=m.NOu,da=m.$uJ,la=m.A9e,pa=m.Kat,fa=m.DJV,Aa=m.LKg,ga=m.f4A,ya=m.DOP,ka=m.jKp,wa=m.ArA,ba=m.IOH,Sa=m.mvD,Ta=m.F60,Ia=m.w7z,ha=m.D9Z,Pa=m.o5Z,Ca=m.aEf,Ra=m.cId,Oa=m.rgV,va=m.GRn,Da=m.l8n,La=m.YGF,Ea=m.l6j,Ba=m.atS,Ma=m.iAi,Va=m.UBw,_a=m.p01,qa=m.mtu,Ua=m.Mt7,Ka=m.TRh,xa=m.FM9,Na=m.e0T,Wa=m.eNL,Fa=m.VR8,Ga=m.vHH,Ya=m.FTx,Xa=m.Ar2,Ha=m.ZpI,za=m.kuD,ja=m.RMk,Qa=m.ini,Za=m.YdH,Ja=m.YX5,$a=m.fjf,es=m.i66,ts=m.krz,ns=m.dcy,is=m.WTe,os=m.SsU,rs=m.If1,as=m.F6l,ss=m.$4b,cs=m.v$S,us=m.jIi,ms=m.j6n,ds=m.aym,ls=m.r_h,ps=m.IYM,fs=m._CO,As=m.kj,gs=m.Rzd,ys=m.ZwB,ks=m.p64,ws=m.ibW,bs=m.z7A,Ss=m.ryP,Ts=m.ZwJ,Is=m.q_k,hs=m.Rig,Ps=m.R5D,Cs=m.TOv,Rs=m.tis,Os=m.pLN,vs=m.C7X,Ds=m.TgV,Ls=m.pMB,Es=m.gGi,Bs=m.fmp,Ms=m.NLW,Vs=m.UF3,_s=m.R$U,qs=m.SjD,Us=m.tAG,Ks=m.LqS,xs=m.tFT,Ns=m.liD,Ws=m.y1o,Fs=m.i6K,Gs=m.Q2s,Ys=m.u63,Xs=m._yy,Hs=m.kk,zs=m.mLU,js=m.Eic,Qs=m.lW5,Zs=m.RYt,Js=m.kE0,$s=m.rqX,ec=m.d_N,tc=m.ySi,nc=m.AmS,ic=m.zet,oc=m.RGo,rc=m.TOp,ac=m.vAe,sc=m.ohs,cc=m.JT1,uc=m.sZ2,mc=m.$sw,dc=m.HxA,lc=m.sA6,pc=m.JBA,fc=m.iek,Ac=m.JQj,gc=m.zpU,yc=m.LXt,kc=m.H__,wc=m.gEl,bc=m.SiL,Sc=m.rN6,Tc=m.Y8e,Ic=m.oMl,hc=m.Myg,Pc=m.pk2,Cc=m.mO4,Rc=m.gA1,Oc=m.WUB,vc=m.dtM,Dc=m.no2,Lc=m.nz3,Ec=m.eVA,Bc=m.ogv,Mc=m.uIf,Vc=m.vAO,_c=m.EJI,qc=m.ov0,Uc=m.a32,Kc=m.qdi,xc=m._J2,Nc=m.CsM,Wc=m.BEp,Fc=m.VbZ,Gc=m.EgC,Yc=m.xAR,Xc=m.xEJ,Hc=m.j0O,zc=m.K$4,jc=m.YQE,Qc=m.elo,Zc=m.hcv,Jc=m.IXX,$c=m.pcg,eu=m.Ikd,tu=m.XgW,nu=m.KLW,iu=m.cq6,ou=m.F33,ru=m.Evv,au=m.Wiu,su=m.xJY,cu=m.ZZd,uu=m.KAR,mu=m.YOc,du=m.qBE,lu=m.WlF,pu=m.oLh,fu=m.xnN,Au=m.WZf,gu=m.eh7,yu=m.Mn2,ku=m.EXr,wu=m.qwX,bu=m.UeT,Su=m.Xyr,Tu=m.xxS,Iu=m.xSZ,hu=m.J_,Pu=m.epJ,Cu=m.$ic,Ru=m.Gnj,Ou=m.V2d,vu=m.t0r,Du=m._EG,Lu=m.Ssy,Eu=m.CaP,Bu=m.AHQ,Mu=m.xFz,Vu=m.NSb,_u=m.y5D,qu=m.iZd,Uu=m.SX$,Ku=m.bfS,xu=m.d5x,Nu=m._Hq,Wu=m.bHX,Fu=m.AQE,Gu=m.Q69,Yu=m.fOk,Xu=m.i8,Hu=m.Inb,zu=m.zjW,ju=m.OXI,Qu=m.Nfw,Zu=m.uXB,Ju=m.FeJ,$u=m.eoV,em=m.Jae,tm=m.dSq,nm=m.EYN,im=m.jVA,om=m.Fr9,rm=m.Rl,am=m.z_P,sm=m.Fz5,cm=m.nTM,um=m.urb,mm=m.gMj,dm=m.LND,lm=m._OP,pm=m.$r4,fm=m.cvk,Am=m.UW2,gm=m._fN,ym=m.Kwn,km=m.yxA,wm=m.Dh0,bm=m.h47,Sm=m.pC_,Tm=m.gPF,Im=m.ZLm,hm=m.Ezq,Pm=m.Tlo,Cm=m.xP3,Rm=m.aQE,Om=m.O9d,vm=m.Xo1,Dm=m.ual,Lm=m._n5,Em=m.IST,Bm=m.Yt4,Mm=m.hOp,Vm=m.s8,_m=m.A9x,qm=m.p5c,Um=m.noX,Km=m.cA7,xm=m.wVT,Nm=m.q7f,Wm=m.Bd8,Fm=m.n_M,Gm=m.Cow,Ym=m.NSp,Xm=m.Zn6,Hm=m.pXt,zm=m.z71,jm=m.KBS,Qm=m.xBw,Zm=m.LbL,Jm=m.Vbz,$m=m.b7G,ed=m.Jq,td=m.sBt,nd=m.Gjv,id=m.utp,od=m.qYE,rd=m.aqH,ad=m.hn8,sd=m.AW$,cd=m.u8,ud=m.G0j,md=m.K_r,dd=m.jj$,ld=m.FYO,pd=m.KAL,fd=m.Uk0,Ad=m.Bhw,gd=m.t3V,yd=m.dlQ,kd=m.lls;export{Qr as AMM_CONFIG_SEED,Zr as ASSOCIATED_TOKEN_PROGRAM_ID,Jr as AccountMeta,$r as AccountMetaReadonly,ea as AmmConfigLayout,ta as BIT_PRECISION,na as BNDivCeil,ia as BNLayout,oa as Base,ra as BitStructure,aa as Blob,sa as Clmm,ca as Currency,ua as CurrencyAmount,ma as DEVNET_FARM_POOLS,da as DEVNET_LP_TOKENS,la as DEVNET_OFFICIAL_LIQUIDITY_POOLS,pa as DEVNET_PROGRAM_ID,fa as DEVNET_SPL_TOKENS,Aa as DataElement,ga as ENDPOINT,ya as EXTENSION_TICKARRAY_BITMAP_SIZE,ka as ErrorCode,wa as FARM_LEDGER_LAYOUT_V3_1,ba as FARM_LEDGER_LAYOUT_V3_2,Sa as FARM_LEDGER_LAYOUT_V5_1,Ta as FARM_LEDGER_LAYOUT_V5_2,Ia as FARM_LEDGER_LAYOUT_V6_1,ha as FARM_STATE_LAYOUT_V3,Pa as FARM_STATE_LAYOUT_V5,Ca as FARM_STATE_LAYOUT_V6,Ra as FARM_VERSION_TO_LEDGER_LAYOUT,Oa as FARM_VERSION_TO_STATE_LAYOUT,va as FEE_RATE_DENOMINATOR,Da as FETCH_TICKARRAY_COUNT,La as FIVE,Ea as Farm,Ba as Fee,Ma as Fraction,Va as INSTRUCTION_PROGRAM_ID,_a as InstructionType,qa as LIQUIDITY_FEES_DENOMINATOR,Ua as LIQUIDITY_FEES_NUMERATOR,Ka as LIQUIDITY_STATE_LAYOUT_V4,xa as LIQUIDITY_STATE_LAYOUT_V5,Na as LIQUIDITY_VERSION_TO_STATE_LAYOUT,Wa as LOG_B_2_X32,Fa as LOG_B_P_ERR_MARGIN_LOWER_X64,Ga as LOG_B_P_ERR_MARGIN_UPPER_X64,Ya as LOOKUP_TABLE_CACHE,Xa as Layout,Ha as Liquidity,za as LiquidityMath,ja as LiquidityPoolStatus,Qa as LogLevel,Za as Logger,Ja as MAINNET_FARM_POOLS,$a as MAINNET_LP_TOKENS,es as MAINNET_OFFICIAL_LIQUIDITY_POOLS,ts as MAINNET_PROGRAM_ID,ns as MAINNET_SPL_TOKENS,is as MARKET_STATE_LAYOUT_V2,os as MARKET_STATE_LAYOUT_V3,rs as MARKET_VERSION_TO_STATE_LAYOUT,as as MAX_BASE64_SIZE,ss as MAX_SQRT_PRICE_X64,cs as MAX_TICK,us as MEMO_PROGRAM_ID,ms as METADATA_PROGRAM_ID,ds as MIN_SQRT_PRICE_X64,ls as MIN_TICK,ps as Market,fs as MarketV2,As as MathUtil,gs as MaxU64,ys as MaxUint128,ks as ModelDataInfo,ws as ModelDataPubkey,bs as NEGATIVE_ONE,Ss as ONE,Ts as OPERATION_SEED,Is as ObservationInfoLayout,hs as ObservationLayout,Ps as OperationLayout,Cs as OptionLayout,Rs as POOL_REWARD_VAULT_SEED,Os as POOL_SEED,vs as POOL_TICK_ARRAY_BITMAP_SEED,Ds as POOL_VAULT_SEED,Ls as POSITION_SEED,Es as Percent,Bs as PoolInfoLayout,Ms as PoolUtils,Vs as PositionInfoLayout,_s as PositionRewardInfoLayout,qs as PositionUtils,Us as Price,Ks as ProtocolPositionLayout,xs as Q128,Ns as Q64,Ws as RAYDIUM_MAINNET,Fs as REAL_FARM_STATE_LAYOUT_V3,Gs as REAL_FARM_STATE_LAYOUT_V5,Ys as REAL_FARM_STATE_LAYOUT_V6,Xs as RENT_PROGRAM_ID,Hs as RewardInfo,zs as Rounding,js as SERUM_PROGRAMID_TO_VERSION,Qs as SERUM_PROGRAM_ID_V3,Zs as SERUM_VERSION_TO_PROGRAMID,Js as SOL,$s as SPL_ACCOUNT_LAYOUT,ec as SPL_MINT_LAYOUT,tc as SYSTEM_PROGRAM_ID,nc as SYSVAR_CLOCK_PUBKEY,ic as SYSVAR_RENT_PUBKEY,oc as Spl,rc as SqrtPriceMath,ac as Structure,sc as SwapMath,cc as TEN,uc as TESTNET_FARM_POOLS,mc as TESTNET_LP_TOKENS,dc as TESTNET_OFFICIAL_LIQUIDITY_POOLS,lc as TESTNET_SPL_TOKENS,pc as THREE,fc as TICK_ARRAY_BITMAP_SIZE,Ac as TICK_ARRAY_SEED,gc as TICK_ARRAY_SIZE,yc as TICK_SPACINGS,kc as TOKEN_PROGRAM_ID,wc as TWO,bc as TickArrayBitmap,Sc as TickArrayBitmapExtension,Tc as TickArrayBitmapExtensionLayout,Ic as TickArrayLayout,hc as TickLayout,Pc as TickMath,Cc as TickQuery,Rc as TickUtils,Oc as Token,vc as TokenAmount,Dc as TokenList,Lc as TradeV2,Ec as TxVersion,Bc as U64Resolution,Mc as U64_IGNORE_RANGE,Vc as UInt,_c as Union,qc as Utils1216,Uc as Voter,Kc as VoterDepositEntry,xc as VoterLockup,Nc as VoterRegistrar,Wc as VoterVotingMintConfig,Fc as WSOL,Gc as WideBits,Yc as WrappedLayout,Xc as ZERO,Hc as _100,zc as _1000,jc as _10000,Qc as _100_PERCENT,Zc as _SERUM_PROGRAM_ID_V3,Jc as array,$c as bits,eu as blob,tu as bool,nu as buildSimpleTransaction,iu as buildTransaction,ou as chunkArray,ru as closePositionInstruction,au as collectRewardInstruction,su as createPoolInstruction,cu as cstr,uu as currencyEquals,mu as decodeBool,du as decreaseLiquidityInstruction,lu as divCeil,pu as encodeBool,fu as f32,Au as f32be,gu as f64,yu as f64be,ku as fetchMultipleMintInfos,wu as findProgramAddress,bu as forecastTransactionSize,Su as formatLayout,Tu as generatePubKey,Iu as getDxByDyBaseIn,hu as getDyByDxBaseIn,Pu as getMultipleAccountsInfo,Cu as getMultipleAccountsInfoWithCustomFlags,Ru as getMultipleLookupTableInfo,Ou as getPdaAmmConfigId,vu as getPdaExBitmapAccount,Du as getPdaMetadataKey,Lu as getPdaOperationAccount,Eu as getPdaPersonalPositionAddress,Bu as getPdaPoolId,Mu as getPdaPoolRewardVaulId,Vu as getPdaPoolVaultId,_u as getPdaProtocolPositionAddress,qu as getPdaTickArrayAddress,Uu as getStablePrice,Ku as getTransferAmountFee,xu as getWSOLAmount,Nu as greedy,Wu as i128,Fu as i16ToBytes,Gu as i32ToBytes,Yu as i64,Xu as i8,Hu as increasePositionFromBaseInstruction,zu as increasePositionFromLiquidityInstruction,ju as initRewardInstruction,Qu as initStableModelLayout,Zu as initStableModelLayoutWithFactory,Ju as inspectAll,$u as inspectBN,em as inspectCurrency,tm as inspectPublicKey,nm as inspectToken,im as intersection,om as isZero,rm as jsonInfo2PoolKeys,am as leadingZeros,sm as leastSignificantBit,cm as minExpirationTime,um as mostSignificantBit,mm as ns64,dm as ns64be,lm as nu64,pm as nu64be,fm as offset,Am as openPositionFromBaseInstruction,gm as openPositionFromLiquidityInstruction,ym as option,km as parseBigNumberish,wm as parseSimulateLogToJson,bm as parseSimulateValue,Sm as poolKeys2JsonInfo,Tm as poolTypeV6,Im as publicKey,hm as rustEnum,Pm as s16,Cm as s16be,Rm as s24,Om as s24be,vm as s32,Dm as s32be,Lm as s40,Em as s40be,Bm as s48,Mm as s48be,Vm as s8,_m as seq,qm as setRewardInstruction,Um as simulateMultipleInstruction,Km as simulateTransaction,xm as splitNumber,Nm as splitTxAndSigners,Wm as str,Fm as struct,Gm as swapInstruction,Ym as tagged,Xm as tenExponentiate,Hm as trailingZeros,zm as u128,jm as u16,Qm as u16ToBytes,Zm as u16be,Jm as u24,$m as u24be,ed as u32,td as u32ToBytes,nd as u32be,id as u40,od as u40be,rd as u48,ad as u48be,sd as u64,cd as u8,ud as union,md as unionLayoutDiscriminator,dd as uniq,ld as unwarpSol,pd as utf8,fd as validateAndParsePublicKey,Ad as vec,gd as vecU8,yd as xor,kd as zeros};