@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 76.1 kB
JavaScript
var go=Object.defineProperty,Po=Object.defineProperties;var Ao=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var rn=(o,t,n)=>t in o?go(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,x=(o,t)=>{for(var n in t||(t={}))an.call(t,n)&&rn(o,n,t[n]);if(ot)for(var n of ot(t))sn.call(t,n)&&rn(o,n,t[n]);return o},F=(o,t)=>Po(o,Ao(t));var ae=(o,t)=>{var n={};for(var r in o)an.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&&sn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as wo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as un}from"@solana/spl-token";var xe={chainId:101,address:wo.default.toBase58(),programId:un.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:un.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 No}from"@solana/web3.js";import fn,{isBN as yn}from"bn.js";import{bits as ko,BitStructure as Fa,blob as To,Blob as va,cstr as Va,f32 as _a,f32be as Ea,f64 as Da,f64be as Wa,greedy as qa,Layout as ho,ns64 as Ua,ns64be as Ga,nu64 as Io,nu64be as za,offset as Bo,s16 as Ya,s16be as Xa,s24 as Qa,s24be as Za,s32 as So,s32be as Ha,s40 as ja,s40be as $a,s48 as Ja,s48be as es,s8 as ts,seq as xo,struct as ns,Structure as Ko,u16 as Co,u16be as os,u24 as is,u24be as rs,u32 as Ro,u32be as as,u40 as ss,u40be as us,u48 as cs,u48be as ls,u8 as Lo,UInt as Oo,union as ms,Union as ds,unionLayoutDiscriminator as ps,utf8 as fs}from"@solana/buffer-layout";var it=ho,cn=Ko;var St=Oo;var ln=Lo,Q=Co;var rt=Ro;var mn=Io;var ce=So;var dn=xo;var N=To;var xt=ko,pn=Bo;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 fn(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 fn(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=xt(rt(),!1),this._upper=xt(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 St(1,o)}function z(o){return new St(4,o)}function e(o){return new we(8,!1,o)}function O(o){return new we(16,!1,o)}function bn(o){return new we(1,!0,o)}function Ke(o){return new we(8,!0,o)}function gn(o){return new we(16,!0,o)}var qe=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 qe(N(32),t=>new No(t),t=>t.toBuffer(),o)}function ue(o){return new qe(ln(),Mo,Fo,o)}function Mo(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Fo(o){return o?1:0}function Pn(o,t){let n=rt("length"),r=l([n,d(o,pn(n,-n.span),"values")]);return new qe(r,({values:u})=>u,u=>({values:u}),t)}var Kt=class extends cn{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Kt(o,t,n)}function d(o,t,n){let r,u=typeof t=="number"?t:yn(t)?t.toNumber():new Proxy(t,{get(m,f){if(!r){let p=Reflect.get(m,"count");r=yn(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 dn(o,u,n)}var Ct=l([z("mintAuthorityOption"),i("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),i("freezeAuthority")]);import{TOKEN_PROGRAM_ID as Ka}from"@solana/spl-token";import{PublicKey as Ca}from"@solana/web3.js";import Ba from"big.js";import Bt from"bn.js";import Be from"bn.js";import ZC from"decimal.js";import{PublicKey as Ot}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as An,SYSVAR_RENT_PUBKEY as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Vo}from"@solana/spl-token";function Ce({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var _o=[Ce({pubkey:Vo,isWritable:!1}),Ce({pubkey:An.programId,isWritable:!1}),Ce({pubkey:vo,isWritable:!1})];function Rt({publicKey:o,transformSol:t}){let n=wn(o.toString());if(n instanceof Y)return t&&n.equals(ke)?me:n;if(t&&n.toString()===ke.toBase58())return me;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function wn(o){try{return new Y(o)}catch{return o}}var Lt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Re=new Y("SysvarRent111111111111111111111111111111111"),Eo=new Y("SysvarC1ock11111111111111111111111111111111"),st=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Do=new Y("Sysvar1nstructions1111111111111111111111111"),kn=An.programId,Cs=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Rs=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ls=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Os=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ns=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ms=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Fs=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),vs=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Vs=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),_s=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Es=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new Y("So11111111111111111111111111111111111111112"),ke=Y.default;function ge(o){return Rt({publicKey:o,transformSol:!0})}var Nt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:f=!1}){if(t===ke.toBase58()||t instanceof Ot&&ke.equals(t)){this.decimals=se.decimals,this.symbol=se.symbol,this.name=se.name,this.mint=new Ot(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?Ot.default:Rt({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Z=Nt;Z.WSOL=new Nt(F(x({},se),{mint:se.address}));var Mt=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=Mt;ut.SOL=new Mt(xe);import lt from"big.js";import Yo from"bn.js";import Xo from"decimal.js-light";import{get as Tn,set as Wo}from"lodash";var Ft=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}},hn={},qo={};function v(o){let t=Tn(hn,o);if(!t){let n=Tn(qo,o);t=new Ft({name:o,logLevel:n}),Wo(hn,o,t)}return t}import Ue from"bn.js";var In=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>=In||o<=-In)&&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 Uo from"toformat";var Go=Uo,Ge=Go;var ct=v("module/fraction"),vt=Ge(lt),ze=Ge(Xo),Qo={[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 Yo(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:Qo[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.`),vt.DP=t,vt.RM=Zo[r]||1,new vt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Ho from"bn.js";var du=new q(new Ho(100));var Pu=v("Raydium_price");import{merge as HK}from"lodash";import ll from"axios";import{PublicKey as jo}from"@solana/web3.js";import{MINT_SIZE as Ku,TOKEN_PROGRAM_ID as Cu,getTransferFeeConfig as Ru,unpackMint as Lu}from"@solana/spl-token";var Vt=v("Raydium_accountInfo_util");async function be(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=x({batchRequest:!1},n),f=_t(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=_t(g,10);p=(await(await Promise.all(B.map(async C=>await o._rpcBatchRequest(C)))).flat()).map(C=>(C.error&&Vt.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:A,owner:T,rentEpoch:I}=R;return S.length!==2&&S[1]!=="base64"&&Vt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:A,owner:new jo(T),rentEpoch:I}}return null})))}else try{p=await Promise.all(f.map(g=>o.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Vt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return p.flat()}function _t(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 Qu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Hu}from"@solana/spl-token";import{ComputeBudgetProgram as Bn,Keypair as xn,PublicKey as $o,Transaction as Kn,TransactionMessage as Jo,VersionedTransaction as Cn}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 ei}from"@solana/spl-token";var Sn=v("Raydium_txUtil"),Rn=1644;function mt(o){let t=[],n=[];return o.microLamports&&(t.push(Bn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(j.SetComputeUnitPrice)),o.units&&(t.push(Bn.setComputeUnitLimit({units:o.units})),n.push(j.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(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 Et(o,t){o.length<1&&Sn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Sn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Rn}catch{return!1}}function de(o,t){let[n,r]=$o.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Ye({instructions:o,payer:t,signers:n}){return Et(o,[t,...n])}function Xe({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=xn.generate().publicKey.toString()}){let m=new Jo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Cn(m).serialize()).toString("base64").length<Rn}catch{return!1}}var ti=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ni=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Cn&&(t=ti(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 Kn&&(n.recentBlockhash||(n.recentBlockhash=ei.toBase58()),n.feePayer||(n.feePayer=xn.generate().publicKey)),t.push(ni(n))}),console.log("simulate tx string:",t),t}import{PublicKey as P}from"@solana/web3.js";var Ln=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),On=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Nn=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Dt=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ec=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),oi=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Mn=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Fn=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),tc=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ii=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),vn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ri=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ai=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Vn=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),nc=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),si=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ui=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ci=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),li=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),mi=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Wt=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),di=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),oc=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),pi=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),fi=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),yi=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ic=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),rc=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ac=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),sc=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),uc=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Qe={IDO_PROGRAM_ID_V1:ui,IDO_PROGRAM_ID_V2:ci,IDO_PROGRAM_ID_V3:li,IDO_PROGRAM_ID_V4:mi};var Pe={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 mc from"bn.js";import{PublicKey as qt,AddressLookupTableAccount as Me}from"@solana/web3.js";async function Ut({connection:o,address:t,cluster:n="mainnet"}){let r=await be(o,[...new Set(t.map(m=>m.toString()))].map(m=>new qt(m))),u={};for(let m=0;m<t.length;m++){let f=r[m],p=t[m];if(!f)continue;let g=new Me({key:p,state:Me.deserialize(f.data)});u[p.toString()]=g,n==="devnet"?Ne[p.toString()]=g:Oe[p.toString()]=g}return u}var Oe={},Gt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Oe[t])return Oe;let n=new qt(t),r=await o.getAccountInfo(n);return r&&(Oe[t]=new Me({key:n,state:Me.deserialize(r.data)})),Oe},Ne={},zt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ne[t])return Ne;let n=new qt(t),r=await o.getAccountInfo(n);return r&&(Ne[t]=new Me({key:n,state:Me.deserialize(r.data)})),Ne};import{PublicKey as Fe,sendAndConfirmTransaction as Yt,SystemProgram as bi,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import gi 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 gi.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(bi.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Fe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(j.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let 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!==Fe.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 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||{},B=m!=null?m:await Le(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 Yt(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:A=!0}=b||{},T=M!=null?M:await Le(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 Yt(this.connection,_,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});h.push(y)}return{txIds:h,signedTxs:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),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=[],w=async()=>{if(!V[_])return;let k=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:A});y.push({txId:k,status:"sent",signedTx:V[_]}),R==null||R([...y]),_++;let 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===k);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||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(K){clearInterval(L);return}try{let W=await this.connection.getTransaction(k,{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:",k))}catch(W){K=!0,clearInterval(L),console.error("getTransaction timeout:",W,k)}},pt)),E=this.connection.onSignature(k,U=>{if(K){this.connection.removeSignatureListener(E);return}K=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:y.map(k=>k.txId),signedTxs:V}}else{let _=[];for(let y=0;y<V.length;y+=1){let w=await this.connection.sendRawTransaction(V[y].serialize(),{skipPreflight:A});_.push(w)}return{txIds:_,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo: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 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 zt(this.connection):await Gt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),B=[];for(let T of g)p[T]===void 0&&B.push(new Fe(T));let b=await Ut({connection:this.connection,address:B});for(let[T,I]of Object.entries(b))p[T]=I;let C=u?Fe.default.toBase58():m!=null?m:await Le(this.connection,this.blockhashCommitment),R=new He({payerKey:this.feePayer,recentBlockhash:C,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new je(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 w of y)try{w.sign(this.signers)}catch{}return{txId:V?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo: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 A;let{sequentially:C,onTxUpdate:R,recentBlockHash:S,skipPreflight:M=!0}=b||{};if(S&&f.forEach(T=>T.message.recentBlockhash=S),Te(f),(A=this.owner)!=null&&A.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,w=null,k=null,K=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);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&&(w=setInterval(async()=>{var L;if(y){clearInterval(w);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(y=!0,clearInterval(w),K({err:((L=E.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){y=!0,clearInterval(w),console.error("getTransaction timeout:",E,_)}},pt)),k=this.connection.onSignature(_,L=>{if(y){this.connection.removeSignatureListener(k);return}y=!0,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],A=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 Fe(h));if(S!==n[b]&&B.length<12&&(Ye({instructions:A,payer:this.feePayer,signers:I})||Ye({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,Ye({instructions:r?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:I})?p.push(new Ze().add(...m.instructions,...B)):p.push(new Ze().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(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>f[A]).filter(A=>A!==void 0);Ye({instructions:r?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?p.push(new Ze().add(...m.instructions,...B)):p.push(new Ze().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:A,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},V=I!=null?I:await Le(this.connection,this.blockhashCommitment);if(p.forEach(async(y,w)=>{y.recentBlockhash=V,g[w].length&&y.sign(...g[w])}),Te(p),(_=this.owner)!=null&&_.isKeyPair){if(M){let y=0,w=[];for(let k of p){if(++y,y<=T){w.push("tx skipped");continue}let K=await Yt(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});w.push(K)}return{txIds:w,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)),w=[...p.slice(0,T),...y];if(M){let k=0,K=[],L=async()=>{if(!w[k])return;k<T&&(K.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...K]),k++,L());let E=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:h});K.push({txId:E,status:"sent",signedTx:w[k]}),A==null||A([...K]),k++;let ie=!1,U=null,W=null,J=G=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=K.findIndex(fe=>fe.txId===E);if(ne>-1){if(K[ne].status==="error"||K[ne].status==="success")return;K[ne].status=G.err?"error":"success"}A==null||A([...K]),G.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(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:w}}else{let k=[];for(let K=0;K<w.length;K+=1){let L=await this.connection.sendRawTransaction(w[K].serialize(),{skipPreflight:h});k.push(L)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let V=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:f=12}=V,p=ae(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=x(x({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of B)g[y]===void 0&&b.push(new Fe(y));let C=await Ut({connection:this.connection,address:b});for(let[y,w]of Object.entries(C))g[y]=w;let R=n?mt(n):{instructions:[],instructionTypes:[]},S=await Le(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,w)=>F(x({},y),{[w.publicKey.toBase58()]:w}),{}),A=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let w=[...I,y],k=n?[...R.instructions,...w]:w;if(y!==r[h]&&I.length<f&&(Xe({instructions:k,payer:this.feePayer,lookupTableAddressAccount:g})||Xe({instructions:w,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&&Xe({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let L=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));A.push(new je(L))}else{let L=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));A.push(new je(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 w=[...new Set(I.map(k=>k.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Xe({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let k=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));A.push(new je(k))}else{let k=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));A.push(new je(k))}T.push(w)}return(_=this.owner)!=null&&_.signer&&T.forEach(y=>{y.some(w=>w.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),A.forEach((y,w)=>{y.sign(T[w])}),{builder:this,transactions:A,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:K=0,recentBlockHash:L,skipPreflight:E=!0}=y||{};if(A.map(async(U,W)=>{T[W].length&&U.sign(T[W]),L&&(U.message.recentBlockhash=L)}),Te(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let U=0,W=[];for(let J of A){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:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(K,A.length)),W=[...A.slice(0,K),...U];if(w){let J=0,G=[],ne=async()=>{if(!W[J])return;if(J<K){G.push({txId:"",status:"success",signedTx:W[J]}),k==null||k([...G]),J++,ne();return}let fe=await this.connection.sendTransaction(W[J],{skipPreflight:E});G.push({txId:fe,status:"sent",signedTx:W[J]}),k==null||k([...G]),J++;let We=!1,Se=null,nt=null,on=Ae=>{Se!==null&&clearInterval(Se),nt!==null&&this.connection.removeSignatureListener(nt);let ye=G.findIndex(bo=>bo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Ae.err?"error":"success"}k==null||k([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Se=setInterval(async()=>{var Ae;if(We){clearInterval(Se);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(We=!0,clearInterval(Se),on({err:((Ae=ye.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){We=!0,clearInterval(Se),console.error("getTransaction timeout:",ye,fe)}},pt)),nt=this.connection.onSignature(fe,Ae=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,on(Ae)},"confirmed"),this.connection.getSignatureStatus(fe)};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 Rc}from"@solana/web3.js";import Oc from"bn.js";import Pi from"bn.js";var bt=new Pi(1e6);var _n={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Ai=F(x({},_n),{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 Nl=v("Raydium_Api");import{PublicKey as Om,SystemProgram as Nm}from"@solana/web3.js";import{AccountLayout as _m,createAssociatedTokenAccountIdempotentInstruction as Em,TOKEN_PROGRAM_ID as Dm,TOKEN_2022_PROGRAM_ID as Wm}from"@solana/spl-token";var Xt=(...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(Xt(t))}logInfo(...t){this.logger.info(Xt(t))}logAndCreateError(...t){let n=Xt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as cm,SystemProgram as mm}from"@solana/web3.js";import fm from"bn.js";import{createCloseAccountInstruction as Pm,createInitializeAccountInstruction as Am,createTransferInstruction as wm,TOKEN_PROGRAM_ID as km}from"@solana/spl-token";import{Keypair as Hl,PublicKey as jl}from"@solana/web3.js";import em from"bn.js";import{TOKEN_PROGRAM_ID as om}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 Fg,SystemProgram as vg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as _g}from"@solana/spl-token";import Qg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as wy,TOKEN_2022_PROGRAM_ID as ky,TOKEN_PROGRAM_ID as Ty}from"@solana/spl-token";import{PublicKey as Iy}from"@solana/web3.js";import Sy from"bn.js";import Ky from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as qf,TOKEN_2022_PROGRAM_ID as Uf,TOKEN_PROGRAM_ID as Gf}from"@solana/spl-token";import{Keypair as Xf,PublicKey as Qf,SystemProgram as Hf,TransactionInstruction as jf}from"@solana/web3.js";import Jf from"bn.js";import D from"bn.js";var Ie=new D(1).shln(64);var ki=new D(1).shln(128),Qt=new D(1).shln(64).subn(1),Ti=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),hi=new D("59543866431248"),Ii=new D("184467440737095516"),Bi=new D("15793534762490258745");var Zt=60,Jm=new D("18446743708227953217"),Si=[{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 Je=3,Dn=100;var Wn=10,qn=100,At=14;var $=new D(0),_e=new D(1),ed=new D(-1);var td=new D("18446744073700000000");var xi=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)]),Ki=l([z("blockTimestamp"),Ke("tickCumulative"),d(e(),4)]),Un=l([N(8),ue("initialized"),e("recentEpoch"),Q("observationIndex"),i("poolId"),d(Ki,Dn,"observations"),d(e(),4)]),Ci=l([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ri=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([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(Ri,Je,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ci.replicate("dynamicFeeInfo"),d(e(),46)]),Li=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=l([N(8),c("bump"),i("nftMint"),i("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Li,Je,"rewardInfos"),e("recentEpoch"),d(e(),7)]),rd=l([N(8),c("bump"),i("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),Je,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ni=l([ce("tick"),gn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(z(),3)]),Gn=l([N(8),i("poolId"),ce("startTickIndex"),d(Ni,Zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Mi=l([N(8),c("bump"),d(i(),Wn,"operationOwners"),d(i(),qn,"whitelistMints")]),Fi=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)]),zn=l([N(8),i("poolId"),N(8*8*At,"positiveTickArrayBitmap"),N(8*8*At,"negativeTickArrayBitmap")]),ad=l([N(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),vi=l([N(8),i("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),sd=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),d(e(),8)]),Vi=l([N(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),d(e(),8)]);import ld from"bn.js";var kd=Buffer.from("amm_config","utf8"),_i=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),Td=Buffer.from("pool_reward_vault","utf8"),hd=Buffer.from("position","utf8"),Id=Buffer.from("tick_array","utf8"),Bd=Buffer.from("operation","utf8"),Sd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),xd=Buffer.from("observation","utf8"),Kd=Buffer.from("support_mint","utf8"),Cd=Buffer.from("dynamic_fee_config","utf8");var Rd=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Di from"bn.js";import Md from"decimal.js";var vd=new Di(1).shln(256).subn(1);import ep from"bn.js";import Ud from"bn.js";import zd from"decimal.js";import up from"bn.js";import lp from"decimal.js";import{PublicKey as Yp}from"@solana/web3.js";import Qp from"bn.js";import{TOKEN_2022_PROGRAM_ID as nf}from"@solana/spl-token";import sf from"decimal.js";import Fp from"bn.js";import Tp from"bn.js";import bf from"bn.js";function ee(o){let t=`global:${o}`;return Buffer.from(tr.digest(t)).slice(0,8)}Un.span;var sy=v("Raydium_Clmm"),uy={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"),sett