@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 77.6 kB
JavaScript
var Po=Object.defineProperty,Ao=Object.defineProperties;var wo=Object.getOwnPropertyDescriptors;var it=Object.getOwnPropertySymbols;var un=Object.prototype.hasOwnProperty,cn=Object.prototype.propertyIsEnumerable;var sn=(o,t,n)=>t in o?Po(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,C=(o,t)=>{for(var n in t||(t={}))un.call(t,n)&&sn(o,n,t[n]);if(it)for(var n of it(t))cn.call(t,n)&&sn(o,n,t[n]);return o},D=(o,t)=>Ao(o,wo(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&&it)for(var i of it(o))t.indexOf(i)<0&&cn.call(o,i)&&(n[i]=o[i]);return n};import{merge as iR}from"lodash";import il from"axios";import{PublicKey as ho}from"@solana/web3.js";import{get as ln,set as ko}from"lodash";var St=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={},To={};function v(o){let t=ln(mn,o);if(!t){let n=ln(To,o);t=new St({name:o,logLevel:n}),ko(mn,o,t)}return t}import{MINT_SIZE as Ga,TOKEN_PROGRAM_ID as za,getTransferFeeConfig as Xa,unpackMint as Ya}from"@solana/spl-token";var xt=v("Raydium_accountInfo_util");async function Ae(o,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:m=100}=C({batchRequest:!1},n),p=Kt(t,m),f=new Array(p.length).fill([]);if(i){let g=p.map(K=>{let R=o._buildArgs([K.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),B=Kt(g,10);f=(await(await Promise.all(B.map(async K=>await o._rpcBatchRequest(K)))).flat()).map(K=>(K.error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${K.error.message}`),K.result.value.map(R=>{if(R){let{data:S,executable:F,lamports:A,owner:T,rentEpoch:I}=R;return S.length!==2&&S[1]!=="base64"&&xt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:F,lamports:A,owner:new ho(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(p.map(g=>o.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import we from"bn.js";import nu from"decimal.js";import Lo from"big.js";import st from"bn.js";import Io from"toformat";var Bo=Io,Ge=Bo;import at from"big.js";import xo from"bn.js";import Ko from"decimal.js-light";import ze from"bn.js";var dn=9007199254740991;function Z(o){let t=v("Raydium_parseBigNumberish");if(o instanceof ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new ze(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 ze(String(o))):typeof o=="bigint"?new ze(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new ze(0))}var rt=v("module/fraction"),Ct=Ge(at),Xe=Ge(Ko),Co={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},Ro={[0]:at.roundDown,[1]:at.roundHalfUp,[2]:at.roundUp},N=class{constructor(t,n=new xo(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)||rt.logWithError(`${t} is not an integer.`),t<=0&&rt.logWithError(`${t} is not positive.`),Xe.set({precision:t+1,rounding:Co[i]});let u=new Xe(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)||rt.logWithError(`${t} is not an integer.`),t<0&&rt.logWithError(`${t} is negative.`),Ct.DP=t,Ct.RM=Ro[i]||1,new Ct(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Oo=v("Raydium_amount"),pn=Ge(Lo);function No(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")):Oo.logWithError(`invalid number string, num: ${o}`)}else n=o;return[n,i.slice(0,t)||i]}var re=class extends N{constructor(n,i,u=!0,m){let p=new st(0),f=Rt.pow(new st(n.decimals));if(u)p=Z(i);else{let g=new st(0),B=new st(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,K]=No(i.toString(),n.decimals);g=Z(b),B=Z(K)}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 re(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new re(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 Mo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fn}from"@solana/spl-token";var ut={chainId:101,address:Mo.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"}},pe={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 Ot}from"@solana/web3.js";import{PublicKey as X,SystemProgram as yn,SYSVAR_RENT_PUBKEY as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";function Ke({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Vo=[Ke({pubkey:vo,isWritable:!1}),Ke({pubkey:yn.programId,isWritable:!1}),Ke({pubkey:Fo,isWritable:!1})];function bn({publicKey:o,transformSol:t}){let n=gn(o.toString());if(n instanceof X)return t&&n.equals(he)?de:n;if(t&&n.toString()===he.toBase58())return de;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 Lt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ce=new X("SysvarRent111111111111111111111111111111111"),_o=new X("SysvarC1ock11111111111111111111111111111111"),ct=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Eo=new X("Sysvar1nstructions1111111111111111111111111"),Pn=yn.programId,Bs=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ss=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),xs=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ks=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Cs=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Rs=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ls=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Os=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ns=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ms=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Fs=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),de=new X("So11111111111111111111111111111111111111112"),he=X.default;var Nt=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:m=!1,isToken2022:p=!1}){if(t===he.toBase58()||t instanceof Ot&&he.equals(t)){this.decimals=pe.decimals,this.symbol=pe.symbol,this.name=pe.name,this.mint=new Ot(pe.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?Ot.default:bn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},te=Nt;te.WSOL=new Nt(D(C({},pe),{mint:pe.address}));var Mt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},lt=Mt;lt.SOL=new Mt(ut);import Do from"bn.js";var An=new N(new Do(100)),fe=class extends N{toSignificant(t=5,n,i){return this.mul(An).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(An).toFixed(t,n,i)}};var Wo=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(Ft(i.decimals),Ft(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&&Wo.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 du=new we(2),pu=new we(3),fu=new we(5),Rt=new we(10),yu=new we(100),bu=new we(1e3),gu=new we(1e4);function Ft(o){return Rt.pow(Z(o))}function vt(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 Mu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vu}from"@solana/spl-token";import{ComputeBudgetProgram as wn,Keypair as Tn,PublicKey as Uo,Transaction as hn,TransactionMessage as Go,VersionedTransaction as In}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 zo}from"@solana/spl-token";var kn=v("Raydium_txUtil"),Bn=1644;function mt(o){let t=[],n=[];return o.microLamports&&(t.push(wn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(j.SetComputeUnitPrice)),o.units&&(t.push(wn.setComputeUnitLimit({units:o.units})),n.push(j.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(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 dt(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&&kn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&kn.logWithError(`no signers provided:, ${t.toString()}`);let n=new hn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Bn}catch{return!1}}function ye(o,t){let[n,i]=Uo.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=Tn.generate().publicKey.toString()}){let m=new Go({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new In(m).serialize()).toString("base64").length<Bn}catch{return!1}}var Xo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Yo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof In&&(t=Xo(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 hn&&(n.recentBlockhash||(n.recentBlockhash=zo.toBase58()),n.feePayer||(n.feePayer=Tn.generate().publicKey)),t.push(Yo(n))}),console.log("simulate tx string:",t),t}import{PublicKey as P}from"@solana/web3.js";var Sn=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),xn=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Kn=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),_t=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Du=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Qo=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Cn=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Rn=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Wu=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Zo=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ln=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ho=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),jo=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),On=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qu=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),$o=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Jo=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ei=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ti=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ni=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Et=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),oi=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Uu=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ii=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ri=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ai=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Gu=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),zu=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Xu=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Yu=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Qu=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Ze={IDO_PROGRAM_ID_V1:Jo,IDO_PROGRAM_ID_V2:ei,IDO_PROGRAM_ID_V3:ti,IDO_PROGRAM_ID_V4:ni};var ke={OPEN_BOOK_PROGRAM:new P("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new P("Ray1111111111111111111111111111111111111111"),AMM_V4:new P("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new P("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new P("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new P("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new P("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new P("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new P("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new P("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new P("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new P("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:P.default,Router:new P("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new P("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new P("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new P("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new P("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new P("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new P("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new P("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new P("Ray1111111111111111111111111111111111111111")};import ju from"bn.js";import{PublicKey as Dt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Wt({connection:o,address:t,cluster:n="mainnet"}){let i=await Ae(o,[...new Set(t.map(m=>m.toString()))].map(m=>new Dt(m))),u={};for(let m=0;m<t.length;m++){let p=i[m],f=t[m];if(!p)continue;let g=new Ne({key:f,state:Ne.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Oe[f.toString()]=g:Le[f.toString()]=g}return u}var Le={},qt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[t])return Le;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Le[t]=new Ne({key:n,state:Ne.deserialize(i.data)})),Le},Oe={},Ut=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[t])return Oe;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Oe[t]=new Ne({key:n,state:Ne.deserialize(i.data)})),Oe};import{PublicKey as Me,sendAndConfirmTransaction as Gt,SystemProgram as si,Transaction as He,TransactionMessage as je,VersionedTransaction as $e}from"@solana/web3.js";import ui from"axios";var pt=2e3,ft=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 ui.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}=mt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(si.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Me(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: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!==Me.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(D(C({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new He;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 Re(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 Gt(this.connection,n,this.signers.find(R=>R.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 K=await this.signAllTransactions([n]);if(this.signers.length)for(let R of K)try{R.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(K[0].serialize(),{skipPreflight:p}),signedTx:K[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(K=>K.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:K,onTxUpdate:R,skipTxCount:S=0,recentBlockHash:F,skipPreflight:A=!0}=b||{},T=F!=null?F:await Re(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(K){let h=[],V=0;for(let _ of p){if(++V,V<=S)continue;let y=await Gt(this.connection,_,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});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:A})))),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(K){let _=0,y=[],w=async()=>{if(!V[_])return;let k=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:A});y.push({txId:k,status:"sent",signedTx:V[_]}),R==null||R([...y]),_++;let x=!1,L=null,E=null,ae=U=>{L!==null&&clearInterval(L),E!==null&&this.connection.removeSignatureListener(E);let q=y.findIndex(J=>J.txId===k);if(q>-1){if(y[q].status==="error"||y[q].status==="success")return;y[q].status=U.err?"error":"success"}R==null||R([...y]),U.err||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(x){clearInterval(L);return}try{let q=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(x=!0,clearInterval(L),ae({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",k))}catch(q){x=!0,clearInterval(L),console.error("getTransaction timeout:",q,k)}},pt)),E=this.connection.onSignature(k,U=>{if(x){this.connection.removeSignatureListener(E);return}x=!0,ae(U)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:y.map(k=>k.txId),signedTxs:V}}else{let _=[];for(let y=0;y<V.length;y+=1){let w=await this.connection.sendRawTransaction(V[y].serialize(),{skipPreflight:A});_.push(w)}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 A;let F=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:m}=F,p=me(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),B=[];for(let T of g)f[T]===void 0&&B.push(new Me(T));let b=await Wt({connection:this.connection,address:B});for(let[T,I]of Object.entries(b))f[T]=I;let K=u?Me.default.toBase58():m!=null?m:await Re(this.connection,this.blockhashCommitment),R=new je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new $e(R);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 dt(this.connection,y),{txId:y,signedTx:S}}if(this.signAllTransactions){let y=await this.signAllTransactions([S]);if(this.signers.length)for(let w of y)try{w.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(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,K)=>{b.sign(f[K])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:i,execute:async b=>{var A;let{sequentially:K,onTxUpdate:R,recentBlockHash:S,skipPreflight:F=!0}=b||{};if(S&&p.forEach(T=>T.message.recentBlockhash=S),Ie(p),(A=this.owner)!=null&&A.isKeyPair){if(K){let T=[];for(let I of p){let h=await this.connection.sendTransaction(I,{skipPreflight:F});await dt(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(K){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]}),R==null||R([...h]),I++;let y=!1,w=null,k=null,x=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let E=h.findIndex(ae=>ae.txId===_);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=L.err?"error":"success"}R==null||R([...h]),L.err||V()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(y){clearInterval(w);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(y=!0,clearInterval(w),x({err:((L=E.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){y=!0,clearInterval(w),console.error("getTransaction timeout:",E,_)}},pt)),k=this.connection.onSignature(_,L=>{if(y){this.connection.removeSignatureListener(k);return}y=!0,x(L)},"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 R;let K=t||{},{splitIns:n=[],computeBudgetConfig:i}=K,u=me(K,["splitIns","computeBudgetConfig"]),m=i?mt(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,F)=>D(C({},S),{[F.publicKey.toBase58()]:F}),{}),f=[],g=[],B=[],b=0;if(this.allInstructions.forEach(S=>{let F=[...B,S],A=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 Me(h));if(S!==n[b]&&B.length<12&&(Ye({instructions:A,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 He().add(...m.instructions,...B)):f.push(new He().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(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);Ye({instructions:i?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:F.map(A=>A.publicKey)})?f.push(new He().add(...m.instructions,...B)):f.push(new He().add(...B)),g.push(F)}return f.forEach(S=>S.feePayer=this.feePayer),(R=this.owner)!=null&&R.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:A,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},V=I!=null?I:await Re(this.connection,this.blockhashCommitment);if(f.forEach(async(y,w)=>{y.recentBlockhash=V,g[w].length&&y.sign(...g[w])}),Ie(f),(_=this.owner)!=null&&_.isKeyPair){if(F){let y=0,w=[];for(let k of f){if(++y,y<=T){w.push("tx skipped");continue}let x=await Gt(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});w.push(x)}return{txIds:w,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)),w=[...f.slice(0,T),...y];if(F){let k=0,x=[],L=async()=>{if(!w[k])return;k<T&&(x.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...x]),k++,L());let E=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:h});x.push({txId:E,status:"sent",signedTx:w[k]}),A==null||A([...x]),k++;let ae=!1,U=null,q=null,J=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let oe=x.findIndex(ge=>ge.txId===E);if(oe>-1){if(x[oe].status==="error"||x[oe].status==="success")return;x[oe].status=G.err?"error":"success"}A==null||A([...x]),G.err||L()};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),J({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)}},pt)),q=this.connection.onSignature(E,G=>{if(ae){this.connection.removeSignatureListener(q);return}ae=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await L(),{txIds:x.map(E=>E.txId),signedTxs:w}}else{let k=[];for(let x=0;x<w.length;x+=1){let L=await this.connection.sendRawTransaction(w[x].serialize(),{skipPreflight:h});k.push(L)}return{txIds:k,signedTxs:w}}}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=C(C({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of B)g[y]===void 0&&b.push(new Me(y));let K=await Wt({connection:this.connection,address:b});for(let[y,w]of Object.entries(K))g[y]=w;let R=n?mt(n):{instructions:[],instructionTypes:[]},S=await Re(this.connection,this.blockhashCommitment),F=this.signers.reduce((y,w)=>D(C({},y),{[w.publicKey.toBase58()]:w}),{}),A=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let w=[...I,y],k=n?[...R.instructions,...w]:w;if(y!==i[h]&&I.length<p&&(Qe({instructions:k,payer:this.feePayer,lookupTableAddressAccount:g})||Qe({instructions:w,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 x={};for(let L of[...new Set(B)])g[L]!==void 0&&(x[L]=g[L]);if(n&&Qe({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let L=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));A.push(new $e(L))}else{let L=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));A.push(new $e(L))}T.push(Array.from(new Set(I.map(L=>L.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(L=>F[L]).filter(L=>L!==void 0)),I=[y]}}),I.length>0){let w=[...new Set(I.map(k=>k.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(k=>F[k]).filter(k=>k!==void 0);if(n&&Qe({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let k=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));A.push(new $e(k))}else{let k=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));A.push(new $e(k))}T.push(w)}return(_=this.owner)!=null&&_.signer&&T.forEach(y=>{y.some(w=>w.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),A.forEach((y,w)=>{y.sign(T[w])}),{builder:this,transactions:A,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ae;let{sequentially:w,onTxUpdate:k,skipTxCount:x=0,recentBlockHash:L,skipPreflight:E=!0}=y||{};if(A.map(async(U,q)=>{T[q].length&&U.sign(T[q]),L&&(U.message.recentBlockhash=L)}),Ie(A),(ae=this.owner)!=null&&ae.isKeyPair){if(w){let U=0,q=[];for(let J of A){if(++U,U<=x){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:E});await dt(this.connection,G),q.push(G)}return{txIds:q,signedTxs:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(x,A.length)),q=[...A.slice(0,x),...U];if(w){let J=0,G=[],oe=async()=>{if(!q[J])return;if(J<x){G.push({txId:"",status:"success",signedTx:q[J]}),k==null||k([...G]),J++,oe();return}let ge=await this.connection.sendTransaction(q[J],{skipPreflight:E});G.push({txId:ge,status:"sent",signedTx:q[J]}),k==null||k([...G]),J++;let qe=!1,xe=null,ot=null,an=Te=>{xe!==null&&clearInterval(xe),ot!==null&&this.connection.removeSignatureListener(ot);let Pe=G.findIndex(go=>go.txId===ge);if(Pe>-1){if(G[Pe].status==="error"||G[Pe].status==="success")return;G[Pe].status=Te.err?"error":"success"}k==null||k([...G]),Te.err||oe()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var Te;if(qe){clearInterval(xe);return}try{let Pe=await this.connection.getTransaction(ge,{commitment:"confirmed",maxSupportedTransactionVersion:0});Pe&&(qe=!0,clearInterval(xe),an({err:((Te=Pe.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",ge))}catch(Pe){qe=!0,clearInterval(xe),console.error("getTransaction timeout:",Pe,ge)}},pt)),ot=this.connection.onSignature(ge,Te=>{if(qe){this.connection.removeSignatureListener(ot);return}qe=!0,an(Te)},"confirmed"),this.connection.getSignatureStatus(ge)};return oe(),{txIds:[],signedTxs:q}}else{let J=[];for(let G=0;G<q.length;G+=1){let oe=await this.connection.sendTransaction(q[G],{skipPreflight:E});J.push(oe)}return{txIds:J,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import{PublicKey as Ic}from"@solana/web3.js";import Sc from"bn.js";import ci from"bn.js";var yt=new ci(1e6);var Nn={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_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",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"},li=D(C({},Nn),{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 xl=v("Raydium_Api");import{PublicKey as bd,SystemProgram as gd}from"@solana/web3.js";import{AccountLayout as Td,createAssociatedTokenAccountIdempotentInstruction as hd,TOKEN_PROGRAM_ID as Id,TOKEN_2022_PROGRAM_ID as Bd}from"@solana/spl-token";var zt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=v(n)}createTxBuilder(t){return this.scope.checkOwner(),new ft({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(zt(t))}logInfo(...t){this.logger.info(zt(t))}logAndCreateError(...t){let n=zt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ym,SystemProgram as Zm}from"@solana/web3.js";import $m from"bn.js";import{createCloseAccountInstruction as nd,createInitializeAccountInstruction as od,createTransferInstruction as id,TOKEN_PROGRAM_ID as rd}from"@solana/spl-token";import{Keypair as Mm,PublicKey as Fm}from"@solana/web3.js";import _m from"bn.js";import{TOKEN_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as hi}from"@solana/web3.js";import En,{isBN as Dn}from"bn.js";import{bits as mi,BitStructure as Dl,blob as di,Blob as Wl,cstr as ql,f32 as Ul,f32be as Gl,f64 as zl,f64be as Xl,greedy as Yl,Layout as pi,ns64 as Ql,ns64be as Zl,nu64 as fi,nu64be as Hl,offset as yi,s16 as jl,s16be as $l,s24 as Jl,s24be as em,s32 as bi,s32be as tm,s40 as nm,s40be as om,s48 as im,s48be as rm,s8 as am,seq as gi,struct as sm,Structure as Pi,u16 as Ai,u16be as um,u24 as cm,u24be as lm,u32 as wi,u32be as mm,u40 as dm,u40be as pm,u48 as fm,u48be as ym,u8 as ki,UInt as Ti,union as bm,Union as gm,unionLayoutDiscriminator as Pm,utf8 as Am}from"@solana/buffer-layout";var bt=pi,Mn=Pi;var Xt=Ti;var Fn=ki,$=Ai;var gt=wi;var vn=fi;var ce=bi;var Vn=gi;var M=di;var Yt=mi,_n=yi;var Se=class extends bt{constructor(n,i,u){super(n,u);this.blob=M(n),this.signed=i}decode(n,i=0){let u=new En(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 En(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,u)}},Pt=class extends bt{constructor(n){super(8,n);this._lower=Yt(gt(),!1),this._upper=Yt(gt(),!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 C(C({},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 Xt(1,o)}function Y(o){return new Xt(4,o)}function e(o){return new Se(8,!1,o)}function O(o){return new Se(16,!1,o)}function Wn(o){return new Se(1,!0,o)}function Fe(o){return new Se(8,!0,o)}function qn(o){return new Se(16,!0,o)}var Je=class extends bt{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 Je(M(32),t=>new hi(t),t=>t.toBuffer(),o)}function ue(o){return new Je(Fn(),Ii,Bi,o)}function Ii(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Bi(o){return o?1:0}function Un(o,t){let n=gt("length"),i=l([n,d(o,_n(n,-n.span),"values")]);return new Je(i,({values:u})=>u,u=>({values:u}),t)}var Qt=class extends Mn{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Qt(o,t,n)}function d(o,t,n){let i,u=typeof t=="number"?t:Dn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=Dn(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 Vn(o,u,n)}var At=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 MP,SystemProgram as FP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as VP}from"@solana/spl-token";import YP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ab,TOKEN_2022_PROGRAM_ID as wb,TOKEN_PROGRAM_ID as kb}from"@solana/spl-token";import{PublicKey as hb}from"@solana/web3.js";import Bb from"bn.js";import xb from"decimal.js";import{TOKEN_PROGRAM_ID as Fd}from"@solana/spl-token";import{PublicKey as Ed}from"@solana/web3.js";var xi=l([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Wy,TOKEN_2022_PROGRAM_ID as qy,TOKEN_PROGRAM_ID as Uy}from"@solana/spl-token";import{Keypair as Xy,PublicKey as Yy,SystemProgram as Zy,TransactionInstruction as Hy}from"@solana/web3.js";import $y from"bn.js";import W from"bn.js";var ve=new W(1).shln(64);var Ki=new W(1).shln(128),Zt=new W(1).shln(64).subn(1),Ci=new W(1).shln(128).subn(1);var Ve=new W("4295048016"),_e=new W("79226673521066979257578248091"),Ri=new W("59543866431248"),Li=new W("184467440737095516"),Oi=new W("15793534762490258745");var Ht=60,jd=new W("18446743708227953217"),Ni=[{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 et=3,zn=100;var Xn=10,Yn=100,kt=14;var z=new W(0),Ee=new W(1),$d=new W(-1);var Jd=new W("18446744073700000000");var Mi=l([M(8),c("bump"),$("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),$("tickSpacing"),Y("fundFeeRate"),d(Y(),1),r("fundOwner"),d(e(),3)]),Fi=l([Y("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),Qn=l([M(8),ue("initialized"),e("recentEpoch"),$("observationIndex"),r("poolId"),d(Fi,zn,"observations"),d(e(),4)]),vi=l([$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Vi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),jt=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),$("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(Vi,et,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),vi.replicate("dynamicFeeInfo"),d(e(),46)]),_i=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Ei=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(_i,et,"rewardInfos"),e("recentEpoch"),d(e(),7)]),op=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),et,"