@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 77.5 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 tR}from"lodash";import rl 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 za,TOKEN_PROGRAM_ID as Ya,getTransferFeeConfig as Xa,unpackMint as Qa}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 ou 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),Ye=Ge(Ko),Co={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.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.`),Ye.set({precision:t+1,rounding:Co[i]});let u=new Ye(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 Y,SystemProgram as yn,SYSVAR_RENT_PUBKEY as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";function Ce({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Vo=[Ce({pubkey:vo,isWritable:!1}),Ce({pubkey:yn.programId,isWritable:!1}),Ce({pubkey:Fo,isWritable:!1})];function bn({publicKey:o,transformSol:t}){let n=gn(o.toString());if(n instanceof Y)return t&&n.equals(he)?de:n;if(t&&n.toString()===he.toBase58())return de;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function gn(o){try{return new Y(o)}catch{return o}}var Lt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Re=new Y("SysvarRent111111111111111111111111111111111"),_o=new Y("SysvarC1ock11111111111111111111111111111111"),ct=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Eo=new Y("Sysvar1nstructions1111111111111111111111111"),Pn=yn.programId,Ss=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),xs=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ks=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Cs=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Rs=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ls=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Os=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ns=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ms=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Fs=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),vs=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),de=new Y("So11111111111111111111111111111111111111112"),he=Y.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 pu=new we(2),fu=new we(3),yu=new we(5),Rt=new we(10),bu=new we(100),gu=new we(1e3),Pu=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 Fu}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 Le(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 Xe({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 Yo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Xo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof In&&(t=Yo(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(Xo(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"),Wu=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Qo=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Cn=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Rn=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),qu=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Zo=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ln=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ho=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),jo=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),On=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Uu=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"),Gu=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ii=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ri=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ai=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),zu=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Yu=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Xu=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Qu=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Zu=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 $u from"bn.js";import{PublicKey as Dt,AddressLookupTableAccount as Me}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 Me({key:f,state:Me.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Ne[f.toString()]=g:Oe[f.toString()]=g}return u}var Oe={},qt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Oe[t])return Oe;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Oe[t]=new Me({key:n,state:Me.deserialize(i.data)})),Oe},Ne={},Ut=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ne[t])return Ne;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Ne[t]=new Me({key:n,state:Me.deserialize(i.data)})),Ne};import{PublicKey as Fe,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 Fe(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!==Fe.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 Le(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 Le(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 Fe(T));let b=await Wt({connection:this.connection,address:B});for(let[T,I]of Object.entries(b))f[T]=I;let K=u?Fe.default.toBase58():m!=null?m:await Le(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 Fe(h));if(S!==n[b]&&B.length<12&&(Xe({instructions:A,payer:this.feePayer,signers:I})||Xe({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,Xe({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);Xe({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 Le(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 Fe(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 Le(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,Ke=null,ot=null,an=Te=>{Ke!==null&&clearInterval(Ke),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&&(Ke=setInterval(async()=>{var Te;if(qe){clearInterval(Ke);return}try{let Pe=await this.connection.getTransaction(ge,{commitment:"confirmed",maxSupportedTransactionVersion:0});Pe&&(qe=!0,clearInterval(Ke),an({err:((Te=Pe.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",ge))}catch(Pe){qe=!0,clearInterval(Ke),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 Bc}from"@solana/web3.js";import xc 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 Kl=v("Raydium_Api");import{PublicKey as gd,SystemProgram as Pd}from"@solana/web3.js";import{AccountLayout as hd,createAssociatedTokenAccountIdempotentInstruction as Id,TOKEN_PROGRAM_ID as Bd,TOKEN_2022_PROGRAM_ID as Sd}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 Qm,SystemProgram as Hm}from"@solana/web3.js";import Jm from"bn.js";import{createCloseAccountInstruction as od,createInitializeAccountInstruction as id,createTransferInstruction as rd,TOKEN_PROGRAM_ID as ad}from"@solana/spl-token";import{Keypair as Fm,PublicKey as vm}from"@solana/web3.js";import Em from"bn.js";import{TOKEN_PROGRAM_ID as qm}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 Wl,blob as di,Blob as ql,cstr as Ul,f32 as Gl,f32be as zl,f64 as Yl,f64be as Xl,greedy as Ql,Layout as pi,ns64 as Zl,ns64be as Hl,nu64 as fi,nu64be as jl,offset as yi,s16 as $l,s16be as Jl,s24 as em,s24be as tm,s32 as bi,s32be as nm,s40 as om,s40be as im,s48 as rm,s48be as am,s8 as sm,seq as gi,struct as um,Structure as Pi,u16 as Ai,u16be as cm,u24 as lm,u24be as mm,u32 as wi,u32be as dm,u40 as pm,u40be as fm,u48 as ym,u48be as bm,u8 as ki,UInt as Ti,union as gm,Union as Pm,unionLayoutDiscriminator as Am,utf8 as wm}from"@solana/buffer-layout";var bt=pi,Mn=Pi;var Yt=Ti;var Fn=ki,$=Ai;var gt=wi;var vn=fi;var ce=bi;var Vn=gi;var M=di;var Xt=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=Xt(gt(),!1),this._upper=Xt(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 Yt(1,o)}function X(o){return new Yt(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 ve(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"),X("delegateOption"),r("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as MP,SystemProgram as FP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as VP}from"@solana/spl-token";import XP 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 vd}from"@solana/spl-token";import{PublicKey as Dd}from"@solana/web3.js";var xi=l([X("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("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 Yy,PublicKey as Xy,SystemProgram as Zy,TransactionInstruction as Hy}from"@solana/web3.js";import $y from"bn.js";import W from"bn.js";var xe=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,$d=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 Yn=10,Xn=100,kt=14;var z=new W(0),Ee=new W(1),Jd=new W(-1);var ep=new W("18446744073700000000");var Mi=l([M(8),c("bump"),$("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),$("tickSpacing"),X("fundFeeRate"),d(X(),1),r("fundOwner"),d(e(),3)]),Fi=l([X("blockTimestamp"),ve("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"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),X("volatilityReference"),X("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"),X(),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)]),ip=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),et,"