@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 77 kB
JavaScript
var Po=Object.defineProperty,Ao=Object.defineProperties;var wo=Object.getOwnPropertyDescriptors;var rt=Object.getOwnPropertySymbols;var un=Object.prototype.hasOwnProperty,cn=Object.prototype.propertyIsEnumerable;var sn=(r,n,t)=>n in r?Po(r,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[n]=t,C=(r,n)=>{for(var t in n||(n={}))un.call(n,t)&&sn(r,t,n[t]);if(rt)for(var t of rt(n))cn.call(n,t)&&sn(r,t,n[t]);return r},E=(r,n)=>Ao(r,wo(n));var ce=(r,n)=>{var t={};for(var o in r)un.call(r,o)&&n.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&rt)for(var o of rt(r))n.indexOf(o)<0&&cn.call(r,o)&&(t[o]=r[o]);return t};import Ka from"big.js";import we from"bn.js";import Se from"bn.js";import yR from"decimal.js";import{PublicKey as ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ln}from"@solana/spl-token";var at={chainId:101,address:ko.default.toBase58(),programId:ln.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:ln.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 Ct}from"@solana/web3.js";import{PublicKey as z,SystemProgram as mn,SYSVAR_RENT_PUBKEY as To}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ho}from"@solana/spl-token";function Ke({pubkey:r,isSigner:n=!1,isWritable:t=!0}){return{pubkey:r,isWritable:t,isSigner:n}}var Io=[Ke({pubkey:ho,isWritable:!1}),Ke({pubkey:mn.programId,isWritable:!1}),Ke({pubkey:To,isWritable:!1})];function dn({publicKey:r,transformSol:n}){let t=pn(r.toString());if(t instanceof z)return n&&t.equals(Te)?me:t;if(n&&t.toString()===Te.toBase58())return me;if(typeof t=="string"){if(t===z.default.toBase58())return z.default;try{return new z(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function pn(r){try{return new z(r)}catch{return r}}var Kt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ce=new z("SysvarRent111111111111111111111111111111111"),Bo=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),So=new z("Sysvar1nstructions1111111111111111111111111"),fn=mn.programId,Va=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),_a=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ea=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Da=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Wa=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),qa=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ua=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ga=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),za=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Xa=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ya=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new z("So11111111111111111111111111111111111111112"),Te=z.default;var Rt=class{constructor({mint:n,decimals:t,symbol:o,name:u,skipMint:m=!1,isToken2022:p=!1}){if(n===Te.toBase58()||n instanceof Ct&&Te.equals(n)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Ct(le.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||n.toString().substring(0,6),this.name=u||n.toString().substring(0,6),this.mint=m?Ct.default:dn({publicKey:n}),this.isToken2022=p}equals(n){return this===n?!0:this.mint.equals(n.mint)}},Q=Rt;Q.WSOL=new Rt(E(C({},le),{mint:le.address}));var Lt=class{constructor({decimals:n,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=n,this.symbol=t,this.name=o}equals(n){return this===n}},ut=Lt;ut.SOL=new Lt(at);function ns(r,n){return r instanceof Q&&n instanceof Q?r.equals(n):r instanceof Q||n instanceof Q?!1:r===n}import lt from"big.js";import Oo from"bn.js";import No from"decimal.js-light";import{get as yn,set as xo}from"lodash";var Ot=class{constructor(n){this.logLevel=n.logLevel!==void 0?n.logLevel:0,this.name=n.name}set level(n){this.logLevel=n}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(n){return n<=this.logLevel}error(...n){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...n),this):this}logWithError(...n){let t=n.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(t)}warning(...n){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...n),this):this}info(...n){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...n),this):this}debug(...n){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...n),this):this}},bn={},Ko={};function F(r){let n=yn(bn,r);if(!n){let t=yn(Ko,r);n=new Ot({name:r,logLevel:t}),xo(bn,r,n)}return n}import Ge from"bn.js";var gn=9007199254740991;function Y(r){let n=F("Raydium_parseBigNumberish");if(r instanceof Ge)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new Ge(r);n.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&n.logWithError(`BigNumberish number underflow: ${r}`),(r>=gn||r<=-gn)&&n.logWithError(`BigNumberish number overflow: ${r}`),new Ge(String(r))):typeof r=="bigint"?new Ge(r.toString()):(n.error(`invalid BigNumberish value: ${r}`),new Ge(0))}import Co from"toformat";var Ro=Co,ze=Ro;var ct=F("module/fraction"),Nt=ze(lt),Xe=ze(No),Mo={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},Fo={[0]:lt.roundDown,[1]:lt.roundHalfUp,[2]:lt.roundUp},W=class{constructor(n,t=new Oo(1)){this.numerator=Y(n),this.denominator=Y(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(n){let t=n instanceof W?n:new W(Y(n));return this.denominator.eq(t.denominator)?new W(this.numerator.add(t.numerator),this.denominator):new W(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(n){let t=n instanceof W?n:new W(Y(n));return this.denominator.eq(t.denominator)?new W(this.numerator.sub(t.numerator),this.denominator):new W(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(n){let t=n instanceof W?n:new W(Y(n));return new W(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(n){let t=n instanceof W?n:new W(Y(n));return new W(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(n,t={groupSeparator:""},o=1){Number.isInteger(n)||ct.logWithError(`${n} is not an integer.`),n<=0&&ct.logWithError(`${n} is not positive.`),Xe.set({precision:n+1,rounding:Mo[o]});let u=new Xe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(n);return u.toFormat(u.decimalPlaces(),t)}toFixed(n,t={groupSeparator:""},o=1){return Number.isInteger(n)||ct.logWithError(`${n} is not an integer.`),n<0&&ct.logWithError(`${n} is negative.`),Nt.DP=n,Nt.RM=Fo[o]||1,new Nt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,t)}isZero(){return this.numerator.isZero()}};import vo from"bn.js";var Pn=new W(new vo(100)),Pe=class extends W{toSignificant(n=5,t,o){return this.mul(Pn).toSignificant(n,t,o)}toFixed(n=2,t,o){return this.mul(Pn).toFixed(n,t,o)}};var Vo=F("Raydium_price"),de=class extends W{constructor(t){let{baseToken:o,quoteToken:u,numerator:m,denominator:p}=t;super(m,p);this.baseToken=o,this.quoteToken=u,this.scalar=new W(Mt(o.decimals),Mt(u.decimals))}get raw(){return new W(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new de({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Vo.logWithError("mul token not equals");let o=super.mul(t);return new de({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:o.denominator,numerator:o.numerator})}toSignificant(t=this.quoteToken.decimals,o,u){return this.adjusted.toSignificant(t,o,u)}toFixed(t=this.quoteToken.decimals,o,u){return this.adjusted.toFixed(t,o,u)}};import{merge as bC}from"lodash";import bc from"axios";import{PublicKey as _o}from"@solana/web3.js";import{MINT_SIZE as Ms,TOKEN_PROGRAM_ID as Fs,getTransferFeeConfig as vs,unpackMint as Vs}from"@solana/spl-token";var Ft=F("Raydium_accountInfo_util");async function ge(r,n,t){let{batchRequest:o,commitment:u="confirmed",chunkCount:m=100}=C({batchRequest:!1},t),p=vt(n,m),f=new Array(p.length).fill([]);if(o){let g=p.map(x=>{let R=r._buildArgs([x.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),T=vt(g,10);f=(await(await Promise.all(T.map(async x=>await r._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${x.error.message}`),x.result.value.map(R=>{if(R){let{data:S,executable:M,lamports:A,owner:h,rentEpoch:B}=R;return S.length!==2&&S[1]!=="base64"&&Ft.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:A,owner:new _o(h),rentEpoch:B}}return null})))}else try{f=await Promise.all(p.map(g=>r.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}function vt(r,n=1,t=[]){let o=[...r];if(n<=0)return t;for(;o.length;)t.push(o.splice(0,n));return t}import{PublicKey as eu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nu}from"@solana/spl-token";import{ComputeBudgetProgram as An,Keypair as kn,PublicKey as Eo,Transaction as Tn,TransactionMessage as Do,VersionedTransaction as hn}from"@solana/web3.js";var H={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 Wo}from"@solana/spl-token";var wn=F("Raydium_txUtil"),In=1644;function mt(r){let n=[],t=[];return r.microLamports&&(n.push(An.setComputeUnitPrice({microLamports:r.microLamports})),t.push(H.SetComputeUnitPrice)),r.units&&(n.push(An.setComputeUnitLimit({units:r.units})),t.push(H.SetComputeUnitLimit)),{instructions:n,instructionTypes:t}}async function Re(r,n){var o,u;let t=n!=null?n:"confirmed";return(u=await((o=r.getLatestBlockhash)==null?void 0:o.call(r,{commitment:t})))==null?void 0:u.blockhash}async function dt(r,n){return r.getSignatureStatuses([n]),new Promise((t,o)=>{let u=setTimeout(o,6e4);r.onSignature(n,m=>{if(clearTimeout(u),!m.err){t("");return}o(Object.assign(m.err,{txId:n}))},"confirmed")})}function Vt(r,n){r.length<1&&wn.logWithError(`no instructions provided: ${r.toString()}`),n.length<1&&wn.logWithError(`no signers provided:, ${n.toString()}`);let t=new Tn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...r);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<In}catch{return!1}}function pe(r,n){let[t,o]=Eo.findProgramAddressSync(r,n);return{publicKey:t,nonce:o}}function Qe({instructions:r,payer:n,signers:t}){return Vt(r,[n,...t])}function Ze({instructions:r,payer:n,lookupTableAddressAccount:t,recentBlockhash:o=kn.generate().publicKey.toString()}){let m=new Do({payerKey:n,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new hn(m).serialize()).toString("base64").length<In}catch{return!1}}var qo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Uo=r=>{let n=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof hn&&(n=qo(n));try{return n instanceof Buffer?n.toString("base64"):Buffer.from(n).toString("base64")}catch{return n.toString("base64")}};function he(r){let n=[];return r.forEach(t=>{t instanceof Tn&&(t.recentBlockhash||(t.recentBlockhash=Wo.toBase58()),t.feePayer||(t.feePayer=kn.generate().publicKey)),n.push(Uo(t))}),console.log("simulate tx string:",n),n}import{PublicKey as P}from"@solana/web3.js";var Bn=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Sn=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),xn=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),_t=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),au=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Go=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Kn=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Cn=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),su=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),zo=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Xo=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Yo=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ln=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),uu=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Qo=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Zo=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ho=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),jo=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),$o=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Et=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Jo=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),cu=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ei=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ti=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ni=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),lu=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),mu=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),du=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),pu=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),fu=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),He={IDO_PROGRAM_ID_V1:Zo,IDO_PROGRAM_ID_V2:Ho,IDO_PROGRAM_ID_V3:jo,IDO_PROGRAM_ID_V4:$o};var Ae={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 gu from"bn.js";import{PublicKey as Dt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Wt({connection:r,address:n,cluster:t="mainnet"}){let o=await ge(r,[...new Set(n.map(m=>m.toString()))].map(m=>new Dt(m))),u={};for(let m=0;m<n.length;m++){let p=o[m],f=n[m];if(!p)continue;let g=new Ne({key:f,state:Ne.deserialize(p.data)});u[f.toString()]=g,t==="devnet"?Oe[f.toString()]=g:Le[f.toString()]=g}return u}var Le={},qt=async r=>{let n="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[n])return Le;let t=new Dt(n),o=await r.getAccountInfo(t);return o&&(Le[n]=new Ne({key:t,state:Ne.deserialize(o.data)})),Le},Oe={},Ut=async r=>{let n="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[n])return Oe;let t=new Dt(n),o=await r.getAccountInfo(t);return o&&(Oe[n]=new Ne({key:t,state:Ne.deserialize(o.data)})),Oe};import{PublicKey as Me,sendAndConfirmTransaction as Gt,SystemProgram as oi,Transaction as je,TransactionMessage as $e,VersionedTransaction as Je}from"@solana/web3.js";import ii from"axios";var pt=2e3,ft=class{constructor(n){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=n.connection,this.feePayer=n.feePayer,this.signAllTransactions=n.signAllTransactions,this.owner=n.owner,this.cluster=n.cluster,this.blockhashCommitment=n.blockhashCommitment,this.loopMultiTxStatus=!!n.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 o;let n=(await ii.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(o=n==null?void 0:n[15])!=null?o:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(n){if(n){let{instructions:t,instructionTypes:o}=mt(n);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(n){var t;return n?(this.endInstructions.push(oi.transfer({fromPubkey:(t=n.feePayer)!=null?t:this.feePayer,toPubkey:new Me(n.address),lamports:BigInt(n.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:n,defaultIns:t}){try{let o=n||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:n=[],endInstructions:t=[],signers:o=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...n),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Me.default.toString())),this}async versionBuild({txVersion:n,extInfo:t,lookupTableAddress:o}){return n===0?await this.buildV0(E(C({},t||{}),{lookupTableAddress:o})):this.build(t)}build(n){var o;let t=new je;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var y;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},T=m!=null?m:await Re(this.connection,this.blockhashCommitment);if(t.recentBlockhash=T,this.signers.length&&t.sign(...this.signers),he([t]),(y=this.owner)!=null&&y.isKeyPair)return{txId:f?await Gt(this.connection,t,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:p}),signedTx:t};if(this.signAllTransactions){let x=await this.signAllTransactions([t]);if(this.signers.length)for(let R of x)try{R.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(x[0].serialize(),{skipPreflight:p}),signedTx:x[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}buildMultiTx(n){var T;let{extraPreBuildData:t=[],extInfo:o}=n,{transaction:u}=this.build(o),m=t.filter(y=>y.transaction.instructions.length>0),p=[u,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(y=>{y.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async y=>{var B;let{sequentially:x,onTxUpdate:R,skipTxCount:S=0,recentBlockHash:M,skipPreflight:A=!0}=y||{},h=M!=null?M:await Re(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(x){let I=[],v=0;for(let V of p){if(++v,v<=S)continue;let b=await Gt(this.connection,V,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});I.push(b)}return{txIds:I,signedTxs:p}}return{txIds:await await Promise.all(p.map(async I=>(I.recentBlockhash=h,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:A})))),signedTxs:p}}if(this.signAllTransactions){let I=p.map((V,b)=>(V.recentBlockhash=h,f[b].length&&V.sign(...f[b]),V));he(I);let v=await this.signAllTransactions(I);if(x){let V=0,b=[],w=async()=>{if(!v[V])return;let k=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:A});b.push({txId:k,status:"sent",signedTx:v[V]}),R==null||R([...b]),V++;let K=!1,L=null,_=null,ie=U=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let q=b.findIndex(J=>J.txId===k);if(q>-1){if(b[q].status==="error"||b[q].status==="success")return;b[q].status=U.err?"error":"success"}R==null||R([...b]),U.err||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(K){clearInterval(L);return}try{let q=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(K=!0,clearInterval(L),ie({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",k))}catch(q){K=!0,clearInterval(L),console.error("getTransaction timeout:",q,k)}},pt)),_=this.connection.onSignature(k,U=>{if(K){this.connection.removeSignatureListener(_);return}K=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:b.map(k=>k.txId),signedTxs:v}}else{let V=[];for(let b=0;b<v.length;b+=1){let w=await this.connection.sendRawTransaction(v[b].serialize(),{skipPreflight:A});V.push(w)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:n,txVersion:t,extInfo:o}){return t===0?await this.buildV0MultiTx({extraPreBuildData:n,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:n,extInfo:o})}async buildV0(n){var A;let M=n||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:u,recentBlockhash:m}=M,p=ce(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),t),g=Array.from(new Set([...o,...this.lookupTableAddress])),T=[];for(let h of g)f[h]===void 0&&T.push(new Me(h));let y=await Wt({connection:this.connection,address:T});for(let[h,B]of Object.entries(y))f[h]=B;let x=u?Me.default.toBase58():m!=null?m:await Re(this.connection,this.blockhashCommitment),R=new $e({payerKey:this.feePayer,recentBlockhash:x,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new Je(R);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var V;let{skipPreflight:B=!0,sendAndConfirm:I,notSendToRpc:v}=h||{};if(he([S]),(V=this.owner)!=null&&V.isKeyPair){let b=await this.connection.sendTransaction(S,{skipPreflight:B});return I&&await dt(this.connection,b),{txId:b,signedTx:S}}if(this.signAllTransactions){let b=await this.signAllTransactions([S]);if(this.signers.length)for(let w of b)try{w.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(b[0],{skipPreflight:B}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(n){var T;let{extraPreBuildData:t=[],buildProps:o}=n,{transaction:u}=await this.buildV0(o),m=t.filter(y=>y.builder.instructions.length>0),p=[u,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(y=>{y.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(y,x)=>{y.sign(f[x])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:o,execute:async y=>{var A;let{sequentially:x,onTxUpdate:R,recentBlockHash:S,skipPreflight:M=!0}=y||{};if(S&&p.forEach(h=>h.message.recentBlockhash=S),he(p),(A=this.owner)!=null&&A.isKeyPair){if(x){let h=[];for(let B of p){let I=await this.connection.sendTransaction(B,{skipPreflight:M});await dt(this.connection,I),h.push(I)}return{txIds:h,signedTxs:p}}return{txIds:await Promise.all(p.map(async h=>await this.connection.sendTransaction(h,{skipPreflight:M}))),signedTxs:p}}if(this.signAllTransactions){let h=await this.signAllTransactions(p);if(x){let B=0,I=[],v=async()=>{if(!h[B])return;let V=await this.connection.sendTransaction(h[B],{skipPreflight:M});I.push({txId:V,status:"sent",signedTx:h[B]}),R==null||R([...I]),B++;let b=!1,w=null,k=null,K=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let _=I.findIndex(ie=>ie.txId===V);if(_>-1){if(I[_].status==="error"||I[_].status==="success")return;I[_].status=L.err?"error":"success"}R==null||R([...I]),L.err||v()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(b){clearInterval(w);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(b=!0,clearInterval(w),K({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){b=!0,clearInterval(w),console.error("getTransaction timeout:",_,V)}},pt)),k=this.connection.onSignature(V,L=>{if(b){this.connection.removeSignatureListener(k);return}b=!0,K(L)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:h}}else{let B=[];for(let I=0;I<h.length;I+=1){let v=await this.connection.sendTransaction(h[I],{skipPreflight:M});B.push(v)}return{txIds:B,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(n){var R;let x=n||{},{splitIns:t=[],computeBudgetConfig:o}=x,u=ce(x,["splitIns","computeBudgetConfig"]),m=o?mt(o):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,M)=>E(C({},S),{[M.publicKey.toBase58()]:M}),{}),f=[],g=[],T=[],y=0;if(this.allInstructions.forEach(S=>{let M=[...T,S],A=o?[...m.instructions,...M]:M,B=[...new Set(M.map(I=>I.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(I=>new Me(I));if(S!==t[y]&&T.length<12&&(Qe({instructions:A,payer:this.feePayer,signers:B})||Qe({instructions:M,payer:this.feePayer,signers:B})))T.push(S);else{if(T.length===0)throw Error("item ins too big");y+=S===t[y]?1:0,Qe({instructions:o?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:B})?f.push(new je().add(...m.instructions,...T)):f.push(new je().add(...T)),g.push(Array.from(new Set(T.map(I=>I.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(I=>p[I]).filter(I=>I!==void 0)),T=[S]}}),T.length>0){let M=[...new Set(T.map(A=>A.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);Qe({instructions:o?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?f.push(new je().add(...m.instructions,...T)):f.push(new je().add(...T)),g.push(M)}return f.forEach(S=>S.feePayer=this.feePayer),(R=this.owner)!=null&&R.signer&&g.forEach(S=>{S.some(M=>M.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async S=>{var V;let{sequentially:M,onTxUpdate:A,skipTxCount:h=0,recentBlockHash:B,skipPreflight:I=!0}=S||{},v=B!=null?B:await Re(this.connection,this.blockhashCommitment);if(f.forEach(async(b,w)=>{b.recentBlockhash=v,g[w].length&&b.sign(...g[w])}),he(f),(V=this.owner)!=null&&V.isKeyPair){if(M){let b=0,w=[];for(let k of f){if(++b,b<=h){w.push("tx skipped");continue}let K=await Gt(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});w.push(K)}return{txIds:w,signedTxs:f}}return{txIds:await Promise.all(f.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:I}))),signedTxs:f}}if(this.signAllTransactions){let b=await this.signAllTransactions(f.slice(h,f.length)),w=[...f.slice(0,h),...b];if(M){let k=0,K=[],L=async()=>{if(!w[k])return;k<h&&(K.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...K]),k++,L());let _=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:I});K.push({txId:_,status:"sent",signedTx:w[k]}),A==null||A([...K]),k++;let ie=!1,U=null,q=null,J=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let ne=K.findIndex(ye=>ye.txId===_);if(ne>-1){if(K[ne].status==="error"||K[ne].status==="success")return;K[ne].status=G.err?"error":"success"}A==null||A([...K]),G.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(U),J({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,_)}},pt)),q=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(q);return}ie=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:K.map(_=>_.txId),signedTxs:w}}else{let k=[];for(let K=0;K<w.length;K+=1){let L=await this.connection.sendRawTransaction(w[K].serialize(),{skipPreflight:I});k.push(L)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(n){var V;let v=n||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=v,f=ce(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=C(C({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),u),T=Array.from(new Set([...this.lookupTableAddress,...m])),y=[];for(let b of T)g[b]===void 0&&y.push(new Me(b));let x=await Wt({connection:this.connection,address:y});for(let[b,w]of Object.entries(x))g[b]=w;let R=t?mt(t):{instructions:[],instructionTypes:[]},S=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((b,w)=>E(C({},b),{[w.publicKey.toBase58()]:w}),{}),A=[],h=[],B=[],I=0;if(this.allInstructions.forEach(b=>{let w=[...B,b],k=t?[...R.instructions,...w]:w;if(b!==o[I]&&B.length<p&&(Ze({instructions:k,payer:this.feePayer,lookupTableAddressAccount:g})||Ze({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})))B.push(b);else{if(B.length===0)throw Error("item ins too big");I+=b===o[I]?1:0;let K={};for(let L of[...new Set(T)])g[L]!==void 0&&(K[L]=g[L]);if(t&&Ze({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let L=new $e({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(g));A.push(new Je(L))}else{let L=new $e({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));A.push(new Je(L))}h.push(Array.from(new Set(B.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),B=[b]}}),B.length>0){let w=[...new Set(B.map(k=>k.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(t&&Ze({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let k=new $e({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(g));A.push(new Je(k))}else{let k=new $e({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));A.push(new Je(k))}h.push(w)}return(V=this.owner)!=null&&V.signer&&h.forEach(b=>{b.some(w=>w.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),A.forEach((b,w)=>{b.sign(h[w])}),{builder:this,transactions:A,buildProps:n,signers:h,instructionTypes:this.instructionTypes,execute:async b=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:K=0,recentBlockHash:L,skipPreflight:_=!0}=b||{};if(A.map(async(U,q)=>{h[q].length&&U.sign(h[q]),L&&(U.message.recentBlockhash=L)}),he(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let U=0,q=[];for(let J of A){if(++U,U<=K){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:_});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:_}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(K,A.length)),q=[...A.slice(0,K),...U];if(w){let J=0,G=[],ne=async()=>{if(!q[J])return;if(J<K){G.push({txId:"",status:"success",signedTx:q[J]}),k==null||k([...G]),J++,ne();return}let ye=await this.connection.sendTransaction(q[J],{skipPreflight:_});G.push({txId:ye,status:"sent",signedTx:q[J]}),k==null||k([...G]),J++;let Ue=!1,xe=null,it=null,an=ke=>{xe!==null&&clearInterval(xe),it!==null&&this.connection.removeSignatureListener(it);let be=G.findIndex(go=>go.txId===ye);if(be>-1){if(G[be].status==="error"||G[be].status==="success")return;G[be].status=ke.err?"error":"success"}k==null||k([...G]),ke.err||ne()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var ke;if(Ue){clearInterval(xe);return}try{let be=await this.connection.getTransaction(ye,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(Ue=!0,clearInterval(xe),an({err:((ke=be.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",ye))}catch(be){Ue=!0,clearInterval(xe),console.error("getTransaction timeout:",be,ye)}},pt)),it=this.connection.onSignature(ye,ke=>{if(Ue){this.connection.removeSignatureListener(it);return}Ue=!0,an(ke)},"confirmed"),this.connection.getSignatureStatus(ye)};return ne(),{txIds:[],signedTxs:q}}else{let J=[];for(let G=0;G<q.length;G+=1){let ne=await this.connection.sendTransaction(q[G],{skipPreflight:_});J.push(ne)}return{txIds:J,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import{PublicKey as vu}from"@solana/web3.js";import _u from"bn.js";import ri from"bn.js";var yt=new ri(1e6);var On={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_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"},ai=E(C({},On),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Ec=F("Raydium_Api");import{PublicKey as Km,SystemProgram as Cm}from"@solana/web3.js";import{AccountLayout as Mm,createAssociatedTokenAccountIdempotentInstruction as Fm,TOKEN_PROGRAM_ID as vm,TOKEN_2022_PROGRAM_ID as Vm}from"@solana/spl-token";var zt=(...r)=>r.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),oe=class{constructor({scope:n,moduleName:t}){this.disabled=!1;this.scope=n,this.logger=F(t)}createTxBuilder(n){return this.scope.checkOwner(),new ft({connection:this.scope.connection,feePayer:n||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(...n){this.logger.debug(zt(n))}logInfo(...n){this.logger.info(zt(n))}logAndCreateError(...n){let t=zt(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as rm,SystemProgram as sm}from"@solana/web3.js";import lm from"bn.js";import{createCloseAccountInstruction as fm,createInitializeAccountInstruction as ym,createTransferInstruction as bm,TOKEN_PROGRAM_ID as gm}from"@solana/spl-token";import{Keypair as Xl,PublicKey as Yl}from"@solana/web3.js";import Hl from"bn.js";import{TOKEN_PROGRAM_ID as Jl}from"@solana/spl-token";import{PublicKey as Ai}from"@solana/web3.js";import _n,{isBN as En}from"bn.js";import{bits as si,BitStructure as $c,blob as ui,Blob as Jc,cstr as el,f32 as tl,f32be as nl,f64 as ol,f64be as il,greedy as rl,Layout as ci,ns64 as al,ns64be as sl,nu64 as li,nu64be as ul,offset as mi,s16 as cl,s16be as ll,s24 as ml,s24be as dl,s32 as di,s32be as pl,s40 as fl,s40be as yl,s48 as bl,s48be as gl,s8 as Pl,seq as pi,struct as Al,Structure as fi,u16 as yi,u16be as wl,u24 as kl,u24be as Tl,u32 as bi,u32be as hl,u40 as Il,u40be as Bl,u48 as Sl,u48be as xl,u8 as gi,UInt as Pi,union as Kl,Union as Cl,unionLayoutDiscriminator as Rl,utf8 as Ll}from"@solana/buffer-layout";var bt=ci,Nn=fi;var Xt=Pi;var Mn=gi,j=yi;var gt=bi;var Fn=li;var se=di;var vn=pi;var N=ui;var Yt=si,Vn=mi;var Be=class extends bt{constructor(t,o,u){super(t,u);this.blob=N(t),this.signed=o}decode(t,o=0){let u=new _n(this.blob.decode(t,o),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(t,o,u=0){return typeof t=="number"&&(t=new _n(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,u)}},Pt=class extends bt{constructor(t){super(8,t);this._lower=Yt(gt(),!1),this._upper=Yt(gt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,o=0){let u=this._lower.decode(t,o),m=this._upper.decode(t,o+this._lower.span);return C(C({},u),m)}encode(t,o,u=0){return this._lower.encode(t,o,u)+this._upper.encode(t,o,u+this._lower.span)}};function c(r){return new Xt(1,r)}function X(r){return new Xt(4,r)}function e(r){return new Be(8,!1,r)}function O(r){return new Be(16,!1,r)}function Dn(r){return new Be(1,!0,r)}function Fe(r){return new Be(8,!0,r)}function Wn(r){return new Be(16,!0,r)}var et=class extends bt{constructor(t,o,u,m){super(t.span,m);this.layout=t,this.decoder=o,this.encoder=u}decode(t,o){return this.decoder(this.layout.decode(t,o))}encode(t,o,u){return this.layout.encode(this.encoder(t),o,u)}getSpan(t,o){return this.layout.getSpan(t,o)}};function i(r){return new et(N(32),n=>new Ai(n),n=>n.toBuffer(),r)}function ae(r){return new et(Mn(),wi,ki,r)}function wi(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ki(r){return r?1:0}function qn(r,n){let t=gt("length"),o=l([t,d(r,Vn(t,-t.span),"values")]);return new et(o,({values:u})=>u,u=>({values:u}),n)}var Qt=class extends Nn{decode(n,t){return super.decode(n,t)}};function l(r,n,t){return new Qt(r,n,t)}function d(r,n,t){let o,u=typeof n=="number"?n:En(n)?n.toNumber():new Proxy(n,{get(m,p){if(!o){let f=Reflect.get(m,"count");o=En(f)?f.toNumber():f,Reflect.set(m,"count",o)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(o=f),Reflect.set(m,p,f)}});return vn(r,u,t)}var At=l([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as Xg,SystemProgram as Yg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Zg}from"@solana/spl-token";import rP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ly,TOKEN_2022_PROGRAM_ID as Oy,TOKEN_PROGRAM_ID as Ny}from"@solana/spl-token";import{PublicKey as Fy}from"@solana/web3.js";import Vy from"bn.js";import Ey from"decimal.js";import{TOKEN_PROGRAM_ID as Ym}from"@solana/spl-token";import{PublicKey as jm}from"@solana/web3.js";var hi=l([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Jf,TOKEN_2022_PROGRAM_ID as ey,TOKEN_PROGRAM_ID as ty}from"@solana/spl-token";import{Keypair as iy,PublicKey as ry,SystemProgram as sy,TransactionInstruction as uy}from"@solana/web3.js";import ly from"bn.js";import D from"bn.js";var ve=new D(1).shln(64);var Ii=new D(1).shln(128),Zt=new D(1).shln(64).subn(1),Bi=new D(1).shln(128).subn(1);var Ve=new D("4295048016"),_e=new D("79226673521066979257578248091"),Si=new D("59543866431248"),xi=new D("184467440737095516"),Ki=new D("15793534762490258745");var Ht=60,cd=new D("18446743708227953217"),Ci=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var tt=3,Gn=100;var zn=10,Xn=100,kt=14;var $=new D(0),Ee=new D(1),ld=new D(-1);var md=new D("18446744073700000000");var Ri=l([N(8),c("bump"),j("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),j("tickSpacing"),X("fundFeeRate"),d(X(),1),i("fundOwner"),d(e(),3)]),Li=l([X("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),Yn=l([N(8),ae("initialized"),e("recentEpoch"),j("observationIndex"),i("poolId"),d(Li,Gn,"observations"),d(e(),4)]),Oi=l([j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ni=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),jt=l([N(8),c("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),j("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),se("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),N(6),d(Ni,tt,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Oi.replicate("dynamicFeeInfo"),d(e(),46)]),Mi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Fi=l([N(8),c("bump"),i("nftMint"),i("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Mi,tt,"rewardInfos"),e("recentEpoch"),d(e(),7)]),yd=l([N(8),c("bump"),i("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),tt,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),vi=l([se("tick"),Wn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),tt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(X(),3)]),Qn=l([N(8),i("poolId"),se("startTickIndex"),d(vi,Ht,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Vi=l([N(8),c("bump"),d(i(),zn,"operationOwners"),d(i(),Xn,"whitelistMints")]),_i=l([N(8),i("poolId"),i("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),Zn=l([N(8),i("poolId"),N(8*8*kt,"positiveTickArrayBitmap"),N(8*8*kt,"negativeTickArrayBitmap")]),bd=l([N(8),j("index"),j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),Ei=l([N(8),i("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),gd=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),d(e(),8)]),Di=l([N(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),d(e(),8)]);import wd from"bn.js";var Ld=Buffer.from("amm_config","utf8"),Wi=Buffer.from("pool","utf8"),qi=Buffer.from("pool_vault","utf8"),Od=Buffer.from("pool_reward_vault","utf8"),Nd=Buffer.from("position","utf8"),Md=Buffer.from("tick_array","utf8"),Fd=Buffer.from("operation","utf8"),vd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Vd=Buffer.from("observation","utf8"),_d=Buffer.from("support_mint","utf8"),Ed=Buffer.from("dynamic_fee_config","utf8");var Dd=Buffer.from("locked_position","utf8");import{sha256 as or}from"js-sha256";import Ui from"bn.js";import Gd from"decimal.js";var Xd=new Ui(1).shln(256).subn(1);import lp from"bn.js";import Jd from"bn.js";import tp from"decimal.js";import yp from"bn.js";import gp from"decimal.js";im