UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 79.4 kB
var ho=Object.defineProperty,Io=Object.defineProperties;var Bo=Object.getOwnPropertyDescriptors;var it=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var ln=(r,t,n)=>t in r?ho(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,C=(r,t)=>{for(var n in t||(t={}))mn.call(t,n)&&ln(r,n,t[n]);if(it)for(var n of it(t))dn.call(t,n)&&ln(r,n,t[n]);return r},F=(r,t)=>Io(r,Bo(t));var se=(r,t)=>{var n={};for(var o in r)mn.call(r,o)&&t.indexOf(o)<0&&(n[o]=r[o]);if(r!=null&&it)for(var o of it(r))t.indexOf(o)<0&&dn.call(r,o)&&(n[o]=r[o]);return n};import ko from"axios";import{PublicKey as Ko}from"@solana/web3.js";import{get as pn,set as So}from"lodash";var xt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(o=>typeof o=="object"?JSON.stringify(o):o).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}},fn={},xo={};function E(r){let t=pn(fn,r);if(!t){let n=pn(xo,r);t=new xt({name:r,logLevel:n}),So(fn,r,t)}return t}import{MINT_SIZE as Ga,TOKEN_PROGRAM_ID as za,getTransferFeeConfig as Xa,unpackMint as Ya}from"@solana/spl-token";var Kt=E("Raydium_accountInfo_util");async function be(r,t,n){let{batchRequest:o,commitment:u="confirmed",chunkCount:m=100}=C({batchRequest:!1},n),d=Ct(t,m),p=new Array(d.length).fill([]);if(o){let y=d.map(h=>{let B=r._buildArgs([h.map(K=>K.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:B}}),P=Ct(y,10);p=(await(await Promise.all(P.map(async h=>await r._rpcBatchRequest(h)))).flat()).map(h=>(h.error&&Kt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${h.error.message}`),h.result.value.map(B=>{if(B){let{data:K,executable:M,lamports:w,owner:I,rentEpoch:x}=B;return K.length!==2&&K[1]!=="base64"&&Kt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(K[0],"base64"),executable:M,lamports:w,owner:new Ko(I),rentEpoch:x}}return null})))}else try{p=await Promise.all(d.map(y=>r.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&Kt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Ie from"bn.js";import DC from"decimal.js";import vo from"big.js";import ls from"bn.js";import Co from"toformat";var Ro=Co,Ue=Ro;import at from"big.js";import Oo from"bn.js";import No from"decimal.js-light";import Ge from"bn.js";var yn=9007199254740991;function oe(r){let t=E("Raydium_parseBigNumberish");if(r instanceof Ge)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new Ge(r);t.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&t.logWithError(`BigNumberish number underflow: ${r}`),(r>=yn||r<=-yn)&&t.logWithError(`BigNumberish number overflow: ${r}`),new Ge(String(r))):typeof r=="bigint"?new Ge(r.toString()):(t.error(`invalid BigNumberish value: ${r}`),new Ge(0))}var rt=E("module/fraction"),Rt=Ue(at),ze=Ue(No),Mo={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},Fo={[0]:at.roundDown,[1]:at.roundHalfUp,[2]:at.roundUp},U=class{constructor(t,n=new Oo(1)){this.numerator=oe(t),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},o=1){Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<=0&&rt.logWithError(`${t} is not positive.`),ze.set({precision:t+1,rounding:Mo[o]});let u=new ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},o=1){return Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<0&&rt.logWithError(`${t} is negative.`),Rt.DP=t,Rt.RM=Fo[o]||1,new Rt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var As=E("Raydium_amount"),ws=Ue(vo);import{PublicKey as _o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bn}from"@solana/spl-token";var st={chainId:101,address:_o.default.toBase58(),programId:bn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},me={chainId:101,address:"So11111111111111111111111111111111111111112",programId:bn.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 Nt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as gn,SYSVAR_RENT_PUBKEY as Eo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Do}from"@solana/spl-token";function Se({pubkey:r,isSigner:t=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:t}}var Wo=[Se({pubkey:Do,isWritable:!1}),Se({pubkey:gn.programId,isWritable:!1}),Se({pubkey:Eo,isWritable:!1})];function Lt({publicKey:r,transformSol:t}){let n=Pn(r.toString());if(n instanceof z)return t&&n.equals(we)?le:n;if(t&&n.toString()===we.toBase58())return le;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Pn(r){try{return new z(r)}catch{return r}}var Ot=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),xe=new z("SysvarRent111111111111111111111111111111111"),qo=new z("SysvarC1ock11111111111111111111111111111111"),ut=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Uo=new z("Sysvar1nstructions1111111111111111111111111"),An=gn.programId,Ks=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Cs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Rs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ls=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Os=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ns=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ms=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Fs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),vs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Vs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),_s=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new z("So11111111111111111111111111111111111111112"),we=z.default;function ge(r){return Lt({publicKey:r,transformSol:!0})}var Mt=class{constructor({mint:t,decimals:n,symbol:o,name:u,skipMint:m=!1,isToken2022:d=!1}){if(t===we.toBase58()||t instanceof Nt&&we.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new Nt(me.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=o||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Nt.default:Lt({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Mt;ee.WSOL=new Mt(F(C({},me),{mint:me.address}));var Ft=class{constructor({decimals:t,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=o}equals(t){return this===t}},ct=Ft;ct.SOL=new Ft(st);import Go from"bn.js";var Hs=new U(new Go(100));var nu=E("Raydium_price");import{merge as DK}from"lodash";import{PublicKey as yl,SystemProgram as bl}from"@solana/web3.js";import{AccountLayout as kl,createAssociatedTokenAccountIdempotentInstruction as Tl,TOKEN_PROGRAM_ID as hl,TOKEN_2022_PROGRAM_ID as Il}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as Wt,SystemProgram as Ho,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import jo from"axios";import{PublicKey as vt,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Vt({connection:r,address:t,cluster:n="mainnet"}){let o=await be(r,[...new Set(t.map(m=>m.toString()))].map(m=>new vt(m))),u={};for(let m=0;m<t.length;m++){let d=o[m],p=t[m];if(!d)continue;let y=new Re({key:p,state:Re.deserialize(d.data)});u[p.toString()]=y,n==="devnet"?Ce[p.toString()]=y:Ke[p.toString()]=y}return u}var Ke={},_t=async r=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new vt(t),o=await r.getAccountInfo(n);return o&&(Ke[t]=new Re({key:n,state:Re.deserialize(o.data)})),Ke},Ce={},Et=async r=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new vt(t),o=await r.getAccountInfo(n);return o&&(Ce[t]=new Re({key:n,state:Re.deserialize(o.data)})),Ce};var Z={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{ComputeBudgetProgram as wn,Keypair as Tn,PublicKey as zo,Transaction as hn,TransactionMessage as Xo,VersionedTransaction as In}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yo}from"@solana/spl-token";var kn=E("Raydium_txUtil"),Bn=1644;function lt(r){let t=[],n=[];return r.microLamports&&(t.push(wn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(Z.SetComputeUnitPrice)),r.units&&(t.push(wn.setComputeUnitLimit({units:r.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(r,t){var o,u;let n=t!=null?t:"confirmed";return(u=await((o=r.getLatestBlockhash)==null?void 0:o.call(r,{commitment:n})))==null?void 0:u.blockhash}async function mt(r,t){return r.getSignatureStatuses([t]),new Promise((n,o)=>{let u=setTimeout(o,6e4);r.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}o(Object.assign(m.err,{txId:t}))},"confirmed")})}function Dt(r,t){r.length<1&&kn.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&kn.logWithError(`no signers provided:, ${t.toString()}`);let n=new hn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Bn}catch{return!1}}function de(r,t){let[n,o]=zo.findProgramAddressSync(r,t);return{publicKey:n,nonce:o}}function Xe({instructions:r,payer:t,signers:n}){return Dt(r,[t,...n])}function Ye({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:o=Tn.generate().publicKey.toString()}){let m=new Xo({payerKey:t,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new In(m).serialize()).toString("base64").length<Bn}catch{return!1}}var Qo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Zo=r=>{let t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof In&&(t=Qo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(r){let t=[];return r.forEach(n=>{n instanceof hn&&(n.recentBlockhash||(n.recentBlockhash=Yo.toBase58()),n.feePayer||(n.feePayer=Tn.generate().publicKey)),t.push(Zo(n))}),console.log("simulate tx string:",t),t}var dt=2e3,pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var o;let t=(await jo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(o=t==null?void 0:t[15])!=null?o:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:o}=lt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Ho.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let o=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:o=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...d.filter(p=>p!==Oe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:o}){return t===0?await this.buildV0(F(C({},n||{}),{lookupTableAddress:o})):this.build(n)}build(t){var o;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:m,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},P=m!=null?m:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),ke([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Wt(this.connection,n,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let h=await this.signAllTransactions([n]);if(this.signers.length)for(let B of h)try{B.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(h[0].serialize(),{skipPreflight:d}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var P;let{extraPreBuildData:n=[],extInfo:o}=t,{transaction:u}=this.build(o),m=n.filter(b=>b.transaction.instructions.length>0),d=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:y,execute:async b=>{var x;let{sequentially:h,onTxUpdate:B,skipTxCount:K=0,recentBlockHash:M,skipPreflight:w=!0}=b||{},I=M!=null?M:await Le(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(h){let S=[],v=0;for(let V of d){if(++v,v<=K)continue;let g=await Wt(this.connection,V,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});S.push(g)}return{txIds:S,signedTxs:d}}return{txIds:await await Promise.all(d.map(async S=>(S.recentBlockhash=I,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:w})))),signedTxs:d}}if(this.signAllTransactions){let S=d.map((V,g)=>(V.recentBlockhash=I,p[g].length&&V.sign(...p[g]),V));ke(S);let v=await this.signAllTransactions(S);if(h){let V=0,g=[],k=async()=>{if(!v[V])return;let T=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:w});g.push({txId:T,status:"sent",signedTx:v[V]}),B==null||B([...g]),V++;let R=!1,L=null,_=null,re=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=g.findIndex($=>$.txId===T);if(W>-1){if(g[W].status==="error"||g[W].status==="success")return;g[W].status=q.err?"error":"success"}B==null||B([...g]),q.err||k()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(R){clearInterval(L);return}try{let W=await this.connection.getTransaction(T,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(R=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",T))}catch(W){R=!0,clearInterval(L),console.error("getTransaction timeout:",W,T)}},dt)),_=this.connection.onSignature(T,q=>{if(R){this.connection.removeSignatureListener(_);return}R=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(T)};return await k(),{txIds:g.map(T=>T.txId),signedTxs:v}}else{let V=[];for(let g=0;g<v.length;g+=1){let k=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:w});V.push(k)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:o}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:o})}async buildV0(t){var w;let M=t||{},{lookupTableCache:n={},lookupTableAddress:o=[],forerunCreate:u,recentBlockhash:m}=M,d=se(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=C(C({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),n),y=Array.from(new Set([...o,...this.lookupTableAddress])),P=[];for(let I of y)p[I]===void 0&&P.push(new Oe(I));let b=await Vt({connection:this.connection,address:P});for(let[I,x]of Object.entries(b))p[I]=x;let h=u?Oe.default.toBase58():m!=null?m:await Le(this.connection,this.blockhashCommitment),B=new Ze({payerKey:this.feePayer,recentBlockhash:h,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let K=new He(B);return K.sign(this.signers),{builder:this,transaction:K,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var V;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:v}=I||{};if(ke([K]),(V=this.owner)!=null&&V.isKeyPair){let g=await this.connection.sendTransaction(K,{skipPreflight:x});return S&&await mt(this.connection,g),{txId:g,signedTx:K}}if(this.signAllTransactions){let g=await this.signAllTransactions([K]);if(this.signers.length)for(let k of g)try{k.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(g[0],{skipPreflight:x}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var P;let{extraPreBuildData:n=[],buildProps:o}=t,{transaction:u}=await this.buildV0(o),m=n.filter(b=>b.builder.instructions.length>0),d=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(b,h)=>{b.sign(p[h])}),{builder:this,transactions:d,signers:p,instructionTypes:y,buildProps:o,execute:async b=>{var w;let{sequentially:h,onTxUpdate:B,recentBlockHash:K,skipPreflight:M=!0}=b||{};if(K&&d.forEach(I=>I.message.recentBlockhash=K),ke(d),(w=this.owner)!=null&&w.isKeyPair){if(h){let I=[];for(let x of d){let S=await this.connection.sendTransaction(x,{skipPreflight:M});await mt(this.connection,S),I.push(S)}return{txIds:I,signedTxs:d}}return{txIds:await Promise.all(d.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:M}))),signedTxs:d}}if(this.signAllTransactions){let I=await this.signAllTransactions(d);if(h){let x=0,S=[],v=async()=>{if(!I[x])return;let V=await this.connection.sendTransaction(I[x],{skipPreflight:M});S.push({txId:V,status:"sent",signedTx:I[x]}),B==null||B([...S]),x++;let g=!1,k=null,T=null,R=L=>{k!==null&&clearInterval(k),T!==null&&this.connection.removeSignatureListener(T);let _=S.findIndex(re=>re.txId===V);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=L.err?"error":"success"}B==null||B([...S]),L.err||v()};this.loopMultiTxStatus&&(k=setInterval(async()=>{var L;if(g){clearInterval(k);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(g=!0,clearInterval(k),R({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){g=!0,clearInterval(k),console.error("getTransaction timeout:",_,V)}},dt)),T=this.connection.onSignature(V,L=>{if(g){this.connection.removeSignatureListener(T);return}g=!0,R(L)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:I}}else{let x=[];for(let S=0;S<I.length;S+=1){let v=await this.connection.sendTransaction(I[S],{skipPreflight:M});x.push(v)}return{txIds:x,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(t){var B;let h=t||{},{splitIns:n=[],computeBudgetConfig:o}=h,u=se(h,["splitIns","computeBudgetConfig"]),m=o?lt(o):{instructions:[],instructionTypes:[]},d=this.signers.reduce((K,M)=>F(C({},K),{[M.publicKey.toBase58()]:M}),{}),p=[],y=[],P=[],b=0;if(this.allInstructions.forEach(K=>{let M=[...P,K],w=o?[...m.instructions,...M]:M,x=[...new Set(M.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(S=>new Oe(S));if(K!==n[b]&&P.length<12&&(Xe({instructions:w,payer:this.feePayer,signers:x})||Xe({instructions:M,payer:this.feePayer,signers:x})))P.push(K);else{if(P.length===0)throw Error("item ins too big");b+=K===n[b]?1:0,Xe({instructions:o?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:x})?p.push(new Qe().add(...m.instructions,...P)):p.push(new Qe().add(...P)),y.push(Array.from(new Set(P.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(S=>d[S]).filter(S=>S!==void 0)),P=[K]}}),P.length>0){let M=[...new Set(P.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(w=>d[w]).filter(w=>w!==void 0);Xe({instructions:o?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:M.map(w=>w.publicKey)})?p.push(new Qe().add(...m.instructions,...P)):p.push(new Qe().add(...P)),y.push(M)}return p.forEach(K=>K.feePayer=this.feePayer),(B=this.owner)!=null&&B.signer&&y.forEach(K=>{K.some(M=>M.publicKey.equals(this.owner.publicKey))||K.push(this.owner.signer)}),{builder:this,transactions:p,signers:y,instructionTypes:this.instructionTypes,execute:async K=>{var V;let{sequentially:M,onTxUpdate:w,skipTxCount:I=0,recentBlockHash:x,skipPreflight:S=!0}=K||{},v=x!=null?x:await Le(this.connection,this.blockhashCommitment);if(p.forEach(async(g,k)=>{g.recentBlockhash=v,y[k].length&&g.sign(...y[k])}),ke(p),(V=this.owner)!=null&&V.isKeyPair){if(M){let g=0,k=[];for(let T of p){if(++g,g<=I){k.push("tx skipped");continue}let R=await Wt(this.connection,T,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});k.push(R)}return{txIds:k,signedTxs:p}}return{txIds:await Promise.all(p.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:S}))),signedTxs:p}}if(this.signAllTransactions){let g=await this.signAllTransactions(p.slice(I,p.length)),k=[...p.slice(0,I),...g];if(M){let T=0,R=[],L=async()=>{if(!k[T])return;T<I&&(R.push({txId:"",status:"success",signedTx:k[T]}),w==null||w([...R]),T++,L());let _=await this.connection.sendRawTransaction(k[T].serialize(),{skipPreflight:S});R.push({txId:_,status:"sent",signedTx:k[T]}),w==null||w([...R]),T++;let re=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=R.findIndex(fe=>fe.txId===_);if(ne>-1){if(R[ne].status==="error"||R[ne].status==="success")return;R[ne].status=G.err?"error":"success"}w==null||w([...R]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(re=!0,clearInterval(q),$({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){re=!0,clearInterval(q),console.error("getTransaction timeout:",ne,_)}},dt)),W=this.connection.onSignature(_,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:R.map(_=>_.txId),signedTxs:k}}else{let T=[];for(let R=0;R<k.length;R+=1){let L=await this.connection.sendRawTransaction(k[R].serialize(),{skipPreflight:S});T.push(L)}return{txIds:T,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:d=12}=v,p=se(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=C(C({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),u),P=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of P)y[g]===void 0&&b.push(new Oe(g));let h=await Vt({connection:this.connection,address:b});for(let[g,k]of Object.entries(h))y[g]=k;let B=n?lt(n):{instructions:[],instructionTypes:[]},K=await Le(this.connection,this.blockhashCommitment),M=this.signers.reduce((g,k)=>F(C({},g),{[k.publicKey.toBase58()]:k}),{}),w=[],I=[],x=[],S=0;if(this.allInstructions.forEach(g=>{let k=[...x,g],T=n?[...B.instructions,...k]:k;if(g!==o[S]&&x.length<d&&(Ye({instructions:T,payer:this.feePayer,lookupTableAddressAccount:y})||Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:y})))x.push(g);else{if(x.length===0)throw Error("item ins too big");S+=g===o[S]?1:0;let R={};for(let L of[...new Set(P)])y[L]!==void 0&&(R[L]=y[L]);if(n&&Ye({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:K})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new He(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new He(L))}I.push(Array.from(new Set(x.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),x=[g]}}),x.length>0){let k=[...new Set(x.map(T=>T.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(T=>M[T]).filter(T=>T!==void 0);if(n&&Ye({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:K})){let T=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new He(T))}else{let T=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new He(T))}I.push(k)}return(V=this.owner)!=null&&V.signer&&I.forEach(g=>{g.some(k=>k.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),w.forEach((g,k)=>{g.sign(I[k])}),{builder:this,transactions:w,buildProps:t,signers:I,instructionTypes:this.instructionTypes,execute:async g=>{var re;let{sequentially:k,onTxUpdate:T,skipTxCount:R=0,recentBlockHash:L,skipPreflight:_=!0}=g||{};if(w.map(async(q,W)=>{I[W].length&&q.sign(I[W]),L&&(q.message.recentBlockhash=L)}),ke(w),(re=this.owner)!=null&&re.isKeyPair){if(k){let q=0,W=[];for(let $ of w){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:_});await mt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:w}}return{txIds:await Promise.all(w.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let q=await this.signAllTransactions(w.slice(R,w.length)),W=[...w.slice(0,R),...q];if(k){let $=0,G=[],ne=async()=>{if(!W[$])return;if($<R){G.push({txId:"",status:"success",signedTx:W[$]}),T==null||T([...G]),$++,ne();return}let fe=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[$]}),T==null||T([...G]),$++;let qe=!1,Be=null,ot=null,cn=Ae=>{Be!==null&&clearInterval(Be),ot!==null&&this.connection.removeSignatureListener(ot);let ye=G.findIndex(To=>To.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Ae.err?"error":"success"}T==null||T([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Ae;if(qe){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(qe=!0,clearInterval(Be),cn({err:((Ae=ye.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){qe=!0,clearInterval(Be),console.error("getTransaction timeout:",ye,fe)}},dt)),ot=this.connection.onSignature(fe,Ae=>{if(qe){this.connection.removeSignatureListener(ot);return}qe=!0,cn(Ae)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:_});$.push(ne)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var qt=(...r)=>r.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(qt(t))}logInfo(...t){this.logger.info(qt(t))}logAndCreateError(...t){let n=qt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Xc,SystemProgram as Qc}from"@solana/web3.js";import jc from"bn.js";import{createCloseAccountInstruction as tl,createInitializeAccountInstruction as nl,createTransferInstruction as ol,TOKEN_PROGRAM_ID as il}from"@solana/spl-token";import{Keypair as Nc,PublicKey as Mc}from"@solana/web3.js";import Vc from"bn.js";import{TOKEN_PROGRAM_ID as Dc}from"@solana/spl-token";import{PublicKey as li}from"@solana/web3.js";import Ln,{isBN as On}from"bn.js";import{bits as $o,BitStructure as Eu,blob as Jo,Blob as Du,cstr as Wu,f32 as qu,f32be as Uu,f64 as Gu,f64be as zu,greedy as Xu,Layout as ei,ns64 as Yu,ns64be as Qu,nu64 as ti,nu64be as Zu,offset as ni,s16 as Hu,s16be as ju,s24 as $u,s24be as Ju,s32 as oi,s32be as ec,s40 as tc,s40be as nc,s48 as oc,s48be as ic,s8 as rc,seq as ii,struct as ac,Structure as ri,u16 as ai,u16be as sc,u24 as uc,u24be as cc,u32 as si,u32be as lc,u40 as mc,u40be as dc,u48 as pc,u48be as fc,u8 as ui,UInt as ci,union as yc,Union as bc,unionLayoutDiscriminator as gc,utf8 as Pc}from"@solana/buffer-layout";var ft=ei,Sn=ri;var Ut=ci;var xn=ui,H=ai;var yt=si;var Kn=ti;var ue=oi;var Cn=ii;var N=Jo;var Gt=$o,Rn=ni;var he=class extends ft{constructor(n,o,u){super(n,u);this.blob=N(n),this.signed=o}decode(n,o=0){let u=new Ln(this.blob.decode(n,o),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,o,u=0){return typeof n=="number"&&(n=new Ln(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,u)}},bt=class extends ft{constructor(n){super(8,n);this._lower=Gt(yt(),!1),this._upper=Gt(yt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,o=0){let u=this._lower.decode(n,o),m=this._upper.decode(n,o+this._lower.span);return C(C({},u),m)}encode(n,o,u=0){return this._lower.encode(n,o,u)+this._upper.encode(n,o,u+this._lower.span)}};function c(r){return new Ut(1,r)}function X(r){return new Ut(4,r)}function e(r){return new he(8,!1,r)}function O(r){return new he(16,!1,r)}function Nn(r){return new he(1,!0,r)}function Ne(r){return new he(8,!0,r)}function Mn(r){return new he(16,!0,r)}var je=class extends ft{constructor(n,o,u,m){super(n.span,m);this.layout=n,this.decoder=o,this.encoder=u}decode(n,o){return this.decoder(this.layout.decode(n,o))}encode(n,o,u){return this.layout.encode(this.encoder(n),o,u)}getSpan(n,o){return this.layout.getSpan(n,o)}};function i(r){return new je(N(32),t=>new li(t),t=>t.toBuffer(),r)}function ae(r){return new je(xn(),mi,di,r)}function mi(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function di(r){return r?1:0}function Fn(r,t){let n=yt("length"),o=l([n,f(r,Rn(n,-n.span),"values")]);return new je(o,({values:u})=>u,u=>({values:u}),t)}var zt=class extends Sn{decode(t,n){return super.decode(t,n)}};function l(r,t,n){return new zt(r,t,n)}function f(r,t,n){let o,u=typeof t=="number"?t:On(t)?t.toNumber():new Proxy(t,{get(m,d){if(!o){let p=Reflect.get(m,"count");o=On(p)?p.toNumber():p,Reflect.set(m,"count",o)}return Reflect.get(m,d)},set(m,d,p){return d==="count"&&(o=p),Reflect.set(m,d,p)}});return Cn(r,u,n)}var gt=l([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as pg,SystemProgram as fg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as bg}from"@solana/spl-token";import{PublicKey as Ll}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Nl}from"@solana/spl-token";import{PublicKey as A}from"@solana/web3.js";var Vn=new A("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),_n=new A("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),En=new A("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xt=new A("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Vl=new A("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),fi=new A("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Dn=new A("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Wn=new A("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),_l=new A("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),yi=new A("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qn=new A("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),bi=new A("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new A("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Un=new A("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),El=new A("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Pi=new A("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ai=new A("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),wi=new A("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ki=new A("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ti=new A("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Yt=new A("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),hi=new A("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Dl=new A("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ii=new A("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Bi=new A("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Si=new A("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Wl=new A("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ql=new A("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Ul=new A("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Gl=new A("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),zl=new A("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),$e={IDO_PROGRAM_ID_V1:Ai,IDO_PROGRAM_ID_V2:wi,IDO_PROGRAM_ID_V3:ki,IDO_PROGRAM_ID_V4:Ti};var Pe={OPEN_BOOK_PROGRAM:new A("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new A("Ray1111111111111111111111111111111111111111"),AMM_V4:new A("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new A("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new A("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new A("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new A("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new A("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new A("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new A("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new A("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new A("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:A.default,Router:new A("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new A("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new A("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new A("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new A("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new A("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new A("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new A("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new A("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new A("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new A("Ray1111111111111111111111111111111111111111")};import Sg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Uf,TOKEN_2022_PROGRAM_ID as Gf,TOKEN_PROGRAM_ID as zf}from"@solana/spl-token";import{PublicKey as Yf}from"@solana/web3.js";import Zf from"bn.js";import jf from"decimal.js";import{TOKEN_PROGRAM_ID as rm}from"@solana/spl-token";import{PublicKey as cm}from"@solana/web3.js";var xi=l([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as mf,TOKEN_2022_PROGRAM_ID as df,TOKEN_PROGRAM_ID as pf}from"@solana/spl-token";import{Keypair as bf,PublicKey as gf,SystemProgram as Af,TransactionInstruction as wf}from"@solana/web3.js";import Tf from"bn.js";import D from"bn.js";var Fe=new D(1).shln(64);var Ki=new D(1).shln(128),Qt=new D(1).shln(64).subn(1),Ci=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),Ri=new D("59543866431248"),Li=new D("184467440737095516"),Oi=new D("15793534762490258745");var Zt=60,km=new D("18446743708227953217"),Ni=[{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,Gn=100;var zn=10,Xn=100,At=14;var j=new D(0),_e=new D(1),Tm=new D(-1);var hm=new D("18446744073700000000");var Mi=l([N(8),c("bump"),H("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),f(X(),1),i("fundOwner"),f(e(),3)]),Fi=l([X("blockTimestamp"),Ne("tickCumulative"),f(e(),4)]),Yn=l([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),i("poolId"),f(Fi,Gn,"observations"),f(e(),4)]),vi=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),f(c(),46)]),Vi=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"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(O(),4),c("status"),c("feeOn"),N(6),f(Vi,Je,"rewardInfos"),N(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),vi.replicate("dynamicFeeInfo"),f(e(),46)]),_i=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Ei=l([N(8),c("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(_i,Je,"rewardInfos"),e("recentEpoch"),f(e(),7)]),xm=l([N(8),c("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(O(),Je,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Di=l([ue("tick"),Mn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(X(),3)]),Qn=l([N(8),i("poolId"),ue("startTickIndex"),f(Di,Zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),f(c(),107)]),Wi=l([N(8),c("bump"),f(i(),zn,"operationOwners"),f(i(),Xn,"whitelistMints")]),qi=l([N(8),i("poolId"),i("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),f(e(),4)]),Zn=l([N(8),i("poolId"),N(8*8*At,"positiveTickArrayBitmap"),N(8*8*At,"negativeTickArrayBitmap")]),Km=l([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(e(),8)]),Ui=l([N(8),i("wallet"),c("nonceIndex"),e("orderNonce"),f(e(),4)]),Cm=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),f(e(),8)]),Gi=l([N(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),f(e(),8)]);import Om from"bn.js";var Um=Buffer.from("amm_config","utf8"),zi=Buffer.from("pool","utf8"),Xi=Buffer.from("pool_vault","utf8"),Gm=Buffer.from("pool_reward_vault","utf8"),zm=Buffer.from("position","utf8"),Xm=Buffer.from("tick_array","utf8"),Ym=Buffer.from("operation","utf8"),Qm=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Zm=Buffer.from("observation","utf8"),Hm=Buffer.from("support_mint","utf8"),jm=Buffer.from("dynamic_fee_config","utf8");var $m=Buffer.from("locked_position","utf8");import{sha256 as sr}from"js-sha256";import Yi from"bn.js";import nd from"decimal.js";var id=new Yi(1).shln(256).subn(1);import Td from"bn.js";import md from"bn.js";import pd from"decimal.js";import xd from"bn.js";import Cd from"decimal.js";import{PublicKey as yp}from"@solana/web3.js";import gp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Bp}from"@solana/spl-token";import Cp from"decimal.js";import ip from"bn.js";import zd from"bn.js";import _p from"bn.js";function J(r){let t=`global:${r}`;return Buffer.from(sr.digest(t)).slice(0,8)}Yn.span;var Rf=E("Raydium_Clmm"),Lf={createPool:J("create_pool"),createCustomizablePool:J("create_customizable_pool"),openPositionV2:J("open_position_v2"),openPositionWithToken22Nft:J("open_position_with_token22_nft"),closePosition:J("close_position"),increaseLiquidityV2:J("increase_liquidity_v2"),decreaseLiquidityV2:J("decrease_liquidity_v2"),initializeReward:J("initialize_reward"),setRewardParams:J("set_reward_params"),updateRewardInfos:J("update_reward_infos"),collectRemainingRewards:J("collect_remaining_rewards"),swapV2:J("swap_v2"),openLimitOrder:J("open_limit_order"),increaseLimitOrder:J("increase_limit_order"),decreaseLimitOrder:J("decrease_limit_order"),settleLimitOrder:J("settle_limit_order"),closeLimitOrder:J("close_limit_order")};var to=(n=>(n.ALL="all",n.Strict="strict",n))(to||{}),no=(o=>(o.All="all",o.Standard="Standard",o.Concentrated="Concentrated",o))(no||{});import{PublicKey as tn}from"@solana/web3.js";var dr=l([c("instruction")]),pr=l([c("instruction")]),fr=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),i("rewardVault"),i("rewardMint"),i("rewardSender"),e("rewardType"),f(e(),15,"padding")]),yr=l([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),br=l([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),c("option"),i("rewardVaultB"),N(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),gr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),f(fr,5,"rewardInfos"),i("creator"),i(),f(e(),32,"padding")]),Pr=new Proxy(yr,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(C({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(r,t,n)}}),Ar=new Proxy(br,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(C({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(r,t,n)}}),oo=new Proxy(gr,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(C({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var d;return F(C({},m),{rewardType:((d=Object.entries(nt).find(p=>String(p[1])===m.rewardType.toString()))!=null?d:["Standard SPL"])[0]})})})}:Reflect.get(r,t,n)}}),wr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),kr=l([c("instruction"),e("nonce"),f(wr,5,"rewardTimeInfo")]),Tr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),hr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Ly=l([e("state"),i("id"),i("owner"),