UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 83.2 kB
var wo=Object.defineProperty,ko=Object.defineProperties;var To=Object.getOwnPropertyDescriptors;var ut=Object.getOwnPropertySymbols;var dn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable;var mn=(o,t,n)=>t in o?wo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,M=(o,t)=>{for(var n in t||(t={}))dn.call(t,n)&&mn(o,n,t[n]);if(ut)for(var n of ut(t))pn.call(t,n)&&mn(o,n,t[n]);return o},D=(o,t)=>ko(o,To(t));var le=(o,t)=>{var n={};for(var r in o)dn.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&ut)for(var r of ut(o))t.indexOf(r)<0&&pn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as rt,TransactionInstruction as de,Keypair as Na,SystemProgram as Lt}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as at,TOKEN_2022_PROGRAM_ID as cn,TOKEN_PROGRAM_ID as Pe}from"@solana/spl-token";import{PublicKey as Bo}from"@solana/web3.js";import{get as fn,set as ho}from"lodash";var Ot=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},yn={},Io={};function _(o){let t=fn(yn,o);if(!t){let n=fn(Io,o);t=new Ot({name:o,logLevel:n}),ho(yn,o,t)}return t}import{MINT_SIZE as Xa,TOKEN_PROGRAM_ID as Ya,getTransferFeeConfig as Qa,unpackMint as Za}from"@solana/spl-token";var Nt=_("Raydium_accountInfo_util");async function be(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:l=100}=M({batchRequest:!1},n),d=Mt(t,l),p=new Array(d.length).fill([]);if(r){let y=d.map(B=>{let h=o._buildArgs([B.map(w=>w.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:h}}),A=Mt(y,10);p=(await(await Promise.all(A.map(async B=>await o._rpcBatchRequest(B)))).flat()).map(B=>(B.error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${B.error.message}`),B.result.value.map(h=>{if(h){let{data:w,executable:K,lamports:g,owner:P,rentEpoch:k}=h;return w.length!==2&&w[1]!=="base64"&&Nt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:K,lamports:g,owner:new Bo(P),rentEpoch:k}}return null})))}else try{p=await Promise.all(d.map(y=>o.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Ke from"bn.js";import EC from"decimal.js";import No from"big.js";import ds from"bn.js";import So from"toformat";var Ko=So,ze=Ko;import lt from"big.js";import Co from"bn.js";import Ro from"decimal.js-light";import Xe from"bn.js";var bn=9007199254740991;function oe(o){let t=_("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=bn||o<=-bn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Xe(0))}var ct=_("module/fraction"),Ft=ze(lt),Ye=ze(Ro),Lo={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},Oo={[0]:lt.roundDown,[1]:lt.roundHalfUp,[2]:lt.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:""},r=1){Number.isInteger(t)||ct.logWithError(`${t} is not an integer.`),t<=0&&ct.logWithError(`${t} is not positive.`),Ye.set({precision:t+1,rounding:Lo[r]});let u=new Ye(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||ct.logWithError(`${t} is not an integer.`),t<0&&ct.logWithError(`${t} is negative.`),Ft.DP=t,Ft.RM=Oo[r]||1,new Ft(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var ks=_("Raydium_amount"),Ts=ze(No);import{PublicKey as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gn}from"@solana/spl-token";var mt={chainId:101,address:Fo.default.toBase58(),programId:gn.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:gn.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 vt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as Pn,SYSVAR_RENT_PUBKEY as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Vo}from"@solana/spl-token";function Ce({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var _o=[Ce({pubkey:Vo,isWritable:!1}),Ce({pubkey:Pn.programId,isWritable:!1}),Ce({pubkey:vo,isWritable:!1})];function An({publicKey:o,transformSol:t}){let n=wn(o.toString());if(n instanceof z)return t&&n.equals(ke)?ge:n;if(t&&n.toString()===ke.toBase58())return ge;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function wn(o){try{return new z(o)}catch{return o}}var Qe=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Te=new z("SysvarRent111111111111111111111111111111111"),Rs=new z("SysvarC1ock11111111111111111111111111111111"),he=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Eo=new z("Sysvar1nstructions1111111111111111111111111"),kn=Pn.programId,Ls=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Os=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ns=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ms=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Fs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),vs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Vs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),_s=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Es=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ds=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ws=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new z("So11111111111111111111111111111111111111112"),ke=z.default;var Vt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:l=!1,isToken2022:d=!1}){if(t===ke.toBase58()||t instanceof vt&&ke.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new vt(me.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=l?vt.default:An({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Vt;J.WSOL=new Vt(D(M({},me),{mint:me.address}));var _t=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},dt=_t;dt.SOL=new _t(mt);import Do from"bn.js";var Js=new U(new Do(100));var ru=_("Raydium_price");import{merge as Wx}from"lodash";import fu from"axios";var Tn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Wo=D(M({},Tn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Vu=_("Raydium_Api");import{PublicKey as nm,SystemProgram as om}from"@solana/web3.js";import{AccountLayout as um,createAssociatedTokenAccountIdempotentInstruction as cm,TOKEN_PROGRAM_ID as lm,TOKEN_2022_PROGRAM_ID as mm}from"@solana/spl-token";import{PublicKey as Me,sendAndConfirmTransaction as Gt,SystemProgram as Yo,Transaction as je,TransactionMessage as $e,VersionedTransaction as Je}from"@solana/web3.js";import Qo from"axios";import{PublicKey as Et,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Dt({connection:o,address:t,cluster:n="mainnet"}){let r=await be(o,[...new Set(t.map(l=>l.toString()))].map(l=>new Et(l))),u={};for(let l=0;l<t.length;l++){let d=r[l],p=t[l];if(!d)continue;let y=new Oe({key:p,state:Oe.deserialize(d.data)});u[p.toString()]=y,n==="devnet"?Le[p.toString()]=y:Re[p.toString()]=y}return u}var Re={},Wt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[t])return Re;let n=new Et(t),r=await o.getAccountInfo(n);return r&&(Re[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Re},Le={},qt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[t])return Le;let n=new Et(t),r=await o.getAccountInfo(n);return r&&(Le[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Le};var Y={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 hn,Keypair as Bn,PublicKey as qo,Transaction as Sn,TransactionMessage as Uo,VersionedTransaction as Kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";var In=_("Raydium_txUtil"),xn=1644;function pt(o){let t=[],n=[];return o.microLamports&&(t.push(hn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Y.SetComputeUnitPrice)),o.units&&(t.push(hn.setComputeUnitLimit({units:o.units})),n.push(Y.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ne(o,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:u.blockhash}async function ft(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);o.onSignature(t,l=>{if(clearTimeout(u),!l.err){n("");return}r(Object.assign(l.err,{txId:t}))},"confirmed")})}function Ut(o,t){o.length<1&&In.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&In.logWithError(`no signers provided:, ${t.toString()}`);let n=new Sn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<xn}catch{return!1}}function ie(o,t){let[n,r]=qo.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Ze({instructions:o,payer:t,signers:n}){return Ut(o,[t,...n])}function He({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Bn.generate().publicKey.toString()}){let l=new Uo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Kn(l).serialize()).toString("base64").length<xn}catch{return!1}}var zo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Xo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Kn&&(t=zo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ie(o){let t=[];return o.forEach(n=>{n instanceof Sn&&(n.recentBlockhash||(n.recentBlockhash=Go.toBase58()),n.feePayer||(n.feePayer=Bn.generate().publicKey)),t.push(Xo(n))}),console.log("simulate tx string:",t),t}var yt=2e3,bt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await Qo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=pt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Yo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Me(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Y.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:l=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...l),this.lookupTableAddress.push(...d.filter(p=>p!==Me.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(D(M({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var f;let{recentBlockHash:l,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},A=l!=null?l:await Ne(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Ie([n]),(f=this.owner)!=null&&f.isKeyPair)return{txId:p?await Gt(this.connection,n,this.signers.find(h=>h.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 B=await this.signAllTransactions([n]);if(this.signers.length)for(let h of B)try{h.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(B[0].serialize(),{skipPreflight:d}),signedTx:B[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var A;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),l=n.filter(f=>f.transaction.instructions.length>0),d=[u,...l.map(f=>f.transaction)],p=[this.signers,...l.map(f=>f.signers)],y=[...this.instructionTypes,...l.map(f=>f.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(f=>{f.some(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:y,execute:async f=>{var k;let{sequentially:B,onTxUpdate:h,skipTxCount:w=0,recentBlockHash:K,skipPreflight:g=!0}=f||{},P=K!=null?K:await Ne(this.connection,this.blockhashCommitment);if((k=this.owner)!=null&&k.isKeyPair){if(B){let I=[],O=0;for(let N of d){if(++O,O<=w)continue;let T=await Gt(this.connection,N,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});I.push(T)}return{txIds:I,signedTxs:d}}return{txIds:await await Promise.all(d.map(async I=>(I.recentBlockhash=P,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:g})))),signedTxs:d}}if(this.signAllTransactions){let I=d.map((N,T)=>(N.recentBlockhash=P,p[T].length&&N.sign(...p[T]),N));Ie(I);let O=await this.signAllTransactions(I);if(B){let N=0,T=[],x=async()=>{if(!O[N])return;let S=await this.connection.sendRawTransaction(O[N].serialize(),{skipPreflight:g});T.push({txId:S,status:"sent",signedTx:O[N]}),h==null||h([...T]),N++;let C=!1,L=null,V=null,te=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=T.findIndex($=>$.txId===S);if(W>-1){if(T[W].status==="error"||T[W].status==="success")return;T[W].status=q.err?"error":"success"}h==null||h([...T]),q.err||x()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),te({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",S))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,S)}},yt)),V=this.connection.onSignature(S,q=>{if(C){this.connection.removeSignatureListener(V);return}C=!0,te(q)},"confirmed"),this.connection.getSignatureStatus(S)};return await x(),{txIds:T.map(S=>S.txId),signedTxs:O}}else{let N=[];for(let T=0;T<O.length;T+=1){let x=await this.connection.sendRawTransaction(O[T].serialize(),{skipPreflight:g});N.push(x)}return{txIds:N,signedTxs:O}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var g;let K=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:l}=K,d=le(K,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=M(M({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),n),y=Array.from(new Set([...r,...this.lookupTableAddress])),A=[];for(let P of y)p[P]===void 0&&A.push(new Me(P));let f=await Dt({connection:this.connection,address:A});for(let[P,k]of Object.entries(f))p[P]=k;let B=u?Me.default.toBase58():l!=null?l:await Ne(this.connection,this.blockhashCommitment),h=new $e({payerKey:this.feePayer,recentBlockhash:B,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new Je(h);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var N;let{skipPreflight:k=!0,sendAndConfirm:I,notSendToRpc:O}=P||{};if(Ie([w]),(N=this.owner)!=null&&N.isKeyPair){let T=await this.connection.sendTransaction(w,{skipPreflight:k});return I&&await ft(this.connection,T),{txId:T,signedTx:w}}if(this.signAllTransactions){let T=await this.signAllTransactions([w]);if(this.signers.length)for(let x of T)try{x.sign(this.signers)}catch{}return{txId:O?"":await this.connection.sendTransaction(T[0],{skipPreflight:k}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var A;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),l=n.filter(f=>f.builder.instructions.length>0),d=[u,...l.map(f=>f.transaction)],p=[this.signers,...l.map(f=>f.signers)],y=[...this.instructionTypes,...l.map(f=>f.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(f=>{f.some(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(f,B)=>{f.sign(p[B])}),{builder:this,transactions:d,signers:p,instructionTypes:y,buildProps:r,execute:async f=>{var g;let{sequentially:B,onTxUpdate:h,recentBlockHash:w,skipPreflight:K=!0}=f||{};if(w&&d.forEach(P=>P.message.recentBlockhash=w),Ie(d),(g=this.owner)!=null&&g.isKeyPair){if(B){let P=[];for(let k of d){let I=await this.connection.sendTransaction(k,{skipPreflight:K});await ft(this.connection,I),P.push(I)}return{txIds:P,signedTxs:d}}return{txIds:await Promise.all(d.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:K}))),signedTxs:d}}if(this.signAllTransactions){let P=await this.signAllTransactions(d);if(B){let k=0,I=[],O=async()=>{if(!P[k])return;let N=await this.connection.sendTransaction(P[k],{skipPreflight:K});I.push({txId:N,status:"sent",signedTx:P[k]}),h==null||h([...I]),k++;let T=!1,x=null,S=null,C=L=>{x!==null&&clearInterval(x),S!==null&&this.connection.removeSignatureListener(S);let V=I.findIndex(te=>te.txId===N);if(V>-1){if(I[V].status==="error"||I[V].status==="success")return;I[V].status=L.err?"error":"success"}h==null||h([...I]),L.err||O()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var L;if(T){clearInterval(x);return}try{let V=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(T=!0,clearInterval(x),C({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",N))}catch(V){T=!0,clearInterval(x),console.error("getTransaction timeout:",V,N)}},yt)),S=this.connection.onSignature(N,L=>{if(T){this.connection.removeSignatureListener(S);return}T=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(N)};return O(),{txIds:[],signedTxs:P}}else{let k=[];for(let I=0;I<P.length;I+=1){let O=await this.connection.sendTransaction(P[I],{skipPreflight:K});k.push(O)}return{txIds:k,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var h;let B=t||{},{splitIns:n=[],computeBudgetConfig:r}=B,u=le(B,["splitIns","computeBudgetConfig"]),l=r?pt(r):{instructions:[],instructionTypes:[]},d=this.signers.reduce((w,K)=>D(M({},w),{[K.publicKey.toBase58()]:K}),{}),p=[],y=[],A=[],f=0;if(this.allInstructions.forEach(w=>{let K=[...A,w],g=r?[...l.instructions,...K]:K,k=[...new Set(K.map(I=>I.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(I=>new Me(I));if(w!==n[f]&&A.length<12&&(Ze({instructions:g,payer:this.feePayer,signers:k})||Ze({instructions:K,payer:this.feePayer,signers:k})))A.push(w);else{if(A.length===0)throw Error("item ins too big");f+=w===n[f]?1:0,Ze({instructions:r?[...l.instructions,...A]:[...A],payer:this.feePayer,signers:k})?p.push(new je().add(...l.instructions,...A)):p.push(new je().add(...A)),y.push(Array.from(new Set(A.map(I=>I.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(I=>d[I]).filter(I=>I!==void 0)),A=[w]}}),A.length>0){let K=[...new Set(A.map(g=>g.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(g=>d[g]).filter(g=>g!==void 0);Ze({instructions:r?[...l.instructions,...A]:[...A],payer:this.feePayer,signers:K.map(g=>g.publicKey)})?p.push(new je().add(...l.instructions,...A)):p.push(new je().add(...A)),y.push(K)}return p.forEach(w=>w.feePayer=this.feePayer),(h=this.owner)!=null&&h.signer&&y.forEach(w=>{w.some(K=>K.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:p,signers:y,instructionTypes:this.instructionTypes,execute:async w=>{var N;let{sequentially:K,onTxUpdate:g,skipTxCount:P=0,recentBlockHash:k,skipPreflight:I=!0}=w||{},O=k!=null?k:await Ne(this.connection,this.blockhashCommitment);if(p.forEach(async(T,x)=>{T.recentBlockhash=O,y[x].length&&T.sign(...y[x])}),Ie(p),(N=this.owner)!=null&&N.isKeyPair){if(K){let T=0,x=[];for(let S of p){if(++T,T<=P){x.push("tx skipped");continue}let C=await Gt(this.connection,S,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});x.push(C)}return{txIds:x,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:I}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p.slice(P,p.length)),x=[...p.slice(0,P),...T];if(K){let S=0,C=[],L=async()=>{if(!x[S])return;S<P&&(C.push({txId:"",status:"success",signedTx:x[S]}),g==null||g([...C]),S++,L());let V=await this.connection.sendRawTransaction(x[S].serialize(),{skipPreflight:I});C.push({txId:V,status:"sent",signedTx:x[S]}),g==null||g([...C]),S++;let te=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=C.findIndex(fe=>fe.txId===V);if(ne>-1){if(C[ne].status==="error"||C[ne].status==="success")return;C[ne].status=G.err?"error":"success"}g==null||g([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(te){clearInterval(q);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(te=!0,clearInterval(q),$({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){te=!0,clearInterval(q),console.error("getTransaction timeout:",ne,V)}},yt)),W=this.connection.onSignature(V,G=>{if(te){this.connection.removeSignatureListener(W);return}te=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:C.map(V=>V.txId),signedTxs:x}}else{let S=[];for(let C=0;C<x.length;C+=1){let L=await this.connection.sendRawTransaction(x[C].serialize(),{skipPreflight:I});S.push(L)}return{txIds:S,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var N;let O=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:l=[],insCountLimit:d=12}=O,p=le(O,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=M(M({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),u),A=Array.from(new Set([...this.lookupTableAddress,...l])),f=[];for(let T of A)y[T]===void 0&&f.push(new Me(T));let B=await Dt({connection:this.connection,address:f});for(let[T,x]of Object.entries(B))y[T]=x;let h=n?pt(n):{instructions:[],instructionTypes:[]},w=await Ne(this.connection,this.blockhashCommitment),K=this.signers.reduce((T,x)=>D(M({},T),{[x.publicKey.toBase58()]:x}),{}),g=[],P=[],k=[],I=0;if(this.allInstructions.forEach(T=>{let x=[...k,T],S=n?[...h.instructions,...x]:x;if(T!==r[I]&&k.length<d&&(He({instructions:S,payer:this.feePayer,lookupTableAddressAccount:y})||He({instructions:x,payer:this.feePayer,lookupTableAddressAccount:y})))k.push(T);else{if(k.length===0)throw Error("item ins too big");I+=T===r[I]?1:0;let C={};for(let L of[...new Set(A)])y[L]!==void 0&&(C[L]=y[L]);if(n&&He({instructions:[...h.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:w})){let L=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...h.instructions,...k]}).compileToV0Message(Object.values(y));g.push(new Je(L))}else{let L=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k]}).compileToV0Message(Object.values(y));g.push(new Je(L))}P.push(Array.from(new Set(k.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>K[L]).filter(L=>L!==void 0)),k=[T]}}),k.length>0){let x=[...new Set(k.map(S=>S.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(S=>K[S]).filter(S=>S!==void 0);if(n&&He({instructions:[...h.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:w})){let S=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...h.instructions,...k]}).compileToV0Message(Object.values(y));g.push(new Je(S))}else{let S=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k]}).compileToV0Message(Object.values(y));g.push(new Je(S))}P.push(x)}return(N=this.owner)!=null&&N.signer&&P.forEach(T=>{T.some(x=>x.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),g.forEach((T,x)=>{T.sign(P[x])}),{builder:this,transactions:g,buildProps:t,signers:P,instructionTypes:this.instructionTypes,execute:async T=>{var te;let{sequentially:x,onTxUpdate:S,skipTxCount:C=0,recentBlockHash:L,skipPreflight:V=!0}=T||{};if(g.map(async(q,W)=>{P[W].length&&q.sign(P[W]),L&&(q.message.recentBlockhash=L)}),Ie(g),(te=this.owner)!=null&&te.isKeyPair){if(x){let q=0,W=[];for(let $ of g){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:V});await ft(this.connection,G),W.push(G)}return{txIds:W,signedTxs:g}}return{txIds:await Promise.all(g.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:g}}if(this.signAllTransactions){let q=await this.signAllTransactions(g.slice(C,g.length)),W=[...g.slice(0,C),...q];if(x){let $=0,G=[],ne=async()=>{if(!W[$])return;if($<C){G.push({txId:"",status:"success",signedTx:W[$]}),S==null||S([...G]),$++,ne();return}let fe=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:fe,status:"sent",signedTx:W[$]}),S==null||S([...G]),$++;let Ue=!1,xe=null,st=null,ln=we=>{xe!==null&&clearInterval(xe),st!==null&&this.connection.removeSignatureListener(st);let ye=G.findIndex(Ao=>Ao.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=we.err?"error":"success"}S==null||S([...G]),we.err||ne()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var we;if(Ue){clearInterval(xe);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(Ue=!0,clearInterval(xe),ln({err:((we=ye.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){Ue=!0,clearInterval(xe),console.error("getTransaction timeout:",ye,fe)}},yt)),st=this.connection.onSignature(fe,we=>{if(Ue){this.connection.removeSignatureListener(st);return}Ue=!0,ln(we)},"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:V});$.push(ne)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var zt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),re=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new bt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(zt(t))}logInfo(...t){this.logger.info(zt(t))}logAndCreateError(...t){let n=zt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Nl,SystemProgram as Fl}from"@solana/web3.js";import _l from"bn.js";import{createCloseAccountInstruction as ql,createInitializeAccountInstruction as Ul,createTransferInstruction as Gl,TOKEN_PROGRAM_ID as zl}from"@solana/spl-token";import{Keypair as wl,PublicKey as kl}from"@solana/web3.js";import Il from"bn.js";import{TOKEN_PROGRAM_ID as Kl}from"@solana/spl-token";import{PublicKey as ai}from"@solana/web3.js";import Nn,{isBN as Mn}from"bn.js";import{bits as Zo,BitStructure as Bc,blob as Ho,Blob as Sc,cstr as Kc,f32 as xc,f32be as Cc,f64 as Rc,f64be as Lc,greedy as Oc,Layout as jo,ns64 as Nc,ns64be as Mc,nu64 as Fc,nu64be as vc,offset as $o,s16 as Vc,s16be as _c,s24 as Ec,s24be as Dc,s32 as Jo,s32be as Wc,s40 as qc,s40be as Uc,s48 as Gc,s48be as zc,s8 as Xc,seq as ei,struct as Yc,Structure as ti,u16 as ni,u16be as Qc,u24 as Zc,u24be as Hc,u32 as oi,u32be as jc,u40 as $c,u40be as Jc,u48 as el,u48be as tl,u8 as ii,UInt as ri,union as nl,Union as ol,unionLayoutDiscriminator as il,utf8 as rl}from"@solana/buffer-layout";var gt=jo,Cn=ti;var Xt=ri;var Rn=ii,Q=ni;var Pt=oi;var ue=Jo;var Ln=ei;var v=Ho;var Yt=Zo,On=$o;var Se=class extends gt{constructor(n,r,u){super(n,u);this.blob=v(n),this.signed=r}decode(n,r=0){let u=new Nn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new Nn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},At=class extends gt{constructor(n){super(8,n);this._lower=Yt(Pt(),!1),this._upper=Yt(Pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),l=this._upper.decode(n,r+this._lower.span);return M(M({},u),l)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function m(o){return new Xt(1,o)}function X(o){return new Xt(4,o)}function e(o){return new Se(8,!1,o)}function F(o){return new Se(16,!1,o)}function Fn(o){return new Se(1,!0,o)}function Fe(o){return new Se(8,!0,o)}function vn(o){return new Se(16,!0,o)}var et=class extends gt{constructor(n,r,u,l){super(n.span,l);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new et(v(32),t=>new ai(t),t=>t.toBuffer(),o)}function se(o){return new et(Rn(),si,ui,o)}function si(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function ui(o){return o?1:0}function Vn(o,t){let n=Pt("length"),r=c([n,b(o,On(n,-n.span),"values")]);return new et(r,({values:u})=>u,u=>({values:u}),t)}var Qt=class extends Cn{decode(t,n){return super.decode(t,n)}};function c(o,t,n){return new Qt(o,t,n)}function b(o,t,n){let r,u=typeof t=="number"?t:Mn(t)?t.toNumber():new Proxy(t,{get(l,d){if(!r){let p=Reflect.get(l,"count");r=Mn(p)?p.toNumber():p,Reflect.set(l,"count",r)}return Reflect.get(l,d)},set(l,d,p){return d==="count"&&(r=p),Reflect.set(l,d,p)}});return Ln(o,u,n)}var wt=c([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),m("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as oP,SystemProgram as iP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as aP}from"@solana/spl-token";import{PublicKey as li}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mi}from"@solana/spl-token";function ae(o,t,n){return ie([o.toBuffer(),(n!=null?n:mi).toBuffer(),t.toBuffer()],new li("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as R}from"@solana/web3.js";var En=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Dn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Wn=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Zt=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Tm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),di=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qn=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Un=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),hm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),pi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Gn=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),fi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),yi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zn=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Im=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),bi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Tt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Xn=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),gi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Pi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ai=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Sm=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Km=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),xm=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Cm=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Rm=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ae={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import bP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as My,TOKEN_2022_PROGRAM_ID as Fy,TOKEN_PROGRAM_ID as vy}from"@solana/spl-token";import{PublicKey as _y}from"@solana/web3.js";import Dy from"bn.js";import qy from"decimal.js";import{TOKEN_PROGRAM_ID as Gm}from"@solana/spl-token";import{PublicKey as Qm}from"@solana/web3.js";var wi=c([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),m("decimals"),m("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ny,TOKEN_2022_PROGRAM_ID as oy,TOKEN_PROGRAM_ID as iy}from"@solana/spl-token";import{Keypair as sy,PublicKey as uy,SystemProgram as ly,TransactionInstruction as my}from"@solana/web3.js";import py from"bn.js";import E from"bn.js";var Ve=new E(1).shln(64);var ki=new E(1).shln(128),Ht=new E(1).shln(64).subn(1),Ti=new E(1).shln(128).subn(1);var _e=new E("4295048016"),Ee=new E("79226673521066979257578248091"),hi=new E("59543866431248"),Ii=new E("184467440737095516"),Bi=new E("15793534762490258745");var jt=60,ad=new E("18446743708227953217"),Si=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var tt=3,Yn=100;var Qn=10,Zn=100,ht=14;var H=new E(0),De=new E(1),sd=new E(-1);var ud=new E("18446744073700000000");var Ki=c([v(8),m("bump"),Q("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Q("tickSpacing"),X("fundFeeRate"),b(X(),1),i("fundOwner"),b(e(),3)]),xi=c([X("blockTimestamp"),Fe("tickCumulative"),b(e(),4)]),Hn=c([v(8),se("initialized"),e("recentEpoch"),Q("observationIndex"),i("poolId"),b(xi,Yn,"observations"),b(e(),4)]),Ci=c([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),b(m(),46)]),Ri=c([m("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),F("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),F("growthGlobalX64")]),$t=c([v(8),m("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),Q("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),ue("tickCurrent"),X(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),b(F(),4),m("status"),m("feeOn"),v(6),b(Ri,tt,"rewardInfos"),v(8*16,"tickArrayBitmap"),b(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ci.replicate("dynamicFeeInfo"),b(e(),46)]),Li=c([F("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=c([v(8),m("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(Li,tt,"rewardInfos"),e("recentEpoch"),b(e(),7)]),dd=c([v(8),m("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(F(),tt,"rewardGrowthInside"),e("recentEpoch"),b(e(),7)]),Ni=c([ue("tick"),vn("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),b(F(),tt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),F("unfilledRatioX64"),b(X(),3)]),jn=c([v(8),i("poolId"),ue("startTickIndex"),b(Ni,jt,"ticks"),m("initializedTickCount"),e("recentEpoch"),b(m(),107)]),Mi=c([v(8),m("bump"),b(i(),Qn,"operationOwners"),b(i(),Zn,"whitelistMints")]),Fi=c([v(8),i("poolId"),i("owner"),ue("tick"),se("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),F("unfilledRatioX64"),b(e(),4)]),$n=c([v(8),i("poolId"),v(8*8*ht,"positiveTickArrayBitmap"),v(8*8*ht,"negativeTickArrayBitmap")]),pd=c([v(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),b(e(),8)]),vi=c([v(8),i("wallet"),m("nonceIndex"),e("orderNonce"),b(e(),4)]),fd=c([e(),m("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),b(e(),8)]),Vi=c([v(8),m("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),b(e(),8)]);import gd from"bn.js";var xd=Buffer.from("amm_config","utf8"),Ei=Buffer.from("pool","utf8"),Di=Buffer.from("pool_vault","utf8"),Cd=Buffer.from("pool_reward_vault","utf8"),Rd=Buffer.from("position","utf8"),Ld=Buffer.from("tick_array","utf8"),Od=Buffer.from("operation","utf8"),Nd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Md=Buffer.from("observation","utf8"),Fd=Buffer.from("support_mint","utf8"),vd=Buffer.from("dynamic_fee_config","utf8"),Vd=Buffer.from("permission","utf8");function It(o){return ie([Buffer.from("metadata","utf8"),he.toBuffer(),o.toBuffer()],he)}var _d=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Wi from"bn.js";import qd from"decimal.js";var Gd=new Wi(1).shln(256).subn(1);import up from"bn.js";import jd from"bn.js";import Jd from"decimal.js";import pp from"bn.js";import yp from"decimal.js";import{PublicKey as tf}from"@solana/web3.js";import of from"bn.js";import{TOKEN_2022_PROGRAM_ID as df,TOKEN_PROGRAM_ID as pf}from"@solana/spl-token";import gf from"decimal.js";import Gp from"bn.js";import Lp from"bn.js";import xf from"bn.js";function j(o){let t=`global:${o}`;return Buffer.from(tr.digest(t)).slice(0,8)}Hn.span;var ky=_("Raydium_Clmm"),Ty={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_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")};import{PublicKey as nn}from"@solana/web3.js";var rr=c([m("instruction")]),ar=c([m("instruction")]),sr=c([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),F("accRewardPerShare"),i("rewardVault"),i("rewardMint"),i("rewardSender"),e("rewardType"),b(e(),15,"padding")]),ur=c([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),F("perShareReward"),e("lastSlot"),e("perSlotReward")]),cr=c([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),F("perShareRewardA"),e("perSlotRewardA"),m("option"),i("rewardVaultB"),v(7),e("totalRewardB"),F("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),lr=c([e(),e("state"),e("nonce"),e("validRewardTokenNum"),F("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),b(sr,5,"rewardInfos"),i("creator"),i(),b(e(),32,"padding")]),mr=new Proxy(ur,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return D(M({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(o,t,n)}}),dr=new Proxy(cr,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return D(M({},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(o,t,n)}}),io=new Proxy(lr,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return D(M({},u),{version:6,rewardInfos:u.rewardInfos.map(l=>{var d;return D(M({},l),{rewardType:((d=Object.entries(it).find(p=>String(p[1])===l.rewardType.toString()))!=null?d:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),pr=c([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),fr=c([m("instruction"),e("nonce"),b(pr,5,"rewardTimeInfo")]),yr=c([m("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),br=c([m("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),kb=c([e("state"),i("id"),i("owner"),e("deposited"),b(e(),1,"rewardDebts")]),ro=c([e("state"),i("id"),i("owner"),e("deposited"),b(F(),1,"rewardDebts"),e(""),e("voteLockedBalance"),b(e(),15)]),Tb=c([e("state"),i("id"),i("owner"),e("deposited"),b(e(),2,"rewardDebts")]),gr=c([e("state"),i("id"),i("owner"),e("deposited"),b(F(),2,"rewardDebts"),b(e(),17)]),Pr=c([e(),e("state"),i("id"),i("owner"),e("deposited"),b(F(),5,"rewardDebts"),b(e(),16)]),Ar=c([m("instruction"),e("amount")]),wr=c([i("mint"),i("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Fn("digitShift"),b(m(),7,"reserved1"),b(e(),7,"reserved2")]),kr=c([v(8),i("governanceProgramId"),i("realm"),i("realmGoverningTokenMint"),i("realmAuthority"),b(m(),32,"reserved1"),b(wr,4,"votingMints"),Fe("timeOffset"),m("bump"),b(m(),7,"reserved2"),b(e(),11,"reserved3")]),Tr=c([Fe("startTime"),Fe("endTime"),m("kind"),b(m(),15,"reserved")]),hr=c([b(Tr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),se("isUsed"),se("allowClawback"),m("votingMintConfigIdx"),b(m(),29,"reserved")]),Ir=c([v(8),i("voterAuthority"),i("registrar"),b(hr,32,"deposits"),m("voterBump"),m("voterWweightRecordBump"),b(m(),94,"reserved")]);import{NATIVE_MINT as Lb}from"@solana/spl-token";var Ob=_("Raydium_farm_config"),Br=new nn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sr=new nn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Nb=new nn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var it={"Standard SPL":0,"Option tokens":1},ao={[En.toString()]:3,[Dn.toString()]:4,[Wn.toString()]:5,[Zt.toString()]:6,[Ae.FARM_PROGRAM_ID_V3.toString()]:3,[Ae.FARM_PROGRAM_ID_V4.toString()]:4,[Ae.FARM_PROGRAM_ID_V5.toString()]:5,[Ae.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Pg,SystemProgram as Ag,SYSVAR_CLOCK_PUBKEY as wg,SYSVAR_RENT_PUBKEY as kg,TransactionInstruction as Tg}from"@solana/web3.js";import Ig from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Sg,createAssociatedTokenAccountIdempotentInstruction as Kg,TOKEN_PROGRAM_ID as xg}from"@solana/spl-token";import Qb from"bn.js";import{PublicKey as Eb}from"@solana/web3.js";import Wb from"bn.js";var sg=_("Raydium.farm.util");var Eg=_("Raydium_farm_instruction"),Dg={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import KP from"bn.js";import{PublicKey as Fw}from"@solana/web3.js";import{AccountLayout as _w,MintLayout as Ew,NATIVE_MINT as Dw,TOKEN_PROGRAM_ID as qw}from"@solana/spl-token";import RP from"bn.js";import uo from"bn.js";var Mr=new uo(25),Fr=new uo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as $P,TOKEN_PROGRAM_ID as JP}from"@solana/spl-token";import{PublicKey as tA,SystemProgram as nA,SYSVAR_RENT_PUBKEY as oA,TransactionInstruction as iA}from"@solana/web3.js";import dA from"bn.js";var vr=c([m("instruction"),e("amountIn"),e("minAmountOut")]),Vr=c([m("instruction"),e("maxAmountIn"),e("amountOut")]),QP=c([m("instruction"),m("nonce")]),_r=c([m("instruction"),m("nonce"),e("startTime")]),co=c([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),F("swapBaseInAmount"),F("swapQuoteOutAmount"),e("swapBase2QuoteFee"),F("swapQuoteInAmount"),F("swapBaseOutAmount"),e("swapQuote2BaseFee"),i("baseVault"),i("quoteVault"),i("baseMint"),i("quoteMint"),i("lpMint"),i("openOrders"),i("marketId"),i("marketProgramId"),i("targetOrders"),i("withdrawQueue"),i("lpVault"),i("owner"),e("lpReserve"),b(e(),3,"padding")]),ZP=c([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),F("swapBaseInAmount"),F("swapQuoteOutAmount"),F("swapQuoteInAmount"),F("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),i("baseVault"),i("quoteVault"),i("baseMint"),i("quoteMint"),i("lpMint"),i("modelDataAccount"),i("openOrders"),i("marketId"),i("marketProgramId"),i("targetOrders"),i("owner"),b(e(),64,"padding")]),Er=c([m("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Dr=c([m("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Wr=c([e("fee")]);var yA=_("Raydium_liquidity_instruction");var qr=5e4,Ur=c([e("x"),e("y"),e("price")]),AA=c([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),b(Ur,qr,"DataElement")]);import{PublicKey as LA}from"@solana/web3.js";import NA from"decimal.js";import{TOKEN_PROGRAM_ID as FA}from"@solana/spl-token";import{PublicKey as hA}from"@solana/web3.js";var SA=_("Raydium_liquidity_serum");import uk from"bn.js";import lk from"decimal.js";import{TOKEN_PROGRAM_ID as uw}from"@solana/spl-token";import{PublicKey as lw}from"@solana/web3.js";import dw from"bn.js";import{SystemProgram as ZA,SYSVAR_RENT_PUBKEY as HA,Transaction as jA,TransactionInstruction as $A}from"@solana/web3.js";import{createInitializeAccountInstruction as ew,TOKEN_PROGRAM_ID as tw}from"@solana/spl-token";function Gr(o="accountFlags"){let t=new At(o);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var zr=c([v(5),Gr("accountFlags"),i("ownAddress"),e("vaultSignerNonce"),i("baseMint"),i("quoteMint"),i("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),i("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),i("requestQueue"),i("eventQueue"),i("bids"),i("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),v(7)]);import{PublicKey as oT}from"@solana/web3.js";import{AccountLayout as rT,NATIVE_MINT as aT,TOKEN_2022_PROGRAM_ID as sT,TOKEN_PROGRAM_ID as uT,createAssociatedTokenAccountIdempotentInstruction as cT}from"@solana/spl-token";import Mk from"bn.js";import $r from"bn.js";var wk=new $r(0);import Sk from"bn.js";import Jr from"bn.js";var Kt=new Jr(1e6);import gT from"bn.js";import AT from"decimal.js";var ta=c([v(8),m("bump"),se("disableCreatePool"),Q("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),i("protocolOwner"),i("fundOwner"),e("creatorFeeRate"),b(e(),15)]),lo=c([v(8),i("configId"),i("poolCreator"),i("vaultA"),i("vaultB"),i("mintLp"),i("mintA"),i("mintB"),i("mintProgramA"),i("mintProgramB"),i("observationId"),m("bump"),m("status"),m("lpDecimals"),m("mintDecimalA"),m("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),m("feeOn"),se("enableCreatorFee"),b(m(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),b(e(),28)]),Ek=c([v(8),i("configId"),b(e(),30)]);var qk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Uk=Buffer.from("amm_config","utf8"),na=Buffer.from("pool","utf8"),Gk=Buffer.from("pool_lp_mint","utf8"),zk=Buffer.from("pool_vault","utf8"),Xk=Buffer.from("observation","utf8"),Yk=Buffer.from("permission","utf8"),Qk=Buffer.from("support_mint","utf8");function mo(o,t,n,r){return ie([na,t.toBuffer(),n.toBuffer(),r.toBuffer()],o)}var oa=Buffer.from("locked_liquidity","utf8");function rn(o,t){return ie([oa,t.toBuffer()],o)}import{PublicKey as lK,SystemProgram as mK}from"@solana/web3.js";import{createTransferInstruction as pK,TOKEN_PROGRAM_ID as fK,TOKEN_2022_PROGRAM_ID as yK,createAssociatedTokenAccountIdempotentInstruction as bK,createSyncNativeInstruction as PK,createTransferCheckedInstruction as AK}from"@solana/spl-token";import Ca from"bn.js";import TK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ch,TOKEN_2022_PROGRAM_ID as Rh,TOKEN_PROGRAM_ID as Lh}from"@solana/spl-token";import{SystemProgram as Fh,TransactionInstruction as vh}from"@solana/web3.js";import Aa from"bn.js";var ya=c([e(),e("epoch"),m("curveType"),Q("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),i("mintB"),i("protocolFeeOwner"),i("migrateFeeOwner"),i("migrateToAmmWallet"),i("migrateToCpmmWallet"),b(e(),16)]),ba=c([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),ga=c([e(),e("epoch"),m("bump"),m("status"),m("mintDecimalsA"),m("mintDecimalsB"),m("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),ba.replicate("vestingSchedule"),i("configId"),i("platformId"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("creator"),m("mintProgramFlag"),m("cpmmCreatorFeeOn"),e("platformVestingShare"),b(m(),54)]),lh=c([e(),e("epoch"),i("poolId"),i("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),b(e(),8)]),po=c([m("migrateType"),m("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Pa=c([e("epoch"),m("index"),i("configId"),po.replicate("bondingCurveParam"),b(e(),50)]),fo=c([e(),e("epoch"),i("platformClaimFeeWallet"),i("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),b(m(),64,"name"),b(m(),256,"web"),b(m(),256,"img"),i("cpConfigId"),e("creatorFeeRate"),i("transferFeeExtensionAuth"),i("platformVestingWallet"),e("platformVestingScale"),i("platformCpCreator"),m("restrictGlobalConfig"),b(m(),107),Vn(Pa,"platformCurve")]);var yh=Buffer.from("vault_auth_seed","utf8"),bh=Buffer.from("global_config","utf8"),gh=Buffer.from("pool_vesting","utf8"),Ph=Buffer.from("platform_config","utf8"),Ah=Buffer.from("platform_fee_vault_auth_seed","utf8"),wh=Buffer.from("creator_fee_vault_auth_seed","utf8"),kh=Buffer.from("platform_global_access","utf8"),Th=Buffer.from("platform_allow_config","utf8");var Dh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var Wh=new Aa("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as zh,TOKEN_PROGRAM_ID as Xh}from"@solana/spl-token";import Hh from"bn.js";import $h from"decimal.js";import RI from"bn.js";import OI from"decimal.js";import iI from"bn.js";import aI from"decimal.js";import bI from"bn.js";import PI from"decimal.js";import go from"bn.js";import sn from"decimal.js";var Rt=class{static _multipler(t){return new sn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new sn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(r))}static getPriceX64({price:t,decimalA:n,decimalB:r}){let u=t.mul(this._multipler(r)).div(this._multipler(n));return new go(u.mul(this._Q64).toFixed(0))}};Rt._Q64=new sn(new go(1).shln(64).toString());import{NATIVE_MINT as DB,TOKEN_2022_PROGRAM_ID as WB,TOKEN_PROGRAM_ID as qB,createAssociatedTokenAccountIdempotentInstruction as GB,createSyncNativeInstruction as zB,getTransferFeeConfig as XB,unpackMint as YB}from"@solana/spl-token";import Z from"bn.js";import{PublicKey as Sa,SystemProgram as HB}from"@solana/web3.js";import oS from"decimal.js";var iS={initPriceX64:new Z("515752397214619"),supply:new Z(1e15),totalSellA:new Z(7931e11),totalFundRaisingB:new Z(85e9),totalFundRaisingBUSD:new Z(125e8),totalLockedAmount:new Z("0"),cliffPeriod:new Z("0"),unlockPeriod:new Z("0"),decimals:6,virtualA:new Z("1073471847374405"),virtualB:new Z("30050573465"),realA:new Z(0),realB:new Z(0),protocolFee:new Z(0),platformId:new Sa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Z(0),cliffPeriod:new Z(0),unlockPeriod:new Z(0),startTime:new Z(0),totalAllocatedShare:new Z(0)}},rS=new Z(1e4);var Ka={[qn.toBase58()]:3};var xa=c([v(5),v(8),i("ownAddress"),e("vaultSignerNonce"),i("baseMint"),i("quoteMint"),i("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),i("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),i("requestQueue"),i("eventQueue"),i("bids"),i("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),v(7)]);import{PublicKey as xS}from"@solana/web3.js";var NS=_("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as qS,TOKEN_2022_PROGRAM_ID as US,TOKEN_PROGRAM_ID as GS}from"@solana/spl-token";import{PublicKey as XS,SystemProgram as YS,TransactionInstruction as QS}from"@solana/web3.js";import HS from"bn.js";var $K=new Ca(0);import{PublicKey as Ra,Transaction as un,TransactionInstruction as La}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Oa}from"@solana/spl-token";import Po from"bn.js";var ee=class extends re{static getPdaPoolId(t,n){return ie([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return ie([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new Po(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:l}){if(r.length===0)return[];let d=r.map(f=>ee.getPdaPoolId(n,f).publicKey),p=[];for(let f=0;f<ee.VERSION_PROJECT.length;f++)p.push(...d.map(B=>ee.getPdaOwnerId(n,B,u,f).publicKey));let y=await be(t,[...d,...p]),A=[];for(let f=0;f<y.length;f++){let B=Math.floor(f/r.length),h=f%r.length,w=d[h],K=p[f],g=y[h],P=y[r.length+f];if(!(g&&P)||g.data.length!==ee.POOL_LAYOUT.span||P.data.length!==ee.OWNER_LAYOUT.span)continue;let k=ee.POOL_LAYOUT.decode(g.data),I=ee.OWNER_LAYOUT.decode(P.data),O=k.openTime.toNumber(),N=k.endTime.toNumber(),T=I.tokenInfo.map(C=>C.debtAmount.gt(new Po(0))).filter(C=>!C).length!==3,x=l>O&&l<N&&k.status===1,S=T&&x;A.push({programId:n,poolId:w,ammId:k.ammId,ownerAccountId:K,snapshotLpAmount:I.lpAmount,project:ee.VERSION_PROJECT[B],openTime:O,endTime:N,canClaim:S,canClaimErrorType:T?x?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:k.tokenInfo.map((C,L)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:I.tokenInfo[L].debtAmount.add(I.tokenInfo[L].claimedAmount)}))})}return A}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),l=n.wallet||this.scope.ownerPubKey,d=[];for(let A of t.tokenInfo){let{account:f,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({mint:A.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:A.mintAddress.equals(J.WSOL.mint),createInfo:{payer:l,amount:0},skipCloseAccount:!A.mintAddress.equals(J.WSOL.mint),associatedOnly:A.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});B&&u.addInstruction(B),d.push(f)}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:l,ownerPda:t.ownerAccountId,claimAddress:d}})]});let{transaction:p,signers:y}=u.build();return[{transaction:p,signer:y}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),l=n.wallet||this.scope.ownerPubKey,d={};for(let f of t){let B=[];for(let h of f.tokenInfo){let{account:w,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({mint:h.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:h.mintAddress.equals(J.WSOL.mint),createInfo:{payer:l,amount:0},skipCloseAccount:!h.mintAddress.equals(J.WSOL.mint),associatedOnly:h.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});K&&u.addInstruction(K),w&&(d[h.mintAddress.toString()]=w,B.push(w))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:f.programId,poolInfo:f,ownerInfo:{wallet:l,ownerPda:f.ownerAccountId,claimAddress:B}})]})}let{transaction:p,signers:y}=u.build(),A=u.allInstructions;return Ut(A,[l,...y.map(f=>f.publicKey)])?[{transaction:p,signer:y}]:[{transaction:new un().add(...A.slice(0,u.AllTxData.instructions.length-1)),signer:y},{transaction:new un().add(...A.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new un().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=c([]),l=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:Oa,isSigner:!1,isWritable:!1}],d=Buffer.alloc(u.span);u.encode({},d);let p=Buffer.from([10,66,208,184,161,6,191,98,...d]);return new La({keys:l,programId:t,data:p})}},ce=ee;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=c([v(8),m("bump"),m("status"),e("openTime"),e("endTime"),i("ammId"),b(c([m("mintDecimals"),i("mintAddress"),i("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),b(e(),10,"padding")]),ce.OWNER_LAYOUT=c([v(8),m("bump"),m("version"),i("poolId"),i("owner"),e("lpAmount"),b(c([i("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),b(e(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Ra(t)),ce.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ce.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as yx}from"@solana/web3.js";import{getTransferFeeConfig as gx,MintLayout as Px,TOKEN_2022_PROGRAM_ID as Ax,TOKEN_PROGRAM_ID as wx,unpackMint as kx}from"@solana/spl-token";var ZC=new Ke(2),HC=new Ke(3),jC=new Ke(5),Mo=new Ke(10),$C=new Ke(100),JC=new Ke(1e3),eR=new Ke(1e4);function Mt(o,t=1,n=[]){let r=[...o];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}var Ma=_("Raydium_cpmm"),pe={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};function aa(o,t,n,r,u,l,d,p,y,A,f,B,h,w,K,g,P,k,I,O,N){let T=c([e("amountMaxA"),e("amountMaxB"),e("openTime")]),x=mo(o,n,l,d).publicKey,S=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!u.equals(x),isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:Pe,isSigner:!1,isWritable:!1},{pubkey:K,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:at,isSigner:!1,isWritable:!1},{pubkey:kn,isSigner:!1,isWritable:!1},{pubkey:Te,isSigner:!1,isWritable:!1},...(N!=null?N:[]).map(L=>({pubkey:L,isSigner:!1,isWritable:!1}))],C=Buffer.alloc(T.span);return T.encode({amountMaxA:k,amountMaxB:I,openTime:O},C),new de({keys:S,programId:o,data:Buffer.from([...pe.initialize,...C])})}function sa(o,t,n,r,u,l,d,p,y,A,f,B,h,w,K){let g=c([e("lpAmount"),e("amountMaxA"),e("amountMaxB")]),P=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:Pe,isSigner:!1,isWritable:!1},{pubkey:cn,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!0}],k=Buffer.alloc(g.span);return Ma.debug("cpmm deposit data",{lpAmount:h.toString(),amountMaxA:w.toString(),amountMaxB:K.toString()}),g.encode({lpAmount:h,amountMaxA:w,amountMaxB:K},k),new de({keys:P,programId:o,data:Buffer.from([...pe.deposit,...k])})}function ua(o,t,n,r,u,l,d,p,y,A,f,B,h,w,K){let g=c([e("lpAmount"),e("amountMinA"),e("amountMinB")]),P=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:Pe,isSigner:!1,isWritable:!1},{pubkey:cn,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!0},{pubkey:Qe,isSigner:!1,isWritable:!1}],k=Buffer.alloc(g.span);return g.encode({lpAmount:h,amountMinA:w,amountMinB:K},k),new de({keys:P,programId:o,data:Buffer.from([...pe.withdraw,...k])})}function an(o,t,n,r,u,l,d,p,y,A,f,B,h,w,K,g){let P=c([e("amountIn"),e("amounOutMin")]),k=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!0}],I=Buffer.alloc(P.span);return P.encode({amountIn:K,amounOutMin:g},I),new de({keys:k,programId:o,data:Buffer.from([...pe.swapBaseInput,...I])})}function ca(o,t,n,r,u,l,d,p,y,A,f,B,h,w,K,g){let P=c([e("amountInMax"),e("amountOut")]),k=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!0}],I=Buffer.alloc(P.span);return P.encode({amountInMax:K,amountOut:g},I),new de({keys:k,programId:o,data:Buffer.from([...pe.swapBaseOutput,...I])})}async function la(o){var P;let{ownerInfo:t,poolInfo:n,poolKeys:r,feeNftOwner:u,getEphemeralSigners:l}=o,d=[],[p,y]=[new rt(n.id),new rt(n.lpMint.address)],A;if(l)A=new rt((await l(1))[0]);else{let k=Na.generate();d.push(k),A=k.publicKey}let{publicKey:f}=ae(u,A,Pe),{publicKey:B}=It(A),{publicKey:h}=rn(o.lockProgram,A),{publicKey:w}=ae(t.wallet,y,Pe),{publicKey:K}=ae(o.lockAuthProgram,y,Pe),g=Fa({programId:o.lockProgram,auth:o.lockAuthProgram,payer:t.feePayer,liquidityOwner:t.wallet,nftOwner:u,nftMint:A,nftAccount:f,poolId:p,lockPda:h,mintLp:y,userLpVault:w,lockLpVault:K,poolVaultA:new rt(r.vault.A),poolVaultB:new rt(r.vault.B),metadataAccount:B,lpAmount:o.lpAmount,withMetadata:(P=o.withMetadata)!=null?P:!0});return{address:{nftMint:A,nftAccount:f,metadataAccount:B,lockPda:h,userLpVault:w,lockLpVault:K},instructions:[g],signers:d,instructionTypes:[Y.CpmmLockLp],lookupTableAddress:[]}}function Fa({programId:o,auth:t,payer:n,liquidityOwner:r,nftOwner:u,nftMint:l,nftAccount:d,poolId:p,lockPda:y,mintLp:A,userLpVault:f,lockLpVault:B,poolVaultA:h,poolVaultB:w,metadataAccount:K,lpAmount:g,withMetadata:P}){let k=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!0,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:K,isSigner:!1,isWritable:!0},{pubkey:Te,isSigner:!1,isWritable:!1},{pubkey:Lt.programId,isSigner:!1,isWritable:!1},{pubkey:Pe,isSigner:!1,isWritable:!1},{pubkey:at,isSigner:!1,isWritable:!1},{pubkey:he,isSigner:!1,isWritable:!1}],I=c([e("lpAmount"),se("withMetadata")]),O=Buffer.alloc(I.span);I.encode({lpAmount:g,withMetadata:P},O);let N=Buffer.from([...pe.lockCpLiquidity,...O]);return new de({keys:k,programId:o,data:N})}function ma({programId:o,nftOwner:t,auth:n,nftAccount:r,lockPda:u,poolId:l,mintLp:d,userVaultA:p,userVaultB:y,poolVaultA:A,poolVaultB:f,mintA:B,mintB:h,lockLpVault:w,lpFeeAmount:K,cpmmProgram:g,cpmmAuthProgram:P}){let k=[{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:g!=null?g:Tt,isSigner:!1,isWritable:!1},{pubkey:P!=null?P:Xn,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:Pe,isSigner:!1,isWritable:!1},{pubkey:cn,isSigner:!1,isWritable:!1},{pubkey:Qe,isSigner:!1,isWritable:!1}],I=c([e("lpFeeAmount")]),O=Buffer.alloc(I.span);I.encode({lpFeeAmount:K},O);let N=Buffer.from([...pe.collectCpFee,...O]);return new de({keys:k,programId:o,data:N})}function da(o,t,n,r,u,l,d,p,y,A,f,B,h){let w=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:at,isSigner:!1,isWritable:!1},{pubkey:Lt.programId,isSigner:!1,isWritable:!1}];return new de({keys:w,programId:o,data:pe.collectCreatorFee})}function pa(o,t,n,r,u,l,d,p,y,A,f,B,h){let w=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:at,isSigner:!1,isWritable:!1},{pubkey:Lt.programId,isSigner:!1,isWritable:!1}];return new de({keys:w,programId:o,data:pe.collectCreatorFeePermissionless})}function fa(o,t,n,r,u,l,d,p,y,A,f,B,h,w,K,g,P,k,I,O,N,T,x,S){let C=c([e("amountA"),e("amountB"),e("openTime"),m("feeOn")]),L=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:K,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!0},{pubkey:I,isSigner:!1,isWritable:!0},{pubkey:Pe,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},{pubkey:at,isSigner:!1,isWritable:!1},{pubkey:Lt.programId,isSigner:!1,isWritable:!1},...(S!=null?S:[]).map(te=>({pubkey:te,isSigner:!1,isWritable:!1}))],V=Buffer.alloc(C.span);return C.encode({amountA:O,amountB:N,openTime:T,feeOn:x},V),new de({keys:L,programId:o,data:Buffer.from([...pe.initializeWithPermission,...V])})}export{ma as collectCpFeeInstruction,pa as collectCreatorFeePermissionlessInInstruction,Fa as cpmmLockPositionInstruction,fa as initializeWithPermission,da as makeCollectCreatorFeeInstruction,la as makeCpmmLockInstruction,aa as makeCreateCpmmPoolInInstruction,sa as makeDepositCpmmInInstruction,an as makeSwapCpmmBaseInInstruction,ca as makeSwapCpmmBaseOutInstruction,ua as makeWithdrawCpmmInInstruction};
//# sourceMappingURL=instruction.mjs.map