@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 77.9 kB
JavaScript
var yo=Object.defineProperty,bo=Object.defineProperties;var go=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var un=Object.prototype.hasOwnProperty,cn=Object.prototype.propertyIsEnumerable;var sn=(o,t,n)=>t in o?yo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,R=(o,t)=>{for(var n in t||(t={}))un.call(t,n)&&sn(o,n,t[n]);if(ot)for(var n of ot(t))cn.call(t,n)&&sn(o,n,t[n]);return o},D=(o,t)=>bo(o,go(t));var me=(o,t)=>{var n={};for(var i in o)un.call(o,i)&&t.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&ot)for(var i of ot(o))t.indexOf(i)<0&&cn.call(o,i)&&(n[i]=o[i]);return n};import{merge as pR}from"lodash";import jc from"axios";import{PublicKey as wo}from"@solana/web3.js";import{get as ln,set as Po}from"lodash";var Bt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},mn={},Ao={};function v(o){let t=ln(mn,o);if(!t){let n=ln(Ao,o);t=new Bt({name:o,logLevel:n}),Po(mn,o,t)}return t}import{MINT_SIZE as _a,TOKEN_PROGRAM_ID as Va,getTransferFeeConfig as Ea,unpackMint as Da}from"@solana/spl-token";var St=v("Raydium_accountInfo_util");async function Pe(o,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:d=100}=R({batchRequest:!1},n),p=Kt(t,d),f=new Array(p.length).fill([]);if(i){let g=p.map(C=>{let L=o._buildArgs([C.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:L}}),B=Kt(g,10);f=(await(await Promise.all(B.map(async C=>await o._rpcBatchRequest(C)))).flat()).map(C=>(C.error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${C.error.message}`),C.result.value.map(L=>{if(L){let{data:S,executable:F,lamports:P,owner:T,rentEpoch:I}=L;return S.length!==2&&S[1]!=="base64"&&St.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:F,lamports:P,owner:new wo(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(p.map(g=>o.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import we from"bn.js";import Zs from"decimal.js";import xo from"big.js";import at from"bn.js";import ko from"toformat";var To=ko,Ue=To;import rt from"big.js";import Io from"bn.js";import Bo from"decimal.js-light";import Ge from"bn.js";var dn=9007199254740991;function Z(o){let t=v("Raydium_parseBigNumberish");if(o instanceof Ge)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ge(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=dn||o<=-dn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ge(String(o))):typeof o=="bigint"?new Ge(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ge(0))}var it=v("module/fraction"),xt=Ue(rt),ze=Ue(Bo),So={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},Ko={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},M=class{constructor(t,n=new Io(1)){this.numerator=Z(t),this.denominator=Z(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new M(this.denominator,this.numerator)}add(t){let n=t instanceof M?t:new M(Z(t));return this.denominator.eq(n.denominator)?new M(this.numerator.add(n.numerator),this.denominator):new M(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof M?t:new M(Z(t));return this.denominator.eq(n.denominator)?new M(this.numerator.sub(n.numerator),this.denominator):new M(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof M?t:new M(Z(t));return new M(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof M?t:new M(Z(t));return new M(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<=0&&it.logWithError(`${t} is not positive.`),ze.set({precision:t+1,rounding:So[i]});let u=new ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),xt.DP=t,xt.RM=Ko[i]||1,new xt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Co=v("Raydium_amount"),pn=Ue(xo);function Ro(o,t){let n="0",i="0";if(o.includes(".")){let u=o.split(".");u.length===2?([n,i]=u,i=i.padEnd(t,"0")):Co.logWithError(`invalid number string, num: ${o}`)}else n=o;return[n,i.slice(0,t)||i]}var ie=class extends M{constructor(n,i,u=!0,d){let p=new at(0),f=Ct.pow(new at(n.decimals));if(u)p=Z(i);else{let g=new at(0),B=new at(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,C]=Ro(i.toString(),n.decimals);g=Z(b),B=Z(C)}g=g.mul(f),p=g.add(B)}super(p,f);this.logger=v(d||"TokenAmount"),this.token=n}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(n){return this.token.equals(n.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(n.raw)}lt(n){return this.token.equals(n.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(n.raw)}add(n){return this.token.equals(n.token)||this.logger.logWithError("add token not equals"),new ie(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new ie(this.token,this.raw.sub(n.raw))}toSignificant(n=this.token.decimals,i,u=0){return super.toSignificant(n,i,u)}toFixed(n=this.token.decimals,i,u=0){return n>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(n,i,u)}toExact(n={groupSeparator:""}){return pn.DP=this.token.decimals,new pn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};import{PublicKey as Lo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fn}from"@solana/spl-token";var st={chainId:101,address:Lo.default.toBase58(),programId:fn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:fn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Lt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as yn,SYSVAR_RENT_PUBKEY as Oo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as No}from"@solana/spl-token";function xe({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Mo=[xe({pubkey:No,isWritable:!1}),xe({pubkey:yn.programId,isWritable:!1}),xe({pubkey:Oo,isWritable:!1})];function bn({publicKey:o,transformSol:t}){let n=gn(o.toString());if(n instanceof X)return t&&n.equals(he)?Ae:n;if(t&&n.toString()===he.toBase58())return Ae;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function gn(o){try{return new X(o)}catch{return o}}var Rt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new X("SysvarRent111111111111111111111111111111111"),Ps=new X("SysvarC1ock11111111111111111111111111111111"),ut=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Fo=new X("Sysvar1nstructions1111111111111111111111111"),vo=yn.programId,As=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ws=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ks=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ts=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),hs=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Is=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Bs=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ss=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ks=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),xs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Cs=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new X("So11111111111111111111111111111111111111112"),he=X.default;var Ot=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:d=!1,isToken2022:p=!1}){if(t===he.toBase58()||t instanceof Lt&&he.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Lt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?Lt.default:bn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},te=Ot;te.WSOL=new Ot(D(R({},de),{mint:de.address}));var Nt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},ct=Nt;ct.SOL=new Nt(st);import _o from"bn.js";var Pn=new M(new _o(100)),pe=class extends M{toSignificant(t=5,n,i){return this.mul(Pn).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(Pn).toFixed(t,n,i)}};var Vo=v("Raydium_price"),se=class extends M{constructor(n){let{baseToken:i,quoteToken:u,numerator:d,denominator:p}=n;super(d,p);this.baseToken=i,this.quoteToken=u,this.scalar=new M(Mt(i.decimals),Mt(u.decimals))}get raw(){return new M(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new se({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&Vo.logWithError("mul token not equals");let i=super.mul(n);return new se({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(n=this.quoteToken.decimals,i,u){return this.adjusted.toSignificant(n,i,u)}toFixed(n=this.quoteToken.decimals,i,u){return this.adjusted.toFixed(n,i,u)}};var au=new we(2),su=new we(3),uu=new we(5),Ct=new we(10),cu=new we(100),lu=new we(1e3),mu=new we(1e4);function Mt(o){return Ct.pow(Z(o))}function Ft(o){var f;if(o===void 0)return{denominator:"1",numerator:"0"};if(o instanceof we)return{numerator:o.toString(),denominator:"1"};if(o instanceof M)return{denominator:o.denominator.toString(),numerator:o.numerator.toString()};let t=String(o),[,n="",i="",u=""]=(f=t.replace(",","").match(/(-?)(\d*)\.?(\d*)/))!=null?f:[],d="1"+"0".repeat(u.length),p=n+(i==="0"?"":i)+u||"0";return{denominator:d,numerator:p,sign:n,int:i,dec:u}}function Kt(o,t=1,n=[]){let i=[...o];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}import{PublicKey as xu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ru}from"@solana/spl-token";import{ComputeBudgetProgram as An,Keypair as kn,PublicKey as Do,Transaction as Tn,TransactionMessage as Wo,VersionedTransaction as hn}from"@solana/web3.js";var j={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";var wn=v("Raydium_txUtil"),In=1644;function lt(o){let t=[],n=[];return o.microLamports&&(t.push(An.setComputeUnitPrice({microLamports:o.microLamports})),n.push(j.SetComputeUnitPrice)),o.units&&(t.push(An.setComputeUnitLimit({units:o.units})),n.push(j.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ce(o,t){var i,u;let n=t!=null?t:"confirmed";return(u=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:u.blockhash}async function mt(o,t){return o.getSignatureStatuses([t]),new Promise((n,i)=>{let u=setTimeout(i,6e4);o.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}i(Object.assign(d.err,{txId:t}))},"confirmed")})}function vt(o,t){o.length<1&&wn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&wn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Tn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<In}catch{return!1}}function fe(o,t){let[n,i]=Do.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function Ye({instructions:o,payer:t,signers:n}){return vt(o,[t,...n])}function He({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=kn.generate().publicKey.toString()}){let d=new Wo({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new hn(d).serialize()).toString("base64").length<In}catch{return!1}}var Uo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Go=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof hn&&(t=Uo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ie(o){let t=[];return o.forEach(n=>{n instanceof Tn&&(n.recentBlockhash||(n.recentBlockhash=qo.toBase58()),n.feePayer||(n.feePayer=kn.generate().publicKey)),t.push(Go(n))}),console.log("simulate tx string:",t),t}import{PublicKey as k}from"@solana/web3.js";var Bn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Sn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Kn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),_t=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Mu=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),zo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),xn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Cn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Fu=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Xo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Yo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ho=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ln=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),vu=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Qo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Vt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Zo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),_u=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),$o=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),jo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Jo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Vu=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Eu=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Du=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Wu=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),qu=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ke={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import zu from"bn.js";import{PublicKey as Et,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Dt({connection:o,address:t,cluster:n="mainnet"}){let i=await Pe(o,[...new Set(t.map(d=>d.toString()))].map(d=>new Et(d))),u={};for(let d=0;d<t.length;d++){let p=i[d],f=t[d];if(!p)continue;let g=new Oe({key:f,state:Oe.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Le[f.toString()]=g:Re[f.toString()]=g}return u}var Re={},Wt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[t])return Re;let n=new Et(t),i=await o.getAccountInfo(n);return i&&(Re[t]=new Oe({key:n,state:Oe.deserialize(i.data)})),Re},Le={},qt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[t])return Le;let n=new Et(t),i=await o.getAccountInfo(n);return i&&(Le[t]=new Oe({key:n,state:Oe.deserialize(i.data)})),Le};import{PublicKey as Ne,sendAndConfirmTransaction as Ut,SystemProgram as ei,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as $e}from"@solana/web3.js";import ti from"axios";var dt=2e3,pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let t=(await ti.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=lt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ei.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ne(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(j.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...p.filter(f=>f!==Ne.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(D(R({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:d,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},B=d!=null?d:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=B,this.signers.length&&n.sign(...this.signers),Ie([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Ut(this.connection,n,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let C=await this.signAllTransactions([n]);if(this.signers.length)for(let L of C)try{L.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(C[0].serialize(),{skipPreflight:p}),signedTx:C[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var B;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:u}=this.build(i),d=n.filter(b=>b.transaction.instructions.length>0),p=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&f.forEach(b=>{b.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async b=>{var I;let{sequentially:C,onTxUpdate:L,skipTxCount:S=0,recentBlockHash:F,skipPreflight:P=!0}=b||{},T=F!=null?F:await Ce(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(C){let h=[],_=0;for(let V of p){if(++_,_<=S)continue;let y=await Ut(this.connection,V,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(y)}return{txIds:h,signedTxs:p}}return{txIds:await await Promise.all(p.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:p}}if(this.signAllTransactions){let h=p.map((V,y)=>(V.recentBlockhash=T,f[y].length&&V.sign(...f[y]),V));Ie(h);let _=await this.signAllTransactions(h);if(C){let V=0,y=[],A=async()=>{if(!_[V])return;let w=await this.connection.sendRawTransaction(_[V].serialize(),{skipPreflight:P});y.push({txId:w,status:"sent",signedTx:_[V]}),L==null||L([...y]),V++;let K=!1,O=null,E=null,ae=U=>{O!==null&&clearInterval(O),E!==null&&this.connection.removeSignatureListener(E);let q=y.findIndex(ee=>ee.txId===w);if(q>-1){if(y[q].status==="error"||y[q].status==="success")return;y[q].status=U.err?"error":"success"}L==null||L([...y]),U.err||A()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var U;if(K){clearInterval(O);return}try{let q=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:1});q&&(K=!0,clearInterval(O),ae({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(q){K=!0,clearInterval(O),console.error("getTransaction timeout:",q,w)}},dt)),E=this.connection.onSignature(w,U=>{if(K){this.connection.removeSignatureListener(E);return}K=!0,ae(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:y.map(w=>w.txId),signedTxs:_}}else{let V=[];for(let y=0;y<_.length;y+=1){let A=await this.connection.sendRawTransaction(_[y].serialize(),{skipPreflight:P});V.push(A)}return{txIds:V,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var P;let F=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:d}=F,p=me(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=R(R({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),B=[];for(let T of g)f[T]===void 0&&B.push(new Ne(T));let b=await Dt({connection:this.connection,address:B});for(let[T,I]of Object.entries(b))f[T]=I;let C=u?Ne.default.toBase58():d!=null?d:await Ce(this.connection,this.blockhashCommitment),L=new Ze({payerKey:this.feePayer,recentBlockhash:C,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new $e(L);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var V;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:_}=T||{};if(Ie([S]),(V=this.owner)!=null&&V.isKeyPair){let y=await this.connection.sendTransaction(S,{skipPreflight:I});return h&&await mt(this.connection,y),{txId:y,signedTx:S}}if(this.signAllTransactions){let y=await this.signAllTransactions([S]);if(this.signers.length)for(let A of y)try{A.sign(this.signers)}catch{}return{txId:_?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var B;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:u}=await this.buildV0(i),d=n.filter(b=>b.builder.instructions.length>0),p=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&f.forEach(b=>{b.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,C)=>{b.sign(f[C])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:i,execute:async b=>{var P;let{sequentially:C,onTxUpdate:L,recentBlockHash:S,skipPreflight:F=!0}=b||{};if(S&&p.forEach(T=>T.message.recentBlockhash=S),Ie(p),(P=this.owner)!=null&&P.isKeyPair){if(C){let T=[];for(let I of p){let h=await this.connection.sendTransaction(I,{skipPreflight:F});await mt(this.connection,h),T.push(h)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:F}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p);if(C){let I=0,h=[],_=async()=>{if(!T[I])return;let V=await this.connection.sendTransaction(T[I],{skipPreflight:F});h.push({txId:V,status:"sent",signedTx:T[I]}),L==null||L([...h]),I++;let y=!1,A=null,w=null,K=O=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let E=h.findIndex(ae=>ae.txId===V);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=O.err?"error":"success"}L==null||L([...h]),O.err||_()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var O;if(y){clearInterval(A);return}try{let E=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});E&&(y=!0,clearInterval(A),K({err:((O=E.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",V))}catch(E){y=!0,clearInterval(A),console.error("getTransaction timeout:",E,V)}},dt)),w=this.connection.onSignature(V,O=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,K(O)},"confirmed"),this.connection.getSignatureStatus(V)};return _(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let _=await this.connection.sendTransaction(T[h],{skipPreflight:F});I.push(_)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var L;let C=t||{},{splitIns:n=[],computeBudgetConfig:i}=C,u=me(C,["splitIns","computeBudgetConfig"]),d=i?lt(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,F)=>D(R({},S),{[F.publicKey.toBase58()]:F}),{}),f=[],g=[],B=[],b=0;if(this.allInstructions.forEach(S=>{let F=[...B,S],P=i?[...d.instructions,...F]:F,I=[...new Set(F.map(h=>h.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat()).values()].map(h=>new Ne(h));if(S!==n[b]&&B.length<12&&(Ye({instructions:P,payer:this.feePayer,signers:I})||Ye({instructions:F,payer:this.feePayer,signers:I})))B.push(S);else{if(B.length===0)throw Error("item ins too big");b+=S===n[b]?1:0,Ye({instructions:i?[...d.instructions,...B]:[...B],payer:this.feePayer,signers:I})?f.push(new Qe().add(...d.instructions,...B)):f.push(new Qe().add(...B)),g.push(Array.from(new Set(B.map(h=>h.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(h=>p[h]).filter(h=>h!==void 0)),B=[S]}}),B.length>0){let F=[...new Set(B.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>p[P]).filter(P=>P!==void 0);Ye({instructions:i?[...d.instructions,...B]:[...B],payer:this.feePayer,signers:F.map(P=>P.publicKey)})?f.push(new Qe().add(...d.instructions,...B)):f.push(new Qe().add(...B)),g.push(F)}return f.forEach(S=>S.feePayer=this.feePayer),(L=this.owner)!=null&&L.signer&&g.forEach(S=>{S.some(F=>F.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async S=>{var V;let{sequentially:F,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},_=I!=null?I:await Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(y,A)=>{y.recentBlockhash=_,g[A].length&&y.sign(...g[A])}),Ie(f),(V=this.owner)!=null&&V.isKeyPair){if(F){let y=0,A=[];for(let w of f){if(++y,y<=T){A.push("tx skipped");continue}let K=await Ut(this.connection,w,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(K)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let y=await this.signAllTransactions(f.slice(T,f.length)),A=[...f.slice(0,T),...y];if(F){let w=0,K=[],O=async()=>{if(!A[w])return;w<T&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,O());let E=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});K.push({txId:E,status:"sent",signedTx:A[w]}),P==null||P([...K]),w++;let ae=!1,U=null,q=null,ee=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let oe=K.findIndex(be=>be.txId===E);if(oe>-1){if(K[oe].status==="error"||K[oe].status==="success")return;K[oe].status=G.err?"error":"success"}P==null||P([...K]),G.err||O()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ae){clearInterval(U);return}try{let oe=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:1});oe&&(ae=!0,clearInterval(U),ee({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",E))}catch(oe){ae=!0,clearInterval(U),console.error("getTransaction timeout:",oe,E)}},dt)),q=this.connection.onSignature(E,G=>{if(ae){this.connection.removeSignatureListener(q);return}ae=!0,ee(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await O(),{txIds:K.map(E=>E.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let O=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:h});w.push(O)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let _=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:p=12}=_,f=me(_,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=R(R({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let y of B)g[y]===void 0&&b.push(new Ne(y));let C=await Dt({connection:this.connection,address:b});for(let[y,A]of Object.entries(C))g[y]=A;let L=n?lt(n):{instructions:[],instructionTypes:[]},S=await Ce(this.connection,this.blockhashCommitment),F=this.signers.reduce((y,A)=>D(R({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let A=[...I,y],w=n?[...L.instructions,...A]:A;if(y!==i[h]&&I.length<p&&(He({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||He({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(y);else{if(I.length===0)throw Error("item ins too big");h+=y===i[h]?1:0;let K={};for(let O of[...new Set(B)])g[O]!==void 0&&(K[O]=g[O]);if(n&&He({instructions:[...L.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let O=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...L.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new $e(O))}else{let O=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new $e(O))}T.push(Array.from(new Set(I.map(O=>O.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(O=>F[O]).filter(O=>O!==void 0)),I=[y]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(w=>F[w]).filter(w=>w!==void 0);if(n&&He({instructions:[...L.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...L.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new $e(w))}else{let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new $e(w))}T.push(A)}return(V=this.owner)!=null&&V.signer&&T.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),P.forEach((y,A)=>{y.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ae;let{sequentially:A,onTxUpdate:w,skipTxCount:K=0,recentBlockHash:O,skipPreflight:E=!0}=y||{};if(P.map(async(U,q)=>{T[q].length&&U.sign(T[q]),O&&(U.message.recentBlockhash=O)}),Ie(P),(ae=this.owner)!=null&&ae.isKeyPair){if(A){let U=0,q=[];for(let ee of P){if(++U,U<=K){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(ee,{skipPreflight:E});await mt(this.connection,G),q.push(G)}return{txIds:q,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(K,P.length)),q=[...P.slice(0,K),...U];if(A){let ee=0,G=[],oe=async()=>{if(!q[ee])return;if(ee<K){G.push({txId:"",status:"success",signedTx:q[ee]}),w==null||w([...G]),ee++,oe();return}let be=await this.connection.sendTransaction(q[ee],{skipPreflight:E});G.push({txId:be,status:"sent",signedTx:q[ee]}),w==null||w([...G]),ee++;let We=!1,Ke=null,nt=null,an=Te=>{Ke!==null&&clearInterval(Ke),nt!==null&&this.connection.removeSignatureListener(nt);let ge=G.findIndex(fo=>fo.txId===be);if(ge>-1){if(G[ge].status==="error"||G[ge].status==="success")return;G[ge].status=Te.err?"error":"success"}w==null||w([...G]),Te.err||oe()};this.loopMultiTxStatus&&(Ke=setInterval(async()=>{var Te;if(We){clearInterval(Ke);return}try{let ge=await this.connection.getTransaction(be,{commitment:"confirmed",maxSupportedTransactionVersion:1});ge&&(We=!0,clearInterval(Ke),an({err:((Te=ge.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",be))}catch(ge){We=!0,clearInterval(Ke),console.error("getTransaction timeout:",ge,be)}},dt)),nt=this.connection.onSignature(be,Te=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,an(Te)},"confirmed"),this.connection.getSignatureStatus(be)};return oe(),{txIds:[],signedTxs:q}}else{let ee=[];for(let G=0;G<q.length;G+=1){let oe=await this.connection.sendTransaction(q[G],{skipPreflight:E});ee.push(oe)}return{txIds:ee,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import{PublicKey as Pc}from"@solana/web3.js";import wc from"bn.js";import ni from"bn.js";var ft=new ni(1e6);var On={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},oi=D(R({},On),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var kl=v("Raydium_Api");import{PublicKey as md,SystemProgram as dd}from"@solana/web3.js";import{AccountLayout as gd,createAssociatedTokenAccountIdempotentInstruction as Pd,TOKEN_PROGRAM_ID as Ad,TOKEN_2022_PROGRAM_ID as wd}from"@solana/spl-token";var Gt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),re=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=v(n)}createTxBuilder(t){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Gt(t))}logInfo(...t){this.logger.info(Gt(t))}logAndCreateError(...t){let n=Gt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as qm,SystemProgram as Gm}from"@solana/web3.js";import Ym from"bn.js";import{createCloseAccountInstruction as $m,createInitializeAccountInstruction as jm,createTransferInstruction as Jm,TOKEN_PROGRAM_ID as ed}from"@solana/spl-token";import{Keypair as Cm,PublicKey as Rm}from"@solana/web3.js";import Nm from"bn.js";import{TOKEN_PROGRAM_ID as vm}from"@solana/spl-token";import{PublicKey as yi}from"@solana/web3.js";import _n,{isBN as Vn}from"bn.js";import{bits as ii,BitStructure as Ml,blob as ri,Blob as Fl,cstr as vl,f32 as _l,f32be as Vl,f64 as El,f64be as Dl,greedy as Wl,Layout as ai,ns64 as ql,ns64be as Ul,nu64 as Gl,nu64be as zl,offset as si,s16 as Xl,s16be as Yl,s24 as Hl,s24be as Ql,s32 as ui,s32be as Zl,s40 as $l,s40be as jl,s48 as Jl,s48be as em,s8 as tm,seq as ci,struct as nm,Structure as li,u16 as mi,u16be as om,u24 as im,u24be as rm,u32 as di,u32be as am,u40 as sm,u40be as um,u48 as cm,u48be as lm,u8 as pi,UInt as fi,union as mm,Union as dm,unionLayoutDiscriminator as pm,utf8 as fm}from"@solana/buffer-layout";var yt=ai,Nn=li;var zt=fi;var Mn=pi,Q=mi;var bt=di;var ce=ui;var Fn=ci;var N=ri;var Xt=ii,vn=si;var Se=class extends yt{constructor(n,i,u){super(n,u);this.blob=N(n),this.signed=i}decode(n,i=0){let u=new _n(this.blob.decode(n,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,i,u=0){return typeof n=="number"&&(n=new _n(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,u)}},gt=class extends yt{constructor(n){super(8,n);this._lower=Xt(bt(),!1),this._upper=Xt(bt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let u=this._lower.decode(n,i),d=this._upper.decode(n,i+this._lower.span);return R(R({},u),d)}encode(n,i,u=0){return this._lower.encode(n,i,u)+this._upper.encode(n,i,u+this._lower.span)}};function c(o){return new zt(1,o)}function Y(o){return new zt(4,o)}function e(o){return new Se(8,!1,o)}function x(o){return new Se(16,!1,o)}function En(o){return new Se(1,!0,o)}function Me(o){return new Se(8,!0,o)}function Dn(o){return new Se(16,!0,o)}var je=class extends yt{constructor(n,i,u,d){super(n.span,d);this.layout=n,this.decoder=i,this.encoder=u}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,u){return this.layout.encode(this.encoder(n),i,u)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new je(N(32),t=>new yi(t),t=>t.toBuffer(),o)}function ue(o){return new je(Mn(),bi,gi,o)}function bi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function gi(o){return o?1:0}function Ht(o,t){let n=bt("length"),i=l([n,m(o,vn(n,-n.span),"values")]);return new je(i,({values:u})=>u,u=>({values:u}),t)}var Yt=class extends Nn{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Yt(o,t,n)}function m(o,t,n){let i,u=typeof t=="number"?t:Vn(t)?t.toNumber():new Proxy(t,{get(d,p){if(!i){let f=Reflect.get(d,"count");i=Vn(f)?f.toNumber():f,Reflect.set(d,"count",i)}return Reflect.get(d,p)},set(d,p,f){return p==="count"&&(i=f),Reflect.set(d,p,f)}});return Fn(o,u,n)}var Pt=l([r("mint"),r("owner"),e("amount"),Y("delegateOption"),r("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as OP,SystemProgram as NP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as FP}from"@solana/spl-token";import zP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as kb,TOKEN_2022_PROGRAM_ID as Tb,TOKEN_PROGRAM_ID as hb}from"@solana/spl-token";import{PublicKey as Bb}from"@solana/web3.js";import Kb from"bn.js";import Cb from"decimal.js";import{TOKEN_PROGRAM_ID as Rd}from"@solana/spl-token";import{PublicKey as Md}from"@solana/web3.js";var Ai=l([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as qy,TOKEN_2022_PROGRAM_ID as Uy,TOKEN_PROGRAM_ID as Gy}from"@solana/spl-token";import{Keypair as Yy,PublicKey as Hy,SystemProgram as Zy,TransactionInstruction as $y}from"@solana/web3.js";import Jy from"bn.js";import W from"bn.js";var Fe=new W(1).shln(64);var wi=new W(1).shln(128),Qt=new W(1).shln(64).subn(1),ki=new W(1).shln(128).subn(1);var ve=new W("4295048016"),_e=new W("79226673521066979257578248091"),Ti=new W("59543866431248"),hi=new W("184467440737095516"),Ii=new W("15793534762490258745");var Zt=60,Xd=new W("18446743708227953217"),Bi=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var Je=3,qn=100;var Un=10,Gn=100,wt=14;var z=new W(0),Ve=new W(1),Yd=new W(-1);var Hd=new W("18446744073700000000");var Si=l([N(8),c("bump"),Q("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Q("tickSpacing"),Y("fundFeeRate"),m(Y(),1),r("fundOwner"),m(e(),3)]),Ki=l([Y("blockTimestamp"),Me("tickCumulative"),m(e(),4)]),zn=l([N(8),ue("initialized"),e("recentEpoch"),Q("observationIndex"),r("poolId"),m(Ki,qn,"observations"),m(e(),4)]),xi=l([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Ci=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),x("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),x("growthGlobalX64")]),$t=l([N(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Q("tickSpacing"),x("liquidity"),x("sqrtPriceX64"),ce("tickCurrent"),Y(),x("feeGrowthGlobalX64A"),x("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(x(),4),c("status"),c("feeOn"),N(6),m(Ci,Je,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),xi.replicate("dynamicFeeInfo"),m(e(),46)]),Ri=l([x("growthInsideLastX64"),e("rewardAmountOwed")]),Li=l([N(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),x("liquidity"),x("feeGrowthInsideLastX64A"),x("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(Ri,Je,"rewardInfos"),e("recentEpoch"),m(e(),7)]),jd=l([N(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),x("liquidity"),x("feeGrowthInsideLastX64A"),x("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(x(),Je,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Oi=l([ce("tick"),Dn("liquidityNet"),x("liquidityGross"),x("feeGrowthOutsideX64A"),x("feeGrowthOutsideX64B"),m(x(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),x("unfilledRatioX64"),m(Y(),3)]),Xn=l([N(8),r("poolId"),ce("startTickIndex"),m(Oi,Zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Ni=l([N(8),c("bump"),m(r(),Un,"operationOwners"),m(r(),Gn,"whitelistMints")]),Mi=l([N(8),r("poolId"),r("owner"),ce("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),x("unfilledRatioX64"),m(e(),4)]),Yn=l([N(8),r("poolId"),N(8*8*wt,"positiveTickArrayBitmap"),N(8*8*wt,"negativeTickArrayBitmap")]),Jd=l([N(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),m(e(),8)]),Fi=l([N(8),r("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),ep=l([e(),c("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),m(e(),8)]),vi=l([N(8),c("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),m(e(),8)]);import op from"bn.js";var fp=Buffer.from("amm_config","utf8"),Vi=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),yp=Buffer.from("pool_reward_vault","utf8"),bp=Buffer.from("position","utf8"),gp=Buffer.from("tick_array","utf8"),Pp=Buffer.from("operation","utf8"),Ap=Buffer.from("pool_tick_array_bitmap_extension","utf8"),wp=Buffer.from("observation","utf8"),kp=Buffer.from("support_mint","utf8"),Tp=Buffer.from("dynamic_fee_config","utf8"),hp=Buffer.from("permission","utf8");var Ip=Buffer.from("locked_position","utf8");import{sha256 as er}from"js-sha256";import Di from"bn.js";import xp from"decimal.js";var Rp=new Di(1).shln(256).subn(1);import Hp from"bn.js";import _p from"bn.js";import Ep from"decimal.js";import Jp from"bn.js";import tf from"decimal.js";import{PublicKey as qf}from"@solana/web3.js";import Gf from"bn.js";import{TOKEN_2022_PROGRAM_ID as jf,TOKEN_PROGRAM_ID as Jf}from"@solana/spl-token";import oy from"decimal.js";import Lf from"bn.js";import Pf from"bn.js";import fy from"bn.js";function J(o){let t=`global:${o}`;return Buffer.from(er.digest(t)).slice(0,8)}zn.span;var ub=v("Raydium_Clmm"),cb={createPool:J("create_pool"),createCustomizablePool:J("create_customizable_pool"),createPermissionedPool:J("create_permissioned_pool"),openPositionV2:J("open_position_v2"),openPositionWithToken22Nft:J("open_position_with_token22_nft"),closePosition:J("close_position"),increaseLiquidityV2:J("increase_liquidity_v2"),decreaseLiquidityV2:J("decrease_liquidity_v2"),initializeReward:J("initialize_reward"),setRewardParams:J("set_reward_params"),updateRewardInfos:J("update_reward_infos"),collectRemainingRewards:J("collect_remaining_rewards"),swapV2:J("swap_v2"),openLimitOrder:J("open_limit_order"),increaseLimitOrder:J("increase_limit_order"),decreaseLimitOrder:J("decrease_limit_order"),settleLimitOrder:J("settle_limit_order"),closeLimitOrder:J("close_limit_order")};import{PublicKey as tn}from"@solana/web3.js";var ir=l([c("instruction")]),rr=l([c("instruction")]),ar=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),x("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),m(e(),15,"padding")]),sr=l([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),x("perShareReward"),e("lastSlot"),e("perSlotReward")]),ur=l([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),x("perShareRewardA"),e("perSlotRewardA"),c("option"),r("rewardVaultB"),N(7),e("totalRewardB"),x("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),cr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),x("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),m(ar,5,"rewardInfos"),r("creator"),r(),m(e(),32,"padding")]),lr=new Proxy(sr,{get(o,t,n){return t==="decode"?(...i)=>{let u=o.decode(...i);return D(R({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(o,t,n)}}),mr=new Proxy(ur,{get(o,t,n){return t==="decode"?(...i)=>{let u=o.decode(...i);return D(R({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(o,t,n)}}),eo=new Proxy(cr,{get(o,t,n){return t==="decode"?(...i)=>{let u=o.decode(...i);return D(R({},u),{version:6,rewardInfos:u.rewardInfos.map(d=>{var p;return D(R({},d),{rewardType:((p=Object.entries(tt).find(f=>String(f[1])===d.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),dr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),pr=l([c("instruction"),e("nonce"),m(dr,5,"rewardTimeInfo")]),fr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),yr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),ig=l([e("state"),r("id"),r("owner"),e("deposited"),m(e(),1,"rewardDebts")]),to=l([e("state"),r("id"),r("owner"),e("deposited"),m(x(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),rg=l([e("state"),r("id"),r("owner"),e("deposited"),m(e(),2,"rewardDebts")]),br=l([e("state"),r("id"),r("owner"),e("deposited"),m(x(),2,"rewardDebts"),m(e(),17)]),gr=l([e(),e("state"),r("id"),r("owner"),e("deposited"),m(x(),5,"rewardDebts"),m(e(),16)]),Pr=l([c("instruction"),e("amount")]),Ar=l([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),En("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),wr=l([N(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),m(c(),32,"reserved1"),m(Ar,4,"votingMints"),Me("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),kr=l([Me("startTime"),Me("endTime"),c("kind"),m(c(),15,"reserved")]),Tr=l([m(kr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),hr=l([N(8),r("voterAuthority"),r("registrar"),m(Tr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),m(c(),94,"reserved")]);import{NATIVE_MINT as fg}from"@solana/spl-token";var yg=v("Raydium_farm_config"),Ir=new tn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Br=new tn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var bg=new tn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var tt={"Standard SPL":0,"Option tokens":1},no={[Bn.toString()]:3,[Sn.toString()]:4,[Kn.toString()]:5,[_t.toString()]:6,[ke.FARM_PROGRAM_ID_V3.toString()]:3,[ke.FARM_PROGRAM_ID_V4.toString()]:4,[ke.FARM_PROGRAM_ID_V5.toString()]:5,[ke.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Yg,SystemProgram as Hg,SYSVAR_CLOCK_PUBKEY as Qg,SYSVAR_RENT_PUBKEY as Zg,TransactionInstruction as $g}from"@solana/web3.js";import Jg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as tP,createAssociatedTokenAccountIdempotentInstruction as nP,TOKEN_PROGRAM_ID as oP}from"@solana/spl-token";import hg from"bn.js";var vg=v("Raydium.farm.util");var fP=v("Raydium_farm_instruction"),yP={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])};import nA from"bn.js";import{PublicKey as uk}from"@solana/web3.js";import{AccountLayout as mk,MintLayout as dk,NATIVE_MINT as pk,TOKEN_PROGRAM_ID as yk}from"@solana/spl-token";import io from"bn.js";var Nr=new io(25),Mr=new io(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as IA,TOKEN_PROGRAM_ID as BA}from"@solana/spl-token";import{PublicKey as KA,SystemProgram as xA,SYSVAR_RENT_PUBKEY as CA,TransactionInstruction as RA}from"@solana/web3.js";import VA from"bn.js";var Fr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),vr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),wA=l([c("instruction"),c("nonce")]),_r=l([c("instruction"),c("nonce"),e("startTime")]),ro=l([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),x("swapBaseInAmount"),x("swapQuoteOutAmount"),e("swapBase2QuoteFee"),x("swapQuoteInAmount"),x("swapBaseOutAmount"),e("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),e("lpReserve"),m(e(),3,"padding")]),kA=l([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),x("swapBaseInAmount"),x("swapQuoteOutAmount"),x("swapQuoteInAmount"),x("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),m(e(),64,"padding")]),Vr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Er=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Dr=l([e("fee")]);var WA=v("Raydium_liquidity_instruction");var Wr=5e4,qr=l([e("x"),e("y"),e("price")]),zA=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),m(qr,Wr,"DataElement")]);import{PublicKey as ow}from"@solana/web3.js";import rw from"decimal.js";import{TOKEN_PROGRAM_ID as sw}from"@solana/spl-token";import{PublicKey as QA}from"@solana/web3.js";var jA=v("Raydium_liquidity_serum");import Fk from"bn.js";import _k from"decimal.js";import{TOKEN_PROGRAM_ID as Mw}from"@solana/spl-token";import{PublicKey as vw}from"@solana/web3.js";import Vw from"bn.js";import{SystemProgram as kw,SYSVAR_RENT_PUBKEY as Tw,Transaction as hw,TransactionInstruction as Iw}from"@solana/web3.js";import{createInitializeAccountInstruction as Sw,TOKEN_PROGRAM_ID as Kw}from"@solana/spl-token";function Ur(o="accountFlags"){let t=new gt(o);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var Gr=l([N(5),Ur("accountFlags"),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as uh}from"@solana/web3.js";import{AccountLayout as lh,NATIVE_MINT as mh,TOKEN_2022_PROGRAM_ID as dh,TOKEN_PROGRAM_ID as ph,createAssociatedTokenAccountIdempotentInstruction as fh}from"@solana/spl-token";import iT from"bn.js";import $r from"bn.js";var Xk=new $r(0);import $k from"bn.js";import Th from"bn.js";import Ih from"decimal.js";import{PublicKey as IT,TransactionInstruction as BT,Keypair as KT,SystemProgram as xT}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as RT,TOKEN_2022_PROGRAM_ID as LT,TOKEN_PROGRAM_ID as OT}from"@solana/spl-token";var cT=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),lT=Buffer.from("amm_config","utf8"),mT=Buffer.from("pool","utf8"),dT=Buffer.from("pool_lp_mint","utf8"),pT=Buffer.from("pool_vault","utf8"),fT=Buffer.from("observation","utf8"),yT=Buffer.from("permission","utf8"),bT=Buffer.from("support_mint","utf8"),gT=Buffer.from("creator_fee_share","utf8");var PT=Buffer.from("locked_liquidity","utf8");var ET=v("Raydium_cpmm"),DT={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};var ea=l([N(8),c("bump"),ue("disableCreatePool"),Q("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),m(e(),14)]),ao=l([N(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),ue("enableCreatorFee"),m(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),m(e(),28)]),UT=l([N(8),r("configId"),m(e(),30)]),GT=l([N(8),c("bump"),r("creator"),r("ammConfig"),e("shareRate"),m(e(),8)]);import{PublicKey as vx,SystemProgram as _x}from"@solana/web3.js";import{createTransferInstruction as Ex,TOKEN_PROGRAM_ID as Dx,TOKEN_2022_PROGRAM_ID as Wx,createAssociatedTokenAccountIdempotentInstruction as qx,createSyncNativeInstruction as Gx,createTransferCheckedInstruction as zx}from"@solana/spl-token";import ka from"bn.js";import Hx from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as OI,TOKEN_2022_PROGRAM_ID as NI,TOKEN_PROGRAM_ID as MI}from"@solana/spl-token";import{SystemProgram as VI,TransactionInstruction as EI}from"@solana/web3.js";import oa from"bn.js";var gI=Buffer.from("vault_auth_seed","utf8"),PI=Buffer.from("global_config","utf8"),AI=Buffer.from("pool_vesting","utf8"),wI=Buffer.from("platform_config","utf8"),kI=Buffer.from("platform_fee_vault_auth_seed","utf8"),TI=Buffer.from("creator_fee_vault_auth_seed","utf8"),hI=Buffer.from("platform_global_access","utf8"),II=Buffer.from("platform_allow_config","utf8"),BI=Buffer.from("platform_curve_rule","utf8");var qI={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var UI=new oa("18446744073709551615");var ia=l([e(),e("epoch"),c("curveType"),Q("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),m(e(),16)]),ra=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),aa=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),ra.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),m(c(),54)]),YI=l([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),m(e(),8)]),sa=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),HI=l([e("epoch"),c("index"),r("configId"),sa.replicate("bondingCurveParam"),m(e(),50)]),uo=l([e(),e("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),m(c(),64,"name"),m(c(),256,"web"),m(c(),256,"img"),r("cpConfigId"),e("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),e("platformVestingScale"),r("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),r("curveRuleManager"),m(c(),78)]),ua=l([c("field"),c("op"),x("value")]),ca=l([Q("groupId"),e("epoch"),Ht(ua,"constraints")]),la=l([e(),c("bump"),c("version"),r("platformId"),r("configId"),e("epoch"),m(e(),8),Ht(ca,"groups")]);import{TOKEN_2022_PROGRAM_ID as $I,TOKEN_PROGRAM_ID as jI}from"@solana/spl-token";import ma from"bn.js";var lB=new ma(1e6);import fB from"bn.js";import bB from"decimal.js";import HB from"bn.js";import ZB from"decimal.js";import TB from"bn.js";import IB from"decimal.js";import MB from"bn.js";import vB from"decimal.js";import mo from"bn.js";import on from"decimal.js";var It=class{static _multipler(t){return new on(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new on(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:t,decimalA:n,decimalB:i}){let u=t.mul(this._multipler(i)).div(this._multipler(n));return new mo(u.mul(this._Q64).toFixed(0))}};It._Q64=new on(new mo(1).shln(64).toString());import{NATIVE_MINT as mK,TOKEN_2022_PROGRAM_ID as dK,TOKEN_PROGRAM_ID as pK,createAssociatedTokenAccountIdempotentInstruction as yK,createSyncNativeInstruction as bK,getTransferFeeConfig as gK,unpackMint as PK}from"@solana/spl-token";import $ from"bn.js";import{PublicKey as Pa,SystemProgram as kK}from"@solana/web3.js";import xK from"decimal.js";var CK={initPriceX64:new $("515752397214619"),supply:new $(1e15),totalSellA:new $(7931e11),totalFundRaisingB:new $(85e9),totalFundRaisingBUSD:new $(125e8),totalLockedAmount:new $("0"),cliffPeriod:new $("0"),unlockPeriod:new $("0"),decimals:6,virtualA:new $("1073471847374405"),virtualB:new $("30050573465"),realA:new $(0),realB:new $(0),protocolFee:new $(0),platformId:new Pa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new $(0),cliffPeriod:new $(0),unlockPeriod:new $(0),startTime:new $(0),totalAllocatedShare:new $(0)}},RK=new $(1e4);var Aa={[xn.toBase58()]:3};var wa=l([N(5),N(8),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as ex}from"@solana/web3.js";var rx=v("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as fx,TOKEN_2022_PROGRAM_ID as yx,TOKEN_PROGRAM_ID as bx}from"@solana/spl-token";import{PublicKey as Px,SystemProgram as Ax,TransactionInstruction as wx}from"@solana/web3.js";import Tx from"bn.js";var IC=new ka(0);import{PublicKey as Ta,Transaction as rn,TransactionInstruction as ha}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ia}from"@solana/spl-token";import po from"bn.js";var ne=class extends re{static getPdaPoolId(t,n){return fe([ne.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,i,u){return fe([ne.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new po(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:u,chainTime:d}){if(i.length===0)return[];let p=i.map(b=>ne.getPdaPoolId(n,b).publicKey),f=[];for(let b=0;b<ne.VERSION_PROJECT.length;b++)f.push(...p.map(C=>ne.getPdaOwnerId(n,C,u,b).publicKey));let g=await Pe(t,[...p,...f]),B=[];for(let b=0;b<g.length;b++){let C=Math.floor(b/i.length),L=b%i.length,S=p[L],F=f[b],P=g[L],T=g[i.length+b];if(!(P&&T)||P.data.length!==ne.POOL_LAYOUT.span||T.data.length!==ne.OWNER_LAYOUT.span)continue;let I=ne.POOL_LAYOUT.decode(P.data),h=ne.OWNER_LAYOUT.decode(T.data),_=I.openTime.toNumber(),V=I.endTime.toNumber(),y=h.tokenInfo.map(K=>K.debtAmount.gt(new po(0))).filter(K=>!K).length!==3,A=d>_&&d<V&&I.status===1,w=y&&A;B.push({programId:n,poolId:S,ammId:I.ammId,ownerAccountId:F,snapshotLpAmount:h.lpAmount,project:ne.VERSION_PROJECT[C],openTime:_,endTime:V,canClaim:w,canClaimErrorType:y?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((K,O)=>({mintAddress:K.mintAddress,mintVault:K.mintVault,mintDecimals:K.mintDecimals,perLpLoss:K.perLpLoss,debtAmount:h.tokenInfo[O].debtAmount.add(h.tokenInfo[O].claimedAmount)}))})}return B}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(i),d=n.wallet||this.scope.ownerPubKey,p=[];for(let B of t.tokenInfo){let{account:b,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({mint:B.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:B.mintAddress.equals(te.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!B.mintAddress.equals(te.WSOL.mint),associatedOnly:B.mintAddress.equals(te.WSOL.mint)?!1:n.associatedOnly});C&&u.addInstruction(C),p.push(b)}u.addInstruction({instructions:[ne.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:d,ownerPda:t.ownerAccountId,claimAddress:p}})]});let{transaction:f,signers:g}=u.build();return[{transaction:f,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:i}){let u=this.createTxBuilder(i),d=n.wallet||this.scope.ownerPubKey,p={};for(let b of t){let C=[];for(let L of b.tokenInfo){let{account:S,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({mint:L.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:L.mintAddress.equals(te.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!L.mintAddress.equals(te.WSOL.mint),associatedOnly:L.mintAddress.equals(te.WSOL.mint)?!1:n.associatedOnly});F&&u.addInstruction(F),S&&(p[L.mintAddress.toString()]=S,C.push(S))}u.addInstruction({instructions:[ne.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:d,ownerPda:b.ownerAccountId,claimAddress:C}})]})}let{transaction:f,signers:g}=u.build(),B=u.allInstructions;return vt(B,[d,...g.map(b=>b.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new rn().add(...B.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new rn().add(...B.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new rn().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let u=l([]),d=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(g=>({pubkey:g,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:g})=>({pubkey:g,isSigner:!1,isWritable:!0})),{pubkey:Ia,isSigner:!1,isWritable:!1}],p=Buffer.alloc(u.span);u.encode({},p);let f=Buffer.from([10,66,208,184,161,6,191,98,...p]);return new ha({keys:d,programId:t,data:f})}},le=ne;le.CLAIMED_NUM=3,le.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),r("ammId"),m(l([c("mintDecimals"),r("mintAddress"),r("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),m(e(),10,"padding")]),le.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),r("poolId"),r("owner"),e("lpAmount"),m(l([r("mintAddress"),e("debtAmount"),e("claimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),m(e(),4,"padding")]),le.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Ta(t)),le.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},le.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as WC}from"@solana/web3.js";import{getTransferFeeConfig as UC,MintLayout as GC,TOKEN_2022_PROGRAM_ID as zC,TOKEN_PROGRAM_ID as XC,unpackMint as YC}from"@solana/spl-token";function H(o){if(o instanceof pe)return new M(o.numerator,o.denominator);if(o instanceof se)return o.adjusted;if(o instanceof ie)try{return H(o.toExact())}catch{return new M(z)}if(o instanceof M)return o;let t=String(o),n=Ft(t);return new M(n.numerator,n.denominator)}function rL(o){var i;if(o instanceof pe)return{fr:new M(o.numerator,o.denominator)};if(o instanceof se)return{fr:o.adjusted};if(o instanceof ie)return{fr:H(o.toExact()),decimals:o.token.decimals};if(o instanceof M)return{fr:o};let t=String(o),n=Ft(t);return{fr:new M(n.numerator,n.denominator),decimals:(i=n.dec)==null?void 0:i.length}}function aL(o,t){if(o==null||t==null)return!1;let n=H(o),i=H(t);return n.sub(i).numerator,n.sub(i).numerator.lt(z)}function Ba(o,t){if(o==null||t==null)return!1;let n=H(o),i=H(t);return n.sub(i).numerator.gt(z)}function sL(o,t){if(o==null||t==null)return!1;let n=H(o),i=H(t);return n.sub(i).numerator.lte(z)}function uL(o,t){if(o==null||t==null)return!1;let n=H(o),i=H(t);return n.sub(i).numerator.gte(z)}function Sa(o,t){if(o==null||t==null)return!1;let n=H(o),i=H(t);return n.sub(i).numerator.eq(z)}function cL(o,t){if(o==null||t==null)return;let n=H(o),i=H(t);try{return n.div(i)}catch{return n}}function lL(o,t){if(o==null||t==null)return;let n=H(o),i=H(t);return n.sub(i)}function mL(o){return o==null?!1:!Sa(o,0)}function dL(o,t){return Ba(t,o)?t:o}function Eo(o,t){if(o==null||t==null)return;let n=H(o),i=H(t);return n.mul(i)}function pL(o,t){if(o==null||t==null)return;let n=H(o),i=H(t);return n.add(i)}export{pL as add,H as default,cL as div,Sa as eq,dL as getMax,Ba as gt,uL as gte,mL as isMeaningfulNumber,aL as lt,sL as lte,Eo as mul,lL as sub,rL as toFractionWithDecimals};
//# sourceMappingURL=fractionUtil.mjs.map