UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 74.3 kB
var uo=Object.defineProperty,co=Object.defineProperties;var lo=Object.getOwnPropertyDescriptors;var tt=Object.getOwnPropertySymbols;var rn=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable;var on=(i,t,n)=>t in i?uo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,x=(i,t)=>{for(var n in t||(t={}))rn.call(t,n)&&on(i,n,t[n]);if(tt)for(var n of tt(t))an.call(t,n)&&on(i,n,t[n]);return i},F=(i,t)=>co(i,lo(t));var ue=(i,t)=>{var n={};for(var r in i)rn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&tt)for(var r of tt(i))t.indexOf(r)<0&&an.call(i,r)&&(n[r]=i[r]);return n};import{PublicKey as ao}from"@solana/web3.js";import Ie from"bn.js";import dR from"decimal.js";import ko from"big.js";import Va from"bn.js";import{get as sn,set as mo}from"lodash";var ht=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}},un={},po={};function E(i){let t=sn(un,i);if(!t){let n=sn(po,i);t=new ht({name:i,logLevel:n}),mo(un,i,t)}return t}import fo from"toformat";var yo=fo,De=yo;import ot from"big.js";import go from"bn.js";import Po from"decimal.js-light";import We from"bn.js";var cn=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof We)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new We(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=cn||i<=-cn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new We(String(i))):typeof i=="bigint"?new We(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new We(0))}var nt=E("module/fraction"),It=De(ot),qe=De(Po),Ao={[0]:qe.ROUND_DOWN,[1]:qe.ROUND_HALF_UP,[2]:qe.ROUND_UP},wo={[0]:ot.roundDown,[1]:ot.roundHalfUp,[2]:ot.roundUp},U=class{constructor(t,n=new go(1)){this.numerator=ne(t),this.denominator=ne(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(ne(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(ne(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(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||nt.logWithError(`${t} is not an integer.`),t<=0&&nt.logWithError(`${t} is not positive.`),qe.set({precision:t+1,rounding:Ao[r]});let u=new qe(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)||nt.logWithError(`${t} is not an integer.`),t<0&&nt.logWithError(`${t} is negative.`),It.DP=t,It.RM=wo[r]||1,new It(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ya=E("Raydium_amount"),Ha=De(ko);import{PublicKey as ho}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ln}from"@solana/spl-token";var it={chainId:101,address:ho.default.toBase58(),programId:ln.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ce={chainId:101,address:"So11111111111111111111111111111111111111112",programId:ln.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 Kt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as mn,SYSVAR_RENT_PUBKEY as Io}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bo}from"@solana/spl-token";function Se({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var So=[Se({pubkey:Bo,isWritable:!1}),Se({pubkey:mn.programId,isWritable:!1}),Se({pubkey:Io,isWritable:!1})];function Bt({publicKey:i,transformSol:t}){let n=dn(i.toString());if(n instanceof z)return t&&n.equals(Ae)?le:n;if(t&&n.toString()===Ae.toBase58())return le;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function dn(i){try{return new z(i)}catch{return i}}var St=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ue=new z("SysvarRent111111111111111111111111111111111"),ns=new z("SysvarC1ock11111111111111111111111111111111"),rt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ko=new z("Sysvar1nstructions1111111111111111111111111"),xo=mn.programId,os=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),is=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),rs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),as=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ss=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),us=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),cs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ls=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ms=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ds=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ps=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new z("So11111111111111111111111111111111111111112"),Ae=z.default;function we(i){return Bt({publicKey:i,transformSol:!0})}var xt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===Ae.toBase58()||t instanceof Kt&&Ae.equals(t)){this.decimals=ce.decimals,this.symbol=ce.symbol,this.name=ce.name,this.mint=new Kt(ce.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=d?Kt.default:Bt({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=xt;J.WSOL=new xt(F(x({},ce),{mint:ce.address}));var Ct=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},at=Ct;at.SOL=new Ct(it);import Co from"bn.js";var Bs=new U(new Co(100));var Ls=E("Raydium_price");import{merge as fC}from"lodash";import Ds from"axios";var pn={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"},Ro=F(x({},pn),{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 cu=E("Raydium_Api");import{PublicKey as xl,SystemProgram as Cl}from"@solana/web3.js";import{AccountLayout as Ml,createAssociatedTokenAccountIdempotentInstruction as Fl,TOKEN_PROGRAM_ID as vl,TOKEN_2022_PROGRAM_ID as _l}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Ft,SystemProgram as vo,Transaction as Xe,TransactionMessage as Ye,VersionedTransaction as He}from"@solana/web3.js";import _o from"axios";import{PublicKey as Rt,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function Lt({connection:i,address:t,cluster:n="mainnet"}){let r=await me(i,[...new Set(t.map(d=>d.toString()))].map(d=>new Rt(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],p=t[d];if(!y)continue;let b=new Ce({key:p,state:Ce.deserialize(y.data)});u[p.toString()]=b,n==="devnet"?xe[p.toString()]=b:Ke[p.toString()]=b}return u}var Ke={},Ot=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new Rt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),Ke},xe={},Nt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new Rt(t),r=await i.getAccountInfo(n);return r&&(xe[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),xe};var Q={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 fn,Keypair as bn,PublicKey as Lo,Transaction as gn,TransactionMessage as Oo,VersionedTransaction as Pn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as No}from"@solana/spl-token";var yn=E("Raydium_txUtil"),An=1644;function st(i){let t=[],n=[];return i.microLamports&&(t.push(fn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(fn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function ut(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}r(Object.assign(d.err,{txId:t}))},"confirmed")})}function Mt(i,t){i.length<1&&yn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&yn.logWithError(`no signers provided:, ${t.toString()}`);let n=new gn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<An}catch{return!1}}function de(i,t){let[n,r]=Lo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Ge({instructions:i,payer:t,signers:n}){return Mt(i,[t,...n])}function ze({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=bn.generate().publicKey.toString()}){let d=new Oo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Pn(d).serialize()).toString("base64").length<An}catch{return!1}}var Mo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Fo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Pn&&(t=Mo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(i){let t=[];return i.forEach(n=>{n instanceof gn&&(n.recentBlockhash||(n.recentBlockhash=No.toBase58()),n.feePayer||(n.feePayer=bn.generate().publicKey)),t.push(Fo(n))}),console.log("simulate tx string:",t),t}var ct=2e3,lt=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 _o.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}=st(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(vo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.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:d=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...y.filter(p=>p!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(F(x({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Xe;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 g;let{recentBlockHash:d,skipPreflight:y=!0,sendAndConfirm:p,notSendToRpc:b}=u||{},B=d!=null?d:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=B,this.signers.length&&n.sign(...this.signers),ke([n]),(g=this.owner)!=null&&g.isKeyPair)return{txId:p?await Ft(this.connection,n,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:y}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let R of O)try{R.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:y}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var B;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(g=>g.transaction.instructions.length>0),y=[u,...d.map(g=>g.transaction)],p=[this.signers,...d.map(g=>g.signers)],b=[...this.instructionTypes,...d.map(g=>g.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&p.forEach(g=>{g.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:y,signers:p,instructionTypes:b,execute:async g=>{var I;let{sequentially:O,onTxUpdate:R,skipTxCount:S=0,recentBlockHash:M,skipPreflight:P=!0}=g||{},T=M!=null?M:await Re(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],v=0;for(let _ of y){if(++v,v<=S)continue;let f=await Ft(this.connection,_,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(f)}return{txIds:h,signedTxs:y}}return{txIds:await await Promise.all(y.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:y}}if(this.signAllTransactions){let h=y.map((_,f)=>(_.recentBlockhash=T,p[f].length&&_.sign(...p[f]),_));ke(h);let v=await this.signAllTransactions(h);if(O){let _=0,f=[],A=async()=>{if(!v[_])return;let w=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:P});f.push({txId:w,status:"sent",signedTx:v[_]}),R==null||R([...f]),_++;let K=!1,L=null,V=null,ie=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=f.findIndex(j=>j.txId===w);if(W>-1){if(f[W].status==="error"||f[W].status==="success")return;f[W].status=q.err?"error":"success"}R==null||R([...f]),q.err||A()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(K){clearInterval(L);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(K=!0,clearInterval(L),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){K=!0,clearInterval(L),console.error("getTransaction timeout:",W,w)}},ct)),V=this.connection.onSignature(w,q=>{if(K){this.connection.removeSignatureListener(V);return}K=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:f.map(w=>w.txId),signedTxs:v}}else{let _=[];for(let f=0;f<v.length;f+=1){let A=await this.connection.sendRawTransaction(v[f].serialize(),{skipPreflight:P});_.push(A)}return{txIds:_,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=M,y=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=x(x({},this.cluster==="devnet"?await Nt(this.connection):await Ot(this.connection)),n),b=Array.from(new Set([...r,...this.lookupTableAddress])),B=[];for(let T of b)p[T]===void 0&&B.push(new Le(T));let g=await Lt({connection:this.connection,address:B});for(let[T,I]of Object.entries(g))p[T]=I;let O=u?Le.default.toBase58():d!=null?d:await Re(this.connection,this.blockhashCommitment),R=new Ye({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new He(R);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var _;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:v}=T||{};if(ke([S]),(_=this.owner)!=null&&_.isKeyPair){let f=await this.connection.sendTransaction(S,{skipPreflight:I});return h&&await ut(this.connection,f),{txId:f,signedTx:S}}if(this.signAllTransactions){let f=await this.signAllTransactions([S]);if(this.signers.length)for(let A of f)try{A.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(f[0],{skipPreflight:I}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}async buildV0MultiTx(t){var B;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(g=>g.builder.instructions.length>0),y=[u,...d.map(g=>g.transaction)],p=[this.signers,...d.map(g=>g.signers)],b=[...this.instructionTypes,...d.map(g=>g.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&p.forEach(g=>{g.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),y.forEach(async(g,O)=>{g.sign(p[O])}),{builder:this,transactions:y,signers:p,instructionTypes:b,buildProps:r,execute:async g=>{var P;let{sequentially:O,onTxUpdate:R,recentBlockHash:S,skipPreflight:M=!0}=g||{};if(S&&y.forEach(T=>T.message.recentBlockhash=S),ke(y),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let I of y){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await ut(this.connection,h),T.push(h)}return{txIds:T,signedTxs:y}}return{txIds:await Promise.all(y.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:y}}if(this.signAllTransactions){let T=await this.signAllTransactions(y);if(O){let I=0,h=[],v=async()=>{if(!T[I])return;let _=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:_,status:"sent",signedTx:T[I]}),R==null||R([...h]),I++;let f=!1,A=null,w=null,K=L=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let V=h.findIndex(ie=>ie.txId===_);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=L.err?"error":"success"}R==null||R([...h]),L.err||v()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var L;if(f){clearInterval(A);return}try{let V=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});V&&(f=!0,clearInterval(A),K({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(V){f=!0,clearInterval(A),console.error("getTransaction timeout:",V,_)}},ct)),w=this.connection.onSignature(_,L=>{if(f){this.connection.removeSignatureListener(w);return}f=!0,K(L)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let v=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(v)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var R;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),d=r?st(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((S,M)=>F(x({},S),{[M.publicKey.toBase58()]:M}),{}),p=[],b=[],B=[],g=0;if(this.allInstructions.forEach(S=>{let M=[...B,S],P=r?[...d.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(h=>new Le(h));if(S!==n[g]&&B.length<12&&(Ge({instructions:P,payer:this.feePayer,signers:I})||Ge({instructions:M,payer:this.feePayer,signers:I})))B.push(S);else{if(B.length===0)throw Error("item ins too big");g+=S===n[g]?1:0,Ge({instructions:r?[...d.instructions,...B]:[...B],payer:this.feePayer,signers:I})?p.push(new Xe().add(...d.instructions,...B)):p.push(new Xe().add(...B)),b.push(Array.from(new Set(B.map(h=>h.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(h=>y[h]).filter(h=>h!==void 0)),B=[S]}}),B.length>0){let M=[...new Set(B.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>y[P]).filter(P=>P!==void 0);Ge({instructions:r?[...d.instructions,...B]:[...B],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?p.push(new Xe().add(...d.instructions,...B)):p.push(new Xe().add(...B)),b.push(M)}return p.forEach(S=>S.feePayer=this.feePayer),(R=this.owner)!=null&&R.signer&&b.forEach(S=>{S.some(M=>M.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:p,signers:b,instructionTypes:this.instructionTypes,execute:async S=>{var _;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},v=I!=null?I:await Re(this.connection,this.blockhashCommitment);if(p.forEach(async(f,A)=>{f.recentBlockhash=v,b[A].length&&f.sign(...b[A])}),ke(p),(_=this.owner)!=null&&_.isKeyPair){if(M){let f=0,A=[];for(let w of p){if(++f,f<=T){A.push("tx skipped");continue}let K=await Ft(this.connection,w,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(K)}return{txIds:A,signedTxs:p}}return{txIds:await Promise.all(p.map(async f=>await this.connection.sendRawTransaction(f.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let f=await this.signAllTransactions(p.slice(T,p.length)),A=[...p.slice(0,T),...f];if(M){let w=0,K=[],L=async()=>{if(!A[w])return;w<T&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,L());let V=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});K.push({txId:V,status:"sent",signedTx:A[w]}),P==null||P([...K]),w++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=K.findIndex(fe=>fe.txId===V);if(te>-1){if(K[te].status==="error"||K[te].status==="success")return;K[te].status=G.err?"error":"success"}P==null||P([...K]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});te&&(ie=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},ct)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:K.map(V=>V.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let L=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:h});w.push(L)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let v=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:y=12}=v,p=ue(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=x(x({},this.cluster==="devnet"?await Nt(this.connection):await Ot(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...d])),g=[];for(let f of B)b[f]===void 0&&g.push(new Le(f));let O=await Lt({connection:this.connection,address:g});for(let[f,A]of Object.entries(O))b[f]=A;let R=n?st(n):{instructions:[],instructionTypes:[]},S=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((f,A)=>F(x({},f),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(f=>{let A=[...I,f],w=n?[...R.instructions,...A]:A;if(f!==r[h]&&I.length<y&&(ze({instructions:w,payer:this.feePayer,lookupTableAddressAccount:b})||ze({instructions:A,payer:this.feePayer,lookupTableAddressAccount:b})))I.push(f);else{if(I.length===0)throw Error("item ins too big");h+=f===r[h]?1:0;let K={};for(let L of[...new Set(B)])b[L]!==void 0&&(K[L]=b[L]);if(n&&ze({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:S})){let L=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(b));P.push(new He(L))}else{let L=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(b));P.push(new He(L))}T.push(Array.from(new Set(I.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),I=[f]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&ze({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:S})){let w=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(b));P.push(new He(w))}else{let w=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(b));P.push(new He(w))}T.push(A)}return(_=this.owner)!=null&&_.signer&&T.forEach(f=>{f.some(A=>A.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),P.forEach((f,A)=>{f.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async f=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:K=0,recentBlockHash:L,skipPreflight:V=!0}=f||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),L&&(q.message.recentBlockhash=L)}),ke(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let q=0,W=[];for(let j of P){if(++q,q<=K){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await ut(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(K,P.length)),W=[...P.slice(0,K),...q];if(A){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<K){G.push({txId:"",status:"success",signedTx:W[j]}),w==null||w([...G]),j++,te();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:fe,status:"sent",signedTx:W[j]}),w==null||w([...G]),j++;let Ee=!1,Be=null,et=null,nn=Pe=>{Be!==null&&clearInterval(Be),et!==null&&this.connection.removeSignatureListener(et);let ye=G.findIndex(so=>so.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Pe.err?"error":"success"}w==null||w([...G]),Pe.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Pe;if(Ee){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:1});ye&&(Ee=!0,clearInterval(Be),nn({err:((Pe=ye.meta)==null?void 0:Pe.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){Ee=!0,clearInterval(Be),console.error("getTransaction timeout:",ye,fe)}},ct)),et=this.connection.onSignature(fe,Pe=>{if(Ee){this.connection.removeSignatureListener(et);return}Ee=!0,nn(Pe)},"confirmed"),this.connection.getSignatureStatus(fe)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var vt=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new lt({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(vt(t))}logInfo(...t){this.logger.info(vt(t))}logAndCreateError(...t){let n=vt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as rl,SystemProgram as sl}from"@solana/web3.js";import ll from"bn.js";import{createCloseAccountInstruction as fl,createInitializeAccountInstruction as yl,createTransferInstruction as bl,TOKEN_PROGRAM_ID as gl}from"@solana/spl-token";import{Keypair as Xc,PublicKey as Yc}from"@solana/web3.js";import Zc from"bn.js";import{TOKEN_PROGRAM_ID as Jc}from"@solana/spl-token";import{PublicKey as Qo}from"@solana/web3.js";import In,{isBN as Bn}from"bn.js";import{bits as Vo,BitStructure as $u,blob as Eo,Blob as ju,cstr as Ju,f32 as ec,f32be as tc,f64 as nc,f64be as oc,greedy as ic,Layout as Do,ns64 as rc,ns64be as ac,nu64 as sc,nu64be as uc,offset as Wo,s16 as cc,s16be as lc,s24 as mc,s24be as dc,s32 as qo,s32be as pc,s40 as fc,s40be as yc,s48 as bc,s48be as gc,s8 as Pc,seq as Uo,struct as Ac,Structure as Go,u16 as zo,u16be as wc,u24 as kc,u24be as Tc,u32 as Xo,u32be as hc,u40 as Ic,u40be as Bc,u48 as Sc,u48be as Kc,u8 as Yo,UInt as Ho,union as xc,Union as Cc,unionLayoutDiscriminator as Rc,utf8 as Lc}from"@solana/buffer-layout";var mt=Do,wn=Go;var _t=Ho;var kn=Yo,Y=zo;var dt=Xo;var ae=qo;var Tn=Uo;var N=Eo;var Vt=Vo,hn=Wo;var he=class extends mt{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new In(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 In(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},pt=class extends mt{constructor(n){super(8,n);this._lower=Vt(dt(),!1),this._upper=Vt(dt(),!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),d=this._upper.decode(n,r+this._lower.span);return x(x({},u),d)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new _t(1,i)}function X(i){return new _t(4,i)}function e(i){return new he(8,!1,i)}function C(i){return new he(16,!1,i)}function Sn(i){return new he(1,!0,i)}function Oe(i){return new he(8,!0,i)}function Kn(i){return new he(16,!0,i)}var Qe=class extends mt{constructor(n,r,u,d){super(n.span,d);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 o(i){return new Qe(N(32),t=>new Qo(t),t=>t.toBuffer(),i)}function re(i){return new Qe(kn(),Zo,$o,i)}function Zo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function $o(i){return i?1:0}function Dt(i,t){let n=dt("length"),r=l([n,m(i,hn(n,-n.span),"values")]);return new Qe(r,({values:u})=>u,u=>({values:u}),t)}var Et=class extends wn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Et(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:Bn(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let p=Reflect.get(d,"count");r=Bn(p)?p.toNumber():p,Reflect.set(d,"count",r)}return Reflect.get(d,y)},set(d,y,p){return y==="count"&&(r=p),Reflect.set(d,y,p)}});return Tn(i,u,n)}var ft=l([o("mint"),o("owner"),e("amount"),X("delegateOption"),o("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as xg,SystemProgram as Cg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Lg}from"@solana/spl-token";import{PublicKey as Gl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xl}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Cn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Rn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Ln=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Wt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Zl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Jo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),On=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Nn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$l=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ei=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Mn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ti=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Fn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),jl=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),oi=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),qt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ii=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Jl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ri=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ai=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),si=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),em=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),tm=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),nm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),om=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),im=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import Wg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as cy,TOKEN_2022_PROGRAM_ID as ly,TOKEN_PROGRAM_ID as my}from"@solana/spl-token";import{PublicKey as py}from"@solana/web3.js";import yy from"bn.js";import gy from"decimal.js";import{TOKEN_PROGRAM_ID as Pm}from"@solana/spl-token";import{PublicKey as Tm}from"@solana/web3.js";var ui=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Rf,TOKEN_2022_PROGRAM_ID as Lf,TOKEN_PROGRAM_ID as Of}from"@solana/spl-token";import{Keypair as Ff,PublicKey as vf,SystemProgram as Vf,TransactionInstruction as Ef}from"@solana/web3.js";import Wf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var ci=new D(1).shln(128),Ut=new D(1).shln(64).subn(1),li=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),mi=new D("59543866431248"),di=new D("184467440737095516"),pi=new D("15793534762490258745");var Gt=60,Mm=new D("18446743708227953217"),fi=[{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 Ze=3,vn=100;var _n=10,Vn=100,bt=14;var Z=new D(0),_e=new D(1),Fm=new D(-1);var vm=new D("18446744073700000000");var yi=l([N(8),c("bump"),Y("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("tickSpacing"),X("fundFeeRate"),m(X(),1),o("fundOwner"),m(e(),3)]),bi=l([X("blockTimestamp"),Oe("tickCumulative"),m(e(),4)]),En=l([N(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),m(bi,vn,"observations"),m(e(),4)]),gi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Pi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),C("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),C("growthGlobalX64")]),zt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Y("tickSpacing"),C("liquidity"),C("sqrtPriceX64"),ae("tickCurrent"),X(),C("feeGrowthGlobalX64A"),C("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(C(),4),c("status"),c("feeOn"),N(6),m(Pi,Ze,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),gi.replicate("dynamicFeeInfo"),m(e(),46)]),Ai=l([C("growthInsideLastX64"),e("rewardAmountOwed")]),wi=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),C("liquidity"),C("feeGrowthInsideLastX64A"),C("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(Ai,Ze,"rewardInfos"),e("recentEpoch"),m(e(),7)]),Dm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),C("liquidity"),C("feeGrowthInsideLastX64A"),C("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(C(),Ze,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),ki=l([ae("tick"),Kn("liquidityNet"),C("liquidityGross"),C("feeGrowthOutsideX64A"),C("feeGrowthOutsideX64B"),m(C(),Ze,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),C("unfilledRatioX64"),m(X(),3)]),Dn=l([N(8),o("poolId"),ae("startTickIndex"),m(ki,Gt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Ti=l([N(8),c("bump"),m(o(),_n,"operationOwners"),m(o(),Vn,"whitelistMints")]),hi=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),C("unfilledRatioX64"),m(e(),4)]),Wn=l([N(8),o("poolId"),N(8*8*bt,"positiveTickArrayBitmap"),N(8*8*bt,"negativeTickArrayBitmap")]),Wm=l([N(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),m(e(),8)]),Ii=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),qm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Bi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import zm from"bn.js";var nd=Buffer.from("amm_config","utf8"),Ki=Buffer.from("pool","utf8"),xi=Buffer.from("pool_vault","utf8"),od=Buffer.from("pool_reward_vault","utf8"),id=Buffer.from("position","utf8"),rd=Buffer.from("tick_array","utf8"),ad=Buffer.from("operation","utf8"),sd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),ud=Buffer.from("observation","utf8"),cd=Buffer.from("support_mint","utf8"),ld=Buffer.from("dynamic_fee_config","utf8"),md=Buffer.from("permission","utf8");var dd=Buffer.from("locked_position","utf8");import{sha256 as Ui}from"js-sha256";import Ci from"bn.js";import bd from"decimal.js";var Pd=new Ci(1).shln(256).subn(1);import vd from"bn.js";import Bd from"bn.js";import Kd from"decimal.js";import Wd from"bn.js";import Ud from"decimal.js";import{PublicKey as Cp}from"@solana/web3.js";import Lp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Ep,TOKEN_PROGRAM_ID as Dp}from"@solana/spl-token";import Gp from"decimal.js";import Pp from"bn.js";import rp from"bn.js";import tf from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(Ui.digest(t)).slice(0,8)}En.span;var Zf=E("Raydium_Clmm"),$f={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 Zt}from"@solana/web3.js";var Yi=l([c("instruction")]),Hi=l([c("instruction")]),Qi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),C("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),m(e(),15,"padding")]),Zi=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),C("perShareReward"),e("lastSlot"),e("perSlotReward")]),$i=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),C("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),C("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),ji=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),C("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),m(Qi,5,"rewardInfos"),o("creator"),o(),m(e(),32,"padding")]),Ji=new Proxy(Zi,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(x({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),er=new Proxy($i,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(x({},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(i,t,n)}}),Yn=new Proxy(ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(x({},u),{version:6,rewardInfos:u.rewardInfos.map(d=>{var y;return F(x({},d),{rewardType:((y=Object.entries(Je).find(p=>String(p[1])===d.rewardType.toString()))!=null?y:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),tr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),nr=l([c("instruction"),e("nonce"),m(tr,5,"rewardTimeInfo")]),or=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),ir=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Xy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),1,"rewardDebts")]),Hn=l([e("state"),o("id"),o("owner"),e("deposited"),m(C(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),Yy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),2,"rewardDebts")]),rr=l([e("state"),o("id"),o("owner"),e("deposited"),m(C(),2,"rewardDebts"),m(e(),17)]),ar=l([e(),e("state"),o("id"),o("owner"),e("deposited"),m(C(),5,"rewardDebts"),m(e(),16)]),sr=l([c("instruction"),e("amount")]),ur=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Sn("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),cr=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),m(c(),32,"reserved1"),m(ur,4,"votingMints"),Oe("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),lr=l([Oe("startTime"),Oe("endTime"),c("kind"),m(c(),15,"reserved")]),mr=l([m(lr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),dr=l([N(8),o("voterAuthority"),o("registrar"),m(mr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),m(c(),94,"reserved")]);import{NATIVE_MINT as nb}from"@solana/spl-token";var ob=E("Raydium_farm_config"),pr=new Zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),fr=new Zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var ib=new Zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var Je={"Standard SPL":0,"Option tokens":1},Qn={[Cn.toString()]:3,[Rn.toString()]:4,[Ln.toString()]:5,[Wt.toString()]:6,[be.FARM_PROGRAM_ID_V3.toString()]:3,[be.FARM_PROGRAM_ID_V4.toString()]:4,[be.FARM_PROGRAM_ID_V5.toString()]:5,[be.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Ub,SystemProgram as Gb,SYSVAR_CLOCK_PUBKEY as zb,SYSVAR_RENT_PUBKEY as Xb,TransactionInstruction as Yb}from"@solana/web3.js";import Qb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as $b,createAssociatedTokenAccountIdempotentInstruction as jb,TOKEN_PROGRAM_ID as Jb}from"@solana/spl-token";import Ab from"bn.js";import{PublicKey as lb}from"@solana/web3.js";import db from"bn.js";var Ob=E("Raydium.farm.util");var lg=E("Raydium_farm_instruction"),mg={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 jg from"bn.js";import{PublicKey as aw}from"@solana/web3.js";import{AccountLayout as cw,MintLayout as lw,NATIVE_MINT as mw,TOKEN_PROGRAM_ID as pw}from"@solana/spl-token";import tP from"bn.js";import $n from"bn.js";var Tr=new $n(25),hr=new $n(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as hP,TOKEN_PROGRAM_ID as IP}from"@solana/spl-token";import{PublicKey as SP,SystemProgram as KP,SYSVAR_RENT_PUBKEY as xP,TransactionInstruction as CP}from"@solana/web3.js";import _P from"bn.js";var Ir=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Br=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),AP=l([c("instruction"),c("nonce")]),Sr=l([c("instruction"),c("nonce"),e("startTime")]),jn=l([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"),C("swapBaseInAmount"),C("swapQuoteOutAmount"),e("swapBase2QuoteFee"),C("swapQuoteInAmount"),C("swapBaseOutAmount"),e("swapQuote2BaseFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("withdrawQueue"),o("lpVault"),o("owner"),e("lpReserve"),m(e(),3,"padding")]),wP=l([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"),C("swapBaseInAmount"),C("swapQuoteOutAmount"),C("swapQuoteInAmount"),C("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("modelDataAccount"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("owner"),m(e(),64,"padding")]),Kr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),xr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Cr=l([e("fee")]);var DP=E("Raydium_liquidity_instruction");var Rr=5e4,Lr=l([e("x"),e("y"),e("price")]),GP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),m(Lr,Rr,"DataElement")]);import{PublicKey as nA}from"@solana/web3.js";import iA from"decimal.js";import{TOKEN_PROGRAM_ID as aA}from"@solana/spl-token";import{PublicKey as HP}from"@solana/web3.js";var $P=E("Raydium_liquidity_serum");import Nw from"bn.js";import Fw from"decimal.js";import{TOKEN_PROGRAM_ID as NA}from"@solana/spl-token";import{PublicKey as FA}from"@solana/web3.js";import _A from"bn.js";import{SystemProgram as wA,SYSVAR_RENT_PUBKEY as kA,Transaction as TA,TransactionInstruction as hA}from"@solana/web3.js";import{createInitializeAccountInstruction as BA,TOKEN_PROGRAM_ID as SA}from"@solana/spl-token";function Or(i="accountFlags"){let t=new pt(i);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var Nr=l([N(5),Or("accountFlags"),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as cT}from"@solana/web3.js";import{AccountLayout as mT,NATIVE_MINT as dT,TOKEN_2022_PROGRAM_ID as pT,TOKEN_PROGRAM_ID as fT,createAssociatedTokenAccountIdempotentInstruction as yT}from"@solana/spl-token";import rk from"bn.js";import Dr from"bn.js";var zw=new Dr(0);import $w from"bn.js";import Wr from"bn.js";var At=new Wr(1e6);import hT from"bn.js";import BT from"decimal.js";import{PublicKey as Bk,TransactionInstruction as Sk,Keypair as xk,SystemProgram as Ck}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Lk,TOKEN_2022_PROGRAM_ID as Ok,TOKEN_PROGRAM_ID as Nk}from"@solana/spl-token";var lk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),mk=Buffer.from("amm_config","utf8"),dk=Buffer.from("pool","utf8"),pk=Buffer.from("pool_lp_mint","utf8"),fk=Buffer.from("pool_vault","utf8"),yk=Buffer.from("observation","utf8"),bk=Buffer.from("permission","utf8"),gk=Buffer.from("support_mint","utf8"),Pk=Buffer.from("creator_fee_share","utf8");var Ak=Buffer.from("locked_liquidity","utf8");var Dk=E("Raydium_cpmm"),Wk={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])};var Gr=l([N(8),c("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),m(e(),14)]),Jn=l([N(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),re("enableCreatorFee"),m(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),m(e(),28)]),Gk=l([N(8),o("configId"),m(e(),30)]),zk=l([N(8),c("bump"),o("creator"),o("ammConfig"),e("shareRate"),m(e(),8)]);import{PublicKey as _K,SystemProgram as VK}from"@solana/web3.js";import{createTransferInstruction as DK,TOKEN_PROGRAM_ID as WK,TOKEN_2022_PROGRAM_ID as qK,createAssociatedTokenAccountIdempotentInstruction as UK,createSyncNativeInstruction as zK,createTransferCheckedInstruction as XK}from"@solana/spl-token";import ma from"bn.js";import QK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Nh,TOKEN_2022_PROGRAM_ID as Mh,TOKEN_PROGRAM_ID as Fh}from"@solana/spl-token";import{SystemProgram as Eh,TransactionInstruction as Dh}from"@solana/web3.js";import Yr from"bn.js";var Ph=Buffer.from("vault_auth_seed","utf8"),Ah=Buffer.from("global_config","utf8"),wh=Buffer.from("pool_vesting","utf8"),kh=Buffer.from("platform_config","utf8"),Th=Buffer.from("platform_fee_vault_auth_seed","utf8"),hh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Ih=Buffer.from("platform_global_access","utf8"),Bh=Buffer.from("platform_allow_config","utf8"),Sh=Buffer.from("platform_curve_rule","utf8");var Uh={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 Gh=new Yr("18446744073709551615");var Hr=l([e(),e("epoch"),c("curveType"),Y("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),o("mintB"),o("protocolFeeOwner"),o("migrateFeeOwner"),o("migrateToAmmWallet"),o("migrateToCpmmWallet"),m(e(),16)]),Qr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),Zr=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),Qr.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),m(c(),54)]),Hh=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),m(e(),8)]),$r=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Qh=l([e("epoch"),c("index"),o("configId"),$r.replicate("bondingCurveParam"),m(e(),50)]),to=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),m(c(),64,"name"),m(c(),256,"web"),m(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),o("curveRuleManager"),m(c(),78)]),jr=l([c("field"),c("op"),C("value")]),Jr=l([Y("groupId"),e("epoch"),Dt(jr,"constraints")]),ea=l([e(),c("bump"),c("version"),o("platformId"),o("configId"),e("epoch"),m(e(),8),Dt(Jr,"groups")]);import{TOKEN_2022_PROGRAM_ID as jh,TOKEN_PROGRAM_ID as Jh}from"@solana/spl-token";import ta from"bn.js";var mI=new ta(1e6);import yI from"bn.js";import gI from"decimal.js";import QI from"bn.js";import $I from"decimal.js";import hI from"bn.js";import BI from"decimal.js";import FI from"bn.js";import _I from"decimal.js";import io from"bn.js";import jt from"decimal.js";var Tt=class{static _multipler(t){return new jt(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new jt(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 io(u.mul(this._Q64).toFixed(0))}};Tt._Q64=new jt(new io(1).shln(64).toString());import{NATIVE_MINT as dS,TOKEN_2022_PROGRAM_ID as pS,TOKEN_PROGRAM_ID as fS,createAssociatedTokenAccountIdempotentInstruction as bS,createSyncNativeInstruction as gS,getTransferFeeConfig as PS,unpackMint as AS}from"@solana/spl-token";import H from"bn.js";import{PublicKey as ua,SystemProgram as TS}from"@solana/web3.js";import CS from"decimal.js";var RS={initPriceX64:new H("515752397214619"),supply:new H(1e15),totalSellA:new H(7931e11),totalFundRaisingB:new H(85e9),totalFundRaisingBUSD:new H(125e8),totalLockedAmount:new H("0"),cliffPeriod:new H("0"),unlockPeriod:new H("0"),decimals:6,virtualA:new H("1073471847374405"),virtualB:new H("30050573465"),realA:new H(0),realB:new H(0),protocolFee:new H(0),platformId:new ua("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},LS=new H(1e4);var ca={[On.toBase58()]:3};var la=l([N(5),N(8),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as tK}from"@solana/web3.js";var aK=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as yK,TOKEN_2022_PROGRAM_ID as bK,TOKEN_PROGRAM_ID as gK}from"@solana/spl-token";import{PublicKey as AK,SystemProgram as wK,TransactionInstruction as kK}from"@solana/web3.js";import hK from"bn.js";var Bx=new ma(0);import{PublicKey as da,Transaction as Jt,TransactionInstruction as pa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fa}from"@solana/spl-token";import ro from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return de([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return de([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new ro(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:d}){if(r.length===0)return[];let y=r.map(g=>ee.getPdaPoolId(n,g).publicKey),p=[];for(let g=0;g<ee.VERSION_PROJECT.length;g++)p.push(...y.map(O=>ee.getPdaOwnerId(n,O,u,g).publicKey));let b=await me(t,[...y,...p]),B=[];for(let g=0;g<b.length;g++){let O=Math.floor(g/r.length),R=g%r.length,S=y[R],M=p[g],P=b[R],T=b[r.length+g];if(!(P&&T)||P.data.length!==ee.POOL_LAYOUT.span||T.data.length!==ee.OWNER_LAYOUT.span)continue;let I=ee.POOL_LAYOUT.decode(P.data),h=ee.OWNER_LAYOUT.decode(T.data),v=I.openTime.toNumber(),_=I.endTime.toNumber(),f=h.tokenInfo.map(K=>K.debtAmount.gt(new ro(0))).filter(K=>!K).length!==3,A=d>v&&d<_&&I.status===1,w=f&&A;B.push({programId:n,poolId:S,ammId:I.ammId,ownerAccountId:M,snapshotLpAmount:h.lpAmount,project:ee.VERSION_PROJECT[O],openTime:v,endTime:_,canClaim:w,canClaimErrorType:f?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((K,L)=>({mintAddress:K.mintAddress,mintVault:K.mintVault,mintDecimals:K.mintDecimals,perLpLoss:K.perLpLoss,debtAmount:h.tokenInfo[L].debtAmount.add(h.tokenInfo[L].claimedAmount)}))})}return B}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,y=[];for(let B of t.tokenInfo){let{account:g,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({mint:B.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:B.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!B.mintAddress.equals(J.WSOL.mint),associatedOnly:B.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});O&&u.addInstruction(O),y.push(g)}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:d,ownerPda:t.ownerAccountId,claimAddress:y}})]});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),d=n.wallet||this.scope.ownerPubKey,y={};for(let g of t){let O=[];for(let R of g.tokenInfo){let{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:R.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:R.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!R.mintAddress.equals(J.WSOL.mint),associatedOnly:R.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),S&&(y[R.mintAddress.toString()]=S,O.push(S))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:g.programId,poolInfo:g,ownerInfo:{wallet:d,ownerPda:g.ownerAccountId,claimAddress:O}})]})}let{transaction:p,signers:b}=u.build(),B=u.allInstructions;return Mt(B,[d,...b.map(g=>g.publicKey)])?[{transaction:p,signer:b}]:[{transaction:new Jt().add(...B.slice(0,u.AllTxData.instructions.length-1)),signer:b},{transaction:new Jt().add(...B.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new Jt().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=l([]),d=[{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:fa,isSigner:!1,isWritable:!1}],y=Buffer.alloc(u.span);u.encode({},y);let p=Buffer.from([10,66,208,184,161,6,191,98,...y]);return new pa({keys:d,programId:t,data:p})}},se=ee;se.CLAIMED_NUM=3,se.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),m(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),m(e(),10,"padding")]),se.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),m(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),m(e(),4,"padding")]),se.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new da(t)),se.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},se.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as qx}from"@solana/web3.js";import{getTransferFeeConfig as Gx,MintLayout as zx,TOKEN_2022_PROGRAM_ID as Xx,TOKEN_PROGRAM_ID as Yx,unpackMint as Hx}from"@solana/spl-token";var TR=new Ie(2),hR=new Ie(3),IR=new Ie(5),To=new Ie(10),BR=new Ie(100),SR=new Ie(1e3),KR=new Ie(1e4);function en(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{MINT_SIZE as ya,TOKEN_PROGRAM_ID as ba,getTransferFeeConfig as ga,unpackMint as Pa}from"@solana/spl-token";var tn=E("Raydium_accountInfo_util");async function me(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=x({batchRequest:!1},n),y=en(t,d),p=new Array(y.length).fill([]);if(r){let b=y.map(O=>{let R=i._buildArgs([O.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),B=en(b,10);p=(await(await Promise.all(B.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(R=>{if(R){let{data:S,executable:M,lamports:P,owner:T,rentEpoch:I}=R;return S.length!==2&&S[1]!=="base64"&&tn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:P,owner:new ao(T),rentEpoch:I}}return null})))}else try{p=await Promise.all(y.map(b=>i.getMultipleAccountsInfo(b,u)))}catch(b){b instanceof Error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return p.flat()}async function ge(i,t,n){let r=await me(i,t.map(u=>u.pubkey),n);return t.map((u,d)=>F(x({},u),{accountInfo:r[d]}))}var Aa=(r=>(r[r.Uninitialized=0]="Uninitialized",r[r.Mint=1]="Mint",r[r.Account=2]="Account",r))(Aa||{}),nL=1;async function Qt({connection:i,mints:t,config:n}){var d,y,p;if(t.length===0)return{};let r=await ge(i,t.map(b=>({pubkey:we(b)})),n),u={};for(let b of r){if(!b.accountInfo||b.accountInfo.data.length<ya){console.log("invalid mint account",b.pubkey.toBase58());continue}let B=Pa(b.pubkey,b.accountInfo,(d=b.accountInfo)==null?void 0:d.owner);u[b.pubkey.toString()]=F(x({},B),{programId:((y=b.accountInfo)==null?void 0:y.owner)||ba,feeConfig:(p=ga(B))!=null?p:void 0})}return u[ao.default.toBase58()]=u[le.toBase58()],u}export{nL as ACCOUNT_TYPE_SIZE,Aa as AccountType,Qt as fetchMultipleMintInfos,me as getMultipleAccountsInfo,ge as getMultipleAccountsInfoWithCustomFlags};
//# sourceMappingURL=accountInfo.mjs.map