UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 79.1 kB
var To=Object.defineProperty,ho=Object.defineProperties;var Io=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var ln=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable;var cn=(o,n,t)=>n in o?To(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,C=(o,n)=>{for(var t in n||(n={}))ln.call(n,t)&&cn(o,t,n[t]);if(st)for(var t of st(n))mn.call(n,t)&&cn(o,t,n[t]);return o},D=(o,n)=>ho(o,Io(n));var de=(o,n)=>{var t={};for(var i in o)ln.call(o,i)&&n.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&st)for(var i of st(o))n.indexOf(i)<0&&mn.call(o,i)&&(t[i]=o[i]);return t};import Z from"bn.js";import Ka from"decimal.js";import Ba from"big.js";import ke from"bn.js";import{get as dn,set as Bo}from"lodash";var Ct=class{constructor(n){this.logLevel=n.logLevel!==void 0?n.logLevel:0,this.name=n.name}set level(n){this.logLevel=n}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(n){return n<=this.logLevel}error(...n){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...n),this):this}logWithError(...n){let t=n.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...n){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...n),this):this}info(...n){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...n),this):this}debug(...n){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...n),this):this}},pn={},So={};function v(o){let n=dn(pn,o);if(!n){let t=dn(So,o);n=new Ct({name:o,logLevel:t}),Bo(pn,o,n)}return n}import{PublicKey as Ko}from"@solana/web3.js";import{MINT_SIZE as Da,TOKEN_PROGRAM_ID as Wa,getTransferFeeConfig as qa,unpackMint as Ua}from"@solana/spl-token";var Rt=v("Raydium_accountInfo_util");async function Pe(o,n,t){let{batchRequest:i,commitment:a="confirmed",chunkCount:m=100}=C({batchRequest:!1},t),p=Lt(n,m),f=new Array(p.length).fill([]);if(i){let y=p.map(K=>{let R=o._buildArgs([K.map(S=>S.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:R}}),T=Lt(y,10);f=(await(await Promise.all(T.map(async K=>await o._rpcBatchRequest(K)))).flat()).map(K=>(K.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${K.error.message}`),K.result.value.map(R=>{if(R){let{data:S,executable:F,lamports:P,owner:h,rentEpoch:B}=R;return S.length!==2&&S[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:F,lamports:P,owner:new Ko(h),rentEpoch:B}}return null})))}else try{f=await Promise.all(p.map(y=>o.getMultipleAccountsInfo(y,a)))}catch(y){y instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return f.flat()}import Xe from"bn.js";var fn=9007199254740991;function Y(o){let n=v("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);n.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&n.logWithError(`BigNumberish number underflow: ${o}`),(o>=fn||o<=-fn)&&n.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(n.error(`invalid BigNumberish value: ${o}`),new Xe(0))}import{merge as Hx}from"lodash";import ts from"axios";var yn={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"},xo=D(C({},yn),{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 Is=v("Raydium_Api");import{PublicKey as Xc,SystemProgram as Yc}from"@solana/web3.js";import{AccountLayout as $c,createAssociatedTokenAccountIdempotentInstruction as Jc,TOKEN_PROGRAM_ID as el,TOKEN_2022_PROGRAM_ID as tl}from"@solana/spl-token";import{PublicKey as Me,sendAndConfirmTransaction as Vt,SystemProgram as Mo,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import Fo from"axios";import{PublicKey as Ot,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Nt({connection:o,address:n,cluster:t="mainnet"}){let i=await Pe(o,[...new Set(n.map(m=>m.toString()))].map(m=>new Ot(m))),a={};for(let m=0;m<n.length;m++){let p=i[m],f=n[m];if(!p)continue;let y=new Oe({key:f,state:Oe.deserialize(p.data)});a[f.toString()]=y,t==="devnet"?Le[f.toString()]=y:Re[f.toString()]=y}return a}var Re={},Mt=async o=>{let n="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[n])return Re;let t=new Ot(n),i=await o.getAccountInfo(t);return i&&(Re[n]=new Oe({key:t,state:Oe.deserialize(i.data)})),Re},Le={},Ft=async o=>{let n="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[n])return Le;let t=new Ot(n),i=await o.getAccountInfo(t);return i&&(Le[n]=new Oe({key:t,state:Oe.deserialize(i.data)})),Le};var $={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as bn,Keypair as Pn,PublicKey as Co,Transaction as An,TransactionMessage as Ro,VersionedTransaction as wn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Lo}from"@solana/spl-token";var gn=v("Raydium_txUtil"),kn=1644;function ut(o){let n=[],t=[];return o.microLamports&&(n.push(bn.setComputeUnitPrice({microLamports:o.microLamports})),t.push($.SetComputeUnitPrice)),o.units&&(n.push(bn.setComputeUnitLimit({units:o.units})),t.push($.SetComputeUnitLimit)),{instructions:n,instructionTypes:t}}async function Ne(o,n){var i,a;let t=n!=null?n:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:t})))==null?void 0:a.blockhash}async function ct(o,n){return o.getSignatureStatuses([n]),new Promise((t,i)=>{let a=setTimeout(i,6e4);o.onSignature(n,m=>{if(clearTimeout(a),!m.err){t("");return}i(Object.assign(m.err,{txId:n}))},"confirmed")})}function vt(o,n){o.length<1&&gn.logWithError(`no instructions provided: ${o.toString()}`),n.length<1&&gn.logWithError(`no signers provided:, ${n.toString()}`);let t=new An;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<kn}catch{return!1}}function pe(o,n){let[t,i]=Co.findProgramAddressSync(o,n);return{publicKey:t,nonce:i}}function Ye({instructions:o,payer:n,signers:t}){return vt(o,[n,...t])}function Qe({instructions:o,payer:n,lookupTableAddressAccount:t,recentBlockhash:i=Pn.generate().publicKey.toString()}){let m=new Ro({payerKey:n,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new wn(m).serialize()).toString("base64").length<kn}catch{return!1}}var Oo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),No=o=>{let n=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof wn&&(n=Oo(n));try{return n instanceof Buffer?n.toString("base64"):Buffer.from(n).toString("base64")}catch{return n.toString("base64")}};function he(o){let n=[];return o.forEach(t=>{t instanceof An&&(t.recentBlockhash||(t.recentBlockhash=Lo.toBase58()),t.feePayer||(t.feePayer=Pn.generate().publicKey)),n.push(No(t))}),console.log("simulate tx string:",n),n}var lt=2e3,mt=class{constructor(n){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=n.connection,this.feePayer=n.feePayer,this.signAllTransactions=n.signAllTransactions,this.owner=n.owner,this.cluster=n.cluster,this.blockhashCommitment=n.blockhashCommitment,this.loopMultiTxStatus=!!n.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 i;let n=(await Fo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=n==null?void 0:n[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(n){if(n){let{instructions:t,instructionTypes:i}=ut(n);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(n){var t;return n?(this.endInstructions.push(Mo.transfer({fromPubkey:(t=n.feePayer)!=null?t:this.feePayer,toPubkey:new Me(n.address),lamports:BigInt(n.amount.toString())})),this.endInstructionTypes.push($.TransferTip),!0):!1}async calComputeBudget({config:n,defaultIns:t}){try{let i=n||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:n=[],endInstructions:t=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...n),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Me.default.toString())),this}async versionBuild({txVersion:n,extInfo:t,lookupTableAddress:i}){return n===0?await this.buildV0(D(C({},t||{}),{lookupTableAddress:i})):this.build(t)}build(n){var i;let t=new Ze;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var b;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:y}=a||{},T=m!=null?m:await Ne(this.connection,this.blockhashCommitment);if(t.recentBlockhash=T,this.signers.length&&t.sign(...this.signers),he([t]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Vt(this.connection,t,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:p}),signedTx:t};if(this.signAllTransactions){let K=await this.signAllTransactions([t]);if(this.signers.length)for(let R of K)try{R.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(K[0].serialize(),{skipPreflight:p}),signedTx:K[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}buildMultiTx(n){var T;let{extraPreBuildData:t=[],extInfo:i}=n,{transaction:a}=this.build(i),m=t.filter(b=>b.transaction.instructions.length>0),p=[a,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(b=>{b.some(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:y,execute:async b=>{var B;let{sequentially:K,onTxUpdate:R,skipTxCount:S=0,recentBlockHash:F,skipPreflight:P=!0}=b||{},h=F!=null?F:await Ne(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(K){let I=[],V=0;for(let _ of p){if(++V,V<=S)continue;let g=await Vt(this.connection,_,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});I.push(g)}return{txIds:I,signedTxs:p}}return{txIds:await await Promise.all(p.map(async I=>(I.recentBlockhash=h,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:P})))),signedTxs:p}}if(this.signAllTransactions){let I=p.map((_,g)=>(_.recentBlockhash=h,f[g].length&&_.sign(...f[g]),_));he(I);let V=await this.signAllTransactions(I);if(K){let _=0,g=[],A=async()=>{if(!V[_])return;let w=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:P});g.push({txId:w,status:"sent",signedTx:V[_]}),R==null||R([...g]),_++;let x=!1,L=null,E=null,ae=U=>{L!==null&&clearInterval(L),E!==null&&this.connection.removeSignatureListener(E);let q=g.findIndex(te=>te.txId===w);if(q>-1){if(g[q].status==="error"||g[q].status==="success")return;g[q].status=U.err?"error":"success"}R==null||R([...g]),U.err||A()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(x){clearInterval(L);return}try{let q=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(x=!0,clearInterval(L),ae({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(q){x=!0,clearInterval(L),console.error("getTransaction timeout:",q,w)}},lt)),E=this.connection.onSignature(w,U=>{if(x){this.connection.removeSignatureListener(E);return}x=!0,ae(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:g.map(w=>w.txId),signedTxs:V}}else{let _=[];for(let g=0;g<V.length;g+=1){let A=await this.connection.sendRawTransaction(V[g].serialize(),{skipPreflight:P});_.push(A)}return{txIds:_,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:n,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:n,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:n,extInfo:i})}async buildV0(n){var P;let F=n||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:m}=F,p=de(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await Ft(this.connection):await Mt(this.connection)),t),y=Array.from(new Set([...i,...this.lookupTableAddress])),T=[];for(let h of y)f[h]===void 0&&T.push(new Me(h));let b=await Nt({connection:this.connection,address:T});for(let[h,B]of Object.entries(b))f[h]=B;let K=a?Me.default.toBase58():m!=null?m:await Ne(this.connection,this.blockhashCommitment),R=new He({payerKey:this.feePayer,recentBlockhash:K,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new je(R);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var _;let{skipPreflight:B=!0,sendAndConfirm:I,notSendToRpc:V}=h||{};if(he([S]),(_=this.owner)!=null&&_.isKeyPair){let g=await this.connection.sendTransaction(S,{skipPreflight:B});return I&&await ct(this.connection,g),{txId:g,signedTx:S}}if(this.signAllTransactions){let g=await this.signAllTransactions([S]);if(this.signers.length)for(let A of g)try{A.sign(this.signers)}catch{}return{txId:V?"":await this.connection.sendTransaction(g[0],{skipPreflight:B}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(n){var T;let{extraPreBuildData:t=[],buildProps:i}=n,{transaction:a}=await this.buildV0(i),m=t.filter(b=>b.builder.instructions.length>0),p=[a,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(b=>{b.some(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,K)=>{b.sign(f[K])}),{builder:this,transactions:p,signers:f,instructionTypes:y,buildProps:i,execute:async b=>{var P;let{sequentially:K,onTxUpdate:R,recentBlockHash:S,skipPreflight:F=!0}=b||{};if(S&&p.forEach(h=>h.message.recentBlockhash=S),he(p),(P=this.owner)!=null&&P.isKeyPair){if(K){let h=[];for(let B of p){let I=await this.connection.sendTransaction(B,{skipPreflight:F});await ct(this.connection,I),h.push(I)}return{txIds:h,signedTxs:p}}return{txIds:await Promise.all(p.map(async h=>await this.connection.sendTransaction(h,{skipPreflight:F}))),signedTxs:p}}if(this.signAllTransactions){let h=await this.signAllTransactions(p);if(K){let B=0,I=[],V=async()=>{if(!h[B])return;let _=await this.connection.sendTransaction(h[B],{skipPreflight:F});I.push({txId:_,status:"sent",signedTx:h[B]}),R==null||R([...I]),B++;let g=!1,A=null,w=null,x=L=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let E=I.findIndex(ae=>ae.txId===_);if(E>-1){if(I[E].status==="error"||I[E].status==="success")return;I[E].status=L.err?"error":"success"}R==null||R([...I]),L.err||V()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var L;if(g){clearInterval(A);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(g=!0,clearInterval(A),x({err:((L=E.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){g=!0,clearInterval(A),console.error("getTransaction timeout:",E,_)}},lt)),w=this.connection.onSignature(_,L=>{if(g){this.connection.removeSignatureListener(w);return}g=!0,x(L)},"confirmed"),this.connection.getSignatureStatus(_)};return V(),{txIds:[],signedTxs:h}}else{let B=[];for(let I=0;I<h.length;I+=1){let V=await this.connection.sendTransaction(h[I],{skipPreflight:F});B.push(V)}return{txIds:B,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(n){var R;let K=n||{},{splitIns:t=[],computeBudgetConfig:i}=K,a=de(K,["splitIns","computeBudgetConfig"]),m=i?ut(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,F)=>D(C({},S),{[F.publicKey.toBase58()]:F}),{}),f=[],y=[],T=[],b=0;if(this.allInstructions.forEach(S=>{let F=[...T,S],P=i?[...m.instructions,...F]:F,B=[...new Set(F.map(I=>I.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(I=>new Me(I));if(S!==t[b]&&T.length<12&&(Ye({instructions:P,payer:this.feePayer,signers:B})||Ye({instructions:F,payer:this.feePayer,signers:B})))T.push(S);else{if(T.length===0)throw Error("item ins too big");b+=S===t[b]?1:0,Ye({instructions:i?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:B})?f.push(new Ze().add(...m.instructions,...T)):f.push(new Ze().add(...T)),y.push(Array.from(new Set(T.map(I=>I.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(I=>p[I]).filter(I=>I!==void 0)),T=[S]}}),T.length>0){let F=[...new Set(T.map(P=>P.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(P=>p[P]).filter(P=>P!==void 0);Ye({instructions:i?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:F.map(P=>P.publicKey)})?f.push(new Ze().add(...m.instructions,...T)):f.push(new Ze().add(...T)),y.push(F)}return f.forEach(S=>S.feePayer=this.feePayer),(R=this.owner)!=null&&R.signer&&y.forEach(S=>{S.some(F=>F.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:f,signers:y,instructionTypes:this.instructionTypes,execute:async S=>{var _;let{sequentially:F,onTxUpdate:P,skipTxCount:h=0,recentBlockHash:B,skipPreflight:I=!0}=S||{},V=B!=null?B:await Ne(this.connection,this.blockhashCommitment);if(f.forEach(async(g,A)=>{g.recentBlockhash=V,y[A].length&&g.sign(...y[A])}),he(f),(_=this.owner)!=null&&_.isKeyPair){if(F){let g=0,A=[];for(let w of f){if(++g,g<=h){A.push("tx skipped");continue}let x=await Vt(this.connection,w,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});A.push(x)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:I}))),signedTxs:f}}if(this.signAllTransactions){let g=await this.signAllTransactions(f.slice(h,f.length)),A=[...f.slice(0,h),...g];if(F){let w=0,x=[],L=async()=>{if(!A[w])return;w<h&&(x.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...x]),w++,L());let E=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:I});x.push({txId:E,status:"sent",signedTx:A[w]}),P==null||P([...x]),w++;let ae=!1,U=null,q=null,te=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let oe=x.findIndex(be=>be.txId===E);if(oe>-1){if(x[oe].status==="error"||x[oe].status==="success")return;x[oe].status=G.err?"error":"success"}P==null||P([...x]),G.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ae){clearInterval(U);return}try{let oe=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(ae=!0,clearInterval(U),te({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",E))}catch(oe){ae=!0,clearInterval(U),console.error("getTransaction timeout:",oe,E)}},lt)),q=this.connection.onSignature(E,G=>{if(ae){this.connection.removeSignatureListener(q);return}ae=!0,te(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await L(),{txIds:x.map(E=>E.txId),signedTxs:A}}else{let w=[];for(let x=0;x<A.length;x+=1){let L=await this.connection.sendRawTransaction(A[x].serialize(),{skipPreflight:I});w.push(L)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(n){var _;let V=n||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:p=12}=V,f=de(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=C(C({},this.cluster==="devnet"?await Ft(this.connection):await Mt(this.connection)),a),T=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of T)y[g]===void 0&&b.push(new Me(g));let K=await Nt({connection:this.connection,address:b});for(let[g,A]of Object.entries(K))y[g]=A;let R=t?ut(t):{instructions:[],instructionTypes:[]},S=await Ne(this.connection,this.blockhashCommitment),F=this.signers.reduce((g,A)=>D(C({},g),{[A.publicKey.toBase58()]:A}),{}),P=[],h=[],B=[],I=0;if(this.allInstructions.forEach(g=>{let A=[...B,g],w=t?[...R.instructions,...A]:A;if(g!==i[I]&&B.length<p&&(Qe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:y})||Qe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:y})))B.push(g);else{if(B.length===0)throw Error("item ins too big");I+=g===i[I]?1:0;let x={};for(let L of[...new Set(T)])y[L]!==void 0&&(x[L]=y[L]);if(t&&Qe({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:S})){let L=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(y));P.push(new je(L))}else{let L=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(y));P.push(new je(L))}h.push(Array.from(new Set(B.map(L=>L.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(L=>F[L]).filter(L=>L!==void 0)),B=[g]}}),B.length>0){let A=[...new Set(B.map(w=>w.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(w=>F[w]).filter(w=>w!==void 0);if(t&&Qe({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:S})){let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(y));P.push(new je(w))}else{let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(y));P.push(new je(w))}h.push(A)}return(_=this.owner)!=null&&_.signer&&h.forEach(g=>{g.some(A=>A.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),P.forEach((g,A)=>{g.sign(h[A])}),{builder:this,transactions:P,buildProps:n,signers:h,instructionTypes:this.instructionTypes,execute:async g=>{var ae;let{sequentially:A,onTxUpdate:w,skipTxCount:x=0,recentBlockHash:L,skipPreflight:E=!0}=g||{};if(P.map(async(U,q)=>{h[q].length&&U.sign(h[q]),L&&(U.message.recentBlockhash=L)}),he(P),(ae=this.owner)!=null&&ae.isKeyPair){if(A){let U=0,q=[];for(let te of P){if(++U,U<=x){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(te,{skipPreflight:E});await ct(this.connection,G),q.push(G)}return{txIds:q,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(x,P.length)),q=[...P.slice(0,x),...U];if(A){let te=0,G=[],oe=async()=>{if(!q[te])return;if(te<x){G.push({txId:"",status:"success",signedTx:q[te]}),w==null||w([...G]),te++,oe();return}let be=await this.connection.sendTransaction(q[te],{skipPreflight:E});G.push({txId:be,status:"sent",signedTx:q[te]}),w==null||w([...G]),te++;let Ge=!1,Ce=null,at=null,un=Te=>{Ce!==null&&clearInterval(Ce),at!==null&&this.connection.removeSignatureListener(at);let ge=G.findIndex(ko=>ko.txId===be);if(ge>-1){if(G[ge].status==="error"||G[ge].status==="success")return;G[ge].status=Te.err?"error":"success"}w==null||w([...G]),Te.err||oe()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var Te;if(Ge){clearInterval(Ce);return}try{let ge=await this.connection.getTransaction(be,{commitment:"confirmed",maxSupportedTransactionVersion:0});ge&&(Ge=!0,clearInterval(Ce),un({err:((Te=ge.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",be))}catch(ge){Ge=!0,clearInterval(Ce),console.error("getTransaction timeout:",ge,be)}},lt)),at=this.connection.onSignature(be,Te=>{if(Ge){this.connection.removeSignatureListener(at);return}Ge=!0,un(Te)},"confirmed"),this.connection.getSignatureStatus(be)};return oe(),{txIds:[],signedTxs:q}}else{let te=[];for(let G=0;G<q.length;G+=1){let oe=await this.connection.sendTransaction(q[G],{skipPreflight:E});te.push(oe)}return{txIds:te,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var _t=(...o)=>o.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),ie=class{constructor({scope:n,moduleName:t}){this.disabled=!1;this.scope=n,this.logger=v(t)}createTxBuilder(n){return this.scope.checkOwner(),new mt({connection:this.scope.connection,feePayer:n||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(...n){this.logger.debug(_t(n))}logInfo(...n){this.logger.info(_t(n))}logAndCreateError(...n){let t=_t(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as hc,SystemProgram as Bc}from"@solana/web3.js";import xc from"bn.js";import{createCloseAccountInstruction as Oc,createInitializeAccountInstruction as Nc,createTransferInstruction as Mc,TOKEN_PROGRAM_ID as Fc}from"@solana/spl-token";import{PublicKey as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tn}from"@solana/spl-token";var dt={chainId:101,address:vo.default.toBase58(),programId:Tn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Tn.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{Keypair as lc,PublicKey as mc}from"@solana/web3.js";import fc from"bn.js";import{TOKEN_PROGRAM_ID as gc}from"@solana/spl-token";import{PublicKey as Qo}from"@solana/web3.js";import Kn,{isBN as xn}from"bn.js";import{bits as Vo,BitStructure as yu,blob as _o,Blob as bu,cstr as gu,f32 as Pu,f32be as Au,f64 as wu,f64be as ku,greedy as Tu,Layout as Eo,ns64 as hu,ns64be as Iu,nu64 as Bu,nu64be as Su,offset as Do,s16 as Ku,s16be as xu,s24 as Cu,s24be as Ru,s32 as Wo,s32be as Lu,s40 as Ou,s40be as Nu,s48 as Mu,s48be as Fu,s8 as vu,seq as qo,struct as Vu,Structure as Uo,u16 as Go,u16be as _u,u24 as Eu,u24be as Du,u32 as zo,u32be as Wu,u40 as qu,u40be as Uu,u48 as Gu,u48be as zu,u8 as Xo,UInt as Yo,union as Xu,Union as Yu,unionLayoutDiscriminator as Qu,utf8 as Zu}from"@solana/buffer-layout";var pt=Eo,hn=Uo;var Et=Yo;var In=Xo,H=Go;var ft=zo;var ce=Wo;var Bn=qo;var M=_o;var Dt=Vo,Sn=Do;var Be=class extends pt{constructor(t,i,a){super(t,a);this.blob=M(t),this.signed=i}decode(t,i=0){let a=new Kn(this.blob.decode(t,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(t,i,a=0){return typeof t=="number"&&(t=new Kn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,a)}},yt=class extends pt{constructor(t){super(8,t);this._lower=Dt(ft(),!1),this._upper=Dt(ft(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,i=0){let a=this._lower.decode(t,i),m=this._upper.decode(t,i+this._lower.span);return C(C({},a),m)}encode(t,i,a=0){return this._lower.encode(t,i,a)+this._upper.encode(t,i,a+this._lower.span)}};function c(o){return new Et(1,o)}function z(o){return new Et(4,o)}function e(o){return new Be(8,!1,o)}function O(o){return new Be(16,!1,o)}function Cn(o){return new Be(1,!0,o)}function Fe(o){return new Be(8,!0,o)}function Rn(o){return new Be(16,!0,o)}var $e=class extends pt{constructor(t,i,a,m){super(t.span,m);this.layout=t,this.decoder=i,this.encoder=a}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,a){return this.layout.encode(this.encoder(t),i,a)}getSpan(t,i){return this.layout.getSpan(t,i)}};function r(o){return new $e(M(32),n=>new Qo(n),n=>n.toBuffer(),o)}function ue(o){return new $e(In(),Zo,Ho,o)}function Zo(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ho(o){return o?1:0}function Ln(o,n){let t=ft("length"),i=l([t,d(o,Sn(t,-t.span),"values")]);return new $e(i,({values:a})=>a,a=>({values:a}),n)}var Wt=class extends hn{decode(n,t){return super.decode(n,t)}};function l(o,n,t){return new Wt(o,n,t)}function d(o,n,t){let i,a=typeof n=="number"?n:xn(n)?n.toNumber():new Proxy(n,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=xn(f)?f.toNumber():f,Reflect.set(m,"count",i)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(i=f),Reflect.set(m,p,f)}});return Bn(o,a,t)}var bt=l([r("mint"),r("owner"),e("amount"),z("delegateOption"),r("delegate"),c("state"),z("isNativeOption"),e("isNative"),e("delegatedAmount"),z("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as vg,SystemProgram as Vg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Eg}from"@solana/spl-token";import{PublicKey as ul}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ll}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Nn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Mn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Fn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),qt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),fl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),$o=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Vn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),yl=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Jo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_n=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ei=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ti=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),En=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),bl=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ni=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ut=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),oi=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),gl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ii=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ri=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ai=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Pl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Al=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),wl=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),kl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Tl=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var we={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{PublicKey as X,SystemProgram as Dn,SYSVAR_RENT_PUBKEY as si}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ui}from"@solana/spl-token";function ve({pubkey:o,isSigner:n=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:n}}var ci=[ve({pubkey:ui,isWritable:!1}),ve({pubkey:Dn.programId,isWritable:!1}),ve({pubkey:si,isWritable:!1})];function Wn({publicKey:o,transformSol:n}){let t=qn(o.toString());if(t instanceof X)return n&&t.equals(Se)?Ae:t;if(n&&t.toString()===Se.toBase58())return Ae;if(typeof t=="string"){if(t===X.default.toBase58())return X.default;try{return new X(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function qn(o){try{return new X(o)}catch{return o}}var Gt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Je=new X("SysvarRent111111111111111111111111111111111"),Kl=new X("SysvarC1ock11111111111111111111111111111111"),Pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),li=new X("Sysvar1nstructions1111111111111111111111111"),mi=Dn.programId,xl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Cl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Rl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ll=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ol=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Nl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ml=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Fl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),vl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Vl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),_l=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new X("So11111111111111111111111111111111111111112"),Se=X.default;import Zg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as fy,TOKEN_2022_PROGRAM_ID as yy,TOKEN_PROGRAM_ID as by}from"@solana/spl-token";import{PublicKey as Py}from"@solana/web3.js";import wy from"bn.js";import Ty from"decimal.js";import{TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";import{PublicKey as xm}from"@solana/web3.js";import{PublicKey as zt}from"@solana/web3.js";var Xt=class{constructor({mint:n,decimals:t,symbol:i,name:a,skipMint:m=!1,isToken2022:p=!1}){if(n===Se.toBase58()||n instanceof zt&&Se.equals(n)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new zt(fe.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||n.toString().substring(0,6),this.name=a||n.toString().substring(0,6),this.mint=m?zt.default:Wn({publicKey:n}),this.isToken2022=p}equals(n){return this===n?!0:this.mint.equals(n.mint)}},J=Xt;J.WSOL=new Xt(D(C({},fe),{mint:fe.address}));var Yt=class{constructor({decimals:n,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=n,this.symbol=t,this.name=i}equals(n){return this===n}},et=Yt;et.SOL=new Yt(dt);import di from"toformat";var pi=di,tt=pi;import wt from"big.js";import yi from"bn.js";import bi from"decimal.js-light";var At=v("module/fraction"),Qt=tt(wt),nt=tt(bi),gi={[0]:nt.ROUND_DOWN,[1]:nt.ROUND_HALF_UP,[2]:nt.ROUND_UP},Pi={[0]:wt.roundDown,[1]:wt.roundHalfUp,[2]:wt.roundUp},N=class{constructor(n,t=new yi(1)){this.numerator=Y(n),this.denominator=Y(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new N(this.denominator,this.numerator)}add(n){let t=n instanceof N?n:new N(Y(n));return this.denominator.eq(t.denominator)?new N(this.numerator.add(t.numerator),this.denominator):new N(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(n){let t=n instanceof N?n:new N(Y(n));return this.denominator.eq(t.denominator)?new N(this.numerator.sub(t.numerator),this.denominator):new N(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(n){let t=n instanceof N?n:new N(Y(n));return new N(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(n){let t=n instanceof N?n:new N(Y(n));return new N(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(n,t={groupSeparator:""},i=1){Number.isInteger(n)||At.logWithError(`${n} is not an integer.`),n<=0&&At.logWithError(`${n} is not positive.`),nt.set({precision:n+1,rounding:gi[i]});let a=new nt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(n);return a.toFormat(a.decimalPlaces(),t)}toFixed(n,t={groupSeparator:""},i=1){return Number.isInteger(n)||At.logWithError(`${n} is not an integer.`),n<0&&At.logWithError(`${n} is negative.`),Qt.DP=n,Qt.RM=Pi[i]||1,new Qt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,t)}isZero(){return this.numerator.isZero()}};import Ai from"bn.js";var Un=new N(new Ai(100)),le=class extends N{toSignificant(n=5,t,i){return this.mul(Un).toSignificant(n,t,i)}toFixed(n=2,t,i){return this.mul(Un).toFixed(n,t,i)}};var wi=v("Raydium_price"),se=class extends N{constructor(t){let{baseToken:i,quoteToken:a,numerator:m,denominator:p}=t;super(m,p);this.baseToken=i,this.quoteToken=a,this.scalar=new N(Zt(i.decimals),Zt(a.decimals))}get raw(){return new N(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new se({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&wi.logWithError("mul token not equals");let i=super.mul(t);return new se({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(t=this.quoteToken.decimals,i,a){return this.adjusted.toSignificant(t,i,a)}toFixed(t=this.quoteToken.decimals,i,a){return this.adjusted.toFixed(t,i,a)}};var ki=l([z("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as vf,TOKEN_2022_PROGRAM_ID as Vf,TOKEN_PROGRAM_ID as _f}from"@solana/spl-token";import{Keypair as Wf,PublicKey as qf,SystemProgram as Gf,TransactionInstruction as zf}from"@solana/web3.js";import Yf from"bn.js";import W from"bn.js";var Ve=new W(1).shln(64);var Ti=new W(1).shln(128),Ht=new W(1).shln(64).subn(1),hi=new W(1).shln(128).subn(1);var _e=new W("4295048016"),Ee=new W("79226673521066979257578248091"),Ii=new W("59543866431248"),Bi=new W("184467440737095516"),Si=new W("15793534762490258745");var jt=60,Dm=new W("18446743708227953217"),Ki=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var ot=3,Gn=100;var zn=10,Xn=100,kt=14;var Q=new W(0),De=new W(1),Wm=new W(-1);var qm=new W("18446744073700000000");var xi=l([M(8),c("bump"),H("index"),r("owner"),z("protocolFeeRate"),z("tradeFeeRate"),H("tickSpacing"),z("fundFeeRate"),d(z(),1),r("fundOwner"),d(e(),3)]),Ci=l([z("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),Yn=l([M(8),ue("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),d(Ci,Gn,"observations"),d(e(),4)]),Ri=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Li=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),$t=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ce("tickCurrent"),z(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),M(6),d(Li,ot,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ri.replicate("dynamicFeeInfo"),d(e(),46)]),Oi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Ni=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Oi,ot,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Xm=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),ot,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Mi=l([ce("tick"),Rn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),ot,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(z(),3)]),Qn=l([M(8),r("poolId"),ce("startTickIndex"),d(Mi,jt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Fi=l([M(8),c("bump"),d(r(),zn,"operationOwners"),d(r(),Xn,"whitelistMints")]),vi=l([M(8),r("poolId"),r("owner"),ce("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),Zn=l([M(8),r("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),Ym=l([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),Vi=l([M(8),r("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),Qm=l([e(),c("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),d(e(),8)]),_i=l([M(8),c("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),d(e(),8)]);import jm from"bn.js";var ud=Buffer.from("amm_config","utf8"),Di=Buffer.from("pool","utf8"),Wi=Buffer.from("pool_vault","utf8"),cd=Buffer.from("pool_reward_vault","utf8"),ld=Buffer.from("position","utf8"),md=Buffer.from("tick_array","utf8"),dd=Buffer.from("operation","utf8"),pd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),fd=Buffer.from("observation","utf8"),yd=Buffer.from("support_mint","utf8"),bd=Buffer.from("dynamic_fee_config","utf8"),gd=Buffer.from("permission","utf8");var Pd=Buffer.from("locked_position","utf8");import{sha256 as nr}from"js-sha256";import qi from"bn.js";import Td from"decimal.js";var Id=new qi(1).shln(256).subn(1);import qd from"bn.js";import Ld from"bn.js";import Nd from"decimal.js";import Yd from"bn.js";import Zd from"decimal.js";import{PublicKey as Fp}from"@solana/web3.js";import Vp from"bn.js";import{TOKEN_2022_PROGRAM_ID as zp,TOKEN_PROGRAM_ID as Xp}from"@solana/spl-token";import Hp from"decimal.js";import Ip from"bn.js";import mp from"bn.js";import uf from"bn.js";function ee(o){let n=`global:${o}`;return Buffer.from(nr.digest(n)).slice(0,8)}Yn.span;var ty=v("Raydium_Clmm"),ny={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),createPermissionedPool:ee("create_permissioned_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as nn}from"@solana/web3.js";var ar=l([c("instruction")]),sr=l([c("instruction")]),ur=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),d(e(),15,"padding")]),cr=l([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),lr=l([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),c("option"),r("rewardVaultB"),M(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),mr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),d(ur,5,"rewardInfos"),r("creator"),r(),d(e(),32,"padding")]),dr=new Proxy(cr,{get(o,n,t){return n==="decode"?(...i)=>{let a=o.decode(...i);return D(C({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,n,t)}}),pr=new Proxy(lr,{get(o,n,t){return n==="decode"?(...i)=>{let a=o.decode(...i);return D(C({},a),{version:5,rewardInfos:[{rewardVault:a.rewardVaultA,totalReward:a.totalRewardA,perSlotReward:a.perSlotRewardA,perShareReward:a.perShareRewardA},{rewardVault:a.rewardVaultB,totalReward:a.totalRewardB,perSlotReward:a.perSlotRewardB,perShareReward:a.perShareRewardB}]})}:Reflect.get(o,n,t)}}),no=new Proxy(mr,{get(o,n,t){return n==="decode"?(...i)=>{let a=o.decode(...i);return D(C({},a),{version:6,rewardInfos:a.rewardInfos.map(m=>{var p;return D(C({},m),{rewardType:((p=Object.entries(rt).find(f=>String(f[1])===m.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(o,n,t)}}),fr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),yr=l([c("instruction"),e("nonce"),d(fr,5,"rewardTimeInfo")]),br=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),gr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),tb=l([e("state"),r("id"),r("owner"),e("deposited"),d(e(),1,"rewardDebts")]),oo=l([e("state"),r("id"),r("owner"),e("deposited"),d(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),nb=l([e("state"),r("id"),r("owner"),e("deposited"),d(e(),2,"rewardDebts")]),Pr=l([e("state"),r("id"),r("owner"),e("deposited"),d(O(),2,"rewardDebts"),d(e(),17)]),Ar=l([e(),e("state"),r("id"),r("owner"),e("deposited"),d(O(),5,"rewardDebts"),d(e(),16)]),wr=l([c("instruction"),e("amount")]),kr=l([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Cn("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),Tr=l([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),d(c(),32,"reserved1"),d(kr,4,"votingMints"),Fe("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),hr=l([Fe("startTime"),Fe("endTime"),c("kind"),d(c(),15,"reserved")]),Ir=l([d(hr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),Br=l([M(8),r("voterAuthority"),r("registrar"),d(Ir,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),d(c(),94,"reserved")]);import{NATIVE_MINT as mb}from"@solana/spl-token";var db=v("Raydium_farm_config"),Sr=new nn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Kr=new nn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var pb=new nn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var rt={"Standard SPL":0,"Option tokens":1},io={[Nn.toString()]:3,[Mn.toString()]:4,[Fn.toString()]:5,[qt.toString()]:6,[we.FARM_PROGRAM_ID_V3.toString()]:3,[we.FARM_PROGRAM_ID_V4.toString()]:4,[we.FARM_PROGRAM_ID_V5.toString()]:5,[we.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as jb,SystemProgram as $b,SYSVAR_CLOCK_PUBKEY as Jb,SYSVAR_RENT_PUBKEY as eg,TransactionInstruction as tg}from"@solana/web3.js";import og from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as rg,createAssociatedTokenAccountIdempotentInstruction as ag,TOKEN_PROGRAM_ID as sg}from"@solana/spl-token";import Kb from"bn.js";import{PublicKey as Pb}from"@solana/web3.js";import wb from"bn.js";var Db=v("Raydium.farm.util");var Pg=v("Raydium_farm_instruction"),Ag={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 aP from"bn.js";import{PublicKey as fw}from"@solana/web3.js";import{AccountLayout as gw,MintLayout as Pw,NATIVE_MINT as Aw,TOKEN_PROGRAM_ID as kw}from"@solana/spl-token";import cP from"bn.js";import ao from"bn.js";var Fr=new ao(25),vr=new ao(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as LP,TOKEN_PROGRAM_ID as OP}from"@solana/spl-token";import{PublicKey as MP,SystemProgram as FP,SYSVAR_RENT_PUBKEY as vP,TransactionInstruction as VP}from"@solana/web3.js";import zP from"bn.js";var Vr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),_r=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),KP=l([c("instruction"),c("nonce")]),Er=l([c("instruction"),c("nonce"),e("startTime")]),so=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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),e("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),e("lpReserve"),d(e(),3,"padding")]),xP=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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),d(e(),64,"padding")]),Dr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Wr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var qr=l([e("fee")]);var QP=v("Raydium_liquidity_instruction");var Ur=5e4,Gr=l([e("x"),e("y"),e("price")]),$P=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(Gr,Ur,"DataElement")]);import{PublicKey as lA}from"@solana/web3.js";import dA from"decimal.js";import{TOKEN_PROGRAM_ID as fA}from"@solana/spl-token";import{PublicKey as nA}from"@solana/web3.js";var rA=v("Raydium_liquidity_serum");import Ww from"bn.js";import Uw from"decimal.js";import{TOKEN_PROGRAM_ID as WA}from"@solana/spl-token";import{PublicKey as UA}from"@solana/web3.js";import zA from"bn.js";import{SystemProgram as xA,SYSVAR_RENT_PUBKEY as CA,Transaction as RA,TransactionInstruction as LA}from"@solana/web3.js";import{createInitializeAccountInstruction as NA,TOKEN_PROGRAM_ID as MA}from"@solana/spl-token";function zr(o="accountFlags"){let n=new yt(o);return n.addBoolean("initialized"),n.addBoolean("market"),n.addBoolean("openOrders"),n.addBoolean("requestQueue"),n.addBoolean("eventQueue"),n.addBoolean("bids"),n.addBoolean("asks"),n}var Xr=l([M(5),zr("accountFlags"),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as dT}from"@solana/web3.js";import{AccountLayout as fT,NATIVE_MINT as yT,TOKEN_2022_PROGRAM_ID as bT,TOKEN_PROGRAM_ID as gT,createAssociatedTokenAccountIdempotentInstruction as PT}from"@solana/spl-token";import mk from"bn.js";import ea from"bn.js";var $w=new ea(0);import ik from"bn.js";import ta from"bn.js";var It=new ta(1e6);import ST from"bn.js";import xT from"decimal.js";import{PublicKey as Ck,TransactionInstruction as Rk,Keypair as Ok,SystemProgram as Nk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Fk,TOKEN_2022_PROGRAM_ID as vk,TOKEN_PROGRAM_ID as Vk}from"@solana/spl-token";var bk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),gk=Buffer.from("amm_config","utf8"),Pk=Buffer.from("pool","utf8"),Ak=Buffer.from("pool_lp_mint","utf8"),wk=Buffer.from("pool_vault","utf8"),kk=Buffer.from("observation","utf8"),Tk=Buffer.from("permission","utf8"),hk=Buffer.from("support_mint","utf8");var Ik=Buffer.from("locked_liquidity","utf8");var Gk=v("Raydium_cpmm"),zk={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 ia=l([M(8),c("bump"),ue("disableCreatePool"),H("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),d(e(),15)]),co=l([M(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("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"),ue("enableCreatorFee"),d(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),d(e(),28)]),Qk=l([M(8),r("configId"),d(e(),30)]);import{PublicKey as AK,SystemProgram as wK}from"@solana/web3.js";import{createTransferInstruction as TK,TOKEN_PROGRAM_ID as hK,TOKEN_2022_PROGRAM_ID as IK,createAssociatedTokenAccountIdempotentInstruction as BK,createSyncNativeInstruction as KK,createTransferCheckedInstruction as xK}from"@solana/spl-token";import ka from"bn.js";import LK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as _h,TOKEN_2022_PROGRAM_ID as Eh,TOKEN_PROGRAM_ID as Dh}from"@solana/spl-token";import{SystemProgram as Gh,TransactionInstruction as zh}from"@solana/web3.js";import ma from"bn.js";var sa=l([e(),e("epoch"),c("curveType"),H("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),d(e(),16)]),ua=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),ca=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"),ua.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),d(c(),54)]),Ah=l([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),mo=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),la=l([e("epoch"),c("index"),r("configId"),mo.replicate("bondingCurveParam"),d(e(),50)]),po=l([e(),e("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),d(c(),64,"name"),d(c(),256,"web"),d(c(),256,"img"),r("cpConfigId"),e("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),e("platformVestingScale"),r("platformCpCreator"),c("restrictGlobalConfig"),d(c(),107),Ln(la,"platformCurve")]);var Ih=Buffer.from("vault_auth_seed","utf8"),Bh=Buffer.from("global_config","utf8"),Sh=Buffer.from("pool_vesting","utf8"),Kh=Buffer.from("platform_config","utf8"),xh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Ch=Buffer.from("creator_fee_vault_auth_seed","utf8"),Rh=Buffer.from("platform_global_access","utf8"),Lh=Buffer.from("platform_allow_config","utf8");var Zh={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 Hh=new ma("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as eI,TOKEN_PROGRAM_ID as tI}from"@solana/spl-token";import rI from"bn.js";import sI from"decimal.js";import EI from"bn.js";import WI from"decimal.js";import pI from"bn.js";import yI from"decimal.js";import BI from"bn.js";import KI from"decimal.js";import bo from"bn.js";import rn from"decimal.js";var St=class{static _multipler(n){return new rn(10).pow(n)}static getPrice({priceX64:n,decimalA:t,decimalB:i}){return new rn(n.toString()).div(this._Q64).mul(this._multipler(t)).div(this._multipler(i))}static getPriceX64({price:n,decimalA:t,decimalB:i}){let a=n.mul(this._multipler(i)).div(this._multipler(t));return new bo(a.mul(this._Q64).toFixed(0))}};St._Q64=new rn(new bo(1).shln(64).toString());import{NATIVE_MINT as ZB,TOKEN_2022_PROGRAM_ID as HB,TOKEN_PROGRAM_ID as jB,createAssociatedTokenAccountIdempotentInstruction as JB,createSyncNativeInstruction as eS,getTransferFeeConfig as tS,unpackMint as nS}from"@solana/spl-token";import j from"bn.js";import{PublicKey as Pa,SystemProgram as rS}from"@solana/web3.js";import dS from"decimal.js";var pS={initPriceX64:new j("515752397214619"),supply:new j(1e15),totalSellA:new j(7931e11),totalFundRaisingB:new j(85e9),totalFundRaisingBUSD:new j(125e8),totalLockedAmount:new j("0"),cliffPeriod:new j("0"),unlockPeriod:new j("0"),decimals:6,virtualA:new j("1073471847374405"),virtualB:new j("30050573465"),realA:new j(0),realB:new j(0),protocolFee:new j(0),platformId:new Pa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new j(0),cliffPeriod:new j(0),unlockPeriod:new j(0),startTime:new j(0),totalAllocatedShare:new j(0)}},fS=new j(1e4);var Aa={[vn.toBase58()]:3};var wa=l([M(5),M(8),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as VS}from"@solana/web3.js";var qS=v("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as jS,TOKEN_2022_PROGRAM_ID as $S,TOKEN_PROGRAM_ID as JS}from"@solana/spl-token";import{PublicKey as tK,SystemProgram as nK,TransactionInstruction as oK}from"@solana/web3.js";import rK from"bn.js";var sx=new ka(0);import{PublicKey as Ta,Transaction as an,TransactionInstruction as ha}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ia}from"@solana/spl-token";import go from"bn.js";var ne=class extends ie{static getPdaPoolId(n,t){return pe([ne.SEED_CONFIG.pool.id,t.toBuffer()],n)}static getPdaOwnerId(n,t,i,a){return pe([ne.SEED_CONFIG.owner.id,t.toBuffer(),i.toBuffer(),Buffer.from(new go(a).toArray())],n)}static async getAllInfo({connection:n,programId:t,poolIds:i,wallet:a,chainTime:m}){if(i.length===0)return[];let p=i.map(b=>ne.getPdaPoolId(t,b).publicKey),f=[];for(let b=0;b<ne.VERSION_PROJECT.length;b++)f.push(...p.map(K=>ne.getPdaOwnerId(t,K,a,b).publicKey));let y=await Pe(n,[...p,...f]),T=[];for(let b=0;b<y.length;b++){let K=Math.floor(b/i.length),R=b%i.length,S=p[R],F=f[b],P=y[R],h=y[i.length+b];if(!(P&&h)||P.data.length!==ne.POOL_LAYOUT.span||h.data.length!==ne.OWNER_LAYOUT.span)continue;let B=ne.POOL_LAYOUT.decode(P.data),I=ne.OWNER_LAYOUT.decode(h.data),V=B.openTime.toNumber(),_=B.endTime.toNumber(),g=I.tokenInfo.map(x=>x.debtAmount.gt(new go(0))).filter(x=>!x).length!==3,A=m>V&&m<_&&B.status===1,w=g&&A;T.push({programId:t,poolId:S,ammId:B.ammId,ownerAccountId:F,snapshotLpAmount:I.lpAmount,project:ne.VERSION_PROJECT[K],openTime:V,endTime:_,canClaim:w,canClaimErrorType:g?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:B.tokenInfo.map((x,L)=>({mintAddress:x.mintAddress,mintVault:x.mintVault,mintDecimals:x.mintDecimals,perLpLoss:x.perLpLoss,debtAmount:I.tokenInfo[L].debtAmount.add(I.tokenInfo[L].claimedAmount)}))})}return T}async makeClaimTransaction({poolInfo:n,ownerInfo:t,feePayer:i}){t.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),m=t.wallet||this.scope.ownerPubKey,p=[];for(let T of n.tokenInfo){let{account:b,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({mint:T.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:T.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!T.mintAddress.equals(J.WSOL.mint),associatedOnly:T.mintAddress.equals(J.WSOL.mint)?!1:t.associatedOnly});K&&a.addInstruction(K),p.push(b)}a.addInstruction({instructions:[ne.makeClaimInstruction({programId:n.programId,poolInfo:n,ownerInfo:{wallet:m,ownerPda:n.ownerAccountId,claimAddress:p}})]});let{transaction:f,signers:y}=a.build();return[{transaction:f,signer:y}]}async makeClaimAllTransaction({poolInfos:n,ownerInfo:t,feePayer:i}){let a=this.createTxBuilder(i),m=t.wallet||this.scope.ownerPubKey,p={};for(let b of n){let K=[];for(let R of b.tokenInfo){let{account:S,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({mint:R.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:R.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!R.mintAddress.equals(J.WSOL.mint),associatedOnly:R.mintAddress.equals(J.WSOL.mint)?!1:t.associatedOnly});F&&a.addInstruction(F),S&&(p[R.mintAddress.toString()]=S,K.push(S))}a.addInstruction({instructions:[ne.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:m,ownerPda:b.ownerAccountId,claimAddress:K}})]})}let{transaction:f,signers:y}=a.build(),T=a.allInstructions;return vt(T,[m,...y.map(b=>b.publicKey)])?[{transaction:f,signer:y}]:[{transaction:new an().add(...T.slice(0,a.AllTxData.instructions.length-1)),signer:y},{transaction:new an().add(...T.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new an().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:n,poolInfo:t,ownerInfo:i}){let a=l([]),m=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:t.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...t.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:Ia,isSigner:!1,isWritable:!1}],p=Buffer.alloc(a.span);a.encode({},p);let f=Buffer.from([10,66,208,184,161,6,191,98,...p]);return new ha({keys:m,programId:n,data:f})}},me=ne;me.CLAIMED_NUM=3,me.POOL_LAYOUT=l([M(8),c("bump"),c("status"),e("openTime"),e("endTime"),r("ammId"),d(l([c("mintDecimals"),r("mintAddress"),r("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),d(e(),10,"padding")]),me.OWNER_LAYOUT=l([M(8),c("bump"),c("version"),r("poolId"),r("owner"),e("lpAmount"),d(l([r("mintAddress"),e("debtAmount"),e("claimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),d(e(),4,"padding")]),me.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(n=>new Ta(n)),me.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},me.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as Ix}from"@solana/web3.js";import{getTransferFeeConfig as Sx,MintLayout as Kx,TOKEN_2022_PROGRAM_ID as xx,TOKEN_PROGRAM_ID as Cx,unpackMint as Rx}from"@solana/spl-token";function Kt(o){if(o instanceof le)return new N(o.numerator,o.denominator);if(o instanceof se)return o.adjusted;if(o instanceof re)try{return Kt(o.toExact())}catch{return new N(Q)}if(o instanceof N)return o;let n=String(o),t=Ue(n);return new N(t.numerator,t.denominator)}function sn(o,n){if(o==null||n==null)return;let t=Kt(o),i=Kt(n);return t.mul(i)}function Lt(o,n=1,t=[]){let i=[...o];if(n<=0)return t;for(;i.length;)t.push(i.splice(0,n));return t}var Sa=v("Raydium_amount"),xt=tt(Ba);function Po(o,n){let t="0",i="0";if(o.includes(".")){let a=o.split(".");a.length===2?([t,i]=a,i=i.padEnd(n,"0")):Sa.logWithError(`invalid number string, num: ${o}`)}else t=o;return[t,i.slice(0,n)||i]}var re=class extends N{constructor(t,i,a=!0,m){let p=new ke(0),f=xe.pow(new ke(t.decimals));if(a)p=Y(i);else{let y=new ke(0),T=new ke(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,K]=Po(i.toString(),t.decimals);y=Y(b),T=Y(K)}y=y.mul(f),p=y.add(T)}super(p,f);this.logger=v(m||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new re(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new re(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,i,a=0){return super.toSignificant(t,i,a)}toFixed(t=this.token.decimals,i,a=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,i,a)}toExact(t={groupSeparator:""}){return xt.DP=this.token.decimals,new xt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}},Ke=class extends N{constructor(t,i,a=!0,m){let p=new ke(0),f=xe.pow(new ke(t.decimals));if(a)p=Y(i);else{let y=new ke(0),T=new ke(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,K]=Po(i.toString(),t.decimals);y=Y(b),T=Y(K)}y=y.mul(f),p=y.add(T)}super(p,f);this.logger=v(m||"TokenAmount"),this.currency=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.currency.equals(t.currency)||this.logger.logWithError("gt currency not equals"),this.raw.gt(t.raw)}lt(t){return this.currency.equals(t.currency)||this.logger.logWithError("lt currency not equals"),this.raw.lt(t.raw)}add(t){return this.currency.equals(t.currency)||this.logger.logWithError("add currency not equals"),new Ke(this.currency,this.raw.add(t.raw))}sub(t){return this.currency.equals(t.currency)||this.logger.logWithError("sub currency not equals"),new Ke(this.currency,this.raw.sub(t.raw))}toSignificant(t=this.currency.decimals,i,a=0){return super.toSignificant(t,i,a)}toFixed(t=this.currency.decimals,i,a=0){return t>this.currency.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,i,a)}toExact(t={groupSeparator:""}){return xt.DP=this.currency.decimals,new xt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};var LR=new Z(2),OR=new Z(3),NR=new Z(5),xe=new Z(10),MR=new Z(100),FR=new Z(1e3),vR=new Z(1e4);function Zt(o){return xe.pow(Y(o))}function Ue(o){var f;if(o===void 0)return{denominator:"1",numerator:"0"};if(o instanceof Z)return{numerator:o.toString(),denominator:"1"};if(o instanceof N)return{denominator:o.denominator.toString(),numerator:o.numerator.toString()};let n=String(o),[,t="",i="",a=""]=(f=n.replace(",","").match(/(-?)(\d*)\.?(\d*)/))!=null?f:[],m="1"+"0".repeat(a.length),p=t+(i==="0"?"":i)+a||"0";return{denominator:m,numerator:p,sign:t,int:i,dec:a}}function Jr(o,n){let t=o.divmod(n);return t.mod.isZero()?t.div:o.isNeg()===n.isNeg()?t.div.iaddn(1):t.div}function xa(o){var i;let[,n="",t=""]=(i=o.toFixed(2).match(/(-?)(\d*)\.?(\d*)/))!=null?i:[];return`${n}${t}`}function Ca(o,n=0){return o instanceof Z?o:new Z(xa(wo(o).mul(xe.pow(new Z(String(n))))))}function wo(o){if(o instanceof le)return new N(o.numerator,o.denominator);if(o instanceof se)return o.adjusted;if(o instanceof re)try{return wo(o.toExact())}catch{return new N(Q)}if(o instanceof N)return o;let n=String(o),t=Ue(n);return new N(t.numerator,t.denominator)}function uo(o,n,t){return o.mul(n).add(t).sub(new Z(1)).div(t)}function na(o,n,t){return o.mul(n).div(t)}function VR(o,n){let{numerator:t,denominator:i}=Ue(o);return new le(new Z(t),new Z(i).mul(n!=null&&n.alreadyDecimaled?new Z(100):new Z(1)))}function _R(o){let{token:n,numberPrice:t,decimalDone:i}=o,a=new J({mint:"",decimals:6,symbol:"usd",name:"usd",skipMint:!0}),{numerator:m,denominator:p}=Ue(t),f=i?new Z(m).mul(xe.pow(new Z(n.decimals))):m,y=new Z(p).mul(xe.pow(new Z(a.decimals)));return new se({baseToken:a,denominator:y.toString(),quoteToken:new J(D(C({},n),{skipMint:!0,mint:""})),numerator:f.toString()})}function Ao(o){let n=new et({decimals:6,symbol:"usd",name:"usd"}),t=Ca(sn(o,10**n.decimals));return new Ke(n,t)}function ER(o,n){return Ao(!n||!o?0:sn(o,n))}function DR(o){if(o==null)return;let{numerator:n,denominator:t}=Ue(o.toString());return new N(n,t)}function WR(o){return o instanceof Ka}export{MR as BN_100,FR as BN_1000,vR as BN_10000,NR as BN_FIVE,xe as BN_TEN,OR as BN_THREE,LR as BN_TWO,uo as ceilDiv,DR as decimalToFraction,Jr as divCeil,na as floorDiv,WR as isDecimal,Ue as parseNumberInfo,xa as shakeFractionDecimal,Zt as tenExponential,Ca as toBN,wo as toFraction,VR as toPercent,_R as toTokenPrice,ER as toTotalPrice,Ao as toUsdCurrency};
//# sourceMappingURL=bignumber.mjs.map