UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 75.4 kB
var fo=Object.defineProperty,yo=Object.defineProperties;var bo=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var rn=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable;var on=(o,t,n)=>t in o?fo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,x=(o,t)=>{for(var n in t||(t={}))rn.call(t,n)&&on(o,n,t[n]);if(ot)for(var n of ot(t))an.call(t,n)&&on(o,n,t[n]);return o},F=(o,t)=>yo(o,bo(t));var ae=(o,t)=>{var n={};for(var r in o)rn.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&ot)for(var r of ot(o))t.indexOf(r)<0&&an.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sn}from"@solana/spl-token";var Se={chainId:101,address:go.default.toBase58(),programId:sn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},se={chainId:101,address:"So11111111111111111111111111111111111111112",programId:sn.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 Co}from"@solana/web3.js";import dn,{isBN as pn}from"bn.js";import{bits as Po,BitStructure as ha,blob as Ao,Blob as Ia,cstr as Ba,f32 as Sa,f32be as xa,f64 as Ka,f64be as Ca,greedy as Ra,Layout as wo,ns64 as La,ns64be as Oa,nu64 as Na,nu64be as Ma,offset as ko,s16 as Fa,s16be as va,s24 as Va,s24be as _a,s32 as To,s32be as Ea,s40 as Da,s40be as Wa,s48 as qa,s48be as Ua,s8 as Ga,seq as ho,struct as za,Structure as Io,u16 as Bo,u16be as Xa,u24 as Ya,u24be as Qa,u32 as So,u32be as Za,u40 as Ha,u40be as ja,u48 as $a,u48be as Ja,u8 as xo,UInt as Ko,union as es,Union as ts,unionLayoutDiscriminator as ns,utf8 as os}from"@solana/buffer-layout";var it=wo,un=Io;var It=Ko;var cn=xo,Q=Bo;var rt=So;var ce=To;var ln=ho;var N=Ao;var Bt=Po,mn=ko;var we=class extends it{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new dn(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 dn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},at=class extends it{constructor(n){super(8,n);this._lower=Bt(rt(),!1),this._upper=Bt(rt(),!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 x(x({},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 It(1,o)}function z(o){return new It(4,o)}function e(o){return new we(8,!1,o)}function O(o){return new we(16,!1,o)}function fn(o){return new we(1,!0,o)}function xe(o){return new we(8,!0,o)}function yn(o){return new we(16,!0,o)}var We=class extends it{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 We(N(32),t=>new Co(t),t=>t.toBuffer(),o)}function ue(o){return new We(cn(),Ro,Lo,o)}function Ro(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Lo(o){return o?1:0}function bn(o,t){let n=rt("length"),r=l([n,d(o,mn(n,-n.span),"values")]);return new We(r,({values:u})=>u,u=>({values:u}),t)}var St=class extends un{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new St(o,t,n)}function d(o,t,n){let r,u=typeof t=="number"?t:pn(t)?t.toNumber():new Proxy(t,{get(m,f){if(!r){let p=Reflect.get(m,"count");r=pn(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 ln(o,u,n)}var xt=l([z("mintAuthorityOption"),i("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),i("freezeAuthority")]);import{TOKEN_PROGRAM_ID as ba}from"@solana/spl-token";import{PublicKey as ga}from"@solana/web3.js";import pa from"big.js";import ht from"bn.js";import Ie from"bn.js";import fC from"decimal.js";import{PublicKey as Rt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as gn,SYSVAR_RENT_PUBKEY as Oo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as No}from"@solana/spl-token";function Ke({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Mo=[Ke({pubkey:No,isWritable:!1}),Ke({pubkey:gn.programId,isWritable:!1}),Ke({pubkey:Oo,isWritable:!1})];function Kt({publicKey:o,transformSol:t}){let n=Pn(o.toString());if(n instanceof X)return t&&n.equals(ke)?ye:n;if(t&&n.toString()===ke.toBase58())return ye;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Pn(o){try{return new X(o)}catch{return o}}var Ct=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),qe=new X("SysvarRent111111111111111111111111111111111"),Ps=new X("SysvarC1ock11111111111111111111111111111111"),st=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Fo=new X("Sysvar1nstructions1111111111111111111111111"),vo=gn.programId,As=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ws=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ks=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ts=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),hs=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Is=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Bs=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ss=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),xs=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ks=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Cs=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new X("So11111111111111111111111111111111111111112"),ke=X.default;function ge(o){return Kt({publicKey:o,transformSol:!0})}var Lt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:f=!1}){if(t===ke.toBase58()||t instanceof Rt&&ke.equals(t)){this.decimals=se.decimals,this.symbol=se.symbol,this.name=se.name,this.mint=new Rt(se.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?Rt.default:Kt({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Z=Lt;Z.WSOL=new Lt(F(x({},se),{mint:se.address}));var Ot=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ut=Ot;ut.SOL=new Ot(Se);import lt from"big.js";import qo from"bn.js";import Uo from"decimal.js-light";import{get as An,set as Vo}from"lodash";var Nt=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}},wn={},_o={};function v(o){let t=An(wn,o);if(!t){let n=An(_o,o);t=new Nt({name:o,logLevel:n}),Vo(wn,o,t)}return t}import Ue from"bn.js";var kn=9007199254740991;function H(o){let t=v("Raydium_parseBigNumberish");if(o instanceof Ue)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ue(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=kn||o<=-kn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ue(String(o))):typeof o=="bigint"?new Ue(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ue(0))}import Eo from"toformat";var Do=Eo,Ge=Do;var ct=v("module/fraction"),Mt=Ge(lt),ze=Ge(Uo),Go={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},zo={[0]:lt.roundDown,[1]:lt.roundHalfUp,[2]:lt.roundUp},q=class{constructor(t,n=new qo(1)){this.numerator=H(t),this.denominator=H(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(t){let n=t instanceof q?t:new q(H(t));return this.denominator.eq(n.denominator)?new q(this.numerator.add(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof q?t:new q(H(t));return this.denominator.eq(n.denominator)?new q(this.numerator.sub(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof q?t:new q(H(t));return new q(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof q?t:new q(H(t));return new q(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||ct.logWithError(`${t} is not an integer.`),t<=0&&ct.logWithError(`${t} is not positive.`),ze.set({precision:t+1,rounding:Go[r]});let u=new ze(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)||ct.logWithError(`${t} is not an integer.`),t<0&&ct.logWithError(`${t} is negative.`),Mt.DP=t,Mt.RM=zo[r]||1,new Mt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Xo from"bn.js";var nu=new q(new Xo(100));var uu=v("Raydium_price");import{merge as gK}from"lodash";import el from"axios";import{PublicKey as Yo}from"@solana/web3.js";import{MINT_SIZE as Pu,TOKEN_PROGRAM_ID as Au,getTransferFeeConfig as wu,unpackMint as ku}from"@solana/spl-token";var Ft=v("Raydium_accountInfo_util");async function be(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=x({batchRequest:!1},n),f=vt(t,m),p=new Array(f.length).fill([]);if(r){let g=f.map(C=>{let R=o._buildArgs([C.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),B=vt(g,10);p=(await(await Promise.all(B.map(async C=>await o._rpcBatchRequest(C)))).flat()).map(C=>(C.error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${C.error.message}`),C.result.value.map(R=>{if(R){let{data:S,executable:M,lamports:P,owner:T,rentEpoch:I}=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:P,owner:new Yo(T),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 _u}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Du}from"@solana/spl-token";import{ComputeBudgetProgram as Tn,Keypair as In,PublicKey as Qo,Transaction as Bn,TransactionMessage as Zo,VersionedTransaction as Sn}from"@solana/web3.js";var j={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as Ho}from"@solana/spl-token";var hn=v("Raydium_txUtil"),xn=1644;function mt(o){let t=[],n=[];return o.microLamports&&(t.push(Tn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(j.SetComputeUnitPrice)),o.units&&(t.push(Tn.setComputeUnitLimit({units:o.units})),n.push(j.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ce(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 dt(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 Vt(o,t){o.length<1&&hn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&hn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Bn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<xn}catch{return!1}}function me(o,t){let[n,r]=Qo.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Xe({instructions:o,payer:t,signers:n}){return Vt(o,[t,...n])}function Ye({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=In.generate().publicKey.toString()}){let m=new Zo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Sn(m).serialize()).toString("base64").length<xn}catch{return!1}}var jo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),$o=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Sn&&(t=jo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Te(o){let t=[];return o.forEach(n=>{n instanceof Bn&&(n.recentBlockhash||(n.recentBlockhash=Ho.toBase58()),n.feePayer||(n.feePayer=In.generate().publicKey)),t.push($o(n))}),console.log("simulate tx string:",t),t}import{PublicKey as k}from"@solana/web3.js";var Kn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Cn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Rn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),_t=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Gu=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Jo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ln=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),On=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),zu=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ei=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Nn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ti=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Mn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xu=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),oi=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Et=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ii=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Yu=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ri=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ai=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),si=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Qu=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Zu=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Hu=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ju=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),$u=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import tc from"bn.js";import{PublicKey as Dt,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Wt({connection:o,address:t,cluster:n="mainnet"}){let r=await be(o,[...new Set(t.map(m=>m.toString()))].map(m=>new Dt(m))),u={};for(let m=0;m<t.length;m++){let f=r[m],p=t[m];if(!f)continue;let g=new Oe({key:p,state:Oe.deserialize(f.data)});u[p.toString()]=g,n==="devnet"?Le[p.toString()]=g:Re[p.toString()]=g}return u}var Re={},qt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[t])return Re;let n=new Dt(t),r=await o.getAccountInfo(n);return r&&(Re[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Re},Le={},Ut=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[t])return Le;let n=new Dt(t),r=await o.getAccountInfo(n);return r&&(Le[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Le};import{PublicKey as Ne,sendAndConfirmTransaction as Gt,SystemProgram as ui,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import ci from"axios";var pt=2e3,ft=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await ci.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}=mt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ui.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ne(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(j.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!==Ne.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(F(x({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Qe;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||{},B=m!=null?m:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=B,this.signers.length&&n.sign(...this.signers),Te([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Gt(this.connection,n,this.signers.find(R=>R.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 C=await this.signAllTransactions([n]);if(this.signers.length)for(let R of C)try{R.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(C[0].serialize(),{skipPreflight:f}),signedTx:C[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var B;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(B=this.owner)!=null&&B.signer&&p.forEach(b=>{b.some(C=>C.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:C,onTxUpdate:R,skipTxCount:S=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await Ce(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(C){let h=[],V=0;for(let _ of f){if(++V,V<=S)continue;let y=await Gt(this.connection,_,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(y)}return{txIds:h,signedTxs:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:f}}if(this.signAllTransactions){let h=f.map((_,y)=>(_.recentBlockhash=T,p[y].length&&_.sign(...p[y]),_));Te(h);let V=await this.signAllTransactions(h);if(C){let _=0,y=[],A=async()=>{if(!V[_])return;let w=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:P});y.push({txId:w,status:"sent",signedTx:V[_]}),R==null||R([...y]),_++;let K=!1,L=null,E=null,ie=U=>{L!==null&&clearInterval(L),E!==null&&this.connection.removeSignatureListener(E);let W=y.findIndex(J=>J.txId===w);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=U.err?"error":"success"}R==null||R([...y]),U.err||A()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(K){clearInterval(L);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(K=!0,clearInterval(L),ie({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){K=!0,clearInterval(L),console.error("getTransaction timeout:",W,w)}},pt)),E=this.connection.onSignature(w,U=>{if(K){this.connection.removeSignatureListener(E);return}K=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:y.map(w=>w.txId),signedTxs:V}}else{let _=[];for(let y=0;y<V.length;y+=1){let A=await this.connection.sendRawTransaction(V[y].serialize(),{skipPreflight:P});_.push(A)}return{txIds:_,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo: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 P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=M,f=ae(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=x(x({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),B=[];for(let T of g)p[T]===void 0&&B.push(new Ne(T));let b=await Wt({connection:this.connection,address:B});for(let[T,I]of Object.entries(b))p[T]=I;let C=u?Ne.default.toBase58():m!=null?m:await Ce(this.connection,this.blockhashCommitment),R=new Ze({payerKey:this.feePayer,recentBlockhash:C,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new He(R);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var _;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:V}=T||{};if(Te([S]),(_=this.owner)!=null&&_.isKeyPair){let y=await this.connection.sendTransaction(S,{skipPreflight:I});return h&&await dt(this.connection,y),{txId:y,signedTx:S}}if(this.signAllTransactions){let y=await this.signAllTransactions([S]);if(this.signers.length)for(let A of y)try{A.sign(this.signers)}catch{}return{txId:V?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}async buildV0MultiTx(t){var B;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(B=this.owner)!=null&&B.signer&&p.forEach(b=>{b.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,C)=>{b.sign(p[C])}),{builder:this,transactions:f,signers:p,instructionTypes:g,buildProps:r,execute:async b=>{var P;let{sequentially:C,onTxUpdate:R,recentBlockHash:S,skipPreflight:M=!0}=b||{};if(S&&f.forEach(T=>T.message.recentBlockhash=S),Te(f),(P=this.owner)!=null&&P.isKeyPair){if(C){let T=[];for(let I of f){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await dt(this.connection,h),T.push(h)}return{txIds:T,signedTxs:f}}return{txIds:await Promise.all(f.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:f}}if(this.signAllTransactions){let T=await this.signAllTransactions(f);if(C){let I=0,h=[],V=async()=>{if(!T[I])return;let _=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:_,status:"sent",signedTx:T[I]}),R==null||R([...h]),I++;let y=!1,A=null,w=null,K=L=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let E=h.findIndex(ie=>ie.txId===_);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=L.err?"error":"success"}R==null||R([...h]),L.err||V()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var L;if(y){clearInterval(A);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(y=!0,clearInterval(A),K({err:((L=E.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){y=!0,clearInterval(A),console.error("getTransaction timeout:",E,_)}},pt)),w=this.connection.onSignature(_,L=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,K(L)},"confirmed"),this.connection.getSignatureStatus(_)};return V(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let V=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(V)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var R;let C=t||{},{splitIns:n=[],computeBudgetConfig:r}=C,u=ae(C,["splitIns","computeBudgetConfig"]),m=r?mt(r):{instructions:[],instructionTypes:[]},f=this.signers.reduce((S,M)=>F(x({},S),{[M.publicKey.toBase58()]:M}),{}),p=[],g=[],B=[],b=0;if(this.allInstructions.forEach(S=>{let M=[...B,S],P=r?[...m.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(h=>new Ne(h));if(S!==n[b]&&B.length<12&&(Xe({instructions:P,payer:this.feePayer,signers:I})||Xe({instructions:M,payer:this.feePayer,signers:I})))B.push(S);else{if(B.length===0)throw Error("item ins too big");b+=S===n[b]?1:0,Xe({instructions:r?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:I})?p.push(new Qe().add(...m.instructions,...B)):p.push(new Qe().add(...B)),g.push(Array.from(new Set(B.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(h=>f[h]).filter(h=>h!==void 0)),B=[S]}}),B.length>0){let M=[...new Set(B.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>f[P]).filter(P=>P!==void 0);Xe({instructions:r?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?p.push(new Qe().add(...m.instructions,...B)):p.push(new Qe().add(...B)),g.push(M)}return p.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:p,signers:g,instructionTypes:this.instructionTypes,execute:async S=>{var _;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},V=I!=null?I:await Ce(this.connection,this.blockhashCommitment);if(p.forEach(async(y,A)=>{y.recentBlockhash=V,g[A].length&&y.sign(...g[A])}),Te(p),(_=this.owner)!=null&&_.isKeyPair){if(M){let y=0,A=[];for(let w of p){if(++y,y<=T){A.push("tx skipped");continue}let K=await Gt(this.connection,w,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(K)}return{txIds:A,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(T,p.length)),A=[...p.slice(0,T),...y];if(M){let w=0,K=[],L=async()=>{if(!A[w])return;w<T&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,L());let E=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});K.push({txId:E,status:"sent",signedTx:A[w]}),P==null||P([...K]),w++;let ie=!1,U=null,W=null,J=G=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=K.findIndex(pe=>pe.txId===E);if(ne>-1){if(K[ne].status==="error"||K[ne].status==="success")return;K[ne].status=G.err?"error":"success"}P==null||P([...K]),G.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(E,{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:",E))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,E)}},pt)),W=this.connection.onSignature(E,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await L(),{txIds:K.map(E=>E.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let L=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:h});w.push(L)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let V=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:f=12}=V,p=ae(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=x(x({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of B)g[y]===void 0&&b.push(new Ne(y));let C=await Wt({connection:this.connection,address:b});for(let[y,A]of Object.entries(C))g[y]=A;let R=n?mt(n):{instructions:[],instructionTypes:[]},S=await Ce(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,A)=>F(x({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let A=[...I,y],w=n?[...R.instructions,...A]:A;if(y!==r[h]&&I.length<f&&(Ye({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Ye({instructions:A,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 K={};for(let L of[...new Set(B)])g[L]!==void 0&&(K[L]=g[L]);if(n&&Ye({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new He(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new He(L))}T.push(Array.from(new Set(I.map(L=>L.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),I=[y]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&Ye({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new He(w))}else{let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new He(w))}T.push(A)}return(_=this.owner)!=null&&_.signer&&T.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),P.forEach((y,A)=>{y.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:K=0,recentBlockHash:L,skipPreflight:E=!0}=y||{};if(P.map(async(U,W)=>{T[W].length&&U.sign(T[W]),L&&(U.message.recentBlockhash=L)}),Te(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let U=0,W=[];for(let J of P){if(++U,U<=K){console.log("skip tx: ",U),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:E});await dt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(K,P.length)),W=[...P.slice(0,K),...U];if(A){let J=0,G=[],ne=async()=>{if(!W[J])return;if(J<K){G.push({txId:"",status:"success",signedTx:W[J]}),w==null||w([...G]),J++,ne();return}let pe=await this.connection.sendTransaction(W[J],{skipPreflight:E});G.push({txId:pe,status:"sent",signedTx:W[J]}),w==null||w([...G]),J++;let De=!1,Be=null,nt=null,nn=Ae=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let fe=G.findIndex(po=>po.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Ae.err?"error":"success"}w==null||w([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Ae;if(De){clearInterval(Be);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(De=!0,clearInterval(Be),nn({err:((Ae=fe.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){De=!0,clearInterval(Be),console.error("getTransaction timeout:",fe,pe)}},pt)),nt=this.connection.onSignature(pe,Ae=>{if(De){this.connection.removeSignatureListener(nt);return}De=!0,nn(Ae)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let J=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:E});J.push(ne)}return{txIds:J,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};import{PublicKey as wc}from"@solana/web3.js";import Tc from"bn.js";import li from"bn.js";var bt=new li(1e6);var Fn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},mi=F(x({},Fn),{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 hl=v("Raydium_Api");import{PublicKey as Tm,SystemProgram as hm}from"@solana/web3.js";import{AccountLayout as Km,createAssociatedTokenAccountIdempotentInstruction as Cm,TOKEN_PROGRAM_ID as Rm,TOKEN_2022_PROGRAM_ID as Lm}from"@solana/spl-token";var zt=(...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=v(n)}createTxBuilder(t){return this.scope.checkOwner(),new ft({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(zt(t))}logInfo(...t){this.logger.info(zt(t))}logAndCreateError(...t){let n=zt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Jl,SystemProgram as tm}from"@solana/web3.js";import im from"bn.js";import{createCloseAccountInstruction as um,createInitializeAccountInstruction as cm,createTransferInstruction as lm,TOKEN_PROGRAM_ID as mm}from"@solana/spl-token";import{Keypair as Dl,PublicKey as Wl}from"@solana/web3.js";import Gl from"bn.js";import{TOKEN_PROGRAM_ID as Yl}from"@solana/spl-token";var gt=l([i("mint"),i("owner"),e("amount"),z("delegateOption"),i("delegate"),c("state"),z("isNativeOption"),e("isNative"),e("delegatedAmount"),z("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as Cg,SystemProgram as Rg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Og}from"@solana/spl-token";import qg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as fy,TOKEN_2022_PROGRAM_ID as yy,TOKEN_PROGRAM_ID as by}from"@solana/spl-token";import{PublicKey as Py}from"@solana/web3.js";import wy from"bn.js";import Ty from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as vf,TOKEN_2022_PROGRAM_ID as Vf,TOKEN_PROGRAM_ID as _f}from"@solana/spl-token";import{Keypair as Wf,PublicKey as qf,SystemProgram as Gf,TransactionInstruction as zf}from"@solana/web3.js";import Yf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var pi=new D(1).shln(128),Xt=new D(1).shln(64).subn(1),fi=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),yi=new D("59543866431248"),bi=new D("184467440737095516"),gi=new D("15793534762490258745");var Yt=60,Um=new D("18446743708227953217"),Pi=[{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 $e=3,Vn=100;var _n=10,En=100,At=14;var $=new D(0),Ve=new D(1),Gm=new D(-1);var zm=new D("18446744073700000000");var Ai=l([N(8),c("bump"),Q("index"),i("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Q("tickSpacing"),z("fundFeeRate"),d(z(),1),i("fundOwner"),d(e(),3)]),wi=l([z("blockTimestamp"),xe("tickCumulative"),d(e(),4)]),Dn=l([N(8),ue("initialized"),e("recentEpoch"),Q("observationIndex"),i("poolId"),d(wi,Vn,"observations"),d(e(),4)]),ki=l([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ti=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),Qt=l([N(8),c("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Q("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ce("tickCurrent"),z(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),N(6),d(Ti,$e,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),ki.replicate("dynamicFeeInfo"),d(e(),46)]),hi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Ii=l([N(8),c("bump"),i("nftMint"),i("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(hi,$e,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Zm=l([N(8),c("bump"),i("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),$e,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Bi=l([ce("tick"),yn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(z(),3)]),Wn=l([N(8),i("poolId"),ce("startTickIndex"),d(Bi,Yt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Si=l([N(8),c("bump"),d(i(),_n,"operationOwners"),d(i(),En,"whitelistMints")]),xi=l([N(8),i("poolId"),i("owner"),ce("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),qn=l([N(8),i("poolId"),N(8*8*At,"positiveTickArrayBitmap"),N(8*8*At,"negativeTickArrayBitmap")]),Hm=l([N(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),Ki=l([N(8),i("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),jm=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),d(e(),8)]),Ci=l([N(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),d(e(),8)]);import ed from"bn.js";var md=Buffer.from("amm_config","utf8"),Ri=Buffer.from("pool","utf8"),Li=Buffer.from("pool_vault","utf8"),dd=Buffer.from("pool_reward_vault","utf8"),pd=Buffer.from("position","utf8"),fd=Buffer.from("tick_array","utf8"),yd=Buffer.from("operation","utf8"),bd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),gd=Buffer.from("observation","utf8"),Pd=Buffer.from("support_mint","utf8"),Ad=Buffer.from("dynamic_fee_config","utf8");var wd=Buffer.from("locked_position","utf8");import{sha256 as Xi}from"js-sha256";import Oi from"bn.js";import Id from"decimal.js";var Sd=new Oi(1).shln(256).subn(1);import Gd from"bn.js";import Nd from"bn.js";import Fd from"decimal.js";import Zd from"bn.js";import jd from"decimal.js";import{PublicKey as Vp}from"@solana/web3.js";import Ep from"bn.js";import{TOKEN_2022_PROGRAM_ID as Yp,TOKEN_PROGRAM_ID as Qp}from"@solana/spl-token";import $p from"decimal.js";import Sp from"bn.js";import pp from"bn.js";import lf from"bn.js";function ee(o){let t=`global:${o}`;return Buffer.from(Xi.digest(t)).slice(0,8)}Dn.span;var ty=v("Raydium_Clmm"),ny={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as $t}from"@solana/web3.js";var Hi=l([c("instruction")]),ji=l([c("instruction")]),$i=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRe