@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 73.7 kB
JavaScript
var co=Object.defineProperty,lo=Object.defineProperties;var mo=Object.getOwnPropertyDescriptors;var tt=Object.getOwnPropertySymbols;var on=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var nn=(i,t,n)=>t in i?co(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,x=(i,t)=>{for(var n in t||(t={}))on.call(t,n)&&nn(i,n,t[n]);if(tt)for(var n of tt(t))rn.call(t,n)&&nn(i,n,t[n]);return i},F=(i,t)=>lo(i,mo(t));var ue=(i,t)=>{var n={};for(var r in i)on.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&&rn.call(i,r)&&(n[r]=i[r]);return n};import{PublicKey as so}from"@solana/web3.js";import Ie from"bn.js";import qC from"decimal.js";import To from"big.js";import Fa from"bn.js";import{get as an,set as po}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}},sn={},fo={};function E(i){let t=an(sn,i);if(!t){let n=an(fo,i);t=new ht({name:i,logLevel:n}),po(sn,i,t)}return t}import yo from"toformat";var bo=yo,De=bo;import ot from"big.js";import Po from"bn.js";import Ao from"decimal.js-light";import We from"bn.js";var un=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>=un||i<=-un)&&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(Ao),wo={[0]:qe.ROUND_DOWN,[1]:qe.ROUND_HALF_UP,[2]:qe.ROUND_UP},ko={[0]:ot.roundDown,[1]:ot.roundHalfUp,[2]:ot.roundUp},U=class{constructor(t,n=new Po(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:wo[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=ko[r]||1,new It(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ga=E("Raydium_amount"),za=De(To);import{PublicKey as Io}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as cn}from"@solana/spl-token";var it={chainId:101,address:Io.default.toBase58(),programId:cn.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:cn.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 ln,SYSVAR_RENT_PUBKEY as Bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as So}from"@solana/spl-token";function Se({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Ko=[Se({pubkey:So,isWritable:!1}),Se({pubkey:ln.programId,isWritable:!1}),Se({pubkey:Bo,isWritable:!1})];function Bt({publicKey:i,transformSol:t}){let n=mn(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 mn(i){try{return new z(i)}catch{return i}}var St=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ue=new z("SysvarRent111111111111111111111111111111111"),Ja=new z("SysvarC1ock11111111111111111111111111111111"),rt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),xo=new z("Sysvar1nstructions1111111111111111111111111"),Co=ln.programId,es=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ts=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ns=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),os=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),is=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),rs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),as=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ss=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),us=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),cs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ls=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 Ro from"bn.js";var Ts=new U(new Ro(100));var xs=E("Raydium_price");import{merge as Gx}from"lodash";import Vs from"axios";var dn={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"},Lo=F(x({},dn),{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 au=E("Raydium_Api");import{PublicKey as Bl,SystemProgram as Sl}from"@solana/web3.js";import{AccountLayout as Ll,createAssociatedTokenAccountIdempotentInstruction as Ol,TOKEN_PROGRAM_ID as Nl,TOKEN_2022_PROGRAM_ID as Ml}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Ft,SystemProgram as Vo,Transaction as Xe,TransactionMessage as Ye,VersionedTransaction as Qe}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 Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as pn,Keypair as yn,PublicKey as Oo,Transaction as bn,TransactionMessage as No,VersionedTransaction as gn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mo}from"@solana/spl-token";var fn=E("Raydium_txUtil"),Pn=1644;function st(i){let t=[],n=[];return i.microLamports&&(t.push(pn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Z.SetComputeUnitPrice)),i.units&&(t.push(pn.setComputeUnitLimit({units:i.units})),n.push(Z.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&&fn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&fn.logWithError(`no signers provided:, ${t.toString()}`);let n=new bn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Pn}catch{return!1}}function de(i,t){let[n,r]=Oo.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=yn.generate().publicKey.toString()}){let d=new No({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new gn(d).serialize()).toString("base64").length<Pn}catch{return!1}}var Fo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),vo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof gn&&(t=Fo(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 bn&&(n.recentBlockhash||(n.recentBlockhash=Mo.toBase58()),n.feePayer||(n.feePayer=yn.generate().publicKey)),t.push(vo(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(Z.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(C=>C.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 C of O)try{C.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:C,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 V of y){if(++v,v<=S)continue;let f=await Ft(this.connection,V,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((V,f)=>(V.recentBlockhash=T,p[f].length&&V.sign(...p[f]),V));ke(h);let v=await this.signAllTransactions(h);if(O){let V=0,f=[],A=async()=>{if(!v[V])return;let w=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:P});f.push({txId:w,status:"sent",signedTx:v[V]}),C==null||C([...f]),V++;let K=!1,R=null,_=null,ie=q=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let W=f.findIndex($=>$.txId===w);if(W>-1){if(f[W].status==="error"||f[W].status==="success")return;f[W].status=q.err?"error":"success"}C==null||C([...f]),q.err||A()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(K){clearInterval(R);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(K=!0,clearInterval(R),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){K=!0,clearInterval(R),console.error("getTransaction timeout:",W,w)}},ct)),_=this.connection.onSignature(w,q=>{if(K){this.connection.removeSignatureListener(_);return}K=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:f.map(w=>w.txId),signedTxs:v}}else{let V=[];for(let f=0;f<v.length;f+=1){let A=await this.connection.sendRawTransaction(v[f].serialize(),{skipPreflight:P});V.push(A)}return{txIds:V,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),C=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 Qe(C);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var V;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:v}=T||{};if(ke([S]),(V=this.owner)!=null&&V.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:C,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 V=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:V,status:"sent",signedTx:T[I]}),C==null||C([...h]),I++;let f=!1,A=null,w=null,K=R=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let _=h.findIndex(ie=>ie.txId===V);if(_>-1){if(h[_].status==="error"||h[_].status==="success")return;h[_].status=R.err?"error":"success"}C==null||C([...h]),R.err||v()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var R;if(f){clearInterval(A);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(f=!0,clearInterval(A),K({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){f=!0,clearInterval(A),console.error("getTransaction timeout:",_,V)}},ct)),w=this.connection.onSignature(V,R=>{if(f){this.connection.removeSignatureListener(w);return}f=!0,K(R)},"confirmed"),this.connection.getSignatureStatus(V)};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 C;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),(C=this.owner)!=null&&C.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 V;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),(V=this.owner)!=null&&V.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(R=>R.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=[],R=async()=>{if(!A[w])return;w<T&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,R());let _=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});K.push({txId:_,status:"sent",signedTx:A[w]}),P==null||P([...K]),w++;let ie=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=K.findIndex(fe=>fe.txId===_);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||R()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(ie=!0,clearInterval(q),$({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},ct)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:K.map(_=>_.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let R=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:h});w.push(R)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns: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 C=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?[...C.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 R of[...new Set(B)])b[R]!==void 0&&(K[R]=b[R]);if(n&&ze({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:S})){let R=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(b));P.push(new Qe(R))}else{let R=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(b));P.push(new Qe(R))}T.push(Array.from(new Set(I.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>M[R]).filter(R=>R!==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:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:S})){let w=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(b));P.push(new Qe(w))}else{let w=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(b));P.push(new Qe(w))}T.push(A)}return(V=this.owner)!=null&&V.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:R,skipPreflight:_=!0}=f||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),R&&(q.message.recentBlockhash=R)}),ke(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let q=0,W=[];for(let $ of P){if(++q,q<=K){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:_});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:_}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(K,P.length)),W=[...P.slice(0,K),...q];if(A){let $=0,G=[],te=async()=>{if(!W[$])return;if($<K){G.push({txId:"",status:"success",signedTx:W[$]}),w==null||w([...G]),$++,te();return}let fe=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[$]}),w==null||w([...G]),$++;let Ee=!1,Be=null,et=null,tn=Pe=>{Be!==null&&clearInterval(Be),et!==null&&this.connection.removeSignatureListener(et);let ye=G.findIndex(uo=>uo.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:0});ye&&(Ee=!0,clearInterval(Be),tn({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,tn(Pe)},"confirmed"),this.connection.getSignatureStatus(fe)};return te(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:_});$.push(te)}return{txIds:$,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 nl,SystemProgram as il}from"@solana/web3.js";import sl from"bn.js";import{createCloseAccountInstruction as ml,createInitializeAccountInstruction as dl,createTransferInstruction as pl,TOKEN_PROGRAM_ID as fl}from"@solana/spl-token";import{Keypair as Uc,PublicKey as Gc}from"@solana/web3.js";import Yc from"bn.js";import{TOKEN_PROGRAM_ID as Hc}from"@solana/spl-token";import{PublicKey as Ho}from"@solana/web3.js";import hn,{isBN as In}from"bn.js";import{bits as Eo,BitStructure as Qu,blob as Do,Blob as Zu,cstr as Hu,f32 as ju,f32be as $u,f64 as Ju,f64be as ec,greedy as tc,Layout as Wo,ns64 as nc,ns64be as oc,nu64 as ic,nu64be as rc,offset as qo,s16 as ac,s16be as sc,s24 as uc,s24be as cc,s32 as Uo,s32be as lc,s40 as mc,s40be as dc,s48 as pc,s48be as fc,s8 as yc,seq as Go,struct as bc,Structure as zo,u16 as Xo,u16be as gc,u24 as Pc,u24be as Ac,u32 as Yo,u32be as wc,u40 as kc,u40be as Tc,u48 as hc,u48be as Ic,u8 as Qo,UInt as Zo,union as Bc,Union as Sc,unionLayoutDiscriminator as Kc,utf8 as xc}from"@solana/buffer-layout";var mt=Wo,An=zo;var Vt=Zo;var wn=Qo,Y=Xo;var dt=Yo;var ae=Uo;var kn=Go;var N=Do;var _t=Eo,Tn=qo;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 hn(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 hn(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=_t(dt(),!1),this._upper=_t(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 Vt(1,i)}function X(i){return new Vt(4,i)}function e(i){return new he(8,!1,i)}function L(i){return new he(16,!1,i)}function Bn(i){return new he(1,!0,i)}function Oe(i){return new he(8,!0,i)}function Sn(i){return new he(16,!0,i)}var Ze=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 Ze(N(32),t=>new Ho(t),t=>t.toBuffer(),i)}function re(i){return new Ze(wn(),jo,$o,i)}function jo(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 Kn(i,t){let n=dt("length"),r=l([n,m(i,Tn(n,-n.span),"values")]);return new Ze(r,({values:u})=>u,u=>({values:u}),t)}var Et=class extends An{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:In(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let p=Reflect.get(d,"count");r=In(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 kn(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 Wl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ul}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"),Dt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Yl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ei=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),On=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Nn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ql=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ti=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Mn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ni=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),oi=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Fn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Zl=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ii=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Wt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ri=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Hl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ai=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),si=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ui=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),jl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),$l=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Jl=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),em=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),tm=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 ry,TOKEN_2022_PROGRAM_ID as ay,TOKEN_PROGRAM_ID as sy}from"@solana/spl-token";import{PublicKey as cy}from"@solana/web3.js";import my from"bn.js";import py from"decimal.js";import{TOKEN_PROGRAM_ID as ym}from"@solana/spl-token";import{PublicKey as Am}from"@solana/web3.js";var ci=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Kf,TOKEN_2022_PROGRAM_ID as xf,TOKEN_PROGRAM_ID as Cf}from"@solana/spl-token";import{Keypair as Of,PublicKey as Nf,SystemProgram as Ff,TransactionInstruction as vf}from"@solana/web3.js";import _f from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var li=new D(1).shln(128),qt=new D(1).shln(64).subn(1),mi=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),di=new D("59543866431248"),pi=new D("184467440737095516"),fi=new D("15793534762490258745");var Ut=60,Lm=new D("18446743708227953217"),yi=[{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 He=3,vn=100;var Vn=10,_n=100,bt=14;var H=new D(0),Ve=new D(1),Om=new D(-1);var Nm=new D("18446744073700000000");var bi=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)]),gi=l([X("blockTimestamp"),Oe("tickCumulative"),m(e(),4)]),En=l([N(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),m(gi,vn,"observations"),m(e(),4)]),Pi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Ai=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Gt=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"),L("liquidity"),L("sqrtPriceX64"),ae("tickCurrent"),X(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(L(),4),c("status"),c("feeOn"),N(6),m(Ai,He,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Pi.replicate("dynamicFeeInfo"),m(e(),46)]),wi=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),ki=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(wi,He,"rewardInfos"),e("recentEpoch"),m(e(),7)]),Vm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(L(),He,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Ti=l([ae("tick"),Sn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),m(L(),He,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),m(X(),3)]),Dn=l([N(8),o("poolId"),ae("startTickIndex"),m(Ti,Ut,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),hi=l([N(8),c("bump"),m(o(),Vn,"operationOwners"),m(o(),_n,"whitelistMints")]),Ii=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),m(e(),4)]),Wn=l([N(8),o("poolId"),N(8*8*bt,"positiveTickArrayBitmap"),N(8*8*bt,"negativeTickArrayBitmap")]),_m=l([N(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),m(e(),8)]),Bi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Em=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Si=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import qm from"bn.js";var Jm=Buffer.from("amm_config","utf8"),xi=Buffer.from("pool","utf8"),Ci=Buffer.from("pool_vault","utf8"),ed=Buffer.from("pool_reward_vault","utf8"),td=Buffer.from("position","utf8"),nd=Buffer.from("tick_array","utf8"),od=Buffer.from("operation","utf8"),id=Buffer.from("pool_tick_array_bitmap_extension","utf8"),rd=Buffer.from("observation","utf8"),ad=Buffer.from("support_mint","utf8"),sd=Buffer.from("dynamic_fee_config","utf8"),ud=Buffer.from("permission","utf8");var cd=Buffer.from("locked_position","utf8");import{sha256 as Gi}from"js-sha256";import Ri from"bn.js";import pd from"decimal.js";var yd=new Ri(1).shln(256).subn(1);import Nd from"bn.js";import Td from"bn.js";import Id from"decimal.js";import _d from"bn.js";import Dd from"decimal.js";import{PublicKey as Sp}from"@solana/web3.js";import xp from"bn.js";import{TOKEN_2022_PROGRAM_ID as vp,TOKEN_PROGRAM_ID as Vp}from"@solana/spl-token";import Wp from"decimal.js";import yp from"bn.js";import np from"bn.js";import $p from"bn.js";function j(i){let t=`global:${i}`;return Buffer.from(Gi.digest(t)).slice(0,8)}En.span;var Xf=E("Raydium_Clmm"),Yf={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as Zt}from"@solana/web3.js";var Qi=l([c("instruction")]),Zi=l([c("instruction")]),Hi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),m(e(),15,"padding")]),ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),$i=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),Ji=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),m(Hi,5,"rewardInfos"),o("creator"),o(),m(e(),32,"padding")]),er=new Proxy(ji,{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)}}),tr=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)}}),nr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),or=l([c("instruction"),e("nonce"),m(nr,5,"rewardTimeInfo")]),ir=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),rr=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")]),Qn=l([e("state"),o("id"),o("owner"),e("deposited"),m(L(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),Yy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),2,"rewardDebts")]),ar=l([e("state"),o("id"),o("owner"),e("deposited"),m(L(),2,"rewardDebts"),m(e(),17)]),sr=l([e(),e("state"),o("id"),o("owner"),e("deposited"),m(L(),5,"rewardDebts"),m(e(),16)]),ur=l([c("instruction"),e("amount")]),cr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Bn("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),lr=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),m(c(),32,"reserved1"),m(cr,4,"votingMints"),Oe("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),mr=l([Oe("startTime"),Oe("endTime"),c("kind"),m(c(),15,"reserved")]),dr=l([m(mr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),pr=l([N(8),o("voterAuthority"),o("registrar"),m(dr,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"),fr=new Zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),yr=new Zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var ib=new Zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var Je={"Standard SPL":0,"Option tokens":1},Zn={[Cn.toString()]:3,[Rn.toString()]:4,[Ln.toString()]:5,[Dt.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 Zb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as jb,createAssociatedTokenAccountIdempotentInstruction as $b,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 $g 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 jn from"bn.js";var hr=new jn(25),Ir=new jn(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 VP from"bn.js";var Br=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Sr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),AP=l([c("instruction"),c("nonce")]),Kr=l([c("instruction"),c("nonce"),e("startTime")]),$n=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"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),e("swapBase2QuoteFee"),L("swapQuoteInAmount"),L("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"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),L("swapQuoteInAmount"),L("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")]),xr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Cr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Rr=l([e("fee")]);var DP=E("Raydium_liquidity_instruction");var Lr=5e4,Or=l([e("x"),e("y"),e("price")]),GP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),m(Or,Lr,"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 QP}from"@solana/web3.js";var jP=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 VA 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 Nr(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 Mr=l([N(5),Nr("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 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 rk from"bn.js";import Wr from"bn.js";var zw=new Wr(0);import jw from"bn.js";import qr from"bn.js";var At=new qr(1e6);import wT from"bn.js";import TT from"decimal.js";import{PublicKey as hk,TransactionInstruction as Ik,Keypair as Sk,SystemProgram as Kk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ck,TOKEN_2022_PROGRAM_ID as Rk,TOKEN_PROGRAM_ID as Lk}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");var Pk=Buffer.from("locked_liquidity","utf8");var _k=E("Raydium_cpmm"),Ek={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 zr=l([N(8),c("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),m(e(),15)]),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)]),qk=l([N(8),o("configId"),m(e(),30)]);import{PublicKey as pK,SystemProgram as fK}from"@solana/web3.js";import{createTransferInstruction as bK,TOKEN_PROGRAM_ID as gK,TOKEN_2022_PROGRAM_ID as PK,createAssociatedTokenAccountIdempotentInstruction as AK,createSyncNativeInstruction as kK,createTransferCheckedInstruction as TK}from"@solana/spl-token";import ua from"bn.js";import BK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Oh,TOKEN_2022_PROGRAM_ID as Nh,TOKEN_PROGRAM_ID as Mh}from"@solana/spl-token";import{SystemProgram as _h,TransactionInstruction as Eh}from"@solana/web3.js";import $r from"bn.js";var Qr=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)]),Zr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),Hr=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"),Zr.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)]),ph=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),m(e(),8)]),to=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),jr=l([e("epoch"),c("index"),o("configId"),to.replicate("bondingCurveParam"),m(e(),50)]),no=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"),m(c(),107),Kn(jr,"platformCurve")]);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");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]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var Gh=new $r("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Qh,TOKEN_PROGRAM_ID as Zh}from"@solana/spl-token";import Jh from"bn.js";import tI from"decimal.js";import NI from"bn.js";import FI from"decimal.js";import sI from"bn.js";import cI from"decimal.js";import AI from"bn.js";import kI from"decimal.js";import ro 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 ro(u.mul(this._Q64).toFixed(0))}};Tt._Q64=new jt(new ro(1).shln(64).toString());import{NATIVE_MINT as UB,TOKEN_2022_PROGRAM_ID as GB,TOKEN_PROGRAM_ID as zB,createAssociatedTokenAccountIdempotentInstruction as YB,createSyncNativeInstruction as QB,getTransferFeeConfig as ZB,unpackMint as HB}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as ra,SystemProgram as JB}from"@solana/web3.js";import aS from"decimal.js";var sS={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 ra("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},uS=new Q(1e4);var aa={[On.toBase58()]:3};var sa=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 LS}from"@solana/web3.js";var vS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as zS,TOKEN_2022_PROGRAM_ID as XS,TOKEN_PROGRAM_ID as YS}from"@solana/spl-token";import{PublicKey as ZS,SystemProgram as HS,TransactionInstruction as jS}from"@solana/web3.js";import JS from"bn.js";var tx=new ua(0);import{PublicKey as ca,Transaction as $t,TransactionInstruction as la}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ma}from"@solana/spl-token";import ao 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 ao(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),C=g%r.length,S=y[C],M=p[g],P=b[C],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(),V=I.endTime.toNumber(),f=h.tokenInfo.map(K=>K.debtAmount.gt(new ao(0))).filter(K=>!K).length!==3,A=d>v&&d<V&&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:V,canClaim:w,canClaimErrorType:f?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((K,R)=>({mintAddress:K.mintAddress,mintVault:K.mintVault,mintDecimals:K.mintDecimals,perLpLoss:K.perLpLoss,debtAmount:h.tokenInfo[R].debtAmount.add(h.tokenInfo[R].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 C of g.tokenInfo){let{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:C.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:C.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!C.mintAddress.equals(J.WSOL.mint),associatedOnly:C.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),S&&(y[C.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 $t().add(...B.slice(0,u.AllTxData.instructions.length-1)),signer:b},{transaction:new $t().add(...B.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new $t().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:ma,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 la({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 ca(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 Px}from"@solana/web3.js";import{getTransferFeeConfig as wx,MintLayout as kx,TOKEN_2022_PROGRAM_ID as Tx,TOKEN_PROGRAM_ID as hx,unpackMint as Ix}from"@solana/spl-token";var $C=new Ie(2),JC=new Ie(3),eR=new Ie(5),ho=new Ie(10),tR=new Ie(100),nR=new Ie(1e3),oR=new Ie(1e4);function Jt(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 da,TOKEN_PROGRAM_ID as pa,getTransferFeeConfig as fa,unpackMint as ya}from"@solana/spl-token";var en=E("Raydium_accountInfo_util");async function me(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=x({batchRequest:!1},n),y=Jt(t,d),p=new Array(y.length).fill([]);if(r){let b=y.map(O=>{let C=i._buildArgs([O.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),B=Jt(b,10);p=(await(await Promise.all(B.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(C=>{if(C){let{data:S,executable:M,lamports:P,owner:T,rentEpoch:I}=C;return S.length!==2&&S[1]!=="base64"&&en.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:P,owner:new so(T),rentEpoch:I}}return null})))}else try{p=await Promise.all(y.map(b=>i.getMultipleAccountsInfo(b,u)))}catch(b){b instanceof Error&&en.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 ba=(r=>(r[r.Uninitialized=0]="Uninitialized",r[r.Mint=1]="Mint",r[r.Account=2]="Account",r))(ba||{}),OR=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<da){console.log("invalid mint account",b.pubkey.toBase58());continue}let B=ya(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)||pa,feeConfig:(p=fa(B))!=null?p:void 0})}return u[so.default.toBase58()]=u[le.toBase58()],u}export{OR as ACCOUNT_TYPE_SIZE,ba as AccountType,Qt as fetchMultipleMintInfos,me as getMultipleAccountsInfo,ge as getMultipleAccountsInfoWithCustomFlags};
//# sourceMappingURL=accountInfo.mjs.map