UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 79.7 kB
var ko=Object.defineProperty,To=Object.defineProperties;var ho=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var ln=(o,n,t)=>n in o?ko(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,R=(o,n)=>{for(var t in n||(n={}))mn.call(n,t)&&ln(o,t,n[t]);if(st)for(var t of st(n))dn.call(n,t)&&ln(o,t,n[t]);return o},_=(o,n)=>To(o,ho(n));var de=(o,n)=>{var t={};for(var i in o)mn.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&&dn.call(o,i)&&(t[i]=o[i]);return t};import Z from"bn.js";import Ra from"decimal.js";import xa from"big.js";import ke from"bn.js";import{get as pn,set as Io}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}},fn={},Bo={};function v(o){let n=pn(fn,o);if(!n){let t=pn(Bo,o);n=new Ct({name:o,logLevel:t}),Io(fn,o,n)}return n}import{PublicKey as So}from"@solana/web3.js";import{MINT_SIZE as Ua,TOKEN_PROGRAM_ID as Ga,getTransferFeeConfig as za,unpackMint as Xa}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}=R({batchRequest:!1},t),p=Lt(n,m),f=new Array(p.length).fill([]);if(i){let y=p.map(K=>{let L=o._buildArgs([K.map(S=>S.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:L}}),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(L=>{if(L){let{data:S,executable:F,lamports:P,owner:h,rentEpoch:B}=L;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 So(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 yn=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>=yn||o<=-yn)&&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 wC}from"lodash";import is from"axios";var bn={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"},Ko=_(R({},bn),{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 Ks=v("Raydium_Api");import{PublicKey as Qc,SystemProgram as Zc}from"@solana/web3.js";import{AccountLayout as tl,createAssociatedTokenAccountIdempotentInstruction as nl,TOKEN_PROGRAM_ID as ol,TOKEN_2022_PROGRAM_ID as il}from"@solana/spl-token";import{PublicKey as Me,sendAndConfirmTransaction as _t,SystemProgram as No,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as $e}from"@solana/web3.js";import Mo 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 j={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 gn,Keypair as An,PublicKey as xo,Transaction as wn,TransactionMessage as Co,VersionedTransaction as kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ro}from"@solana/spl-token";var Pn=v("Raydium_txUtil"),Tn=1644;function ut(o){let n=[],t=[];return o.microLamports&&(n.push(gn.setComputeUnitPrice({microLamports:o.microLamports})),t.push(j.SetComputeUnitPrice)),o.units&&(n.push(gn.setComputeUnitLimit({units:o.units})),t.push(j.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&&Pn.logWithError(`no instructions provided: ${o.toString()}`),n.length<1&&Pn.logWithError(`no signers provided:, ${n.toString()}`);let t=new wn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Tn}catch{return!1}}function pe(o,n){let[t,i]=xo.findProgramAddressSync(o,n);return{publicKey:t,nonce:i}}function Ye({instructions:o,payer:n,signers:t}){return vt(o,[n,...t])}function He({instructions:o,payer:n,lookupTableAddressAccount:t,recentBlockhash:i=An.generate().publicKey.toString()}){let m=new Co({payerKey:n,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new kn(m).serialize()).toString("base64").length<Tn}catch{return!1}}var Lo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Oo=o=>{let n=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof kn&&(n=Lo(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 wn&&(t.recentBlockhash||(t.recentBlockhash=Ro.toBase58()),t.feePayer||(t.feePayer=An.generate().publicKey)),n.push(Oo(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 Mo.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(No.transfer({fromPubkey:(t=n.feePayer)!=null?t:this.feePayer,toPubkey:new Me(n.address),lamports:BigInt(n.amount.toString())})),this.endInstructionTypes.push(j.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(_(R({},t||{}),{lookupTableAddress:i})):this.build(t)}build(n){var i;let t=new Qe;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 _t(this.connection,t,this.signers.find(L=>L.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 L of K)try{L.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:L,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 E of p){if(++V,V<=S)continue;let g=await _t(this.connection,E,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((E,g)=>(E.recentBlockhash=h,f[g].length&&E.sign(...f[g]),E));he(I);let V=await this.signAllTransactions(I);if(K){let E=0,g=[],A=async()=>{if(!V[E])return;let w=await this.connection.sendRawTransaction(V[E].serialize(),{skipPreflight:P});g.push({txId:w,status:"sent",signedTx:V[E]}),L==null||L([...g]),E++;let x=!1,O=null,D=null,ae=U=>{O!==null&&clearInterval(O),D!==null&&this.connection.removeSignatureListener(D);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"}L==null||L([...g]),U.err||A()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var U;if(x){clearInterval(O);return}try{let q=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:1});q&&(x=!0,clearInterval(O),ae({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(q){x=!0,clearInterval(O),console.error("getTransaction timeout:",q,w)}},lt)),D=this.connection.onSignature(w,U=>{if(x){this.connection.removeSignatureListener(D);return}x=!0,ae(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:g.map(w=>w.txId),signedTxs:V}}else{let E=[];for(let g=0;g<V.length;g+=1){let A=await this.connection.sendRawTransaction(V[g].serialize(),{skipPreflight:P});E.push(A)}return{txIds:E,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=R(R({},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),L=new Ze({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 $e(L);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var E;let{skipPreflight:B=!0,sendAndConfirm:I,notSendToRpc:V}=h||{};if(he([S]),(E=this.owner)!=null&&E.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:L,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 E=await this.connection.sendTransaction(h[B],{skipPreflight:F});I.push({txId:E,status:"sent",signedTx:h[B]}),L==null||L([...I]),B++;let g=!1,A=null,w=null,x=O=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let D=I.findIndex(ae=>ae.txId===E);if(D>-1){if(I[D].status==="error"||I[D].status==="success")return;I[D].status=O.err?"error":"success"}L==null||L([...I]),O.err||V()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var O;if(g){clearInterval(A);return}try{let D=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:1});D&&(g=!0,clearInterval(A),x({err:((O=D.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",E))}catch(D){g=!0,clearInterval(A),console.error("getTransaction timeout:",D,E)}},lt)),w=this.connection.onSignature(E,O=>{if(g){this.connection.removeSignatureListener(w);return}g=!0,x(O)},"confirmed"),this.connection.getSignatureStatus(E)};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 L;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)=>_(R({},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 Qe().add(...m.instructions,...T)):f.push(new Qe().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 Qe().add(...m.instructions,...T)):f.push(new Qe().add(...T)),y.push(F)}return f.forEach(S=>S.feePayer=this.feePayer),(L=this.owner)!=null&&L.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 E;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),(E=this.owner)!=null&&E.isKeyPair){if(F){let g=0,A=[];for(let w of f){if(++g,g<=h){A.push("tx skipped");continue}let x=await _t(this.connection,w,this.signers.find(O=>O.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=[],O=async()=>{if(!A[w])return;w<h&&(x.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...x]),w++,O());let D=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:I});x.push({txId:D,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===D);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||O()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ae){clearInterval(U);return}try{let oe=await this.connection.getTransaction(D,{commitment:"confirmed",maxSupportedTransactionVersion:1});oe&&(ae=!0,clearInterval(U),te({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",D))}catch(oe){ae=!0,clearInterval(U),console.error("getTransaction timeout:",oe,D)}},lt)),q=this.connection.onSignature(D,G=>{if(ae){this.connection.removeSignatureListener(q);return}ae=!0,te(G)},"confirmed"),this.connection.getSignatureStatus(D)};return await O(),{txIds:x.map(D=>D.txId),signedTxs:A}}else{let w=[];for(let x=0;x<A.length;x+=1){let O=await this.connection.sendRawTransaction(A[x].serialize(),{skipPreflight:I});w.push(O)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(n){var E;let V=n||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:p=12}=V,f=de(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=R(R({},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 L=t?ut(t):{instructions:[],instructionTypes:[]},S=await Ne(this.connection,this.blockhashCommitment),F=this.signers.reduce((g,A)=>_(R({},g),{[A.publicKey.toBase58()]:A}),{}),P=[],h=[],B=[],I=0;if(this.allInstructions.forEach(g=>{let A=[...B,g],w=t?[...L.instructions,...A]:A;if(g!==i[I]&&B.length<p&&(He({instructions:w,payer:this.feePayer,lookupTableAddressAccount:y})||He({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 O of[...new Set(T)])y[O]!==void 0&&(x[O]=y[O]);if(t&&He({instructions:[...L.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:S})){let O=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...L.instructions,...B]}).compileToV0Message(Object.values(y));P.push(new $e(O))}else{let O=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(y));P.push(new $e(O))}h.push(Array.from(new Set(B.map(O=>O.keys.filter(D=>D.isSigner).map(D=>D.pubkey.toString())).flat())).map(O=>F[O]).filter(O=>O!==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&&He({instructions:[...L.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:S})){let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...L.instructions,...B]}).compileToV0Message(Object.values(y));P.push(new $e(w))}else{let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(y));P.push(new $e(w))}h.push(A)}return(E=this.owner)!=null&&E.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:O,skipPreflight:D=!0}=g||{};if(P.map(async(U,q)=>{h[q].length&&U.sign(h[q]),O&&(U.message.recentBlockhash=O)}),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:D});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:D}))),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:D});G.push({txId:be,status:"sent",signedTx:q[te]}),w==null||w([...G]),te++;let Ge=!1,Ce=null,at=null,cn=Te=>{Ce!==null&&clearInterval(Ce),at!==null&&this.connection.removeSignatureListener(at);let ge=G.findIndex(wo=>wo.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:1});ge&&(Ge=!0,clearInterval(Ce),cn({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,cn(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:D});te.push(oe)}return{txIds:te,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Vt=(...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(Vt(n))}logInfo(...n){this.logger.info(Vt(n))}logAndCreateError(...n){let t=Vt(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Sc,SystemProgram as xc}from"@solana/web3.js";import Lc from"bn.js";import{createCloseAccountInstruction as Fc,createInitializeAccountInstruction as vc,createTransferInstruction as _c,TOKEN_PROGRAM_ID as Vc}from"@solana/spl-token";import{PublicKey as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hn}from"@solana/spl-token";var dt={chainId:101,address:Fo.default.toBase58(),programId:hn.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:hn.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 pc,PublicKey as fc}from"@solana/web3.js";import gc from"bn.js";import{TOKEN_PROGRAM_ID as wc}from"@solana/spl-token";import{PublicKey as Yo}from"@solana/web3.js";import xn,{isBN as Cn}from"bn.js";import{bits as vo,BitStructure as Pu,blob as _o,Blob as Au,cstr as wu,f32 as ku,f32be as Tu,f64 as hu,f64be as Iu,greedy as Bu,Layout as Vo,ns64 as Su,ns64be as Ku,nu64 as xu,nu64be as Cu,offset as Eo,s16 as Ru,s16be as Lu,s24 as Ou,s24be as Nu,s32 as Do,s32be as Mu,s40 as Fu,s40be as vu,s48 as _u,s48be as Vu,s8 as Eu,seq as Wo,struct as Du,Structure as qo,u16 as Uo,u16be as Wu,u24 as qu,u24be as Uu,u32 as Go,u32be as Gu,u40 as zu,u40be as Xu,u48 as Yu,u48be as Hu,u8 as zo,UInt as Xo,union as Qu,Union as Zu,unionLayoutDiscriminator as $u,utf8 as ju}from"@solana/buffer-layout";var pt=Vo,In=qo;var Et=Xo;var Bn=zo,H=Uo;var ft=Go;var ce=Do;var Sn=Wo;var M=_o;var Dt=vo,Kn=Eo;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 xn(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 xn(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 R(R({},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 C(o){return new Be(16,!1,o)}function Rn(o){return new Be(1,!0,o)}function Fe(o){return new Be(8,!0,o)}function Ln(o){return new Be(16,!0,o)}var je=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 je(M(32),n=>new Yo(n),n=>n.toBuffer(),o)}function ue(o){return new je(Bn(),Ho,Qo,o)}function Ho(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Qo(o){return o?1:0}function qt(o,n){let t=ft("length"),i=l([t,d(o,Kn(t,-t.span),"values")]);return new je(i,({values:a})=>a,a=>({values:a}),n)}var Wt=class extends In{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:Cn(n)?n.toNumber():new Proxy(n,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=Cn(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 Sn(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 _g}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Eg}from"@solana/spl-token";import{PublicKey as ml}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pl}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"),Ut=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),gl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),$o=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Pl=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),jo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Vn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Jo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ei=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),En=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Al=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ti=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Gt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ni=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),wl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),oi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ii=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ri=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),kl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Tl=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),hl=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Il=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Bl=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 ai}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as si}from"@solana/spl-token";function ve({pubkey:o,isSigner:n=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:n}}var ui=[ve({pubkey:si,isWritable:!1}),ve({pubkey:Dn.programId,isWritable:!1}),ve({pubkey:ai,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 zt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Je=new X("SysvarRent111111111111111111111111111111111"),Rl=new X("SysvarC1ock11111111111111111111111111111111"),Pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ci=new X("Sysvar1nstructions1111111111111111111111111"),li=Dn.programId,Ll=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ol=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Nl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ml=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Fl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),vl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),_l=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Vl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),El=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Dl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Wl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new X("So11111111111111111111111111111111111111112"),Se=X.default;import Qg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Py,TOKEN_2022_PROGRAM_ID as Ay,TOKEN_PROGRAM_ID as wy}from"@solana/spl-token";import{PublicKey as Ty}from"@solana/web3.js";import Iy from"bn.js";import Sy from"decimal.js";import{TOKEN_PROGRAM_ID as Km}from"@solana/spl-token";import{PublicKey as Lm}from"@solana/web3.js";import{PublicKey as Xt}from"@solana/web3.js";var Yt=class{constructor({mint:n,decimals:t,symbol:i,name:a,skipMint:m=!1,isToken2022:p=!1}){if(n===Se.toBase58()||n instanceof Xt&&Se.equals(n)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new Xt(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?Xt.default:Wn({publicKey:n}),this.isToken2022=p}equals(n){return this===n?!0:this.mint.equals(n.mint)}},J=Yt;J.WSOL=new Yt(_(R({},fe),{mint:fe.address}));var Ht=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=Ht;et.SOL=new Ht(dt);import mi from"toformat";var di=mi,tt=di;import wt from"big.js";import fi from"bn.js";import yi from"decimal.js-light";var At=v("module/fraction"),Qt=tt(wt),nt=tt(yi),bi={[0]:nt.ROUND_DOWN,[1]:nt.ROUND_HALF_UP,[2]:nt.ROUND_UP},gi={[0]:wt.roundDown,[1]:wt.roundHalfUp,[2]:wt.roundUp},N=class{constructor(n,t=new fi(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:bi[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=gi[i]||1,new Qt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,t)}isZero(){return this.numerator.isZero()}};import Pi from"bn.js";var Un=new N(new Pi(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 Ai=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&&Ai.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 wi=l([z("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Ef,TOKEN_2022_PROGRAM_ID as Df,TOKEN_PROGRAM_ID as Wf}from"@solana/spl-token";import{Keypair as Gf,PublicKey as zf,SystemProgram as Yf,TransactionInstruction as Hf}from"@solana/web3.js";import Zf from"bn.js";import W from"bn.js";var _e=new W(1).shln(64);var ki=new W(1).shln(128),$t=new W(1).shln(64).subn(1),Ti=new W(1).shln(128).subn(1);var Ve=new W("4295048016"),Ee=new W("79226673521066979257578248091"),hi=new W("59543866431248"),Ii=new W("184467440737095516"),Bi=new W("15793534762490258745");var jt=60,Um=new W("18446743708227953217"),Si=[{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),Gm=new W(-1);var zm=new W("18446744073700000000");var Ki=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)]),xi=l([z("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),Yn=l([M(8),ue("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),d(xi,Gn,"observations"),d(e(),4)]),Ci=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ri=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),C("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),C("growthGlobalX64")]),Jt=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"),C("liquidity"),C("sqrtPriceX64"),ce("tickCurrent"),z(),C("feeGrowthGlobalX64A"),C("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(C(),4),c("status"),c("feeOn"),M(6),d(Ri,ot,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ci.replicate("dynamicFeeInfo"),d(e(),46)]),Li=l([C("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),C("liquidity"),C("feeGrowthInsideLastX64A"),C("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Li,ot,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Qm=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),C("liquidity"),C("feeGrowthInsideLastX64A"),C("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(C(),ot,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ni=l([ce("tick"),Ln("liquidityNet"),C("liquidityGross"),C("feeGrowthOutsideX64A"),C("feeGrowthOutsideX64B"),d(C(),ot,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),C("unfilledRatioX64"),d(z(),3)]),Hn=l([M(8),r("poolId"),ce("startTickIndex"),d(Ni,jt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Mi=l([M(8),c("bump"),d(r(),zn,"operationOwners"),d(r(),Xn,"whitelistMints")]),Fi=l([M(8),r("poolId"),r("owner"),ce("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),C("unfilledRatioX64"),d(e(),4)]),Qn=l([M(8),r("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),Zm=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)]),$m=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 ed from"bn.js";var md=Buffer.from("amm_config","utf8"),Ei=Buffer.from("pool","utf8"),Di=Buffer.from("pool_vault","utf8"),dd=Buffer.from("pool_reward_vault","utf8"),pd=Buffer.from("position","utf8"),fd=Buffer.from("tick_array","utf8"),yd=Buffer.from("operation","utf8"),bd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),gd=Buffer.from("observation","utf8"),Pd=Buffer.from("support_mint","utf8"),Ad=Buffer.from("dynamic_fee_config","utf8"),wd=Buffer.from("permission","utf8");var kd=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Wi from"bn.js";import Bd from"decimal.js";var Kd=new Wi(1).shln(256).subn(1);import zd from"bn.js";import Md from"bn.js";import vd from"decimal.js";import Zd from"bn.js";import jd from"decimal.js";import{PublicKey as Vp}from"@solana/web3.js";import Dp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Hp,TOKEN_PROGRAM_ID as Qp}from"@solana/spl-token";import Jp from"decimal.js";import Kp from"bn.js";import fp from"bn.js";import mf from"bn.js";function ee(o){let n=`global:${o}`;return Buffer.from(tr.digest(n)).slice(0,8)}Yn.span;var ry=v("Raydium_Clmm"),ay={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 on}from"@solana/web3.js";var rr=l([c("instruction")]),ar=l([c("instruction")]),sr=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),C("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),d(e(),15,"padding")]),ur=l([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),C("perShareReward"),e("lastSlot"),e("perSlotReward")]),cr=l([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),C("perShareRewardA"),e("perSlotRewardA"),c("option"),r("rewardVaultB"),M(7),e("totalRewardB"),C("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),lr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),C("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),d(sr,5,"rewardInfos"),r("creator"),r(),d(e(),32,"padding")]),mr=new Proxy(ur,{get(o,n,t){return n==="decode"?(...i)=>{let a=o.decode(...i);return _(R({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,n,t)}}),dr=new Proxy(cr,{get(o,n,t){return n==="decode"?(...i)=>{let a=o.decode(...i);return _(R({},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(lr,{get(o,n,t){return n==="decode"?(...i)=>{let a=o.decode(...i);return _(R({},a),{version:6,rewardInfos:a.rewardInfos.map(m=>{var p;return _(R({},m),{rewardType:((p=Object.entries(rt).find(f=>String(f[1])===m.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(o,n,t)}}),pr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),fr=l([c("instruction"),e("nonce"),d(pr,5,"rewardTimeInfo")]),yr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),br=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(C(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),nb=l([e("state"),r("id"),r("owner"),e("deposited"),d(e(),2,"rewardDebts")]),gr=l([e("state"),r("id"),r("owner"),e("deposited"),d(C(),2,"rewardDebts"),d(e(),17)]),Pr=l([e(),e("state"),r("id"),r("owner"),e("deposited"),d(C(),5,"rewardDebts"),d(e(),16)]),Ar=l([c("instruction"),e("amount")]),wr=l([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Rn("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),kr=l([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),d(c(),32,"reserved1"),d(wr,4,"votingMints"),Fe("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),Tr=l([Fe("startTime"),Fe("endTime"),c("kind"),d(c(),15,"reserved")]),hr=l([d(Tr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),Ir=l([M(8),r("voterAuthority"),r("registrar"),d(hr,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"),Br=new on("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sr=new on("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var pb=new on("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var rt={"Standard SPL":0,"Option tokens":1},io={[Nn.toString()]:3,[Mn.toString()]:4,[Fn.toString()]:5,[Ut.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 $b,SystemProgram as jb,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 Mr=new ao(25),Fr=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 _P}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")]),Vr=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"),C("swapBaseInAmount"),C("swapQuoteOutAmount"),e("swapBase2QuoteFee"),C("swapQuoteInAmount"),C("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"),C("swapBaseInAmount"),C("swapQuoteOutAmount"),C("swapQuoteInAmount"),C("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")]),Er=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Dr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Wr=l([e("fee")]);var HP=v("Raydium_liquidity_instruction");var qr=5e4,Ur=l([e("x"),e("y"),e("price")]),jP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(Ur,qr,"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 Gr(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 zr=l([M(5),Gr("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 yT}from"@solana/web3.js";import{AccountLayout as gT,NATIVE_MINT as PT,TOKEN_2022_PROGRAM_ID as AT,TOKEN_PROGRAM_ID as wT,createAssociatedTokenAccountIdempotentInstruction as kT}from"@solana/spl-token";import mk from"bn.js";import Jr from"bn.js";var jw=new Jr(0);import ik from"bn.js";import ea from"bn.js";var It=new ea(1e6);import CT from"bn.js";import LT from"decimal.js";import{PublicKey as Lk,TransactionInstruction as Ok,Keypair as Mk,SystemProgram as Fk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as _k,TOKEN_2022_PROGRAM_ID as Vk,TOKEN_PROGRAM_ID as Ek}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"),Ik=Buffer.from("creator_fee_share","utf8");var Bk=Buffer.from("locked_liquidity","utf8");var Xk=v("Raydium_cpmm"),Yk={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 oa=l([M(8),c("bump"),ue("disableCreatePool"),H("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),d(e(),14)]),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)]),Zk=l([M(8),r("configId"),d(e(),30)]),$k=l([M(8),c("bump"),r("creator"),r("ammConfig"),e("shareRate"),d(e(),8)]);import{PublicKey as UK,SystemProgram as GK}from"@solana/web3.js";import{createTransferInstruction as XK,TOKEN_PROGRAM_ID as YK,TOKEN_2022_PROGRAM_ID as HK,createAssociatedTokenAccountIdempotentInstruction as QK,createSyncNativeInstruction as $K,createTransferCheckedInstruction as jK}from"@solana/spl-token";import Ia from"bn.js";import tx from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Eh,TOKEN_2022_PROGRAM_ID as Dh,TOKEN_PROGRAM_ID as Wh}from"@solana/spl-token";import{SystemProgram as zh,TransactionInstruction as Xh}from"@solana/web3.js";import aa from"bn.js";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"),Oh=Buffer.from("platform_curve_rule","utf8");var Qh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var Zh=new aa("18446744073709551615");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)]),eI=l([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),la=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),tI=l([e("epoch"),c("index"),r("configId"),la.replicate("bondingCurveParam"),d(e(),50)]),mo=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"),c("restrictCurveParam"),r("curveRuleManager"),d(c(),78)]),ma=l([c("field"),c("op"),C("value")]),da=l([H("groupId"),e("epoch"),qt(ma,"constraints")]),pa=l([e(),c("bump"),c("version"),r("platformId"),r("configId"),e("epoch"),d(e(),8),qt(da,"groups")]);import{TOKEN_2022_PROGRAM_ID as iI,TOKEN_PROGRAM_ID as rI}from"@solana/spl-token";import fa from"bn.js";var gI=new fa(1e6);import kI from"bn.js";import hI from"decimal.js";import tB from"bn.js";import oB from"decimal.js";import CI from"bn.js";import LI from"decimal.js";import WI from"bn.js";import UI from"decimal.js";import yo from"bn.js";import an from"decimal.js";var St=class{static _multipler(n){return new an(10).pow(n)}static getPrice({priceX64:n,decimalA:t,decimalB:i}){return new an(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 yo(a.mul(this._Q64).toFixed(0))}};St._Q64=new an(new yo(1).shln(64).toString());import{NATIVE_MINT as PS,TOKEN_2022_PROGRAM_ID as AS,TOKEN_PROGRAM_ID as wS,createAssociatedTokenAccountIdempotentInstruction as TS,createSyncNativeInstruction as hS,getTransferFeeConfig as IS,unpackMint as BS}from"@solana/spl-token";import $ from"bn.js";import{PublicKey as ka,SystemProgram as xS}from"@solana/web3.js";import FS from"decimal.js";var vS={initPriceX64:new $("515752397214619"),supply:new $(1e15),totalSellA:new $(7931e11),totalFundRaisingB:new $(85e9),totalFundRaisingBUSD:new $(125e8),totalLockedAmount:new $("0"),cliffPeriod:new $("0"),unlockPeriod:new $("0"),decimals:6,virtualA:new $("1073471847374405"),virtualB:new $("30050573465"),realA:new $(0),realB:new $(0),protocolFee:new $(0),platformId:new ka("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new $(0),cliffPeriod:new $(0),unlockPeriod:new $(0),startTime:new $(0),totalAllocatedShare:new $(0)}},_S=new $(1e4);var Ta={[vn.toBase58()]:3};var ha=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 sK}from"@solana/web3.js";var dK=v("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as kK,TOKEN_2022_PROGRAM_ID as TK,TOKEN_PROGRAM_ID as hK}from"@solana/spl-token";import{PublicKey as BK,SystemProgram as SK,TransactionInstruction as KK}from"@solana/web3.js";import CK from"bn.js";var Lx=new Ia(0);import{PublicKey as Ba,Transaction as sn,TransactionInstruction as Sa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ka}from"@solana/spl-token";import bo 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 bo(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),L=b%i.length,S=p[L],F=f[b],P=y[L],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(),E=B.endTime.toNumber(),g=I.tokenInfo.map(x=>x.debtAmount.gt(new bo(0))).filter(x=>!x).length!==3,A=m>V&&m<E&&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:E,canClaim:w,canClaimErrorType:g?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:B.tokenInfo.map((x,O)=>({mintAddress:x.mintAddress,mintVault:x.mintVault,mintDecimals:x.mintDecimals,perLpLoss:x.perLpLoss,debtAmount:I.tokenInfo[O].debtAmount.add(I.tokenInfo[O].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 L of b.tokenInfo){let{account:S,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({mint:L.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:L.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!L.mintAddress.equals(J.WSOL.mint),associatedOnly:L.mintAddress.equals(J.WSOL.mint)?!1:t.associatedOnly});F&&a.addInstruction(F),S&&(p[L.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 sn().add(...T.slice(0,a.AllTxData.instructions.length-1)),signer:y},{transaction:new sn().add(...T.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new sn().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:Ka,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 Sa({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 Ba(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 Hx}from"@solana/web3.js";import{getTransferFeeConfig as Zx,MintLayout as $x,TOKEN_2022_PROGRAM_ID as jx,TOKEN_PROGRAM_ID as Jx,unpackMint as eC}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 un(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 Ca=v("Raydium_amount"),xt=tt(xa);function go(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")):Ca.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]=go(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]=go(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 tL=new Z(2),nL=new Z(3),oL=new Z(5),xe=new Z(10),iL=new Z(100),rL=new Z(1e3),aL=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 La(o){var i;let[,n="",t=""]=(i=o.toFixed(2).match(/(-?)(\d*)\.?(\d*)/))!=null?i:[];return`${n}${t}`}function Oa(o,n=0){return o instanceof Z?o:new Z(La(Ao(o).mul(xe.pow(new Z(String(n))))))}function Ao(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 Ao(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 ta(o,n,t){return o.mul(n).div(t)}function sL(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 uL(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(_(R({},n),{skipMint:!0,mint:""})),numerator:f.toString()})}function Po(o){let n=new et({decimals:6,symbol:"usd",name:"usd"}),t=Oa(un(o,10**n.decimals));return new Ke(n,t)}function cL(o,n){return Po(!n||!o?0:un(o,n))}function lL(o){if(o==null)return;let{numerator:n,denominator:t}=Ue(o.toString());return new N(n,t)}function mL(o){return o instanceof Ra}export{iL as BN_100,rL as BN_1000,aL as BN_10000,oL as BN_FIVE,xe as BN_TEN,nL as BN_THREE,tL as BN_TWO,uo as ceilDiv,lL as decimalToFraction,jr as divCeil,ta as floorDiv,mL as isDecimal,Ue as parseNumberInfo,La as shakeFractionDecimal,Zt as tenExponential,Oa as toBN,Ao as toFraction,sL as toPercent,uL as toTokenPrice,cL as toTotalPrice,Po as toUsdCurrency};
//# sourceMappingURL=bignumber.mjs.map