@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 76.8 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},_=(o,t)=>Ao(o,wo(t));var se=(o,t)=>{var n={};for(var r in o)un.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&it)for(var r of it(o))t.indexOf(r)<0&&cn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as Oa}from"@solana/web3.js";import St from"decimal.js";import{TOKEN_PROGRAM_ID as Na}from"@solana/spl-token";import{ComputeBudgetProgram as dn,Keypair as fn,PublicKey as ho,Transaction as yn,TransactionMessage as Io,VersionedTransaction as bn}from"@solana/web3.js";import{get as ln,set as ko}from"lodash";var xt=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(r=>typeof r=="object"?JSON.stringify(r):r).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 E(o){let t=ln(mn,o);if(!t){let n=ln(To,o);t=new xt({name:o,logLevel:n}),ko(mn,o,t)}return t}var Q={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 Bo}from"@solana/spl-token";var pn=E("Raydium_txUtil"),gn=1644;function rt(o){let t=[],n=[];return o.microLamports&&(t.push(dn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Q.SetComputeUnitPrice)),o.units&&(t.push(dn.setComputeUnitLimit({units:o.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ke(o,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:u.blockhash}async function at(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);o.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Kt(o,t){o.length<1&&pn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&pn.logWithError(`no signers provided:, ${t.toString()}`);let n=new yn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<gn}catch{return!1}}function ie(o,t){let[n,r]=ho.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Ue({instructions:o,payer:t,signers:n}){return Kt(o,[t,...n])}function Ge({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=fn.generate().publicKey.toString()}){let m=new Io({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new bn(m).serialize()).toString("base64").length<gn}catch{return!1}}var So=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 bn&&(t=So(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Pe(o){let t=[];return o.forEach(n=>{n instanceof yn&&(n.recentBlockhash||(n.recentBlockhash=Bo.toBase58()),n.feePayer||(n.feePayer=fn.generate().publicKey)),t.push(xo(n))}),console.log("simulate tx string:",t),t}import{TOKEN_PROGRAM_ID as hR}from"@solana/spl-token";import{PublicKey as xR}from"@solana/web3.js";import Ca from"big.js";import tR from"bn.js";import Be from"bn.js";import FC from"decimal.js";import{PublicKey as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pn}from"@solana/spl-token";var st={chainId:101,address:Ko.default.toBase58(),programId:Pn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Pn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Lt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as An,SYSVAR_RENT_PUBKEY as Co}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ro}from"@solana/spl-token";function Ce({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Lo=[Ce({pubkey:Ro,isWritable:!1}),Ce({pubkey:An.programId,isWritable:!1}),Ce({pubkey:Co,isWritable:!1})];function Ct({publicKey:o,transformSol:t}){let n=wn(o.toString());if(n instanceof z)return t&&n.equals(Ae)?me:n;if(t&&n.toString()===Ae.toBase58())return me;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function wn(o){try{return new z(o)}catch{return o}}var Rt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Re=new z("SysvarRent111111111111111111111111111111111"),Oo=new z("SysvarC1ock11111111111111111111111111111111"),ut=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),No=new z("Sysvar1nstructions1111111111111111111111111"),kn=An.programId,ts=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ns=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),os=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),is=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),rs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),as=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ss=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),us=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),cs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ls=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ms=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new z("So11111111111111111111111111111111111111112"),Ae=z.default;function we(o){return Ct({publicKey:o,transformSol:!0})}var Ot=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:f=!1}){if(t===Ae.toBase58()||t instanceof Lt&&Ae.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Lt(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Lt.default:Ct({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ot;J.WSOL=new Ot(_(C({},le),{mint:le.address}));var Nt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ct=Nt;ct.SOL=new Nt(st);import mt from"big.js";import Vo from"bn.js";import _o from"decimal.js-light";import ze from"bn.js";var Tn=9007199254740991;function ne(o){let t=E("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>=Tn||o<=-Tn)&&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))}import Mo from"toformat";var Fo=Mo,Ye=Fo;var lt=E("module/fraction"),Mt=Ye(mt),Xe=Ye(_o),Eo={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},Do={[0]:mt.roundDown,[1]:mt.roundHalfUp,[2]:mt.roundUp},U=class{constructor(t,n=new Vo(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||lt.logWithError(`${t} is not an integer.`),t<=0&<.logWithError(`${t} is not positive.`),Xe.set({precision:t+1,rounding:Eo[r]});let u=new Xe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||lt.logWithError(`${t} is not an integer.`),t<0&<.logWithError(`${t} is negative.`),Mt.DP=t,Mt.RM=Do[r]||1,new Mt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Wo from"bn.js";var vs=new U(new Wo(100));var qs=E("Raydium_price");import{merge as vK}from"lodash";import hc from"axios";import{PublicKey as qo}from"@solana/web3.js";import{MINT_SIZE as $s,TOKEN_PROGRAM_ID as Js,getTransferFeeConfig as eu,unpackMint as tu}from"@solana/spl-token";var Ft=E("Raydium_accountInfo_util");async function ye(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=C({batchRequest:!1},n),f=vt(t,m),p=new Array(f.length).fill([]);if(r){let g=f.map(R=>{let K=o._buildArgs([R.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:K}}),S=vt(g,10);p=(await(await Promise.all(S.map(async R=>await o._rpcBatchRequest(R)))).flat()).map(R=>(R.error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${R.error.message}`),R.result.value.map(K=>{if(K){let{data:B,executable:N,lamports:A,owner:w,rentEpoch:I}=K;return B.length!==2&&B[1]!=="base64"&&Ft.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:N,lamports:A,owner:new qo(w),rentEpoch:I}}return null})))}else try{p=await Promise.all(f.map(g=>o.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return p.flat()}function vt(o,t=1,n=[]){let r=[...o];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{PublicKey as su}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as cu}from"@solana/spl-token";import{PublicKey as P}from"@solana/web3.js";var hn=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),In=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Bn=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Vt=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),pu=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Uo=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Sn=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),xn=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),fu=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Go=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Kn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),zo=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Yo=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Cn=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),yu=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Xo=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Qo=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Zo=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ho=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),jo=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),_t=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),$o=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),bu=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Jo=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ei=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ti=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),gu=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Pu=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Au=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),wu=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ku=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Qe={IDO_PROGRAM_ID_V1:Qo,IDO_PROGRAM_ID_V2:Zo,IDO_PROGRAM_ID_V3:Ho,IDO_PROGRAM_ID_V4:jo};var be={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 Iu from"bn.js";import{PublicKey as Et,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Dt({connection:o,address:t,cluster:n="mainnet"}){let r=await ye(o,[...new Set(t.map(m=>m.toString()))].map(m=>new Et(m))),u={};for(let m=0;m<t.length;m++){let f=r[m],p=t[m];if(!f)continue;let g=new Ne({key:p,state:Ne.deserialize(f.data)});u[p.toString()]=g,n==="devnet"?Oe[p.toString()]=g:Le[p.toString()]=g}return u}var Le={},Wt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[t])return Le;let n=new Et(t),r=await o.getAccountInfo(n);return r&&(Le[t]=new Ne({key:n,state:Ne.deserialize(r.data)})),Le},Oe={},qt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[t])return Oe;let n=new Et(t),r=await o.getAccountInfo(n);return r&&(Oe[t]=new Ne({key:n,state:Ne.deserialize(r.data)})),Oe};import{PublicKey as Me,sendAndConfirmTransaction as Ut,SystemProgram as ni,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import oi from"axios";var dt=2e3,pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await oi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=rt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ni.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Me(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:f=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...f.filter(p=>p!==Me.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(_(C({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ze;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.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:f=!0,sendAndConfirm:p,notSendToRpc:g}=u||{},S=m!=null?m:await Ke(this.connection,this.blockhashCommitment);if(n.recentBlockhash=S,this.signers.length&&n.sign(...this.signers),Pe([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Ut(this.connection,n,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:f}),signedTx:n};if(this.signAllTransactions){let R=await this.signAllTransactions([n]);if(this.signers.length)for(let K of R)try{K.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(R[0].serialize(),{skipPreflight:f}),signedTx:R[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var S;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(b=>b.transaction.instructions.length>0),f=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&p.forEach(b=>{b.some(R=>R.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:f,signers:p,instructionTypes:g,execute:async b=>{var I;let{sequentially:R,onTxUpdate:K,skipTxCount:B=0,recentBlockHash:N,skipPreflight:A=!0}=b||{},w=N!=null?N:await Ke(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(R){let h=[],F=0;for(let v of f){if(++F,F<=B)continue;let y=await Ut(this.connection,v,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});h.push(y)}return{txIds:h,signedTxs:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=w,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:f}}if(this.signAllTransactions){let h=f.map((v,y)=>(v.recentBlockhash=w,p[y].length&&v.sign(...p[y]),v));Pe(h);let F=await this.signAllTransactions(h);if(R){let v=0,y=[],k=async()=>{if(!F[v])return;let T=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});y.push({txId:T,status:"sent",signedTx:F[v]}),K==null||K([...y]),v++;let x=!1,L=null,V=null,re=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=y.findIndex(j=>j.txId===T);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=q.err?"error":"success"}K==null||K([...y]),q.err||k()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(x){clearInterval(L);return}try{let W=await this.connection.getTransaction(T,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",T))}catch(W){x=!0,clearInterval(L),console.error("getTransaction timeout:",W,T)}},dt)),V=this.connection.onSignature(T,q=>{if(x){this.connection.removeSignatureListener(V);return}x=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(T)};return await k(),{txIds:y.map(T=>T.txId),signedTxs:F}}else{let v=[];for(let y=0;y<F.length;y+=1){let k=await this.connection.sendRawTransaction(F[y].serialize(),{skipPreflight:A});v.push(k)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var A;let N=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=N,f=se(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=C(C({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),S=[];for(let w of g)p[w]===void 0&&S.push(new Me(w));let b=await Dt({connection:this.connection,address:S});for(let[w,I]of Object.entries(b))p[w]=I;let R=u?Me.default.toBase58():m!=null?m:await Ke(this.connection,this.blockhashCommitment),K=new He({payerKey:this.feePayer,recentBlockhash:R,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(w=>w.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new je(K);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async w=>{var v;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:F}=w||{};if(Pe([B]),(v=this.owner)!=null&&v.isKeyPair){let y=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await at(this.connection,y),{txId:y,signedTx:B}}if(this.signAllTransactions){let y=await this.signAllTransactions([B]);if(this.signers.length)for(let k of y)try{k.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}async buildV0MultiTx(t){var S;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(b=>b.builder.instructions.length>0),f=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&p.forEach(b=>{b.some(R=>R.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,R)=>{b.sign(p[R])}),{builder:this,transactions:f,signers:p,instructionTypes:g,buildProps:r,execute:async b=>{var A;let{sequentially:R,onTxUpdate:K,recentBlockHash:B,skipPreflight:N=!0}=b||{};if(B&&f.forEach(w=>w.message.recentBlockhash=B),Pe(f),(A=this.owner)!=null&&A.isKeyPair){if(R){let w=[];for(let I of f){let h=await this.connection.sendTransaction(I,{skipPreflight:N});await at(this.connection,h),w.push(h)}return{txIds:w,signedTxs:f}}return{txIds:await Promise.all(f.map(async w=>await this.connection.sendTransaction(w,{skipPreflight:N}))),signedTxs:f}}if(this.signAllTransactions){let w=await this.signAllTransactions(f);if(R){let I=0,h=[],F=async()=>{if(!w[I])return;let v=await this.connection.sendTransaction(w[I],{skipPreflight:N});h.push({txId:v,status:"sent",signedTx:w[I]}),K==null||K([...h]),I++;let y=!1,k=null,T=null,x=L=>{k!==null&&clearInterval(k),T!==null&&this.connection.removeSignatureListener(T);let V=h.findIndex(re=>re.txId===v);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=L.err?"error":"success"}K==null||K([...h]),L.err||F()};this.loopMultiTxStatus&&(k=setInterval(async()=>{var L;if(y){clearInterval(k);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(y=!0,clearInterval(k),x({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){y=!0,clearInterval(k),console.error("getTransaction timeout:",V,v)}},dt)),T=this.connection.onSignature(v,L=>{if(y){this.connection.removeSignatureListener(T);return}y=!0,x(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:w}}else{let I=[];for(let h=0;h<w.length;h+=1){let F=await this.connection.sendTransaction(w[h],{skipPreflight:N});I.push(F)}return{txIds:I,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var K;let R=t||{},{splitIns:n=[],computeBudgetConfig:r}=R,u=se(R,["splitIns","computeBudgetConfig"]),m=r?rt(r):{instructions:[],instructionTypes:[]},f=this.signers.reduce((B,N)=>_(C({},B),{[N.publicKey.toBase58()]:N}),{}),p=[],g=[],S=[],b=0;if(this.allInstructions.forEach(B=>{let N=[...S,B],A=r?[...m.instructions,...N]:N,I=[...new Set(N.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Me(h));if(B!==n[b]&&S.length<12&&(Ue({instructions:A,payer:this.feePayer,signers:I})||Ue({instructions:N,payer:this.feePayer,signers:I})))S.push(B);else{if(S.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,Ue({instructions:r?[...m.instructions,...S]:[...S],payer:this.feePayer,signers:I})?p.push(new Ze().add(...m.instructions,...S)):p.push(new Ze().add(...S)),g.push(Array.from(new Set(S.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>f[h]).filter(h=>h!==void 0)),S=[B]}}),S.length>0){let N=[...new Set(S.map(A=>A.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat()).values()].map(A=>f[A]).filter(A=>A!==void 0);Ue({instructions:r?[...m.instructions,...S]:[...S],payer:this.feePayer,signers:N.map(A=>A.publicKey)})?p.push(new Ze().add(...m.instructions,...S)):p.push(new Ze().add(...S)),g.push(N)}return p.forEach(B=>B.feePayer=this.feePayer),(K=this.owner)!=null&&K.signer&&g.forEach(B=>{B.some(N=>N.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:p,signers:g,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:N,onTxUpdate:A,skipTxCount:w=0,recentBlockHash:I,skipPreflight:h=!0}=B||{},F=I!=null?I:await Ke(this.connection,this.blockhashCommitment);if(p.forEach(async(y,k)=>{y.recentBlockhash=F,g[k].length&&y.sign(...g[k])}),Pe(p),(v=this.owner)!=null&&v.isKeyPair){if(N){let y=0,k=[];for(let T of p){if(++y,y<=w){k.push("tx skipped");continue}let x=await Ut(this.connection,T,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});k.push(x)}return{txIds:k,signedTxs:p}}return{txIds:await Promise.all(p.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let y=await this.signAllTransactions(p.slice(w,p.length)),k=[...p.slice(0,w),...y];if(N){let T=0,x=[],L=async()=>{if(!k[T])return;T<w&&(x.push({txId:"",status:"success",signedTx:k[T]}),A==null||A([...x]),T++,L());let V=await this.connection.sendRawTransaction(k[T].serialize(),{skipPreflight:h});x.push({txId:V,status:"sent",signedTx:k[T]}),A==null||A([...x]),T++;let re=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(pe=>pe.txId===V);if(te>-1){if(x[te].status==="error"||x[te].status==="success")return;x[te].status=G.err?"error":"success"}A==null||A([...x]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(re=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){re=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},dt)),W=this.connection.onSignature(V,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:x.map(V=>V.txId),signedTxs:k}}else{let T=[];for(let x=0;x<k.length;x+=1){let L=await this.connection.sendRawTransaction(k[x].serialize(),{skipPreflight:h});T.push(L)}return{txIds:T,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:f=12}=F,p=se(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=C(C({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),u),S=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of S)g[y]===void 0&&b.push(new Me(y));let R=await Dt({connection:this.connection,address:b});for(let[y,k]of Object.entries(R))g[y]=k;let K=n?rt(n):{instructions:[],instructionTypes:[]},B=await Ke(this.connection,this.blockhashCommitment),N=this.signers.reduce((y,k)=>_(C({},y),{[k.publicKey.toBase58()]:k}),{}),A=[],w=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let k=[...I,y],T=n?[...K.instructions,...k]:k;if(y!==r[h]&&I.length<f&&(Ge({instructions:T,payer:this.feePayer,lookupTableAddressAccount:g})||Ge({instructions:k,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(y);else{if(I.length===0)throw Error("item ins too big");h+=y===r[h]?1:0;let x={};for(let L of[...new Set(S)])g[L]!==void 0&&(x[L]=g[L]);if(n&&Ge({instructions:[...K.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let L=new He({payerKey:this.feePayer,recentBlockhash:B,instructions:[...K.instructions,...I]}).compileToV0Message(Object.values(g));A.push(new je(L))}else{let L=new He({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));A.push(new je(L))}w.push(Array.from(new Set(I.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>N[L]).filter(L=>L!==void 0)),I=[y]}}),I.length>0){let k=[...new Set(I.map(T=>T.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(T=>N[T]).filter(T=>T!==void 0);if(n&&Ge({instructions:[...K.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let T=new He({payerKey:this.feePayer,recentBlockhash:B,instructions:[...K.instructions,...I]}).compileToV0Message(Object.values(g));A.push(new je(T))}else{let T=new He({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));A.push(new je(T))}w.push(k)}return(v=this.owner)!=null&&v.signer&&w.forEach(y=>{y.some(k=>k.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),A.forEach((y,k)=>{y.sign(w[k])}),{builder:this,transactions:A,buildProps:t,signers:w,instructionTypes:this.instructionTypes,execute:async y=>{var re;let{sequentially:k,onTxUpdate:T,skipTxCount:x=0,recentBlockHash:L,skipPreflight:V=!0}=y||{};if(A.map(async(q,W)=>{w[W].length&&q.sign(w[W]),L&&(q.message.recentBlockhash=L)}),Pe(A),(re=this.owner)!=null&&re.isKeyPair){if(k){let q=0,W=[];for(let j of A){if(++q,q<=x){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await at(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(x,A.length)),W=[...A.slice(0,x),...q];if(k){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<x){G.push({txId:"",status:"success",signedTx:W[j]}),T==null||T([...G]),j++,te();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[j]}),T==null||T([...G]),j++;let qe=!1,xe=null,ot=null,an=ge=>{xe!==null&&clearInterval(xe),ot!==null&&this.connection.removeSignatureListener(ot);let fe=G.findIndex(go=>go.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=ge.err?"error":"success"}T==null||T([...G]),ge.err||te()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var ge;if(qe){clearInterval(xe);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(qe=!0,clearInterval(xe),an({err:((ge=fe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){qe=!0,clearInterval(xe),console.error("getTransaction timeout:",fe,pe)}},dt)),ot=this.connection.onSignature(pe,ge=>{if(qe){this.connection.removeSignatureListener(ot);return}qe=!0,an(ge)},"confirmed"),this.connection.getSignatureStatus(pe)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};import{PublicKey as Uu}from"@solana/web3.js";import zu from"bn.js";import ii from"bn.js";var yt=new ii(1e6);var Rn={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"},ri=_(C({},Rn),{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 Yc=E("Raydium_Api");import{PublicKey as Fm,SystemProgram as vm}from"@solana/web3.js";import{AccountLayout as Wm,createAssociatedTokenAccountIdempotentInstruction as qm,TOKEN_PROGRAM_ID as Um,TOKEN_2022_PROGRAM_ID as Gm}from"@solana/spl-token";var Gt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Gt(t))}logInfo(...t){this.logger.info(Gt(t))}logAndCreateError(...t){let n=Gt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as dm,SystemProgram as fm}from"@solana/web3.js";import gm from"bn.js";import{createCloseAccountInstruction as km,createInitializeAccountInstruction as Tm,createTransferInstruction as hm,TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";import{Keypair as Jl,PublicKey as em}from"@solana/web3.js";import om from"bn.js";import{TOKEN_PROGRAM_ID as am}from"@solana/spl-token";import{PublicKey as Pi}from"@solana/web3.js";import vn,{isBN as Vn}from"bn.js";import{bits as ai,BitStructure as rl,blob as si,Blob as al,cstr as sl,f32 as ul,f32be as cl,f64 as ll,f64be as ml,greedy as dl,Layout as ui,ns64 as pl,ns64be as fl,nu64 as ci,nu64be as yl,offset as li,s16 as bl,s16be as gl,s24 as Pl,s24be as Al,s32 as mi,s32be as wl,s40 as kl,s40be as Tl,s48 as hl,s48be as Il,s8 as Bl,seq as di,struct as Sl,Structure as pi,u16 as fi,u16be as xl,u24 as Kl,u24be as Cl,u32 as yi,u32be as Rl,u40 as Ll,u40be as Ol,u48 as Nl,u48be as Ml,u8 as bi,UInt as gi,union as Fl,Union as vl,unionLayoutDiscriminator as Vl,utf8 as _l}from"@solana/buffer-layout";var bt=ui,Ln=pi;var zt=gi;var On=bi,Z=fi;var gt=yi;var Nn=ci;var ue=mi;var Mn=di;var M=si;var Yt=ai,Fn=li;var Te=class extends bt{constructor(n,r,u){super(n,u);this.blob=M(n),this.signed=r}decode(n,r=0){let u=new vn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new vn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},Pt=class extends bt{constructor(n){super(8,n);this._lower=Yt(gt(),!1),this._upper=Yt(gt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return C(C({},u),m)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(o){return new zt(1,o)}function Y(o){return new zt(4,o)}function e(o){return new Te(8,!1,o)}function O(o){return new Te(16,!1,o)}function _n(o){return new Te(1,!0,o)}function ve(o){return new Te(8,!0,o)}function En(o){return new Te(16,!0,o)}var Je=class extends bt{constructor(n,r,u,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new Je(M(32),t=>new Pi(t),t=>t.toBuffer(),o)}function ae(o){return new Je(On(),Ai,wi,o)}function Ai(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function wi(o){return o?1:0}function Dn(o,t){let n=gt("length"),r=l([n,d(o,Fn(n,-n.span),"values")]);return new Je(r,({values:u})=>u,u=>({values:u}),t)}var Xt=class extends Ln{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Xt(o,t,n)}function d(o,t,n){let r,u=typeof t=="number"?t:Vn(t)?t.toNumber():new Proxy(t,{get(m,f){if(!r){let p=Reflect.get(m,"count");r=Vn(p)?p.toNumber():p,Reflect.set(m,"count",r)}return Reflect.get(m,f)},set(m,f,p){return f==="count"&&(r=p),Reflect.set(m,f,p)}});return Mn(o,u,n)}var At=l([i("mint"),i("owner"),e("amount"),Y("delegateOption"),i("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as _g,SystemProgram as Eg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Wg}from"@solana/spl-token";import jg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as hy,TOKEN_2022_PROGRAM_ID as Iy,TOKEN_PROGRAM_ID as By}from"@solana/spl-token";import{PublicKey as xy}from"@solana/web3.js";import Cy from"bn.js";import Ly from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as zf,TOKEN_2022_PROGRAM_ID as Yf,TOKEN_PROGRAM_ID as Xf}from"@solana/spl-token";import{Keypair as Hf,PublicKey as jf,SystemProgram as Jf,TransactionInstruction as ey}from"@solana/web3.js";import ny from"bn.js";import D from"bn.js";var he=new D(1).shln(64);var Ti=new D(1).shln(128),Qt=new D(1).shln(64).subn(1),hi=new D(1).shln(128).subn(1);var Ve=new D("4295048016"),_e=new D("79226673521066979257578248091"),Ii=new D("59543866431248"),Bi=new D("184467440737095516"),Si=new D("15793534762490258745");var Zt=60,nd=new D("18446743708227953217"),xi=[{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 et=3,qn=100;var Un=10,Gn=100,kt=14;var H=new D(0),Ee=new D(1),od=new D(-1);var id=new D("18446744073700000000");var Ki=l([M(8),c("bump"),Z("index"),i("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Z("tickSpacing"),Y("fundFeeRate"),d(Y(),1),i("fundOwner"),d(e(),3)]),Ci=l([Y("blockTimestamp"),ve("tickCumulative"),d(e(),4)]),zn=l([M(8),ae("initialized"),e("recentEpoch"),Z("observationIndex"),i("poolId"),d(Ci,qn,"observations"),d(e(),4)]),Ri=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Li=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),Ht=l([M(8),c("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Z("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),Y(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),M(6),d(Li,et,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ri.replicate("dynamicFeeInfo"),d(e(),46)]),Oi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Ni=l([M(8),c("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Oi,et,"rewardInfos"),e("recentEpoch"),d(e(),7)]),ud=l([M(8),c("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),et,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Mi=l([ue("tick"),En("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),et,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(Y(),3)]),Yn=l([M(8),i("poolId"),ue("startTickIndex"),d(Mi,Zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Fi=l([M(8),c("bump"),d(i(),Un,"operationOwners"),d(i(),Gn,"whitelistMints")]),vi=l([M(8),i("poolId"),i("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),Xn=l([M(8),i("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),cd=l([M(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),d(e(),8)]),Vi=l([M(8),i("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),ld=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),d(e(),8)]),_i=l([M(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),d(e(),8)]);import pd from"bn.js";var Id=Buffer.from("amm_config","utf8"),Ei=Buffer.from("pool","utf8"),Di=Buffer.from("pool_vault","utf8"),Bd=Buffer.from("pool_reward_vault","utf8"),Sd=Buffer.from("position","utf8"),xd=Buffer.from("tick_array","utf8"),Kd=Buffer.from("operation","utf8"),Cd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Rd=Buffer.from("observation","utf8"),Ld=Buffer.from("support_mint","utf8"),Od=Buffer.from("dynamic_fee_config","utf8");var Nd=Buffer.from("locked_position","utf8");import{sha256 as nr}from"js-sha256";import Wi from"bn.js";import Vd from"decimal.js";var Ed=new Wi(1).shln(256).subn(1);import op from"bn.js";import Yd from"bn.js";import Qd from"decimal.js";import mp from"bn.js";import pp from"decimal.js";import{PublicKey as Zp}from"@solana/web3.js";import jp from"bn.js";import{TOKEN_2022_PROGRAM_ID as af}from"@solana/spl-token";import lf from"decimal.js";import _p from"bn.js";import Bp from"bn.js";import Af from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(nr.digest(t)).slice(0,8)}zn.span;var ly=E("Raydium_Clmm"),my={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_ord