UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 84 kB
var wo=Object.defineProperty,ko=Object.defineProperties;var To=Object.getOwnPropertyDescriptors;var ut=Object.getOwnPropertySymbols;var fn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable;var pn=(o,t,n)=>t in o?wo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,F=(o,t)=>{for(var n in t||(t={}))fn.call(t,n)&&pn(o,n,t[n]);if(ut)for(var n of ut(t))yn.call(t,n)&&pn(o,n,t[n]);return o},V=(o,t)=>ko(o,To(t));var le=(o,t)=>{var n={};for(var r in o)fn.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&&yn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as rt,TransactionInstruction as de,Keypair as Va,SystemProgram as Lt}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as at,TOKEN_2022_PROGRAM_ID as mn,TOKEN_PROGRAM_ID as Pe}from"@solana/spl-token";import{PublicKey as Bo}from"@solana/web3.js";import{get as bn,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}},gn={},Io={};function E(o){let t=bn(gn,o);if(!t){let n=bn(Io,o);t=new Ot({name:o,logLevel:n}),ho(gn,o,t)}return t}import{MINT_SIZE as $a,TOKEN_PROGRAM_ID as ja,getTransferFeeConfig as Ja,unpackMint as es}from"@solana/spl-token";var Nt=E("Raydium_accountInfo_util");async function be(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=F({batchRequest:!1},n),d=Mt(t,m),p=new Array(d.length).fill([]);if(r){let b=d.map(B=>{let h=o._buildArgs([B.map(w=>w.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:h}}),A=Mt(b,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:S,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:S,lamports:g,owner:new Bo(P),rentEpoch:k}}return null})))}else try{p=await Promise.all(d.map(b=>o.getMultipleAccountsInfo(b,u)))}catch(b){b instanceof Error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return p.flat()}import Ke from"bn.js";import cR from"decimal.js";import No from"big.js";import gs 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 Pn=9007199254740991;function oe(o){let t=E("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>=Pn||o<=-Pn)&&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=E("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 Ss=E("Raydium_amount"),Ks=ze(No);import{PublicKey as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as An}from"@solana/spl-token";var mt={chainId:101,address:Fo.default.toBase58(),programId:An.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:An.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 wn,SYSVAR_RENT_PUBKEY as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _o}from"@solana/spl-token";function Ce({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Vo=[Ce({pubkey:_o,isWritable:!1}),Ce({pubkey:wn.programId,isWritable:!1}),Ce({pubkey:vo,isWritable:!1})];function kn({publicKey:o,transformSol:t}){let n=Tn(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 Tn(o){try{return new z(o)}catch{return o}}var He=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Te=new z("SysvarRent111111111111111111111111111111111"),Fs=new z("SysvarC1ock11111111111111111111111111111111"),he=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Eo=new z("Sysvar1nstructions1111111111111111111111111"),hn=wn.programId,vs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),_s=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Vs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Es=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ds=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ws=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),qs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Us=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Gs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),zs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new z("So11111111111111111111111111111111111111112"),ke=z.default;var _t=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!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=m?vt.default:kn({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=_t;J.WSOL=new _t(V(F({},me),{mint:me.address}));var Vt=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=Vt;dt.SOL=new Vt(mt);import Do from"bn.js";var iu=new U(new Do(100));var lu=E("Raydium_price");import{merge as mC}from"lodash";import Au from"axios";var In={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=V(F({},In),{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 qu=E("Raydium_Api");import{PublicKey as sm,SystemProgram as um}from"@solana/web3.js";import{AccountLayout as pm,createAssociatedTokenAccountIdempotentInstruction as fm,TOKEN_PROGRAM_ID as ym,TOKEN_2022_PROGRAM_ID as bm}from"@solana/spl-token";import{PublicKey as Me,sendAndConfirmTransaction as Gt,SystemProgram as Yo,Transaction as $e,TransactionMessage as je,VersionedTransaction as Je}from"@solana/web3.js";import Ho 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(m=>m.toString()))].map(m=>new Et(m))),u={};for(let m=0;m<t.length;m++){let d=r[m],p=t[m];if(!d)continue;let b=new Oe({key:p,state:Oe.deserialize(d.data)});u[p.toString()]=b,n==="devnet"?Le[p.toString()]=b:Re[p.toString()]=b}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 H={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 Bn,Keypair as Kn,PublicKey as qo,Transaction as xn,TransactionMessage as Uo,VersionedTransaction as Cn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";var Sn=E("Raydium_txUtil"),Rn=1644;function pt(o){let t=[],n=[];return o.microLamports&&(t.push(Bn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(H.SetComputeUnitPrice)),o.units&&(t.push(Bn.setComputeUnitLimit({units:o.units})),n.push(H.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,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Ut(o,t){o.length<1&&Sn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Sn.logWithError(`no signers provided:, ${t.toString()}`);let n=new xn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Rn}catch{return!1}}function ie(o,t){let[n,r]=qo.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Qe({instructions:o,payer:t,signers:n}){return Ut(o,[t,...n])}function Ze({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Kn.generate().publicKey.toString()}){let m=new Uo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Cn(m).serialize()).toString("base64").length<Rn}catch{return!1}}var 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 Cn&&(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 xn&&(n.recentBlockhash||(n.recentBlockhash=Go.toBase58()),n.feePayer||(n.feePayer=Kn.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 Ho.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(H.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),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(V(F({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new $e;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:m,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:b}=u||{},A=m!=null?m: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:b?"":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),m=n.filter(f=>f.transaction.instructions.length>0),d=[u,...m.map(f=>f.transaction)],p=[this.signers,...m.map(f=>f.signers)],b=[...this.instructionTypes,...m.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:b,execute:async f=>{var k;let{sequentially:B,onTxUpdate:h,skipTxCount:w=0,recentBlockHash:S,skipPreflight:g=!0}=f||{},P=S!=null?S:await Ne(this.connection,this.blockhashCommitment);if((k=this.owner)!=null&&k.isKeyPair){if(B){let I=[],N=0;for(let M of d){if(++N,N<=w)continue;let T=await Gt(this.connection,M,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((M,T)=>(M.recentBlockhash=P,p[T].length&&M.sign(...p[T]),M));Ie(I);let N=await this.signAllTransactions(I);if(B){let M=0,T=[],x=async()=>{if(!N[M])return;let K=await this.connection.sendRawTransaction(N[M].serialize(),{skipPreflight:g});T.push({txId:K,status:"sent",signedTx:N[M]}),h==null||h([...T]),M++;let C=!1,L=null,_=null,te=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=T.findIndex(j=>j.txId===K);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(K,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(C=!0,clearInterval(L),te({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)}},yt)),_=this.connection.onSignature(K,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,te(q)},"confirmed"),this.connection.getSignatureStatus(K)};return await x(),{txIds:T.map(K=>K.txId),signedTxs:N}}else{let M=[];for(let T=0;T<N.length;T+=1){let x=await this.connection.sendRawTransaction(N[T].serialize(),{skipPreflight:g});M.push(x)}return{txIds:M,signedTxs:N}}}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 S=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=S,d=le(S,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=F(F({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),n),b=Array.from(new Set([...r,...this.lookupTableAddress])),A=[];for(let P of b)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():m!=null?m:await Ne(this.connection,this.blockhashCommitment),h=new je({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 M;let{skipPreflight:k=!0,sendAndConfirm:I,notSendToRpc:N}=P||{};if(Ie([w]),(M=this.owner)!=null&&M.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:N?"":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),m=n.filter(f=>f.builder.instructions.length>0),d=[u,...m.map(f=>f.transaction)],p=[this.signers,...m.map(f=>f.signers)],b=[...this.instructionTypes,...m.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:b,buildProps:r,execute:async f=>{var g;let{sequentially:B,onTxUpdate:h,recentBlockHash:w,skipPreflight:S=!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:S});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:S}))),signedTxs:d}}if(this.signAllTransactions){let P=await this.signAllTransactions(d);if(B){let k=0,I=[],N=async()=>{if(!P[k])return;let M=await this.connection.sendTransaction(P[k],{skipPreflight:S});I.push({txId:M,status:"sent",signedTx:P[k]}),h==null||h([...I]),k++;let T=!1,x=null,K=null,C=L=>{x!==null&&clearInterval(x),K!==null&&this.connection.removeSignatureListener(K);let _=I.findIndex(te=>te.txId===M);if(_>-1){if(I[_].status==="error"||I[_].status==="success")return;I[_].status=L.err?"error":"success"}h==null||h([...I]),L.err||N()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var L;if(T){clearInterval(x);return}try{let _=await this.connection.getTransaction(M,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(T=!0,clearInterval(x),C({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",M))}catch(_){T=!0,clearInterval(x),console.error("getTransaction timeout:",_,M)}},yt)),K=this.connection.onSignature(M,L=>{if(T){this.connection.removeSignatureListener(K);return}T=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(M)};return N(),{txIds:[],signedTxs:P}}else{let k=[];for(let I=0;I<P.length;I+=1){let N=await this.connection.sendTransaction(P[I],{skipPreflight:S});k.push(N)}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"]),m=r?pt(r):{instructions:[],instructionTypes:[]},d=this.signers.reduce((w,S)=>V(F({},w),{[S.publicKey.toBase58()]:S}),{}),p=[],b=[],A=[],f=0;if(this.allInstructions.forEach(w=>{let S=[...A,w],g=r?[...m.instructions,...S]:S,k=[...new Set(S.map(I=>I.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(I=>new Me(I));if(w!==n[f]&&A.length<12&&(Qe({instructions:g,payer:this.feePayer,signers:k})||Qe({instructions:S,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,Qe({instructions:r?[...m.instructions,...A]:[...A],payer:this.feePayer,signers:k})?p.push(new $e().add(...m.instructions,...A)):p.push(new $e().add(...A)),b.push(Array.from(new Set(A.map(I=>I.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(I=>d[I]).filter(I=>I!==void 0)),A=[w]}}),A.length>0){let S=[...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);Qe({instructions:r?[...m.instructions,...A]:[...A],payer:this.feePayer,signers:S.map(g=>g.publicKey)})?p.push(new $e().add(...m.instructions,...A)):p.push(new $e().add(...A)),b.push(S)}return p.forEach(w=>w.feePayer=this.feePayer),(h=this.owner)!=null&&h.signer&&b.forEach(w=>{w.some(S=>S.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:p,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var M;let{sequentially:S,onTxUpdate:g,skipTxCount:P=0,recentBlockHash:k,skipPreflight:I=!0}=w||{},N=k!=null?k:await Ne(this.connection,this.blockhashCommitment);if(p.forEach(async(T,x)=>{T.recentBlockhash=N,b[x].length&&T.sign(...b[x])}),Ie(p),(M=this.owner)!=null&&M.isKeyPair){if(S){let T=0,x=[];for(let K of p){if(++T,T<=P){x.push("tx skipped");continue}let C=await Gt(this.connection,K,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(S){let K=0,C=[],L=async()=>{if(!x[K])return;K<P&&(C.push({txId:"",status:"success",signedTx:x[K]}),g==null||g([...C]),K++,L());let _=await this.connection.sendRawTransaction(x[K].serialize(),{skipPreflight:I});C.push({txId:_,status:"sent",signedTx:x[K]}),g==null||g([...C]),K++;let te=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=C.findIndex(fe=>fe.txId===_);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(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});ne&&(te=!0,clearInterval(q),j({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){te=!0,clearInterval(q),console.error("getTransaction timeout:",ne,_)}},yt)),W=this.connection.onSignature(_,G=>{if(te){this.connection.removeSignatureListener(W);return}te=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:C.map(_=>_.txId),signedTxs:x}}else{let K=[];for(let C=0;C<x.length;C+=1){let L=await this.connection.sendRawTransaction(x[C].serialize(),{skipPreflight:I});K.push(L)}return{txIds:K,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var M;let N=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:d=12}=N,p=le(N,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=F(F({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),u),A=Array.from(new Set([...this.lookupTableAddress,...m])),f=[];for(let T of A)b[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))b[T]=x;let h=n?pt(n):{instructions:[],instructionTypes:[]},w=await Ne(this.connection,this.blockhashCommitment),S=this.signers.reduce((T,x)=>V(F({},T),{[x.publicKey.toBase58()]:x}),{}),g=[],P=[],k=[],I=0;if(this.allInstructions.forEach(T=>{let x=[...k,T],K=n?[...h.instructions,...x]:x;if(T!==r[I]&&k.length<d&&(Ze({instructions:K,payer:this.feePayer,lookupTableAddressAccount:b})||Ze({instructions:x,payer:this.feePayer,lookupTableAddressAccount:b})))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)])b[L]!==void 0&&(C[L]=b[L]);if(n&&Ze({instructions:[...h.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let L=new je({payerKey:this.feePayer,recentBlockhash:w,instructions:[...h.instructions,...k]}).compileToV0Message(Object.values(b));g.push(new Je(L))}else{let L=new je({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k]}).compileToV0Message(Object.values(b));g.push(new Je(L))}P.push(Array.from(new Set(k.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>S[L]).filter(L=>L!==void 0)),k=[T]}}),k.length>0){let x=[...new Set(k.map(K=>K.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(K=>S[K]).filter(K=>K!==void 0);if(n&&Ze({instructions:[...h.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let K=new je({payerKey:this.feePayer,recentBlockhash:w,instructions:[...h.instructions,...k]}).compileToV0Message(Object.values(b));g.push(new Je(K))}else{let K=new je({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k]}).compileToV0Message(Object.values(b));g.push(new Je(K))}P.push(x)}return(M=this.owner)!=null&&M.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:K,skipTxCount:C=0,recentBlockHash:L,skipPreflight:_=!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 j of g){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});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:_}))),signedTxs:g}}if(this.signAllTransactions){let q=await this.signAllTransactions(g.slice(C,g.length)),W=[...g.slice(0,C),...q];if(x){let j=0,G=[],ne=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),K==null||K([...G]),j++,ne();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[j]}),K==null||K([...G]),j++;let Ue=!1,xe=null,st=null,dn=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"}K==null||K([...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:1});ye&&(Ue=!0,clearInterval(xe),dn({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,dn(we)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:_});j.push(ne)}return{txIds:j,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=E(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 Vl,SystemProgram as Dl}from"@solana/web3.js";import Ul from"bn.js";import{createCloseAccountInstruction as Yl,createInitializeAccountInstruction as Hl,createTransferInstruction as Ql,TOKEN_PROGRAM_ID as Zl}from"@solana/spl-token";import{Keypair as Bl,PublicKey as Sl}from"@solana/web3.js";import Cl from"bn.js";import{TOKEN_PROGRAM_ID as Ol}from"@solana/spl-token";import{PublicKey as ai}from"@solana/web3.js";import Fn,{isBN as vn}from"bn.js";import{bits as Qo,BitStructure as Rc,blob as Zo,Blob as Lc,cstr as Oc,f32 as Nc,f32be as Mc,f64 as Fc,f64be as vc,greedy as _c,Layout as $o,ns64 as Vc,ns64be as Ec,nu64 as Dc,nu64be as Wc,offset as jo,s16 as qc,s16be as Uc,s24 as Gc,s24be as zc,s32 as Jo,s32be as Xc,s40 as Yc,s40be as Hc,s48 as Qc,s48be as Zc,s8 as $c,seq as ei,struct as jc,Structure as ti,u16 as ni,u16be as Jc,u24 as el,u24be as tl,u32 as oi,u32be as nl,u40 as ol,u40be as il,u48 as rl,u48be as al,u8 as ii,UInt as ri,union as sl,Union as ul,unionLayoutDiscriminator as cl,utf8 as ll}from"@solana/buffer-layout";var gt=$o,Ln=ti;var Xt=ri;var On=ii,Y=ni;var Pt=oi;var ue=Jo;var Nn=ei;var v=Zo;var Yt=Qo,Mn=jo;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 Fn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new Fn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},At=class extends 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),m=this._upper.decode(n,r+this._lower.span);return F(F({},u),m)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function l(o){return new Xt(1,o)}function X(o){return new Xt(4,o)}function e(o){return new Se(8,!1,o)}function O(o){return new Se(16,!1,o)}function _n(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,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new et(v(32),t=>new ai(t),t=>t.toBuffer(),o)}function se(o){return new et(On(),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 Qt(o,t){let n=Pt("length"),r=c([n,y(o,Mn(n,-n.span),"values")]);return new et(r,({values:u})=>u,u=>({values:u}),t)}var Ht=class extends Ln{decode(t,n){return super.decode(t,n)}};function c(o,t,n){return new Ht(o,t,n)}function y(o,t,n){let r,u=typeof t=="number"?t:vn(t)?t.toNumber():new Proxy(t,{get(m,d){if(!r){let p=Reflect.get(m,"count");r=vn(p)?p.toNumber():p,Reflect.set(m,"count",r)}return Reflect.get(m,d)},set(m,d,p){return d==="count"&&(r=p),Reflect.set(m,d,p)}});return Nn(o,u,n)}var wt=c([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 rP,SystemProgram as aP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as uP}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 Dn=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Wn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),qn=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Zt=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Km=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),di=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Un=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Gn=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),xm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),pi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),zn=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),fi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),yi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Xn=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Cm=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),bi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Tt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Yn=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Rm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),gi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Pi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ai=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Lm=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Om=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Nm=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Mm=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Fm=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 PP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Dy,TOKEN_2022_PROGRAM_ID as Wy,TOKEN_PROGRAM_ID as qy}from"@solana/spl-token";import{PublicKey as Gy}from"@solana/web3.js";import Xy from"bn.js";import Hy from"decimal.js";import{TOKEN_PROGRAM_ID as Qm}from"@solana/spl-token";import{PublicKey as Jm}from"@solana/web3.js";var wi=c([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as sy,TOKEN_2022_PROGRAM_ID as uy,TOKEN_PROGRAM_ID as cy}from"@solana/spl-token";import{Keypair as dy,PublicKey as py,SystemProgram as yy,TransactionInstruction as by}from"@solana/web3.js";import Py from"bn.js";import D from"bn.js";var _e=new D(1).shln(64);var ki=new D(1).shln(128),$t=new D(1).shln(64).subn(1),Ti=new D(1).shln(128).subn(1);var Ve=new D("4295048016"),Ee=new D("79226673521066979257578248091"),hi=new D("59543866431248"),Ii=new D("184467440737095516"),Bi=new D("15793534762490258745");var jt=60,md=new D("18446743708227953217"),Si=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var tt=3,Hn=100;var Qn=10,Zn=100,ht=14;var Z=new D(0),De=new D(1),dd=new D(-1);var pd=new D("18446744073700000000");var Ki=c([v(8),l("bump"),Y("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("tickSpacing"),X("fundFeeRate"),y(X(),1),i("fundOwner"),y(e(),3)]),xi=c([X("blockTimestamp"),Fe("tickCumulative"),y(e(),4)]),$n=c([v(8),se("initialized"),e("recentEpoch"),Y("observationIndex"),i("poolId"),y(xi,Hn,"observations"),y(e(),4)]),Ci=c([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),y(l(),46)]),Ri=c([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),Jt=c([v(8),l("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),Y("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),y(O(),4),l("status"),l("feeOn"),v(6),y(Ri,tt,"rewardInfos"),v(8*16,"tickArrayBitmap"),y(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ci.replicate("dynamicFeeInfo"),y(e(),46)]),Li=c([O("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=c([v(8),l("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),y(Li,tt,"rewardInfos"),e("recentEpoch"),y(e(),7)]),gd=c([v(8),l("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),y(O(),tt,"rewardGrowthInside"),e("recentEpoch"),y(e(),7)]),Ni=c([ue("tick"),Vn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),y(O(),tt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),y(X(),3)]),jn=c([v(8),i("poolId"),ue("startTickIndex"),y(Ni,jt,"ticks"),l("initializedTickCount"),e("recentEpoch"),y(l(),107)]),Mi=c([v(8),l("bump"),y(i(),Qn,"operationOwners"),y(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"),O("unfilledRatioX64"),y(e(),4)]),Jn=c([v(8),i("poolId"),v(8*8*ht,"positiveTickArrayBitmap"),v(8*8*ht,"negativeTickArrayBitmap")]),Pd=c([v(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),y(e(),8)]),vi=c([v(8),i("wallet"),l("nonceIndex"),e("orderNonce"),y(e(),4)]),Ad=c([e(),l("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),y(e(),8)]),_i=c([v(8),l("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),y(e(),8)]);import Td from"bn.js";var Nd=Buffer.from("amm_config","utf8"),Ei=Buffer.from("pool","utf8"),Di=Buffer.from("pool_vault","utf8"),Md=Buffer.from("pool_reward_vault","utf8"),Fd=Buffer.from("position","utf8"),vd=Buffer.from("tick_array","utf8"),_d=Buffer.from("operation","utf8"),Vd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ed=Buffer.from("observation","utf8"),Dd=Buffer.from("support_mint","utf8"),Wd=Buffer.from("dynamic_fee_config","utf8"),qd=Buffer.from("permission","utf8");function It(o){return ie([Buffer.from("metadata","utf8"),he.toBuffer(),o.toBuffer()],he)}var Ud=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Wi from"bn.js";import Yd from"decimal.js";var Qd=new Wi(1).shln(256).subn(1);import pp from"bn.js";import np from"bn.js";import ip from"decimal.js";import Pp from"bn.js";import wp from"decimal.js";import{PublicKey as sf}from"@solana/web3.js";import cf from"bn.js";import{TOKEN_2022_PROGRAM_ID as gf,TOKEN_PROGRAM_ID as Pf}from"@solana/spl-token";import Tf from"decimal.js";import Qp from"bn.js";import vp from"bn.js";import Nf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(tr.digest(t)).slice(0,8)}$n.span;var Ky=E("Raydium_Clmm"),xy={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as on}from"@solana/web3.js";var rr=c([l("instruction")]),ar=c([l("instruction")]),sr=c([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"),y(e(),15,"padding")]),ur=c([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),cr=c([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),l("option"),i("rewardVaultB"),v(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),lr=c([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),y(sr,5,"rewardInfos"),i("creator"),i(),y(e(),32,"padding")]),mr=new Proxy(ur,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return V(F({},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 V(F({},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)}}),ro=new Proxy(lr,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return V(F({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var d;return V(F({},m),{rewardType:((d=Object.entries(it).find(p=>String(p[1])===m.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([l("instruction"),e("nonce"),y(pr,5,"rewardTimeInfo")]),yr=c([l("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),br=c([l("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),hb=c([e("state"),i("id"),i("owner"),e("deposited"),y(e(),1,"rewardDebts")]),ao=c([e("state"),i("id"),i("owner"),e("deposited"),y(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),y(e(),15)]),Ib=c([e("state"),i("id"),i("owner"),e("deposited"),y(e(),2,"rewardDebts")]),gr=c([e("state"),i("id"),i("owner"),e("deposited"),y(O(),2,"rewardDebts"),y(e(),17)]),Pr=c([e(),e("state"),i("id"),i("owner"),e("deposited"),y(O(),5,"rewardDebts"),y(e(),16)]),Ar=c([l("instruction"),e("amount")]),wr=c([i("mint"),i("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),_n("digitShift"),y(l(),7,"reserved1"),y(e(),7,"reserved2")]),kr=c([v(8),i("governanceProgramId"),i("realm"),i("realmGoverningTokenMint"),i("realmAuthority"),y(l(),32,"reserved1"),y(wr,4,"votingMints"),Fe("timeOffset"),l("bump"),y(l(),7,"reserved2"),y(e(),11,"reserved3")]),Tr=c([Fe("startTime"),Fe("endTime"),l("kind"),y(l(),15,"reserved")]),hr=c([y(Tr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),se("isUsed"),se("allowClawback"),l("votingMintConfigIdx"),y(l(),29,"reserved")]),Ir=c([v(8),i("voterAuthority"),i("registrar"),y(hr,32,"deposits"),l("voterBump"),l("voterWweightRecordBump"),y(l(),94,"reserved")]);import{NATIVE_MINT as Nb}from"@solana/spl-token";var Mb=E("Raydium_farm_config"),Br=new on("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sr=new on("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Fb=new on("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var it={"Standard SPL":0,"Option tokens":1},so={[Dn.toString()]:3,[Wn.toString()]:4,[qn.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 wg,SystemProgram as kg,SYSVAR_CLOCK_PUBKEY as Tg,SYSVAR_RENT_PUBKEY as hg,TransactionInstruction as Ig}from"@solana/web3.js";import Sg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as xg,createAssociatedTokenAccountIdempotentInstruction as Cg,TOKEN_PROGRAM_ID as Rg}from"@solana/spl-token";import Zb from"bn.js";import{PublicKey as Wb}from"@solana/web3.js";import Ub from"bn.js";var cg=E("Raydium.farm.util");var Wg=E("Raydium_farm_instruction"),qg={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 CP from"bn.js";import{PublicKey as _w}from"@solana/web3.js";import{AccountLayout as Dw,MintLayout as Ww,NATIVE_MINT as qw,TOKEN_PROGRAM_ID as Gw}from"@solana/spl-token";import OP from"bn.js";import co from"bn.js";var Mr=new co(25),Fr=new co(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as eA,TOKEN_PROGRAM_ID as tA}from"@solana/spl-token";import{PublicKey as oA,SystemProgram as iA,SYSVAR_RENT_PUBKEY as rA,TransactionInstruction as aA}from"@solana/web3.js";import fA from"bn.js";var vr=c([l("instruction"),e("amountIn"),e("minAmountOut")]),_r=c([l("instruction"),e("maxAmountIn"),e("amountOut")]),ZP=c([l("instruction"),l("nonce")]),Vr=c([l("instruction"),l("nonce"),e("startTime")]),lo=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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),e("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("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"),y(e(),3,"padding")]),$P=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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("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"),y(e(),64,"padding")]),Er=c([l("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Dr=c([l("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Wr=c([e("fee")]);var gA=E("Raydium_liquidity_instruction");var qr=5e4,Ur=c([e("x"),e("y"),e("price")]),kA=c([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),y(Ur,qr,"DataElement")]);import{PublicKey as NA}from"@solana/web3.js";import FA from"decimal.js";import{TOKEN_PROGRAM_ID as _A}from"@solana/spl-token";import{PublicKey as BA}from"@solana/web3.js";var xA=E("Raydium_liquidity_serum");import lk from"bn.js";import dk from"decimal.js";import{TOKEN_PROGRAM_ID as lw}from"@solana/spl-token";import{PublicKey as dw}from"@solana/web3.js";import fw from"bn.js";import{SystemProgram as $A,SYSVAR_RENT_PUBKEY as jA,Transaction as JA,TransactionInstruction as ew}from"@solana/web3.js";import{createInitializeAccountInstruction as nw,TOKEN_PROGRAM_ID as ow}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 aT}from"@solana/web3.js";import{AccountLayout as uT,NATIVE_MINT as cT,TOKEN_2022_PROGRAM_ID as lT,TOKEN_PROGRAM_ID as mT,createAssociatedTokenAccountIdempotentInstruction as dT}from"@solana/spl-token";import vk from"bn.js";import jr from"bn.js";var Tk=new jr(0);import xk from"bn.js";import Jr from"bn.js";var Kt=new Jr(1e6);import wT from"bn.js";import TT from"decimal.js";var ta=c([v(8),l("bump"),se("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),i("protocolOwner"),i("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),y(e(),14)]),mo=c([v(8),i("configId"),i("poolCreator"),i("vaultA"),i("vaultB"),i("mintLp"),i("mintA"),i("mintB"),i("mintProgramA"),i("mintProgramB"),i("observationId"),l("bump"),l("status"),l("lpDecimals"),l("mintDecimalA"),l("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),l("feeOn"),se("enableCreatorFee"),y(l(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),y(e(),28)]),Wk=c([v(8),i("configId"),y(e(),30)]),qk=c([v(8),l("bump"),i("creator"),i("ammConfig"),e("shareRate"),y(e(),8)]);var zk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Xk=Buffer.from("amm_config","utf8"),na=Buffer.from("pool","utf8"),Yk=Buffer.from("pool_lp_mint","utf8"),Hk=Buffer.from("pool_vault","utf8"),Qk=Buffer.from("observation","utf8"),Zk=Buffer.from("permission","utf8"),$k=Buffer.from("support_mint","utf8"),oa=Buffer.from("creator_fee_share","utf8");function po(o,t,n,r){return ie([na,t.toBuffer(),n.toBuffer(),r.toBuffer()],o)}var ia=Buffer.from("locked_liquidity","utf8");function an(o,t){return ie([ia,t.toBuffer()],o)}function sn(o,t,n){return ie([oa,t.toBuffer(),n.toBuffer()],o)}import{PublicKey as MK,SystemProgram as FK}from"@solana/web3.js";import{createTransferInstruction as _K,TOKEN_PROGRAM_ID as VK,TOKEN_2022_PROGRAM_ID as EK,createAssociatedTokenAccountIdempotentInstruction as DK,createSyncNativeInstruction as qK,createTransferCheckedInstruction as UK}from"@solana/spl-token";import Ma from"bn.js";import XK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Rh,TOKEN_2022_PROGRAM_ID as Lh,TOKEN_PROGRAM_ID as Oh}from"@solana/spl-token";import{SystemProgram as vh,TransactionInstruction as _h}from"@solana/web3.js";import ba from"bn.js";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"),hh=Buffer.from("platform_curve_rule","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]),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]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var Wh=new ba("18446744073709551615");var ga=c([e(),e("epoch"),l("curveType"),Y("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"),y(e(),16)]),Pa=c([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),Aa=c([e(),e("epoch"),l("bump"),l("status"),l("mintDecimalsA"),l("mintDecimalsB"),l("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),Pa.replicate("vestingSchedule"),i("configId"),i("platformId"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("creator"),l("mintProgramFlag"),l("cpmmCreatorFeeOn"),e("platformVestingShare"),y(l(),54)]),zh=c([e(),e("epoch"),i("poolId"),i("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),y(e(),8)]),wa=c([l("migrateType"),l("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Xh=c([e("epoch"),l("index"),i("configId"),wa.replicate("bondingCurveParam"),y(e(),50)]),fo=c([e(),e("epoch"),i("platformClaimFeeWallet"),i("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),y(l(),64,"name"),y(l(),256,"web"),y(l(),256,"img"),i("cpConfigId"),e("creatorFeeRate"),i("transferFeeExtensionAuth"),i("platformVestingWallet"),e("platformVestingScale"),i("platformCpCreator"),l("restrictGlobalConfig"),l("restrictCurveParam"),i("curveRuleManager"),y(l(),78)]),ka=c([l("field"),l("op"),O("value")]),Ta=c([Y("groupId"),e("epoch"),Qt(ka,"constraints")]),ha=c([e(),l("bump"),l("version"),i("platformId"),i("configId"),e("epoch"),y(e(),8),Qt(Ta,"groups")]);import{TOKEN_2022_PROGRAM_ID as Qh,TOKEN_PROGRAM_ID as Zh}from"@solana/spl-token";import Ia from"bn.js";var uI=new Ia(1e6);import dI from"bn.js";import fI from"decimal.js";import XI from"bn.js";import HI from"decimal.js";import wI from"bn.js";import TI from"decimal.js";import OI from"bn.js";import MI from"decimal.js";import go from"bn.js";import cn from"decimal.js";var Rt=class{static _multipler(t){return new cn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new cn(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 cn(new go(1).shln(64).toString());import{NATIVE_MINT as cS,TOKEN_2022_PROGRAM_ID as lS,TOKEN_PROGRAM_ID as mS,createAssociatedTokenAccountIdempotentInstruction as pS,createSyncNativeInstruction as fS,getTransferFeeConfig as yS,unpackMint as bS}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as La,SystemProgram as AS}from"@solana/web3.js";import SS from"decimal.js";var KS={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new La("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},xS=new Q(1e4);var Oa={[Un.toBase58()]:3};var Na=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 jS}from"@solana/web3.js";var oK=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as dK,TOKEN_2022_PROGRAM_ID as pK,TOKEN_PROGRAM_ID as fK}from"@solana/spl-token";import{PublicKey as bK,SystemProgram as gK,TransactionInstruction as PK}from"@solana/web3.js";import wK from"bn.js";var Tx=new Ma(0);import{PublicKey as Fa,Transaction as ln,TransactionInstruction as va}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _a}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:m}){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 b=await be(t,[...d,...p]),A=[];for(let f=0;f<b.length;f++){let B=Math.floor(f/r.length),h=f%r.length,w=d[h],S=p[f],g=b[h],P=b[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),N=k.openTime.toNumber(),M=k.endTime.toNumber(),T=I.tokenInfo.map(C=>C.debtAmount.gt(new Po(0))).filter(C=>!C).length!==3,x=m>N&&m<M&&k.status===1,K=T&&x;A.push({programId:n,poolId:w,ammId:k.ammId,ownerAccountId:S,snapshotLpAmount:I.lpAmount,project:ee.VERSION_PROJECT[B],openTime:N,endTime:M,canClaim:K,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),m=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:m,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:m,ownerPda:t.ownerAccountId,claimAddress:d}})]});let{transaction:p,signers:b}=u.build();return[{transaction:p,signer:b}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,d={};for(let f of t){let B=[];for(let h of f.tokenInfo){let{account:w,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({mint:h.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:h.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!h.mintAddress.equals(J.WSOL.mint),associatedOnly:h.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});S&&u.addInstruction(S),w&&(d[h.mintAddress.toString()]=w,B.push(w))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:f.programId,poolInfo:f,ownerInfo:{wallet:m,ownerPda:f.ownerAccountId,claimAddress:B}})]})}let{transaction:p,signers:b}=u.build(),A=u.allInstructions;return Ut(A,[m,...b.map(f=>f.publicKey)])?[{transaction:p,signer:b}]:[{transaction:new ln().add(...A.slice(0,u.AllTxData.instructions.length-1)),signer:b},{transaction:new ln().add(...A.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new ln().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=c([]),m=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(b=>({pubkey:b,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:b})=>({pubkey:b,isSigner:!1,isWritable:!0})),{pubkey:_a,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 va({keys:m,programId:t,data:p})}},ce=ee;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=c([v(8),l("bump"),l("status"),e("openTime"),e("endTime"),i("ammId"),y(c([l("mintDecimals"),i("mintAddress"),i("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),y(e(),10,"padding")]),ce.OWNER_LAYOUT=c([v(8),l("bump"),l("version"),i("poolId"),i("owner"),e("lpAmount"),y(c([i("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),y(e(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Fa(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 Ex}from"@solana/web3.js";import{getTransferFeeConfig as Wx,MintLayout as qx,TOKEN_2022_PROGRAM_ID as Ux,TOKEN_PROGRAM_ID as Gx,unpackMint as zx}from"@solana/spl-token";var AR=new Ke(2),wR=new Ke(3),kR=new Ke(5),Mo=new Ke(10),TR=new Ke(100),hR=new Ke(1e3),IR=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 Ea=E("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 sa(o,t,n,r,u,m,d,p,b,A,f,B,h,w,S,g,P,k,I,N,M){let T=c([e("amountMaxA"),e("amountMaxB"),e("openTime")]),x=po(o,n,m,d).publicKey,K=[{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:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,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:S,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:at,isSigner:!1,isWritable:!1},{pubkey:hn,isSigner:!1,isWritable:!1},{pubkey:Te,isSigner:!1,isWritable:!1},...(M!=null?M:[]).map(L=>({pubkey:L,isSigner:!1,isWritable:!1}))],C=Buffer.alloc(T.span);return T.encode({amountMaxA:k,amountMaxB:I,openTime:N},C),new de({keys:K,programId:o,data:Buffer.from([...pe.initialize,...C])})}function ua(o,t,n,r,u,m,d,p,b,A,f,B,h,w,S){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:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:Pe,isSigner:!1,isWritable:!1},{pubkey:mn,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 Ea.debug("cpmm deposit data",{lpAmount:h.toString(),amountMaxA:w.toString(),amountMaxB:S.toString()}),g.encode({lpAmount:h,amountMaxA:w,amountMaxB:S},k),new de({keys:P,programId:o,data:Buffer.from([...pe.deposit,...k])})}function ca(o,t,n,r,u,m,d,p,b,A,f,B,h,w,S){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:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:Pe,isSigner:!1,isWritable:!1},{pubkey:mn,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!0},{pubkey:He,isSigner:!1,isWritable:!1}],k=Buffer.alloc(g.span);return g.encode({lpAmount:h,amountMinA:w,amountMinB:S},k),new de({keys:P,programId:o,data:Buffer.from([...pe.withdraw,...k])})}function un(o,t,n,r,u,m,d,p,b,A,f,B,h,w,S,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:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,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:S,amounOutMin:g},I),new de({keys:k,programId:o,data:Buffer.from([...pe.swapBaseInput,...I])})}function la(o,t,n,r,u,m,d,p,b,A,f,B,h,w,S,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:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,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:S,amountOut:g},I),new de({keys:k,programId:o,data:Buffer.from([...pe.swapBaseOutput,...I])})}async function ma(o){var P;let{ownerInfo:t,poolInfo:n,poolKeys:r,feeNftOwner:u,getEphemeralSigners:m}=o,d=[],[p,b]=[new rt(n.id),new rt(n.lpMint.address)],A;if(m)A=new rt((await m(1))[0]);else{let k=Va.generate();d.push(k),A=k.publicKey}let{publicKey:f}=ae(u,A,Pe),{publicKey:B}=It(A),{publicKey:h}=an(o.lockProgram,A),{publicKey:w}=ae(t.wallet,b,Pe),{publicKey:S}=ae(o.lockAuthProgram,b,Pe),g=Da({programId:o.lockProgram,auth:o.lockAuthProgram,payer:t.feePayer,liquidityOwner:t.wallet,nftOwner:u,nftMint:A,nftAccount:f,poolId:p,lockPda:h,mintLp:b,userLpVault:w,lockLpVault:S,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:S},instructions:[g],signers:d,instructionTypes:[H.CpmmLockLp],lookupTableAddress:[]}}function Da({programId:o,auth:t,payer:n,liquidityOwner:r,nftOwner:u,nftMint:m,nftAccount:d,poolId:p,lockPda:b,mintLp:A,userLpVault:f,lockLpVault:B,poolVaultA:h,poolVaultB:w,metadataAccount:S,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:m,isSigner:!0,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:b,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:S,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")]),N=Buffer.alloc(I.span);I.encode({lpAmount:g,withMetadata:P},N);let M=Buffer.from([...pe.lockCpLiquidity,...N]);return new de({keys:k,programId:o,data:M})}function da({programId:o,nftOwner:t,auth:n,nftAccount:r,lockPda:u,poolId:m,mintLp:d,userVaultA:p,userVaultB:b,poolVaultA:A,poolVaultB:f,mintA:B,mintB:h,lockLpVault:w,lpFeeAmount:S,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:Yn,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,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:mn,isSigner:!1,isWritable:!1},{pubkey:He,isSigner:!1,isWritable:!1}],I=c([e("lpFeeAmount")]),N=Buffer.alloc(I.span);I.encode({lpFeeAmount:S},N);let M=Buffer.from([...pe.collectCpFee,...N]);return new de({keys:k,programId:o,data:M})}function pa(o,t,n,r,u,m,d,p,b,A,f,B,h){let w=sn(o,t,u).publicKey,S=[{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:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:b,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},{pubkey:w,isSigner:!1,isWritable:!1}];return new de({keys:S,programId:o,data:pe.collectCreatorFee})}function fa(o,t,n,r,u,m,d,p,b,A,f,B,h,w){let S=sn(o,n,m).publicKey,g=[{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:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!1},{pubkey:at,isSigner:!1,isWritable:!1},{pubkey:Lt.programId,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:S,isSigner:!1,isWritable:!1}];return new de({keys:g,programId:o,data:pe.collectCreatorFeePermissionless})}function ya(o,t,n,r,u,m,d,p,b,A,f,B,h,w,S,g,P,k,I,N,M,T,x,K){let C=c([e("amountA"),e("amountB"),e("openTime"),l("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:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:b,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:S,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},...(K!=null?K:[]).map(te=>({pubkey:te,isSigner:!1,isWritable:!1}))],_=Buffer.alloc(C.span);return C.encode({amountA:N,amountB:M,openTime:T,feeOn:x},_),new de({keys:L,programId:o,data:Buffer.from([...pe.initializeWithPermission,..._])})}export{da as collectCpFeeInstruction,fa as collectCreatorFeePermissionlessInInstruction,Da as cpmmLockPositionInstruction,ya as initializeWithPermission,pa as makeCollectCreatorFeeInstruction,ma as makeCpmmLockInstruction,sa as makeCreateCpmmPoolInInstruction,ua as makeDepositCpmmInInstruction,un as makeSwapCpmmBaseInInstruction,la as makeSwapCpmmBaseOutInstruction,ca as makeWithdrawCpmmInInstruction};
//# sourceMappingURL=instruction.mjs.map