UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 77.3 kB
var bo=Object.defineProperty,go=Object.defineProperties;var Po=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(o,t,n)=>t in o?bo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,L=(o,t)=>{for(var n in t||(t={}))sn.call(t,n)&&an(o,n,t[n]);if(ot)for(var n of ot(t))un.call(t,n)&&an(o,n,t[n]);return o},W=(o,t)=>go(o,Po(t));var me=(o,t)=>{var n={};for(var i in o)sn.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&&un.call(o,i)&&(n[i]=o[i]);return n};import{merge as UC}from"lodash";import Zc from"axios";import{PublicKey as ko}from"@solana/web3.js";import{get as cn,set as Ao}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}},ln={},wo={};function v(o){let t=cn(ln,o);if(!t){let n=cn(wo,o);t=new Bt({name:o,logLevel:n}),Ao(ln,o,t)}return t}import{MINT_SIZE as Ma,TOKEN_PROGRAM_ID as Fa,getTransferFeeConfig as va,unpackMint as Va}from"@solana/spl-token";var St=v("Raydium_accountInfo_util");async function Pe(o,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:m=100}=L({batchRequest:!1},n),p=Kt(t,m),f=new Array(p.length).fill([]);if(i){let g=p.map(x=>{let C=o._buildArgs([x.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),B=Kt(g,10);f=(await(await Promise.all(B.map(async x=>await o._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${x.error.message}`),x.result.value.map(C=>{if(C){let{data:S,executable:F,lamports:P,owner:T,rentEpoch:I}=C;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 ko(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 Ys from"decimal.js";import Co from"big.js";import at from"bn.js";import To from"toformat";var ho=To,Ue=ho;import rt from"big.js";import Bo from"bn.js";import So from"decimal.js-light";import Ge from"bn.js";var mn=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>=mn||o<=-mn)&&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(So),Ko={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},xo={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},N=class{constructor(t,n=new Bo(1)){this.numerator=Z(t),this.denominator=Z(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new N(this.denominator,this.numerator)}add(t){let n=t instanceof N?t:new N(Z(t));return this.denominator.eq(n.denominator)?new N(this.numerator.add(n.numerator),this.denominator):new N(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof N?t:new N(Z(t));return this.denominator.eq(n.denominator)?new N(this.numerator.sub(n.numerator),this.denominator):new N(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof N?t:new N(Z(t));return new N(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof N?t:new N(Z(t));return new N(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:Ko[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=xo[i]||1,new xt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ro=v("Raydium_amount"),dn=Ue(Co);function Lo(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")):Ro.logWithError(`invalid number string, num: ${o}`)}else n=o;return[n,i.slice(0,t)||i]}var ie=class extends N{constructor(n,i,u=!0,m){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,x]=Lo(i.toString(),n.decimals);g=Z(b),B=Z(x)}g=g.mul(f),p=g.add(B)}super(p,f);this.logger=v(m||"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 dn.DP=this.token.decimals,new dn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};import{PublicKey as Oo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pn}from"@solana/spl-token";var st={chainId:101,address:Oo.default.toBase58(),programId:pn.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:pn.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 fn,SYSVAR_RENT_PUBKEY as No}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mo}from"@solana/spl-token";function xe({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Fo=[xe({pubkey:Mo,isWritable:!1}),xe({pubkey:fn.programId,isWritable:!1}),xe({pubkey:No,isWritable:!1})];function yn({publicKey:o,transformSol:t}){let n=bn(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 bn(o){try{return new X(o)}catch{return o}}var Rt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new X("SysvarRent111111111111111111111111111111111"),ys=new X("SysvarC1ock11111111111111111111111111111111"),ut=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),vo=new X("Sysvar1nstructions1111111111111111111111111"),Vo=fn.programId,bs=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gs=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ps=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),As=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ws=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ks=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ts=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),hs=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Is=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Bs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ss=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new X("So11111111111111111111111111111111111111112"),he=X.default;var Ot=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:m=!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=m?Lt.default:yn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},te=Ot;te.WSOL=new Ot(W(L({},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 gn=new N(new _o(100)),pe=class extends N{toSignificant(t=5,n,i){return this.mul(gn).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(gn).toFixed(t,n,i)}};var Eo=v("Raydium_price"),se=class extends N{constructor(n){let{baseToken:i,quoteToken:u,numerator:m,denominator:p}=n;super(m,p);this.baseToken=i,this.quoteToken=u,this.scalar=new N(Mt(i.decimals),Mt(u.decimals))}get raw(){return new N(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&&Eo.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 ou=new we(2),iu=new we(3),ru=new we(5),Ct=new we(10),au=new we(100),su=new we(1e3),uu=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 N)return{denominator:o.denominator.toString(),numerator:o.numerator.toString()};let t=String(o),[,n="",i="",u=""]=(f=t.replace(",","").match(/(-?)(\d*)\.?(\d*)/))!=null?f:[],m="1"+"0".repeat(u.length),p=n+(i==="0"?"":i)+u||"0";return{denominator:m,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 Bu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ku}from"@solana/spl-token";import{ComputeBudgetProgram as Pn,Keypair as wn,PublicKey as Wo,Transaction as kn,TransactionMessage as qo,VersionedTransaction as Tn}from"@solana/web3.js";var $={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 Uo}from"@solana/spl-token";var An=v("Raydium_txUtil"),hn=1644;function lt(o){let t=[],n=[];return o.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:o.microLamports})),n.push($.SetComputeUnitPrice)),o.units&&(t.push(Pn.setComputeUnitLimit({units:o.units})),n.push($.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,m=>{if(clearTimeout(u),!m.err){n("");return}i(Object.assign(m.err,{txId:t}))},"confirmed")})}function vt(o,t){o.length<1&&An.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function fe(o,t){let[n,i]=Wo.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function Ye({instructions:o,payer:t,signers:n}){return vt(o,[t,...n])}function Qe({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=wn.generate().publicKey.toString()}){let m=new qo({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(m).serialize()).toString("base64").length<hn}catch{return!1}}var Go=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),zo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Tn&&(t=Go(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 kn&&(n.recentBlockhash||(n.recentBlockhash=Uo.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(zo(n))}),console.log("simulate tx string:",t),t}import{PublicKey as k}from"@solana/web3.js";var In=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Bn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Sn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Vt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Lu=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Xo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Kn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),xn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ou=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Yo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Cn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Qo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Zo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Rn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Nu=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ho=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),_t=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),jo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Mu=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),$o=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Jo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ei=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Fu=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),vu=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Vu=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),_u=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Eu=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 qu 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(m=>m.toString()))].map(m=>new Et(m))),u={};for(let m=0;m<t.length;m++){let p=i[m],f=t[m];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 ti,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import ni 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 ni.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(ti.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ne(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push($.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:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),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(W(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new Ze;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:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},B=m!=null?m: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(C=>C.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 x=await this.signAllTransactions([n]);if(this.signers.length)for(let C of x)try{C.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(x[0].serialize(),{skipPreflight:p}),signedTx:x[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),m=n.filter(b=>b.transaction.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&f.forEach(b=>{b.some(x=>x.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:x,onTxUpdate:C,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(x){let h=[],V=0;for(let _ of p){if(++V,V<=S)continue;let y=await Ut(this.connection,_,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((_,y)=>(_.recentBlockhash=T,f[y].length&&_.sign(...f[y]),_));Ie(h);let V=await this.signAllTransactions(h);if(x){let _=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[_]}),C==null||C([...y]),_++;let K=!1,R=null,E=null,ae=U=>{R!==null&&clearInterval(R),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"}C==null||C([...y]),U.err||A()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var U;if(K){clearInterval(R);return}try{let q=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(K=!0,clearInterval(R),ae({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(q){K=!0,clearInterval(R),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:V}}else{let _=[];for(let y=0;y<V.length;y+=1){let A=await this.connection.sendRawTransaction(V[y].serialize(),{skipPreflight:P});_.push(A)}return{txIds:_,signedTxs:V}}}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:m}=F,p=me(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=L(L({},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 x=u?Ne.default.toBase58():m!=null?m:await Ce(this.connection,this.blockhashCommitment),C=new He({payerKey:this.feePayer,recentBlockhash:x,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 je(C);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var _;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:V}=T||{};if(Ie([S]),(_=this.owner)!=null&&_.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:V?"":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),m=n.filter(b=>b.builder.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&f.forEach(b=>{b.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,x)=>{b.sign(f[x])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:i,execute:async b=>{var P;let{sequentially:x,onTxUpdate:C,recentBlockHash:S,skipPreflight:F=!0}=b||{};if(S&&p.forEach(T=>T.message.recentBlockhash=S),Ie(p),(P=this.owner)!=null&&P.isKeyPair){if(x){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(x){let I=0,h=[],V=async()=>{if(!T[I])return;let _=await this.connection.sendTransaction(T[I],{skipPreflight:F});h.push({txId:_,status:"sent",signedTx:T[I]}),C==null||C([...h]),I++;let y=!1,A=null,w=null,K=R=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let E=h.findIndex(ae=>ae.txId===_);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=R.err?"error":"success"}C==null||C([...h]),R.err||V()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var R;if(y){clearInterval(A);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(y=!0,clearInterval(A),K({err:((R=E.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){y=!0,clearInterval(A),console.error("getTransaction timeout:",E,_)}},dt)),w=this.connection.onSignature(_,R=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,K(R)},"confirmed"),this.connection.getSignatureStatus(_)};return V(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let V=await this.connection.sendTransaction(T[h],{skipPreflight:F});I.push(V)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var C;let x=t||{},{splitIns:n=[],computeBudgetConfig:i}=x,u=me(x,["splitIns","computeBudgetConfig"]),m=i?lt(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,F)=>W(L({},S),{[F.publicKey.toBase58()]:F}),{}),f=[],g=[],B=[],b=0;if(this.allInstructions.forEach(S=>{let F=[...B,S],P=i?[...m.instructions,...F]:F,I=[...new Set(F.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.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?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:I})?f.push(new Ze().add(...m.instructions,...B)):f.push(new Ze().add(...B)),g.push(Array.from(new Set(B.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.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?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:F.map(P=>P.publicKey)})?f.push(new Ze().add(...m.instructions,...B)):f.push(new Ze().add(...B)),g.push(F)}return f.forEach(S=>S.feePayer=this.feePayer),(C=this.owner)!=null&&C.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 _;let{sequentially:F,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},V=I!=null?I:await Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(y,A)=>{y.recentBlockhash=V,g[A].length&&y.sign(...g[A])}),Ie(f),(_=this.owner)!=null&&_.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(R=>R.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=[],R=async()=>{if(!A[w])return;w<T&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,R());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||R()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ae){clearInterval(U);return}try{let oe=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});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 R(),{txIds:K.map(E=>E.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let R=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:h});w.push(R)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let V=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=V,f=me(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=L(L({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of B)g[y]===void 0&&b.push(new Ne(y));let x=await Dt({connection:this.connection,address:b});for(let[y,A]of Object.entries(x))g[y]=A;let C=n?lt(n):{instructions:[],instructionTypes:[]},S=await Ce(this.connection,this.blockhashCommitment),F=this.signers.reduce((y,A)=>W(L({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let A=[...I,y],w=n?[...C.instructions,...A]:A;if(y!==i[h]&&I.length<p&&(Qe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Qe({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 R of[...new Set(B)])g[R]!==void 0&&(K[R]=g[R]);if(n&&Qe({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let R=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new je(R))}else{let R=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new je(R))}T.push(Array.from(new Set(I.map(R=>R.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(R=>F[R]).filter(R=>R!==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&&Qe({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new je(w))}else{let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new je(w))}T.push(A)}return(_=this.owner)!=null&&_.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:R,skipPreflight:E=!0}=y||{};if(P.map(async(U,q)=>{T[q].length&&U.sign(T[q]),R&&(U.message.recentBlockhash=R)}),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,rn=Te=>{Ke!==null&&clearInterval(Ke),nt!==null&&this.connection.removeSignatureListener(nt);let ge=G.findIndex(yo=>yo.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:0});ge&&(We=!0,clearInterval(Ke),rn({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,rn(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 yc}from"@solana/web3.js";import gc from"bn.js";import oi from"bn.js";var ft=new oi(1e6);var Ln={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"},ii=W(L({},Ln),{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 Pl=v("Raydium_Api");import{PublicKey as ud,SystemProgram as cd}from"@solana/web3.js";import{AccountLayout as fd,createAssociatedTokenAccountIdempotentInstruction as yd,TOKEN_PROGRAM_ID as bd,TOKEN_2022_PROGRAM_ID as gd}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 Em,SystemProgram as Wm}from"@solana/web3.js";import Gm from"bn.js";import{createCloseAccountInstruction as Qm,createInitializeAccountInstruction as Zm,createTransferInstruction as Hm,TOKEN_PROGRAM_ID as jm}from"@solana/spl-token";import{Keypair as Sm,PublicKey as Km}from"@solana/web3.js";import Rm from"bn.js";import{TOKEN_PROGRAM_ID as Nm}from"@solana/spl-token";import{PublicKey as bi}from"@solana/web3.js";import vn,{isBN as Vn}from"bn.js";import{bits as ri,BitStructure as Ll,blob as ai,Blob as Ol,cstr as Nl,f32 as Ml,f32be as Fl,f64 as vl,f64be as Vl,greedy as _l,Layout as si,ns64 as El,ns64be as Dl,nu64 as Wl,nu64be as ql,offset as ui,s16 as Ul,s16be as Gl,s24 as zl,s24be as Xl,s32 as ci,s32be as Yl,s40 as Ql,s40be as Zl,s48 as Hl,s48be as jl,s8 as $l,seq as li,struct as Jl,Structure as mi,u16 as di,u16be as em,u24 as tm,u24be as nm,u32 as pi,u32be as om,u40 as im,u40be as rm,u48 as am,u48be as sm,u8 as fi,UInt as yi,union as um,Union as cm,unionLayoutDiscriminator as lm,utf8 as mm}from"@solana/buffer-layout";var yt=si,On=mi;var zt=yi;var Nn=fi,H=di;var bt=pi;var ce=ci;var Mn=li;var M=ai;var Xt=ri,Fn=ui;var Se=class extends yt{constructor(n,i,u){super(n,u);this.blob=M(n),this.signed=i}decode(n,i=0){let u=new vn(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 vn(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),m=this._upper.decode(n,i+this._lower.span);return L(L({},u),m)}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 O(o){return new Se(16,!1,o)}function _n(o){return new Se(1,!0,o)}function Me(o){return new Se(8,!0,o)}function En(o){return new Se(16,!0,o)}var $e=class extends yt{constructor(n,i,u,m){super(n.span,m);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 $e(M(32),t=>new bi(t),t=>t.toBuffer(),o)}function ue(o){return new $e(Nn(),gi,Pi,o)}function gi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Pi(o){return o?1:0}function Dn(o,t){let n=bt("length"),i=l([n,d(o,Fn(n,-n.span),"values")]);return new $e(i,({values:u})=>u,u=>({values:u}),t)}var Yt=class extends On{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Yt(o,t,n)}function d(o,t,n){let i,u=typeof t=="number"?t:Vn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=Vn(f)?f.toNumber():f,Reflect.set(m,"count",i)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(i=f),Reflect.set(m,p,f)}});return Mn(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 gb,TOKEN_2022_PROGRAM_ID as Pb,TOKEN_PROGRAM_ID as Ab}from"@solana/spl-token";import{PublicKey as kb}from"@solana/web3.js";import hb from"bn.js";import Bb from"decimal.js";import{TOKEN_PROGRAM_ID as Kd}from"@solana/spl-token";import{PublicKey as Ld}from"@solana/web3.js";var wi=l([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Ey,TOKEN_2022_PROGRAM_ID as Dy,TOKEN_PROGRAM_ID as Wy}from"@solana/spl-token";import{Keypair as Gy,PublicKey as zy,SystemProgram as Yy,TransactionInstruction as Qy}from"@solana/web3.js";import Hy from"bn.js";import D from"bn.js";var Fe=new D(1).shln(64);var ki=new D(1).shln(128),Qt=new D(1).shln(64).subn(1),Ti=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),hi=new D("59543866431248"),Ii=new D("184467440737095516"),Bi=new D("15793534762490258745");var Zt=60,Ud=new D("18446743708227953217"),Si=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var Je=3,qn=100;var Un=10,Gn=100,wt=14;var z=new D(0),_e=new D(1),Gd=new D(-1);var zd=new D("18446744073700000000");var Ki=l([M(8),c("bump"),H("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),d(Y(),1),r("fundOwner"),d(e(),3)]),xi=l([Y("blockTimestamp"),Me("tickCumulative"),d(e(),4)]),zn=l([M(8),ue("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),d(xi,qn,"observations"),d(e(),4)]),Ci=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ri=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),Ht=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ce("tickCurrent"),Y(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),M(6),d(Ri,Je,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ci.replicate("dynamicFeeInfo"),d(e(),46)]),Li=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Li,Je,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Zd=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),Je,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ni=l([ce("tick"),En("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(Y(),3)]),Xn=l([M(8),r("poolId"),ce("startTickIndex"),d(Ni,Zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Mi=l([M(8),c("bump"),d(r(),Un,"operationOwners"),d(r(),Gn,"whitelistMints")]),Fi=l([M(8),r("poolId"),r("owner"),ce("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),Yn=l([M(8),r("poolId"),M(8*8*wt,"positiveTickArrayBitmap"),M(8*8*wt,"negativeTickArrayBitmap")]),Hd=l([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),d(e(),8)]),vi=l([M(8),r("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),jd=l([e(),c("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),d(e(),8)]),Vi=l([M(8),c("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),d(e(),8)]);import ep from"bn.js";var mp=Buffer.from("amm_config","utf8"),Ei=Buffer.from("pool","utf8"),Di=Buffer.from("pool_vault","utf8"),dp=Buffer.from("pool_reward_vault","utf8"),pp=Buffer.from("position","utf8"),fp=Buffer.from("tick_array","utf8"),yp=Buffer.from("operation","utf8"),bp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),gp=Buffer.from("observation","utf8"),Pp=Buffer.from("support_mint","utf8"),Ap=Buffer.from("dynamic_fee_config","utf8"),wp=Buffer.from("permission","utf8");var kp=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Wi from"bn.js";import Bp from"decimal.js";var Kp=new Wi(1).shln(256).subn(1);import zp from"bn.js";import Mp from"bn.js";import vp from"decimal.js";import Hp from"bn.js";import $p from"decimal.js";import{PublicKey as Ef}from"@solana/web3.js";import Wf from"bn.js";import{TOKEN_2022_PROGRAM_ID as Zf,TOKEN_PROGRAM_ID as Hf}from"@solana/spl-token";import ey from"decimal.js";import xf from"bn.js";import yf from"bn.js";import my from"bn.js";function J(o){let t=`global:${o}`;return Buffer.from(tr.digest(t)).slice(0,8)}zn.span;var ib=v("Raydium_Clmm"),rb={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 en}from"@solana/web3.js";var rr=l([c("instruction")]),ar=l([c("instruction")]),sr=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),d(e(),15,"padding")]),ur=l([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),cr=l([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),c("option"),r("rewardVaultB"),M(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),lr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),d(sr,5,"rewardInfos"),r("creator"),r(),d(e(),32,"padding")]),mr=new Proxy(ur,{get(o,t,n){return t==="decode"?(...i)=>{let u=o.decode(...i);return W(L({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(o,t,n)}}),dr=new Proxy(cr,{get(o,t,n){return t==="decode"?(...i)=>{let u=o.decode(...i);return W(L({},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(lr,{get(o,t,n){return t==="decode"?(...i)=>{let u=o.decode(...i);return W(L({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var p;return W(L({},m),{rewardType:((p=Object.entries(tt).find(f=>String(f[1])===m.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),pr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),fr=l([c("instruction"),e("nonce"),d(pr,5,"rewardTimeInfo")]),yr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),br=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),ig=l([e("state"),r("id"),r("owner"),e("deposited"),d(e(),1,"rewardDebts")]),to=l([e("state"),r("id"),r("owner"),e("deposited"),d(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),rg=l([e("state"),r("id"),r("owner"),e("deposited"),d(e(),2,"rewardDebts")]),gr=l([e("state"),r("id"),r("owner"),e("deposited"),d(O(),2,"rewardDebts"),d(e(),17)]),Pr=l([e(),e("state"),r("id"),r("owner"),e("deposited"),d(O(),5,"rewardDebts"),d(e(),16)]),Ar=l([c("instruction"),e("amount")]),wr=l([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),_n("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),kr=l([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),d(c(),32,"reserved1"),d(wr,4,"votingMints"),Me("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),Tr=l([Me("startTime"),Me("endTime"),c("kind"),d(c(),15,"reserved")]),hr=l([d(Tr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),Ir=l([M(8),r("voterAuthority"),r("registrar"),d(hr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),d(c(),94,"reserved")]);import{NATIVE_MINT as fg}from"@solana/spl-token";var yg=v("Raydium_farm_config"),Br=new en("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sr=new en("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var bg=new en("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var tt={"Standard SPL":0,"Option tokens":1},no={[In.toString()]:3,[Bn.toString()]:4,[Sn.toString()]:5,[Vt.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 Qg,SYSVAR_CLOCK_PUBKEY as Zg,SYSVAR_RENT_PUBKEY as Hg,TransactionInstruction as jg}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 Mr=new io(25),Fr=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 _A from"bn.js";var vr=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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),e("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("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"),d(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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("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"),d(e(),64,"padding")]),Er=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Dr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Wr=l([e("fee")]);var WA=v("Raydium_liquidity_instruction");var qr=5e4,Ur=l([e("x"),e("y"),e("price")]),zA=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(Ur,qr,"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 ZA}from"@solana/web3.js";var $A=v("Raydium_liquidity_serum");import Fk from"bn.js";import Vk from"decimal.js";import{TOKEN_PROGRAM_ID as Mw}from"@solana/spl-token";import{PublicKey as vw}from"@solana/web3.js";import _w 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 Gr(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 zr=l([M(5),Gr("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"),M(7)]);import{PublicKey as rh}from"@solana/web3.js";import{AccountLayout as sh,NATIVE_MINT as uh,TOKEN_2022_PROGRAM_ID as ch,TOKEN_PROGRAM_ID as lh,createAssociatedTokenAccountIdempotentInstruction as mh}from"@solana/spl-token";import iT from"bn.js";import $r from"bn.js";var Xk=new $r(0);import jk from"bn.js";import Ah from"bn.js";import kh from"decimal.js";import{PublicKey as TT,TransactionInstruction as hT,Keypair as BT,SystemProgram as ST}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as xT,TOKEN_2022_PROGRAM_ID as CT,TOKEN_PROGRAM_ID as RT}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");var gT=Buffer.from("locked_liquidity","utf8");var VT=v("Raydium_cpmm"),_T={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 ta=l([M(8),c("bump"),ue("disableCreatePool"),H("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),d(e(),15)]),ao=l([M(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"),d(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),d(e(),28)]),WT=l([M(8),r("configId"),d(e(),30)]);import{PublicKey as dx,SystemProgram as px}from"@solana/web3.js";import{createTransferInstruction as yx,TOKEN_PROGRAM_ID as bx,TOKEN_2022_PROGRAM_ID as gx,createAssociatedTokenAccountIdempotentInstruction as Px,createSyncNativeInstruction as wx,createTransferCheckedInstruction as kx}from"@solana/spl-token";import Pa from"bn.js";import Ix from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as LI,TOKEN_2022_PROGRAM_ID as OI,TOKEN_PROGRAM_ID as NI}from"@solana/spl-token";import{SystemProgram as VI,TransactionInstruction as _I}from"@solana/web3.js";import ua from"bn.js";var ia=l([e(),e("epoch"),c("curveType"),H("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"),d(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"),d(c(),54)]),dI=l([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),uo=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),sa=l([e("epoch"),c("index"),r("configId"),uo.replicate("bondingCurveParam"),d(e(),50)]),co=l([e(),e("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),d(c(),64,"name"),d(c(),256,"web"),d(c(),256,"img"),r("cpConfigId"),e("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),e("platformVestingScale"),r("platformCpCreator"),c("restrictGlobalConfig"),d(c(),107),Dn(sa,"platformCurve")]);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");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]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),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])};var UI=new ua("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as YI,TOKEN_PROGRAM_ID as QI}from"@solana/spl-token";import $I from"bn.js";import eB from"decimal.js";import OB from"bn.js";import MB from"decimal.js";import aB from"bn.js";import uB from"decimal.js";import PB from"bn.js";import wB from"decimal.js";import po from"bn.js";import nn from"decimal.js";var It=class{static _multipler(t){return new nn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new nn(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 po(u.mul(this._Q64).toFixed(0))}};It._Q64=new nn(new po(1).shln(64).toString());import{NATIVE_MINT as qS,TOKEN_2022_PROGRAM_ID as US,TOKEN_PROGRAM_ID as GS,createAssociatedTokenAccountIdempotentInstruction as XS,createSyncNativeInstruction as YS,getTransferFeeConfig as QS,unpackMint as ZS}from"@solana/spl-token";import j from"bn.js";import{PublicKey as ya,SystemProgram as $S}from"@solana/web3.js";import rK from"decimal.js";var aK={initPriceX64:new j("515752397214619"),supply:new j(1e15),totalSellA:new j(7931e11),totalFundRaisingB:new j(85e9),totalFundRaisingBUSD:new j(125e8),totalLockedAmount:new j("0"),cliffPeriod:new j("0"),unlockPeriod:new j("0"),decimals:6,virtualA:new j("1073471847374405"),virtualB:new j("30050573465"),realA:new j(0),realB:new j(0),protocolFee:new j(0),platformId:new ya("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new j(0),cliffPeriod:new j(0),unlockPeriod:new j(0),startTime:new j(0),totalAllocatedShare:new j(0)}},sK=new j(1e4);var ba={[Kn.toBase58()]:3};var ga=l([M(5),M(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"),M(7)]);import{PublicKey as RK}from"@solana/web3.js";var FK=v("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as GK,TOKEN_2022_PROGRAM_ID as zK,TOKEN_PROGRAM_ID as XK}from"@solana/spl-token";import{PublicKey as QK,SystemProgram as ZK,TransactionInstruction as HK}from"@solana/web3.js";import $K from"bn.js";var eC=new Pa(0);import{PublicKey as Aa,Transaction as on,TransactionInstruction as wa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ka}from"@solana/spl-token";import fo 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 fo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:u,chainTime:m}){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(x=>ne.getPdaOwnerId(n,x,u,b).publicKey));let g=await Pe(t,[...p,...f]),B=[];for(let b=0;b<g.length;b++){let x=Math.floor(b/i.length),C=b%i.length,S=p[C],F=f[b],P=g[C],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),V=I.openTime.toNumber(),_=I.endTime.toNumber(),y=h.tokenInfo.map(K=>K.debtAmount.gt(new fo(0))).filter(K=>!K).length!==3,A=m>V&&m<_&&I.status===1,w=y&&A;B.push({programId:n,poolId:S,ammId:I.ammId,ownerAccountId:F,snapshotLpAmount:h.lpAmount,project:ne.VERSION_PROJECT[x],openTime:V,endTime:_,canClaim:w,canClaimErrorType:y?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((K,R)=>({mintAddress:K.mintAddress,mintVault:K.mintVault,mintDecimals:K.mintDecimals,perLpLoss:K.perLpLoss,debtAmount:h.tokenInfo[R].debtAmount.add(h.tokenInfo[R].claimedAmount)}))})}return B}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,p=[];for(let B of t.tokenInfo){let{account:b,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({mint:B.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:B.mintAddress.equals(te.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!B.mintAddress.equals(te.WSOL.mint),associatedOnly:B.mintAddress.equals(te.WSOL.mint)?!1:n.associatedOnly});x&&u.addInstruction(x),p.push(b)}u.addInstruction({instructions:[ne.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,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),m=n.wallet||this.scope.ownerPubKey,p={};for(let b of t){let x=[];for(let C of b.tokenInfo){let{account:S,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({mint:C.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:C.mintAddress.equals(te.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!C.mintAddress.equals(te.WSOL.mint),associatedOnly:C.mintAddress.equals(te.WSOL.mint)?!1:n.associatedOnly});F&&u.addInstruction(F),S&&(p[C.mintAddress.toString()]=S,x.push(S))}u.addInstruction({instructions:[ne.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:m,ownerPda:b.ownerAccountId,claimAddress:x}})]})}let{transaction:f,signers:g}=u.build(),B=u.allInstructions;return vt(B,[m,...g.map(b=>b.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new on().add(...B.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new on().add(...B.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new on().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let u=l([]),m=[{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:ka,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 wa({keys:m,programId:t,data:f})}},le=ne;le.CLAIMED_NUM=3,le.POOL_LAYOUT=l([M(8),c("bump"),c("status"),e("openTime"),e("endTime"),r("ammId"),d(l([c("mintDecimals"),r("mintAddress"),r("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),d(e(),10,"padding")]),le.OWNER_LAYOUT=l([M(8),c("bump"),c("version"),r("poolId"),r("owner"),e("lpAmount"),d(l([r("mintAddress"),e("debtAmount"),e("claimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),d(e(),4,"padding")]),le.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Aa(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 gC}from"@solana/web3.js";import{getTransferFeeConfig as AC,MintLayout as wC,TOKEN_2022_PROGRAM_ID as kC,TOKEN_PROGRAM_ID as TC,unpackMint as hC}from"@solana/spl-token";function Q(o){if(o instanceof pe)return new N(o.numerator,o.denominator);if(o instanceof se)return o.adjusted;if(o instanceof ie)try{return Q(o.toExact())}catch{return new N(z)}if(o instanceof N)return o;let t=String(o),n=Ft(t);return new N(n.numerator,n.denominator)}function FR(o){var i;if(o instanceof pe)return{fr:new N(o.numerator,o.denominator)};if(o instanceof se)return{fr:o.adjusted};if(o instanceof ie)return{fr:Q(o.toExact()),decimals:o.token.decimals};if(o instanceof N)return{fr:o};let t=String(o),n=Ft(t);return{fr:new N(n.numerator,n.denominator),decimals:(i=n.dec)==null?void 0:i.length}}function vR(o,t){if(o==null||t==null)return!1;let n=Q(o),i=Q(t);return n.sub(i).numerator,n.sub(i).numerator.lt(z)}function Ta(o,t){if(o==null||t==null)return!1;let n=Q(o),i=Q(t);return n.sub(i).numerator.gt(z)}function VR(o,t){if(o==null||t==null)return!1;let n=Q(o),i=Q(t);return n.sub(i).numerator.lte(z)}function _R(o,t){if(o==null||t==null)return!1;let n=Q(o),i=Q(t);return n.sub(i).numerator.gte(z)}function ha(o,t){if(o==null||t==null)return!1;let n=Q(o),i=Q(t);return n.sub(i).numerator.eq(z)}function ER(o,t){if(o==null||t==null)return;let n=Q(o),i=Q(t);try{return n.div(i)}catch{return n}}function DR(o,t){if(o==null||t==null)return;let n=Q(o),i=Q(t);return n.sub(i)}function WR(o){return o==null?!1:!ha(o,0)}function qR(o,t){return Ta(t,o)?t:o}function Do(o,t){if(o==null||t==null)return;let n=Q(o),i=Q(t);return n.mul(i)}function UR(o,t){if(o==null||t==null)return;let n=Q(o),i=Q(t);return n.add(i)}export{UR as add,Q as default,ER as div,ha as eq,qR as getMax,Ta as gt,_R as gte,WR as isMeaningfulNumber,vR as lt,VR as lte,Do as mul,DR as sub,FR as toFractionWithDecimals};
//# sourceMappingURL=fractionUtil.mjs.map