UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 78.6 kB
var wo=Object.defineProperty,ko=Object.defineProperties;var To=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var ln=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable;var cn=(r,t,n)=>t in r?wo(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,R=(r,t)=>{for(var n in t||(t={}))ln.call(t,n)&&cn(r,n,t[n]);if(ot)for(var n of ot(t))mn.call(t,n)&&cn(r,n,t[n]);return r},F=(r,t)=>ko(r,To(t));var se=(r,t)=>{var n={};for(var o in r)ln.call(r,o)&&t.indexOf(o)<0&&(n[o]=r[o]);if(r!=null&&ot)for(var o of ot(r))t.indexOf(o)<0&&mn.call(r,o)&&(n[o]=r[o]);return n};import Po from"axios";import{PublicKey as Bo}from"@solana/web3.js";import{get as dn,set as ho}from"lodash";var St=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}},pn={},Io={};function E(r){let t=dn(pn,r);if(!t){let n=dn(Io,r);t=new St({name:r,logLevel:n}),ho(pn,r,t)}return t}import{MINT_SIZE as Na,TOKEN_PROGRAM_ID as Ma,getTransferFeeConfig as Fa,unpackMint as va}from"@solana/spl-token";var xt=E("Raydium_accountInfo_util");async function ye(r,t,n){let{batchRequest:o,commitment:u="confirmed",chunkCount:c=100}=R({batchRequest:!1},n),d=Kt(t,c),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=Kt(y,10);p=(await(await Promise.all(P.map(async h=>await r._rpcBatchRequest(h)))).flat()).map(h=>(h.error&&xt.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:A,owner:I,rentEpoch:x}=B;return K.length!==2&&K[1]!=="base64"&&xt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(K[0],"base64"),executable:M,lamports:A,owner:new Bo(I),rentEpoch:x}}return null})))}else try{p=await Promise.all(d.map(y=>r.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Ie from"bn.js";import nC from"decimal.js";import No from"big.js";import Ja from"bn.js";import So from"toformat";var xo=So,qe=xo;import rt from"big.js";import Co from"bn.js";import Ro from"decimal.js-light";import Ue from"bn.js";var fn=9007199254740991;function oe(r){let t=E("Raydium_parseBigNumberish");if(r instanceof Ue)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new Ue(r);t.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&t.logWithError(`BigNumberish number underflow: ${r}`),(r>=fn||r<=-fn)&&t.logWithError(`BigNumberish number overflow: ${r}`),new Ue(String(r))):typeof r=="bigint"?new Ue(r.toString()):(t.error(`invalid BigNumberish value: ${r}`),new Ue(0))}var it=E("module/fraction"),Ct=qe(rt),Ge=qe(Ro),Lo={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},Oo={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},U=class{constructor(t,n=new Co(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)||it.logWithError(`${t} is not an integer.`),t<=0&&it.logWithError(`${t} is not positive.`),Ge.set({precision:t+1,rounding:Lo[o]});let u=new Ge(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)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Ct.DP=t,Ct.RM=Oo[o]||1,new Ct(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var us=E("Raydium_amount"),cs=qe(No);import{PublicKey as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yn}from"@solana/spl-token";var at={chainId:101,address:Fo.default.toBase58(),programId:yn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:yn.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 Ot}from"@solana/web3.js";import{PublicKey as z,SystemProgram as bn,SYSVAR_RENT_PUBKEY as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Vo}from"@solana/spl-token";function Se({pubkey:r,isSigner:t=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:t}}var _o=[Se({pubkey:Vo,isWritable:!1}),Se({pubkey:bn.programId,isWritable:!1}),Se({pubkey:vo,isWritable:!1})];function Rt({publicKey:r,transformSol:t}){let n=gn(r.toString());if(n instanceof z)return t&&n.equals(we)?be:n;if(t&&n.toString()===we.toBase58())return be;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 gn(r){try{return new z(r)}catch{return r}}var Lt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ze=new z("SysvarRent111111111111111111111111111111111"),gs=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Eo=new z("Sysvar1nstructions1111111111111111111111111"),Do=bn.programId,Ps=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),As=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ws=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ks=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ts=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),hs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Is=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Bs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ss=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),xs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ks=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),we=z.default;function ge(r){return Rt({publicKey:r,transformSol:!0})}var Nt=class{constructor({mint:t,decimals:n,symbol:o,name:u,skipMint:c=!1,isToken2022:d=!1}){if(t===we.toBase58()||t instanceof Ot&&we.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Ot(le.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=c?Ot.default:Rt({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Nt;ee.WSOL=new Nt(F(R({},le),{mint:le.address}));var Mt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=o}equals(t){return this===t}},ut=Mt;ut.SOL=new Mt(at);import Wo from"bn.js";var Ds=new U(new Wo(100));var Xs=E("Raydium_price");import{merge as iK}from"lodash";import{PublicKey as al,SystemProgram as sl}from"@solana/web3.js";import{AccountLayout as dl,createAssociatedTokenAccountIdempotentInstruction as pl,TOKEN_PROGRAM_ID as fl,TOKEN_2022_PROGRAM_ID as yl}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Dt,SystemProgram as Yo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import Qo from"axios";import{PublicKey as Ft,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function vt({connection:r,address:t,cluster:n="mainnet"}){let o=await ye(r,[...new Set(t.map(c=>c.toString()))].map(c=>new Ft(c))),u={};for(let c=0;c<t.length;c++){let d=o[c],p=t[c];if(!d)continue;let y=new Ce({key:p,state:Ce.deserialize(d.data)});u[p.toString()]=y,n==="devnet"?Ke[p.toString()]=y:xe[p.toString()]=y}return u}var xe={},Vt=async r=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xe[t])return xe;let n=new Ft(t),o=await r.getAccountInfo(n);return o&&(xe[t]=new Ce({key:n,state:Ce.deserialize(o.data)})),xe},Ke={},_t=async r=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ke[t])return Ke;let n=new Ft(t),o=await r.getAccountInfo(n);return o&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(o.data)})),Ke};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 Pn,Keypair as wn,PublicKey as qo,Transaction as kn,TransactionMessage as Uo,VersionedTransaction as Tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";var An=E("Raydium_txUtil"),hn=1644;function ct(r){let t=[],n=[];return r.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(Z.SetComputeUnitPrice)),r.units&&(t.push(Pn.setComputeUnitLimit({units:r.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(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 lt(r,t){return r.getSignatureStatuses([t]),new Promise((n,o)=>{let u=setTimeout(o,6e4);r.onSignature(t,c=>{if(clearTimeout(u),!c.err){n("");return}o(Object.assign(c.err,{txId:t}))},"confirmed")})}function Et(r,t){r.length<1&&An.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function me(r,t){let[n,o]=qo.findProgramAddressSync(r,t);return{publicKey:n,nonce:o}}function Xe({instructions:r,payer:t,signers:n}){return Et(r,[t,...n])}function Ye({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:o=wn.generate().publicKey.toString()}){let c=new Uo({payerKey:t,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(c).serialize()).toString("base64").length<hn}catch{return!1}}var zo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Xo=r=>{let t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Tn&&(t=zo(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 kn&&(n.recentBlockhash||(n.recentBlockhash=Go.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(Xo(n))}),console.log("simulate tx string:",t),t}var mt=2e3,dt=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 Qo.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}=ct(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Yo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(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:c=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...u),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...d.filter(p=>p!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:o}){return t===0?await this.buildV0(F(R({},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:c,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},P=c!=null?c:await Re(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 Dt(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),c=n.filter(b=>b.transaction.instructions.length>0),d=[u,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.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:A=!0}=b||{},I=M!=null?M:await Re(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 Dt(this.connection,V,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});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:A})))),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=[],w=async()=>{if(!v[V])return;let k=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:A});g.push({txId:k,status:"sent",signedTx:v[V]}),B==null||B([...g]),V++;let C=!1,L=null,_=null,re=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=g.findIndex($=>$.txId===k);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||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,k)}},mt)),_=this.connection.onSignature(k,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:g.map(k=>k.txId),signedTxs:v}}else{let V=[];for(let g=0;g<v.length;g+=1){let w=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:A});V.push(w)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData: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 A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:o=[],forerunCreate:u,recentBlockhash:c}=M,d=se(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=R(R({},this.cluster==="devnet"?await _t(this.connection):await Vt(this.connection)),n),y=Array.from(new Set([...o,...this.lookupTableAddress])),P=[];for(let I of y)p[I]===void 0&&P.push(new Le(I));let b=await vt({connection:this.connection,address:P});for(let[I,x]of Object.entries(b))p[I]=x;let h=u?Le.default.toBase58():c!=null?c:await Re(this.connection,this.blockhashCommitment),B=new Ze({payerKey:this.feePayer,recentBlockhash:h,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((A=this.owner)==null?void 0:A.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 lt(this.connection,g),{txId:g,signedTx:K}}if(this.signAllTransactions){let g=await this.signAllTransactions([K]);if(this.signers.length)for(let w of g)try{w.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),c=n.filter(b=>b.builder.instructions.length>0),d=[u,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.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 A;let{sequentially:h,onTxUpdate:B,recentBlockHash:K,skipPreflight:M=!0}=b||{};if(K&&d.forEach(I=>I.message.recentBlockhash=K),ke(d),(A=this.owner)!=null&&A.isKeyPair){if(h){let I=[];for(let x of d){let S=await this.connection.sendTransaction(x,{skipPreflight:M});await lt(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,w=null,k=null,C=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);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&&(w=setInterval(async()=>{var L;if(g){clearInterval(w);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(g=!0,clearInterval(w),C({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){g=!0,clearInterval(w),console.error("getTransaction timeout:",_,V)}},mt)),k=this.connection.onSignature(V,L=>{if(g){this.connection.removeSignatureListener(k);return}g=!0,C(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"]),c=o?ct(o):{instructions:[],instructionTypes:[]},d=this.signers.reduce((K,M)=>F(R({},K),{[M.publicKey.toBase58()]:M}),{}),p=[],y=[],P=[],b=0;if(this.allInstructions.forEach(K=>{let M=[...P,K],A=o?[...c.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 Le(S));if(K!==n[b]&&P.length<12&&(Xe({instructions:A,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?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:x})?p.push(new Qe().add(...c.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(A=>A.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(A=>d[A]).filter(A=>A!==void 0);Xe({instructions:o?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?p.push(new Qe().add(...c.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:A,skipTxCount:I=0,recentBlockHash:x,skipPreflight:S=!0}=K||{},v=x!=null?x:await Re(this.connection,this.blockhashCommitment);if(p.forEach(async(g,w)=>{g.recentBlockhash=v,y[w].length&&g.sign(...y[w])}),ke(p),(V=this.owner)!=null&&V.isKeyPair){if(M){let g=0,w=[];for(let k of p){if(++g,g<=I){w.push("tx skipped");continue}let C=await Dt(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});w.push(C)}return{txIds:w,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)),w=[...p.slice(0,I),...g];if(M){let k=0,C=[],L=async()=>{if(!w[k])return;k<I&&(C.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...C]),k++,L());let _=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:S});C.push({txId:_,status:"sent",signedTx:w[k]}),A==null||A([...C]),k++;let re=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=C.findIndex(pe=>pe.txId===_);if(ne>-1){if(C[ne].status==="error"||C[ne].status==="success")return;C[ne].status=G.err?"error":"success"}A==null||A([...C]),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,_)}},mt)),W=this.connection.onSignature(_,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:C.map(_=>_.txId),signedTxs:w}}else{let k=[];for(let C=0;C<w.length;C+=1){let L=await this.connection.sendRawTransaction(w[C].serialize(),{skipPreflight:S});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 V;let v=t||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:u={},lookupTableAddress:c=[],insCountLimit:d=12}=v,p=se(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=R(R({},this.cluster==="devnet"?await _t(this.connection):await Vt(this.connection)),u),P=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let g of P)y[g]===void 0&&b.push(new Le(g));let h=await vt({connection:this.connection,address:b});for(let[g,w]of Object.entries(h))y[g]=w;let B=n?ct(n):{instructions:[],instructionTypes:[]},K=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((g,w)=>F(R({},g),{[w.publicKey.toBase58()]:w}),{}),A=[],I=[],x=[],S=0;if(this.allInstructions.forEach(g=>{let w=[...x,g],k=n?[...B.instructions,...w]:w;if(g!==o[S]&&x.length<d&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:y})||Ye({instructions:w,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 C={};for(let L of[...new Set(P)])y[L]!==void 0&&(C[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));A.push(new He(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(y));A.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 w=[...new Set(x.map(k=>k.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Ye({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:K})){let k=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));A.push(new He(k))}else{let k=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(y));A.push(new He(k))}I.push(w)}return(V=this.owner)!=null&&V.signer&&I.forEach(g=>{g.some(w=>w.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,w)=>{g.sign(I[w])}),{builder:this,transactions:A,buildProps:t,signers:I,instructionTypes:this.instructionTypes,execute:async g=>{var re;let{sequentially:w,onTxUpdate:k,skipTxCount:C=0,recentBlockHash:L,skipPreflight:_=!0}=g||{};if(A.map(async(q,W)=>{I[W].length&&q.sign(I[W]),L&&(q.message.recentBlockhash=L)}),ke(A),(re=this.owner)!=null&&re.isKeyPair){if(w){let q=0,W=[];for(let $ of A){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:_});await lt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(C,A.length)),W=[...A.slice(0,C),...q];if(w){let $=0,G=[],ne=async()=>{if(!W[$])return;if($<C){G.push({txId:"",status:"success",signedTx:W[$]}),k==null||k([...G]),$++,ne();return}let pe=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[$]}),k==null||k([...G]),$++;let We=!1,Be=null,nt=null,un=Ae=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let fe=G.findIndex(Ao=>Ao.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Ae.err?"error":"success"}k==null||k([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Ae;if(We){clearInterval(Be);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(We=!0,clearInterval(Be),un({err:((Ae=fe.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){We=!0,clearInterval(Be),console.error("getTransaction timeout:",fe,pe)}},mt)),nt=this.connection.onSignature(pe,Ae=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,un(Ae)},"confirmed"),this.connection.getSignatureStatus(pe)};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 Wt=(...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 dt({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(Wt(t))}logInfo(...t){this.logger.info(Wt(t))}logAndCreateError(...t){let n=Wt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Vc,SystemProgram as Ec}from"@solana/web3.js";import qc from"bn.js";import{createCloseAccountInstruction as Xc,createInitializeAccountInstruction as Yc,createTransferInstruction as Qc,TOKEN_PROGRAM_ID as Zc}from"@solana/spl-token";import{Keypair as Ic,PublicKey as Bc}from"@solana/web3.js";import Kc from"bn.js";import{TOKEN_PROGRAM_ID as Lc}from"@solana/spl-token";import{PublicKey as ai}from"@solana/web3.js";import Kn,{isBN as Cn}from"bn.js";import{bits as Zo,BitStructure as Cu,blob as Ho,Blob as Ru,cstr as Lu,f32 as Ou,f32be as Nu,f64 as Mu,f64be as Fu,greedy as vu,Layout as jo,ns64 as Vu,ns64be as _u,nu64 as Eu,nu64be as Du,offset as $o,s16 as Wu,s16be as qu,s24 as Uu,s24be as Gu,s32 as Jo,s32be as zu,s40 as Xu,s40be as Yu,s48 as Qu,s48be as Zu,s8 as Hu,seq as ei,struct as ju,Structure as ti,u16 as ni,u16be as $u,u24 as Ju,u24be as ec,u32 as oi,u32be as tc,u40 as nc,u40be as oc,u48 as ic,u48be as rc,u8 as ii,UInt as ri,union as ac,Union as sc,unionLayoutDiscriminator as uc,utf8 as cc}from"@solana/buffer-layout";var pt=jo,In=ti;var qt=ri;var Bn=ii,H=ni;var ft=oi;var ue=Jo;var Sn=ei;var N=Ho;var Ut=Zo,xn=$o;var he=class extends pt{constructor(n,o,u){super(n,u);this.blob=N(n),this.signed=o}decode(n,o=0){let u=new Kn(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 Kn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,u)}},yt=class extends pt{constructor(n){super(8,n);this._lower=Ut(ft(),!1),this._upper=Ut(ft(),!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),c=this._upper.decode(n,o+this._lower.span);return R(R({},u),c)}encode(n,o,u=0){return this._lower.encode(n,o,u)+this._upper.encode(n,o,u+this._lower.span)}};function l(r){return new qt(1,r)}function X(r){return new qt(4,r)}function e(r){return new he(8,!1,r)}function O(r){return new he(16,!1,r)}function Rn(r){return new he(1,!0,r)}function Oe(r){return new he(8,!0,r)}function Ln(r){return new he(16,!0,r)}var je=class extends pt{constructor(n,o,u,c){super(n.span,c);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 ai(t),t=>t.toBuffer(),r)}function ae(r){return new je(Bn(),si,ui,r)}function si(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ui(r){return r?1:0}function On(r,t){let n=ft("length"),o=m([n,f(r,xn(n,-n.span),"values")]);return new je(o,({values:u})=>u,u=>({values:u}),t)}var Gt=class extends In{decode(t,n){return super.decode(t,n)}};function m(r,t,n){return new Gt(r,t,n)}function f(r,t,n){let o,u=typeof t=="number"?t:Cn(t)?t.toNumber():new Proxy(t,{get(c,d){if(!o){let p=Reflect.get(c,"count");o=Cn(p)?p.toNumber():p,Reflect.set(c,"count",o)}return Reflect.get(c,d)},set(c,d,p){return d==="count"&&(o=p),Reflect.set(c,d,p)}});return Sn(r,u,n)}var bt=m([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),l("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as sg,SystemProgram as ug}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as lg}from"@solana/spl-token";import{PublicKey as Tl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Il}from"@solana/spl-token";import{PublicKey as T}from"@solana/web3.js";var Mn=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),zt=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Kl=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),li=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Cl=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),mi=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),di=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pi=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rl=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fi=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xt=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),yi=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ll=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Ol=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Nl=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Ml=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Fl=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vl=new T("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new T("Ray1111111111111111111111111111111111111111"),AMM_V4:new T("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new T("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new T("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new T("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new T("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new T("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new T("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new T("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:T.default,Router:new T("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new T("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new T("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new T("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new T("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new T("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new T("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new T("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new T("Ray1111111111111111111111111111111111111111")};import wg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Vf,TOKEN_2022_PROGRAM_ID as _f,TOKEN_PROGRAM_ID as Ef}from"@solana/spl-token";import{PublicKey as Wf}from"@solana/web3.js";import Uf from"bn.js";import zf from"decimal.js";import{TOKEN_PROGRAM_ID as Hl}from"@solana/spl-token";import{PublicKey as em}from"@solana/web3.js";var Ai=m([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as rf,TOKEN_2022_PROGRAM_ID as af,TOKEN_PROGRAM_ID as sf}from"@solana/spl-token";import{Keypair as lf,PublicKey as mf,SystemProgram as pf,TransactionInstruction as ff}from"@solana/web3.js";import bf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var wi=new D(1).shln(128),Yt=new D(1).shln(64).subn(1),ki=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),Ti=new D("59543866431248"),hi=new D("184467440737095516"),Ii=new D("15793534762490258745");var Qt=60,dm=new D("18446743708227953217"),Bi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var $e=3,Wn=100;var qn=10,Un=100,Pt=14;var j=new D(0),Ve=new D(1),pm=new D(-1);var fm=new D("18446744073700000000");var Si=m([N(8),l("bump"),H("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),f(X(),1),i("fundOwner"),f(e(),3)]),xi=m([X("blockTimestamp"),Oe("tickCumulative"),f(e(),4)]),Gn=m([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),i("poolId"),f(xi,Wn,"observations"),f(e(),4)]),Ki=m([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),f(l(),46)]),Ci=m([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),Zt=m([N(8),l("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(O(),4),l("status"),l("feeOn"),N(6),f(Ci,$e,"rewardInfos"),N(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ki.replicate("dynamicFeeInfo"),f(e(),46)]),Ri=m([O("growthInsideLastX64"),e("rewardAmountOwed")]),Li=m([N(8),l("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Ri,$e,"rewardInfos"),e("recentEpoch"),f(e(),7)]),Pm=m([N(8),l("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(O(),$e,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Oi=m([ue("tick"),Ln("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(X(),3)]),zn=m([N(8),i("poolId"),ue("startTickIndex"),f(Oi,Qt,"ticks"),l("initializedTickCount"),e("recentEpoch"),f(l(),107)]),Ni=m([N(8),l("bump"),f(i(),qn,"operationOwners"),f(i(),Un,"whitelistMints")]),Mi=m([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)]),Xn=m([N(8),i("poolId"),N(8*8*Pt,"positiveTickArrayBitmap"),N(8*8*Pt,"negativeTickArrayBitmap")]),Am=m([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(e(),8)]),Fi=m([N(8),i("wallet"),l("nonceIndex"),e("orderNonce"),f(e(),4)]),wm=m([e(),l("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),f(e(),8)]),vi=m([N(8),l("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),f(e(),8)]);import hm from"bn.js";var Mm=Buffer.from("amm_config","utf8"),Vi=Buffer.from("pool","utf8"),_i=Buffer.from("pool_vault","utf8"),Fm=Buffer.from("pool_reward_vault","utf8"),vm=Buffer.from("position","utf8"),Vm=Buffer.from("tick_array","utf8"),_m=Buffer.from("operation","utf8"),Em=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Dm=Buffer.from("observation","utf8"),Wm=Buffer.from("support_mint","utf8"),qm=Buffer.from("dynamic_fee_config","utf8");var Um=Buffer.from("locked_position","utf8");import{sha256 as Ji}from"js-sha256";import Ei from"bn.js";import Ym from"decimal.js";var Zm=new Ei(1).shln(256).subn(1);import pd from"bn.js";import nd from"bn.js";import id from"decimal.js";import Pd from"bn.js";import wd from"decimal.js";import{PublicKey as ap}from"@solana/web3.js";import up from"bn.js";import{TOKEN_2022_PROGRAM_ID as bp,TOKEN_PROGRAM_ID as gp}from"@solana/spl-token";import kp from"decimal.js";import Zd from"bn.js";import vd from"bn.js";import Op from"bn.js";function J(r){let t=`global:${r}`;return Buffer.from(Ji.digest(t)).slice(0,8)}Gn.span;var If=E("Raydium_Clmm"),Bf={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 $n=(n=>(n.ALL="all",n.Strict="strict",n))($n||{}),Jn=(o=>(o.All="all",o.Standard="Standard",o.Concentrated="Concentrated",o))(Jn||{});import{PublicKey as Jt}from"@solana/web3.js";var ir=m([l("instruction")]),rr=m([l("instruction")]),ar=m([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")]),sr=m([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),ur=m([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),l("option"),i("rewardVaultB"),N(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),cr=m([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),f(ar,5,"rewardInfos"),i("creator"),i(),f(e(),32,"padding")]),lr=new Proxy(sr,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(R({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(r,t,n)}}),mr=new Proxy(ur,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(R({},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)}}),eo=new Proxy(cr,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(R({},u),{version:6,rewardInfos:u.rewardInfos.map(c=>{var d;return F(R({},c),{rewardType:((d=Object.entries(tt).find(p=>String(p[1])===c.rewardType.toString()))!=null?d:["Standard SPL"])[0]})})})}:Reflect.get(r,t,n)}}),dr=m([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),pr=m([l("instruction"),e("nonce"),f(dr,5,"rewardTimeInfo")]),fr=m([l("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),yr=m([l("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),By=m([e("state"),i("id"),i("owner"),e("deposited"),f(e(),1,"rewardDebts")]),to=m([e("state"),i("id"),i("owner"),e("deposited"),f(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),f(e(),15)]),Sy=m([e("state"),i("id"),i("owner"),e("deposited"),f(e(),2,"rewardDebts")]),br=m([e("state"),i("id"),i("owner"),e("deposited"),f(O(),2,"rewardDebts")