UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 73.5 kB
var po=Object.defineProperty,fo=Object.defineProperties;var yo=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var rn=(i,t,n)=>t in i?po(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,R=(i,t)=>{for(var n in t||(t={}))an.call(t,n)&&rn(i,n,t[n]);if(nt)for(var n of nt(t))sn.call(t,n)&&rn(i,n,t[n]);return i},D=(i,t)=>fo(i,yo(t));var ue=(i,t)=>{var n={};for(var r in i)an.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&nt)for(var r of nt(i))t.indexOf(r)<0&&sn.call(i,r)&&(n[r]=i[r]);return n};import It from"bn.js";import BR from"bn.js";import AR from"bn.js";import Te from"bn.js";import eR from"decimal.js";import pa from"big.js";import _C from"bn.js";import{get as un,set as bo}from"lodash";var Bt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},cn={},go={};function _(i){let t=un(cn,i);if(!t){let n=un(go,i);t=new Bt({name:i,logLevel:n}),bo(cn,i,t)}return t}import{PublicKey as Po}from"@solana/web3.js";import{MINT_SIZE as Sa,TOKEN_PROGRAM_ID as Ka,getTransferFeeConfig as xa,unpackMint as Ca}from"@solana/spl-token";var St=_("Raydium_accountInfo_util");async function fe(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=R({batchRequest:!1},n),p=Kt(t,m),f=new Array(p.length).fill([]);if(r){let g=p.map(O=>{let x=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:x}}),S=Kt(g,10);f=(await(await Promise.all(S.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(x=>{if(x){let{data:B,executable:M,lamports:P,owner:T,rentEpoch:I}=x;return B.length!==2&&B[1]!=="base64"&&St.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:P,owner:new Po(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(p.map(g=>i.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import De from"bn.js";var ln=9007199254740991;function ne(i){let t=_("Raydium_parseBigNumberish");if(i instanceof De)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new De(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=ln||i<=-ln)&&t.logWithError(`BigNumberish number overflow: ${i}`),new De(String(i))):typeof i=="bigint"?new De(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new De(0))}import{merge as wx}from"lodash";import Wa from"axios";var mn={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"},Ao=D(R({},mn),{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 ls=_("Raydium_Api");import{PublicKey as Oc,SystemProgram as Nc}from"@solana/web3.js";import{AccountLayout as _c,createAssociatedTokenAccountIdempotentInstruction as Ec,TOKEN_PROGRAM_ID as Dc,TOKEN_2022_PROGRAM_ID as Wc}from"@solana/spl-token";import{PublicKey as xe,sendAndConfirmTransaction as Nt,SystemProgram as Bo,Transaction as Ue,TransactionMessage as Ge,VersionedTransaction as ze}from"@solana/web3.js";import So from"axios";import{PublicKey as xt,AddressLookupTableAccount as Se}from"@solana/web3.js";async function Ct({connection:i,address:t,cluster:n="mainnet"}){let r=await fe(i,[...new Set(t.map(m=>m.toString()))].map(m=>new xt(m))),u={};for(let m=0;m<t.length;m++){let p=r[m],f=t[m];if(!p)continue;let g=new Se({key:f,state:Se.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Be[f.toString()]=g:Ie[f.toString()]=g}return u}var Ie={},Rt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ie[t])return Ie;let n=new xt(t),r=await i.getAccountInfo(n);return r&&(Ie[t]=new Se({key:n,state:Se.deserialize(r.data)})),Ie},Be={},Lt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Be[t])return Be;let n=new xt(t),r=await i.getAccountInfo(n);return r&&(Be[t]=new Se({key:n,state:Se.deserialize(r.data)})),Be};var Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as dn,Keypair as fn,PublicKey as wo,Transaction as yn,TransactionMessage as ko,VersionedTransaction as bn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as To}from"@solana/spl-token";var pn=_("Raydium_txUtil"),gn=1644;function ot(i){let t=[],n=[];return i.microLamports&&(t.push(dn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Z.SetComputeUnitPrice)),i.units&&(t.push(dn.setComputeUnitLimit({units:i.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ke(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function it(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Ot(i,t){i.length<1&&pn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&pn.logWithError(`no signers provided:, ${t.toString()}`);let n=new yn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<gn}catch{return!1}}function ce(i,t){let[n,r]=wo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function We({instructions:i,payer:t,signers:n}){return Ot(i,[t,...n])}function qe({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=fn.generate().publicKey.toString()}){let m=new ko({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new bn(m).serialize()).toString("base64").length<gn}catch{return!1}}var ho=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Io=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof bn&&(t=ho(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Pe(i){let t=[];return i.forEach(n=>{n instanceof yn&&(n.recentBlockhash||(n.recentBlockhash=To.toBase58()),n.feePayer||(n.feePayer=fn.generate().publicKey)),t.push(Io(n))}),console.log("simulate tx string:",t),t}var rt=2e3,at=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await So.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=ot(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Bo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new xe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==xe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(D(R({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ue;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},S=m!=null?m:await Ke(this.connection,this.blockhashCommitment);if(n.recentBlockhash=S,this.signers.length&&n.sign(...this.signers),Pe([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Nt(this.connection,n,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let x of O)try{x.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:p}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var S;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(b=>b.transaction.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async b=>{var I;let{sequentially:O,onTxUpdate:x,skipTxCount:B=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await Ke(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of p){if(++F,F<=B)continue;let y=await Nt(this.connection,v,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(y)}return{txIds:h,signedTxs:p}}return{txIds:await await Promise.all(p.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:p}}if(this.signAllTransactions){let h=p.map((v,y)=>(v.recentBlockhash=T,f[y].length&&v.sign(...f[y]),v));Pe(h);let F=await this.signAllTransactions(h);if(O){let v=0,y=[],A=async()=>{if(!F[v])return;let w=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:P});y.push({txId:w,status:"sent",signedTx:F[v]}),x==null||x([...y]),v++;let K=!1,C=null,V=null,ie=q=>{C!==null&&clearInterval(C),V!==null&&this.connection.removeSignatureListener(V);let W=y.findIndex($=>$.txId===w);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=q.err?"error":"success"}x==null||x([...y]),q.err||A()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var q;if(K){clearInterval(C);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(K=!0,clearInterval(C),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){K=!0,clearInterval(C),console.error("getTransaction timeout:",W,w)}},rt)),V=this.connection.onSignature(w,q=>{if(K){this.connection.removeSignatureListener(V);return}K=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:y.map(w=>w.txId),signedTxs:F}}else{let v=[];for(let y=0;y<F.length;y+=1){let A=await this.connection.sendRawTransaction(F[y].serialize(),{skipPreflight:P});v.push(A)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=M,p=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=R(R({},this.cluster==="devnet"?await Lt(this.connection):await Rt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),S=[];for(let T of g)f[T]===void 0&&S.push(new xe(T));let b=await Ct({connection:this.connection,address:S});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?xe.default.toBase58():m!=null?m:await Ke(this.connection,this.blockhashCommitment),x=new Ge({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new ze(x);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:F}=T||{};if(Pe([B]),(v=this.owner)!=null&&v.isKeyPair){let y=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await it(this.connection,y),{txId:y,signedTx:B}}if(this.signAllTransactions){let y=await this.signAllTransactions([B]);if(this.signers.length)for(let A of y)try{A.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var S;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(b=>b.builder.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,O)=>{b.sign(f[O])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:r,execute:async b=>{var P;let{sequentially:O,onTxUpdate:x,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&p.forEach(T=>T.message.recentBlockhash=B),Pe(p),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let I of p){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await it(this.connection,h),T.push(h)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p);if(O){let I=0,h=[],F=async()=>{if(!T[I])return;let v=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[I]}),x==null||x([...h]),I++;let y=!1,A=null,w=null,K=C=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let V=h.findIndex(ie=>ie.txId===v);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=C.err?"error":"success"}x==null||x([...h]),C.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var C;if(y){clearInterval(A);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(y=!0,clearInterval(A),K({err:((C=V.meta)==null?void 0:C.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){y=!0,clearInterval(A),console.error("getTransaction timeout:",V,v)}},rt)),w=this.connection.onSignature(v,C=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,K(C)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let F=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(F)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var x;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),m=r?ot(r):{instructions:[],instructionTypes:[]},p=this.signers.reduce((B,M)=>D(R({},B),{[M.publicKey.toBase58()]:M}),{}),f=[],g=[],S=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...S,B],P=r?[...m.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new xe(h));if(B!==n[b]&&S.length<12&&(We({instructions:P,payer:this.feePayer,signers:I})||We({instructions:M,payer:this.feePayer,signers:I})))S.push(B);else{if(S.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,We({instructions:r?[...m.instructions,...S]:[...S],payer:this.feePayer,signers:I})?f.push(new Ue().add(...m.instructions,...S)):f.push(new Ue().add(...S)),g.push(Array.from(new Set(S.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>p[h]).filter(h=>h!==void 0)),S=[B]}}),S.length>0){let M=[...new Set(S.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>p[P]).filter(P=>P!==void 0);We({instructions:r?[...m.instructions,...S]:[...S],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?f.push(new Ue().add(...m.instructions,...S)):f.push(new Ue().add(...S)),g.push(M)}return f.forEach(B=>B.feePayer=this.feePayer),(x=this.owner)!=null&&x.signer&&g.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=B||{},F=I!=null?I:await Ke(this.connection,this.blockhashCommitment);if(f.forEach(async(y,A)=>{y.recentBlockhash=F,g[A].length&&y.sign(...g[A])}),Pe(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let y=0,A=[];for(let w of f){if(++y,y<=T){A.push("tx skipped");continue}let K=await Nt(this.connection,w,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(K)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let y=await this.signAllTransactions(f.slice(T,f.length)),A=[...f.slice(0,T),...y];if(M){let w=0,K=[],C=async()=>{if(!A[w])return;w<T&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,C());let V=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});K.push({txId:V,status:"sent",signedTx:A[w]}),P==null||P([...K]),w++;let ie=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=K.findIndex(de=>de.txId===V);if(te>-1){if(K[te].status==="error"||K[te].status==="success")return;K[te].status=G.err?"error":"success"}P==null||P([...K]),G.err||C()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(ie=!0,clearInterval(q),$({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},rt)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await C(),{txIds:K.map(V=>V.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let C=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:h});w.push(C)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=F,f=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=R(R({},this.cluster==="devnet"?await Lt(this.connection):await Rt(this.connection)),u),S=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of S)g[y]===void 0&&b.push(new xe(y));let O=await Ct({connection:this.connection,address:b});for(let[y,A]of Object.entries(O))g[y]=A;let x=n?ot(n):{instructions:[],instructionTypes:[]},B=await Ke(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,A)=>D(R({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let A=[...I,y],w=n?[...x.instructions,...A]:A;if(y!==r[h]&&I.length<p&&(qe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||qe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(y);else{if(I.length===0)throw Error("item ins too big");h+=y===r[h]?1:0;let K={};for(let C of[...new Set(S)])g[C]!==void 0&&(K[C]=g[C]);if(n&&qe({instructions:[...x.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let C=new Ge({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new ze(C))}else{let C=new Ge({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new ze(C))}T.push(Array.from(new Set(I.map(C=>C.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(C=>M[C]).filter(C=>C!==void 0)),I=[y]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&qe({instructions:[...x.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let w=new Ge({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new ze(w))}else{let w=new Ge({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new ze(w))}T.push(A)}return(v=this.owner)!=null&&v.signer&&T.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),P.forEach((y,A)=>{y.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:K=0,recentBlockHash:C,skipPreflight:V=!0}=y||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),C&&(q.message.recentBlockhash=C)}),Pe(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let q=0,W=[];for(let $ of P){if(++q,q<=K){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:V});await it(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(K,P.length)),W=[...P.slice(0,K),...q];if(A){let $=0,G=[],te=async()=>{if(!W[$])return;if($<K){G.push({txId:"",status:"success",signedTx:W[$]}),w==null||w([...G]),$++,te();return}let de=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:de,status:"sent",signedTx:W[$]}),w==null||w([...G]),$++;let _e=!1,he=null,tt=null,on=ge=>{he!==null&&clearInterval(he),tt!==null&&this.connection.removeSignatureListener(tt);let pe=G.findIndex(mo=>mo.txId===de);if(pe>-1){if(G[pe].status==="error"||G[pe].status==="success")return;G[pe].status=ge.err?"error":"success"}w==null||w([...G]),ge.err||te()};this.loopMultiTxStatus&&(he=setInterval(async()=>{var ge;if(_e){clearInterval(he);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:0});pe&&(_e=!0,clearInterval(he),on({err:((ge=pe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){_e=!0,clearInterval(he),console.error("getTransaction timeout:",pe,de)}},rt)),tt=this.connection.onSignature(de,ge=>{if(_e){this.connection.removeSignatureListener(tt);return}_e=!0,on(ge)},"confirmed"),this.connection.getSignatureStatus(de)};return te(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:V});$.push(te)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Mt=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new at({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Mt(t))}logInfo(...t){this.logger.info(Mt(t))}logAndCreateError(...t){let n=Mt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as cc,SystemProgram as mc}from"@solana/web3.js";import fc from"bn.js";import{createCloseAccountInstruction as Pc,createInitializeAccountInstruction as Ac,createTransferInstruction as wc,TOKEN_PROGRAM_ID as kc}from"@solana/spl-token";import{PublicKey as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pn}from"@solana/spl-token";var st={chainId:101,address:Ko.default.toBase58(),programId:Pn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Pn.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 Hu,PublicKey as ju}from"@solana/web3.js";import ec from"bn.js";import{TOKEN_PROGRAM_ID as oc}from"@solana/spl-token";import{PublicKey as Eo}from"@solana/web3.js";import hn,{isBN as In}from"bn.js";import{bits as xo,BitStructure as tu,blob as Co,Blob as nu,cstr as ou,f32 as iu,f32be as ru,f64 as au,f64be as su,greedy as uu,Layout as Ro,ns64 as cu,ns64be as lu,nu64 as mu,nu64be as du,offset as Lo,s16 as pu,s16be as fu,s24 as yu,s24be as bu,s32 as Oo,s32be as gu,s40 as Pu,s40be as Au,s48 as wu,s48be as ku,s8 as Tu,seq as No,struct as hu,Structure as Mo,u16 as Fo,u16be as Iu,u24 as Bu,u24be as Su,u32 as vo,u32be as Ku,u40 as xu,u40be as Cu,u48 as Ru,u48be as Lu,u8 as Vo,UInt as _o,union as Ou,Union as Nu,unionLayoutDiscriminator as Mu,utf8 as Fu}from"@solana/buffer-layout";var ut=Ro,An=Mo;var Ft=_o;var wn=Vo,Y=Fo;var ct=vo;var ae=Oo;var kn=No;var N=Co;var vt=xo,Tn=Lo;var we=class extends ut{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new hn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new hn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},lt=class extends ut{constructor(n){super(8,n);this._lower=vt(ct(),!1),this._upper=vt(ct(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return R(R({},u),m)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Ft(1,i)}function z(i){return new Ft(4,i)}function e(i){return new we(8,!1,i)}function L(i){return new we(16,!1,i)}function Bn(i){return new we(1,!0,i)}function Ce(i){return new we(8,!0,i)}function Sn(i){return new we(16,!0,i)}var Xe=class extends ut{constructor(n,r,u,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new Xe(N(32),t=>new Eo(t),t=>t.toBuffer(),i)}function re(i){return new Xe(wn(),Do,Wo,i)}function Do(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Wo(i){return i?1:0}function Kn(i,t){let n=ct("length"),r=l([n,d(i,Tn(n,-n.span),"values")]);return new Xe(r,({values:u})=>u,u=>({values:u}),t)}var Vt=class extends An{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Vt(i,t,n)}function d(i,t,n){let r,u=typeof t=="number"?t:In(t)?t.toNumber():new Proxy(t,{get(m,p){if(!r){let f=Reflect.get(m,"count");r=In(f)?f.toNumber():f,Reflect.set(m,"count",r)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(r=f),Reflect.set(m,p,f)}});return kn(i,u,n)}var mt=l([o("mint"),o("owner"),e("amount"),z("delegateOption"),o("delegate"),c("state"),z("isNativeOption"),e("isNative"),e("delegatedAmount"),z("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as Bg,SystemProgram as Sg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as xg}from"@solana/spl-token";import{PublicKey as Qc}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Hc}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Cn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Rn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Ln=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),_t=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),el=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Uo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),On=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Nn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),tl=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Go=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Mn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),zo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Xo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Fn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),nl=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Yo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Et=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Qo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ol=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Zo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ho=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),jo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),il=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),rl=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),al=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),sl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ul=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import{PublicKey as X,SystemProgram as vn,SYSVAR_RENT_PUBKEY as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jo}from"@solana/spl-token";function Re({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var ei=[Re({pubkey:Jo,isWritable:!1}),Re({pubkey:vn.programId,isWritable:!1}),Re({pubkey:$o,isWritable:!1})];function Vn({publicKey:i,transformSol:t}){let n=_n(i.toString());if(n instanceof X)return t&&n.equals(ke)?ye:n;if(t&&n.toString()===ke.toBase58())return ye;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function _n(i){try{return new X(i)}catch{return i}}var Dt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ye=new X("SysvarRent111111111111111111111111111111111"),pl=new X("SysvarC1ock11111111111111111111111111111111"),pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ti=new X("Sysvar1nstructions1111111111111111111111111"),ni=vn.programId,fl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),yl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),bl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),gl=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Pl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Al=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),wl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),kl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Tl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),hl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Il=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new X("So11111111111111111111111111111111111111112"),ke=X.default;import _g from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as oy,TOKEN_2022_PROGRAM_ID as iy,TOKEN_PROGRAM_ID as ry}from"@solana/spl-token";import{PublicKey as sy}from"@solana/web3.js";import cy from"bn.js";import my from"decimal.js";import{TOKEN_PROGRAM_ID as pm}from"@solana/spl-token";import{PublicKey as gm}from"@solana/web3.js";import{PublicKey as Wt}from"@solana/web3.js";var qt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:p=!1}){if(t===ke.toBase58()||t instanceof Wt&&ke.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Wt(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Wt.default:Vn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=qt;J.WSOL=new qt(D(R({},le),{mint:le.address}));var Ut=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ft=Ut;ft.SOL=new Ut(st);import oi from"toformat";var ii=oi,Qe=ii;import bt from"big.js";import ai from"bn.js";import si from"decimal.js-light";var yt=_("module/fraction"),Gt=Qe(bt),Ze=Qe(si),ui={[0]:Ze.ROUND_DOWN,[1]:Ze.ROUND_HALF_UP,[2]:Ze.ROUND_UP},ci={[0]:bt.roundDown,[1]:bt.roundHalfUp,[2]:bt.roundUp},U=class{constructor(t,n=new ai(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||yt.logWithError(`${t} is not an integer.`),t<=0&&yt.logWithError(`${t} is not positive.`),Ze.set({precision:t+1,rounding:ui[r]});let u=new Ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||yt.logWithError(`${t} is not an integer.`),t<0&&yt.logWithError(`${t} is negative.`),Gt.DP=t,Gt.RM=ci[r]||1,new Gt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import li from"bn.js";var Xl=new U(new li(100));var $l=_("Raydium_price");var mi=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Bf,TOKEN_2022_PROGRAM_ID as Sf,TOKEN_PROGRAM_ID as Kf}from"@solana/spl-token";import{Keypair as Rf,PublicKey as Lf,SystemProgram as Nf,TransactionInstruction as Mf}from"@solana/web3.js";import vf from"bn.js";import E from"bn.js";var Oe=new E(1).shln(64);var di=new E(1).shln(128),zt=new E(1).shln(64).subn(1),pi=new E(1).shln(128).subn(1);var Ne=new E("4295048016"),Me=new E("79226673521066979257578248091"),fi=new E("59543866431248"),yi=new E("184467440737095516"),bi=new E("15793534762490258745");var Xt=60,Cm=new E("18446743708227953217"),gi=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var He=3,En=100;var Dn=10,Wn=100,gt=14;var H=new E(0),Fe=new E(1),Rm=new E(-1);var Lm=new E("18446744073700000000");var Pi=l([N(8),c("bump"),Y("index"),o("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Y("tickSpacing"),z("fundFeeRate"),d(z(),1),o("fundOwner"),d(e(),3)]),Ai=l([z("blockTimestamp"),Ce("tickCumulative"),d(e(),4)]),qn=l([N(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),d(Ai,En,"observations"),d(e(),4)]),wi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),ki=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Yt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Y("tickSpacing"),L("liquidity"),L("sqrtPriceX64"),ae("tickCurrent"),z(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(L(),4),c("status"),c("feeOn"),N(6),d(ki,He,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),wi.replicate("dynamicFeeInfo"),d(e(),46)]),Ti=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),hi=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Ti,He,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Fm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(L(),He,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ii=l([ae("tick"),Sn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),d(L(),He,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),d(z(),3)]),Un=l([N(8),o("poolId"),ae("startTickIndex"),d(Ii,Xt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Bi=l([N(8),c("bump"),d(o(),Dn,"operationOwners"),d(o(),Wn,"whitelistMints")]),Si=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),d(e(),4)]),Gn=l([N(8),o("poolId"),N(8*8*gt,"positiveTickArrayBitmap"),N(8*8*gt,"negativeTickArrayBitmap")]),vm=l([N(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),Ki=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),Vm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),xi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import Dm from"bn.js";var jm=Buffer.from("amm_config","utf8"),Ri=Buffer.from("pool","utf8"),Li=Buffer.from("pool_vault","utf8"),$m=Buffer.from("pool_reward_vault","utf8"),Jm=Buffer.from("position","utf8"),ed=Buffer.from("tick_array","utf8"),td=Buffer.from("operation","utf8"),nd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),od=Buffer.from("observation","utf8"),id=Buffer.from("support_mint","utf8"),rd=Buffer.from("dynamic_fee_config","utf8"),ad=Buffer.from("permission","utf8");var sd=Buffer.from("locked_position","utf8");import{sha256 as Xi}from"js-sha256";import Oi from"bn.js";import md from"decimal.js";var pd=new Oi(1).shln(256).subn(1);import Ld from"bn.js";import wd from"bn.js";import Td from"decimal.js";import vd from"bn.js";import _d from"decimal.js";import{PublicKey as Ip}from"@solana/web3.js";import Sp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Mp,TOKEN_PROGRAM_ID as Fp}from"@solana/spl-token";import Ep from"decimal.js";import pp from"bn.js";import ep from"bn.js";import Hp from"bn.js";function j(i){let t=`global:${i}`;return Buffer.from(Xi.digest(t)).slice(0,8)}qn.span;var Gf=_("Raydium_Clmm"),zf={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as jt}from"@solana/web3.js";var Hi=l([c("instruction")]),ji=l([c("instruction")]),$i=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),d(e(),15,"padding")]),Ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),er=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),tr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),d($i,5,"rewardInfos"),o("creator"),o(),d(e(),32,"padding")]),nr=new Proxy(Ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return D(R({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),or=new Proxy(er,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return D(R({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(i,t,n)}}),jn=new Proxy(tr,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return D(R({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var p;return D(R({},m),{rewardType:((p=Object.entries(Je).find(f=>String(f[1])===m.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),ir=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),rr=l([c("instruction"),e("nonce"),d(ir,5,"rewardTimeInfo")]),ar=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),sr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Gy=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),1,"rewardDebts")]),$n=l([e("state"),o("id"),o("owner"),e("deposited"),d(L(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),zy=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),2,"rewardDebts")]),ur=l([e("state"),o("id"),o("owner"),e("deposited"),d(L(),2,"rewardDebts"),d(e(),17)]),cr=l([e(),e("state"),o("id"),o("owner"),e("deposited"),d(L(),5,"rewardDebts"),d(e(),16)]),lr=l([c("instruction"),e("amount")]),mr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Bn("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),dr=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),d(c(),32,"reserved1"),d(mr,4,"votingMints"),Ce("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),pr=l([Ce("startTime"),Ce("endTime"),c("kind"),d(c(),15,"reserved")]),fr=l([d(pr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),yr=l([N(8),o("voterAuthority"),o("registrar"),d(fr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),d(c(),94,"reserved")]);import{NATIVE_MINT as eb}from"@solana/spl-token";var tb=_("Raydium_farm_config"),br=new jt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gr=new jt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var nb=new jt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var Je={"Standard SPL":0,"Option tokens":1},Jn={[Cn.toString()]:3,[Rn.toString()]:4,[Ln.toString()]:5,[_t.toString()]:6,[be.FARM_PROGRAM_ID_V3.toString()]:3,[be.FARM_PROGRAM_ID_V4.toString()]:4,[be.FARM_PROGRAM_ID_V5.toString()]:5,[be.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Db,SystemProgram as Wb,SYSVAR_CLOCK_PUBKEY as qb,SYSVAR_RENT_PUBKEY as Ub,TransactionInstruction as Gb}from"@solana/web3.js";import Xb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Qb,createAssociatedTokenAccountIdempotentInstruction as Zb,TOKEN_PROGRAM_ID as Hb}from"@solana/spl-token";import bb from"bn.js";import{PublicKey as sb}from"@solana/web3.js";import cb from"bn.js";var Cb=_("Raydium.farm.util");var sg=_("Raydium_farm_instruction"),ug={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 Zg from"bn.js";import{PublicKey as ow}from"@solana/web3.js";import{AccountLayout as aw,MintLayout as sw,NATIVE_MINT as uw,TOKEN_PROGRAM_ID as lw}from"@solana/spl-token";import $g from"bn.js";import to from"bn.js";var Br=new to(25),Sr=new to(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as wP,TOKEN_PROGRAM_ID as kP}from"@solana/spl-token";import{PublicKey as hP,SystemProgram as IP,SYSVAR_RENT_PUBKEY as BP,TransactionInstruction as SP}from"@solana/web3.js";import MP from"bn.js";var Kr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),xr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),bP=l([c("instruction"),c("nonce")]),Cr=l([c("instruction"),c("nonce"),e("startTime")]),no=l([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),e("swapBase2QuoteFee"),L("swapQuoteInAmount"),L("swapBaseOutAmount"),e("swapQuote2BaseFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("withdrawQueue"),o("lpVault"),o("owner"),e("lpReserve"),d(e(),3,"padding")]),gP=l([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),L("swapQuoteInAmount"),L("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("modelDataAccount"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("owner"),d(e(),64,"padding")]),Rr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Lr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Or=l([e("fee")]);var VP=_("Raydium_liquidity_instruction");var Nr=5e4,Mr=l([e("x"),e("y"),e("price")]),WP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(Mr,Nr,"DataElement")]);import{PublicKey as JP}from"@solana/web3.js";import tA from"decimal.js";import{TOKEN_PROGRAM_ID as oA}from"@solana/spl-token";import{PublicKey as zP}from"@solana/web3.js";var QP=_("Raydium_liquidity_serum");import Rw from"bn.js";import Ow from"decimal.js";import{TOKEN_PROGRAM_ID as RA}from"@solana/spl-token";import{PublicKey as OA}from"@solana/web3.js";import MA from"bn.js";import{SystemProgram as gA,SYSVAR_RENT_PUBKEY as PA,Transaction as AA,TransactionInstruction as wA}from"@solana/web3.js";import{createInitializeAccountInstruction as TA,TOKEN_PROGRAM_ID as hA}from"@solana/spl-token";function Fr(i="accountFlags"){let t=new lt(i);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var vr=l([N(5),Fr("accountFlags"),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as Fk}from"@solana/web3.js";import{AccountLayout as Vk,NATIVE_MINT as _k,TOKEN_2022_PROGRAM_ID as Ek,TOKEN_PROGRAM_ID as Dk,createAssociatedTokenAccountIdempotentInstruction as Wk}from"@solana/spl-token";import Zk from"bn.js";import jk from"decimal.js";import{PublicKey as Jw,TransactionInstruction as ek,Keypair as nk,SystemProgram as ok}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as rk,TOKEN_2022_PROGRAM_ID as ak,TOKEN_PROGRAM_ID as sk}from"@solana/spl-token";var Dw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Ww=Buffer.from("amm_config","utf8"),qw=Buffer.from("pool","utf8"),Uw=Buffer.from("pool_lp_mint","utf8"),Gw=Buffer.from("pool_vault","utf8"),zw=Buffer.from("observation","utf8"),Xw=Buffer.from("permission","utf8"),Yw=Buffer.from("support_mint","utf8");var Qw=Buffer.from("locked_liquidity","utf8");var fk=_("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 Gr=l([N(8),c("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),d(e(),15)]),oo=l([N(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),re("enableCreatorFee"),d(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),d(e(),28)]),Pk=l([N(8),o("configId"),d(e(),30)]);import{PublicKey as US,SystemProgram as GS}from"@solana/web3.js";import{createTransferInstruction as XS,TOKEN_PROGRAM_ID as YS,TOKEN_2022_PROGRAM_ID as QS,createAssociatedTokenAccountIdempotentInstruction as ZS,createSyncNativeInstruction as jS,createTransferCheckedInstruction as $S}from"@solana/spl-token";import ua from"bn.js";import tK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as uh,TOKEN_2022_PROGRAM_ID as ch,TOKEN_PROGRAM_ID as lh}from"@solana/spl-token";import{SystemProgram as fh,TransactionInstruction as yh}from"@solana/web3.js";import jr from"bn.js";var Yr=l([e(),e("epoch"),c("curveType"),Y("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),o("mintB"),o("protocolFeeOwner"),o("migrateFeeOwner"),o("migrateToAmmWallet"),o("migrateToCpmmWallet"),d(e(),16)]),Qr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),Zr=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),Qr.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),d(c(),54)]),UT=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),ro=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Hr=l([e("epoch"),c("index"),o("configId"),ro.replicate("bondingCurveParam"),d(e(),50)]),ao=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),d(c(),64,"name"),d(c(),256,"web"),d(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),d(c(),107),Kn(Hr,"platformCurve")]);var QT=Buffer.from("vault_auth_seed","utf8"),ZT=Buffer.from("global_config","utf8"),HT=Buffer.from("pool_vesting","utf8"),jT=Buffer.from("platform_config","utf8"),$T=Buffer.from("platform_fee_vault_auth_seed","utf8"),JT=Buffer.from("creator_fee_vault_auth_seed","utf8"),eh=Buffer.from("platform_global_access","utf8"),th=Buffer.from("platform_allow_config","utf8");var Ah={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 wh=new jr("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Ih,TOKEN_PROGRAM_ID as Bh}from"@solana/spl-token";import Ch from"bn.js";import Lh from"decimal.js";import cI from"bn.js";import mI from"decimal.js";import Vh from"bn.js";import Eh from"decimal.js";import Zh from"bn.js";import jh from"decimal.js";import co from"bn.js";import Jt from"decimal.js";var ht=class{static _multipler(t){return new Jt(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new Jt(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(r))}static getPriceX64({price:t,decimalA:n,decimalB:r}){let u=t.mul(this._multipler(r)).div(this._multipler(n));return new co(u.mul(this._Q64).toFixed(0))}};ht._Q64=new Jt(new co(1).shln(64).toString());import{NATIVE_MINT as AB,TOKEN_2022_PROGRAM_ID as wB,TOKEN_PROGRAM_ID as kB,createAssociatedTokenAccountIdempotentInstruction as hB,createSyncNativeInstruction as IB,getTransferFeeConfig as BB,unpackMint as SB}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as ra,SystemProgram as CB}from"@solana/web3.js";import vB from"decimal.js";var VB={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new ra("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},_B=new Q(1e4);var aa={[On.toBase58()]:3};var sa=l([N(5),N(8),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as sS}from"@solana/web3.js";var dS=_("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as kS,TOKEN_2022_PROGRAM_ID as TS,TOKEN_PROGRAM_ID as hS}from"@solana/spl-token";import{PublicKey as BS,SystemProgram as SS,TransactionInstruction as KS}from"@solana/web3.js";import CS from"bn.js";var LK=new ua(0);import{PublicKey as ca,Transaction as en,TransactionInstruction as la}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ma}from"@solana/spl-token";import lo from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return ce([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return ce([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new lo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:m}){if(r.length===0)return[];let p=r.map(b=>ee.getPdaPoolId(n,b).publicKey),f=[];for(let b=0;b<ee.VERSION_PROJECT.length;b++)f.push(...p.map(O=>ee.getPdaOwnerId(n,O,u,b).publicKey));let g=await fe(t,[...p,...f]),S=[];for(let b=0;b<g.length;b++){let O=Math.floor(b/r.length),x=b%r.length,B=p[x],M=f[b],P=g[x],T=g[r.length+b];if(!(P&&T)||P.data.length!==ee.POOL_LAYOUT.span||T.data.length!==ee.OWNER_LAYOUT.span)continue;let I=ee.POOL_LAYOUT.decode(P.data),h=ee.OWNER_LAYOUT.decode(T.data),F=I.openTime.toNumber(),v=I.endTime.toNumber(),y=h.tokenInfo.map(K=>K.debtAmount.gt(new lo(0))).filter(K=>!K).length!==3,A=m>F&&m<v&&I.status===1,w=y&&A;S.push({programId:n,poolId:B,ammId:I.ammId,ownerAccountId:M,snapshotLpAmount:h.lpAmount,project:ee.VERSION_PROJECT[O],openTime:F,endTime:v,canClaim:w,canClaimErrorType:y?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((K,C)=>({mintAddress:K.mintAddress,mintVault:K.mintVault,mintDecimals:K.mintDecimals,perLpLoss:K.perLpLoss,debtAmount:h.tokenInfo[C].debtAmount.add(h.tokenInfo[C].claimedAmount)}))})}return S}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,p=[];for(let S of t.tokenInfo){let{account:b,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({mint:S.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:S.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!S.mintAddress.equals(J.WSOL.mint),associatedOnly:S.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});O&&u.addInstruction(O),p.push(b)}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,ownerPda:t.ownerAccountId,claimAddress:p}})]});let{transaction:f,signers:g}=u.build();return[{transaction:f,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,p={};for(let b of t){let O=[];for(let x of b.tokenInfo){let{account:B,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:x.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:x.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!x.mintAddress.equals(J.WSOL.mint),associatedOnly:x.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),B&&(p[x.mintAddress.toString()]=B,O.push(B))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:m,ownerPda:b.ownerAccountId,claimAddress:O}})]})}let{transaction:f,signers:g}=u.build(),S=u.allInstructions;return Ot(S,[m,...g.map(b=>b.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new en().add(...S.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new en().add(...S.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new en().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=l([]),m=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(g=>({pubkey:g,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:g})=>({pubkey:g,isSigner:!1,isWritable:!0})),{pubkey:ma,isSigner:!1,isWritable:!1}],p=Buffer.alloc(u.span);u.encode({},p);let f=Buffer.from([10,66,208,184,161,6,191,98,...p]);return new la({keys:m,programId:t,data:f})}},se=ee;se.CLAIMED_NUM=3,se.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),d(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),10,"padding")]),se.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),d(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),4,"padding")]),se.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new ca(t)),se.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},se.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as QK}from"@solana/web3.js";import{getTransferFeeConfig as HK,MintLayout as jK,TOKEN_2022_PROGRAM_ID as $K,TOKEN_PROGRAM_ID as JK,unpackMint as ex}from"@solana/spl-token";function Kt(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import da from"bn.js";var wt=new da(1e6);var YC=_("Raydium_amount"),QC=Qe(pa);var lR=new Te(2),mR=new Te(3),dR=new Te(5),fa=new Te(10),pR=new Te(100),fR=new Te(1e3),yR=new Te(1e4);function nn(i,t){if(t.isZero())throw Error("divisor is zero");return i.mod(t)}function ya(i,t){if(t.isZero())throw Error("rhs is zero");let n=i.div(t);return nn(i,t).gt(et)&&(n=n.add(new It(1))),[n,t]}var et=new It(0),tn=class{static swapBaseInputWithoutFees(t,n,r){let u=t.mul(r),m=n.add(t);return u.div(m)}static swapBaseOutputWithoutFees(t,n,r){let u=n.mul(t),m=r.sub(t),[p]=ya(u,m);return p}static lpTokensToTradingTokens(t,n,r,u,m){let p=t.mul(r).div(n),f=t.mul(u).div(n);if(m===0)return{tokenAmount0:p,tokenAmount1:f};if(m===1)return nn(t.mul(r),n).gt(et)&&p.gt(et)&&(p=p.add(new It(1))),nn(t.mul(u),n).gt(et)&&f.gt(et)&&(f=f.add(new It(1))),{tokenAmount0:p,tokenAmount1:f};throw Error("roundDirection value error")}};export{tn as ConstantProductCurve};
//# sourceMappingURL=constantProduct.mjs.map