@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 78.6 kB
JavaScript
var ko=Object.defineProperty,To=Object.defineProperties;var ho=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var ln=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable;var cn=(o,n,t)=>n in o?ko(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,C=(o,n)=>{for(var t in n||(n={}))ln.call(n,t)&&cn(o,t,n[t]);if(st)for(var t of st(n))mn.call(n,t)&&cn(o,t,n[t]);return o},D=(o,n)=>To(o,ho(n));var de=(o,n)=>{var t={};for(var i in o)ln.call(o,i)&&n.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&st)for(var i of st(o))n.indexOf(i)<0&&mn.call(o,i)&&(t[i]=o[i]);return t};import Z from"bn.js";import Sa from"decimal.js";import Ia from"big.js";import ke from"bn.js";import{get as dn,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}},pn={},Bo={};function v(o){let n=dn(pn,o);if(!n){let t=dn(Bo,o);n=new Ct({name:o,logLevel:t}),Io(pn,o,n)}return n}import{PublicKey as So}from"@solana/web3.js";import{MINT_SIZE as Ea,TOKEN_PROGRAM_ID as Da,getTransferFeeConfig as Wa,unpackMint as qa}from"@solana/spl-token";var Rt=v("Raydium_accountInfo_util");async function Pe(o,n,t){let{batchRequest:i,commitment:a="confirmed",chunkCount:m=100}=C({batchRequest:!1},t),p=Lt(n,m),f=new Array(p.length).fill([]);if(i){let y=p.map(x=>{let R=o._buildArgs([x.map(S=>S.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:R}}),T=Lt(y,10);f=(await(await Promise.all(T.map(async x=>await o._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${x.error.message}`),x.result.value.map(R=>{if(R){let{data:S,executable:F,lamports:P,owner:h,rentEpoch:B}=R;return S.length!==2&&S[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:F,lamports:P,owner:new 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 fn=9007199254740991;function Y(o){let n=v("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);n.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&n.logWithError(`BigNumberish number underflow: ${o}`),(o>=fn||o<=-fn)&&n.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(n.error(`invalid BigNumberish value: ${o}`),new Xe(0))}import{merge as CK}from"lodash";import es from"axios";var yn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},xo=D(C({},yn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var hs=v("Raydium_Api");import{PublicKey as zc,SystemProgram as Xc}from"@solana/web3.js";import{AccountLayout as jc,createAssociatedTokenAccountIdempotentInstruction as $c,TOKEN_PROGRAM_ID as Jc,TOKEN_2022_PROGRAM_ID as el}from"@solana/spl-token";import{PublicKey as Me,sendAndConfirmTransaction as Vt,SystemProgram as No,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}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 bn,Keypair as Pn,PublicKey as Ko,Transaction as An,TransactionMessage as Co,VersionedTransaction as wn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ro}from"@solana/spl-token";var gn=v("Raydium_txUtil"),kn=1644;function ut(o){let n=[],t=[];return o.microLamports&&(n.push(bn.setComputeUnitPrice({microLamports:o.microLamports})),t.push(j.SetComputeUnitPrice)),o.units&&(n.push(bn.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&&gn.logWithError(`no instructions provided: ${o.toString()}`),n.length<1&&gn.logWithError(`no signers provided:, ${n.toString()}`);let t=new An;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<kn}catch{return!1}}function pe(o,n){let[t,i]=Ko.findProgramAddressSync(o,n);return{publicKey:t,nonce:i}}function Ye({instructions:o,payer:n,signers:t}){return vt(o,[n,...t])}function Qe({instructions:o,payer:n,lookupTableAddressAccount:t,recentBlockhash:i=Pn.generate().publicKey.toString()}){let m=new Co({payerKey:n,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new wn(m).serialize()).toString("base64").length<kn}catch{return!1}}var 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 wn&&(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 An&&(t.recentBlockhash||(t.recentBlockhash=Ro.toBase58()),t.feePayer||(t.feePayer=Pn.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(D(C({},t||{}),{lookupTableAddress:i})):this.build(t)}build(n){var i;let t=new Ze;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var b;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:y}=a||{},T=m!=null?m:await Ne(this.connection,this.blockhashCommitment);if(t.recentBlockhash=T,this.signers.length&&t.sign(...this.signers),he([t]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Vt(this.connection,t,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:p}),signedTx:t};if(this.signAllTransactions){let x=await this.signAllTransactions([t]);if(this.signers.length)for(let R of x)try{R.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(x[0].serialize(),{skipPreflight:p}),signedTx:x[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(x=>x.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:x,onTxUpdate:R,skipTxCount:S=0,recentBlockHash:F,skipPreflight:P=!0}=b||{},h=F!=null?F:await Ne(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(x){let I=[],V=0;for(let _ of p){if(++V,V<=S)continue;let g=await Vt(this.connection,_,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});I.push(g)}return{txIds:I,signedTxs:p}}return{txIds:await await Promise.all(p.map(async I=>(I.recentBlockhash=h,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:P})))),signedTxs:p}}if(this.signAllTransactions){let I=p.map((_,g)=>(_.recentBlockhash=h,f[g].length&&_.sign(...f[g]),_));he(I);let V=await this.signAllTransactions(I);if(x){let _=0,g=[],A=async()=>{if(!V[_])return;let w=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:P});g.push({txId:w,status:"sent",signedTx:V[_]}),R==null||R([...g]),_++;let K=!1,L=null,E=null,ae=U=>{L!==null&&clearInterval(L),E!==null&&this.connection.removeSignatureListener(E);let q=g.findIndex(ee=>ee.txId===w);if(q>-1){if(g[q].status==="error"||g[q].status==="success")return;g[q].status=U.err?"error":"success"}R==null||R([...g]),U.err||A()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(K){clearInterval(L);return}try{let q=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(K=!0,clearInterval(L),ae({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(q){K=!0,clearInterval(L),console.error("getTransaction timeout:",q,w)}},lt)),E=this.connection.onSignature(w,U=>{if(K){this.connection.removeSignatureListener(E);return}K=!0,ae(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:g.map(w=>w.txId),signedTxs:V}}else{let _=[];for(let g=0;g<V.length;g+=1){let A=await this.connection.sendRawTransaction(V[g].serialize(),{skipPreflight:P});_.push(A)}return{txIds:_,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:n,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:n,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:n,extInfo:i})}async buildV0(n){var P;let F=n||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:m}=F,p=de(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await Ft(this.connection):await Mt(this.connection)),t),y=Array.from(new Set([...i,...this.lookupTableAddress])),T=[];for(let h of y)f[h]===void 0&&T.push(new Me(h));let b=await Nt({connection:this.connection,address:T});for(let[h,B]of Object.entries(b))f[h]=B;let x=a?Me.default.toBase58():m!=null?m:await Ne(this.connection,this.blockhashCommitment),R=new He({payerKey:this.feePayer,recentBlockhash:x,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new je(R);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var _;let{skipPreflight:B=!0,sendAndConfirm:I,notSendToRpc:V}=h||{};if(he([S]),(_=this.owner)!=null&&_.isKeyPair){let g=await this.connection.sendTransaction(S,{skipPreflight:B});return I&&await ct(this.connection,g),{txId:g,signedTx:S}}if(this.signAllTransactions){let g=await this.signAllTransactions([S]);if(this.signers.length)for(let A of g)try{A.sign(this.signers)}catch{}return{txId:V?"":await this.connection.sendTransaction(g[0],{skipPreflight:B}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(n){var T;let{extraPreBuildData:t=[],buildProps:i}=n,{transaction:a}=await this.buildV0(i),m=t.filter(b=>b.builder.instructions.length>0),p=[a,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(b=>{b.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,x)=>{b.sign(f[x])}),{builder:this,transactions:p,signers:f,instructionTypes:y,buildProps:i,execute:async b=>{var P;let{sequentially:x,onTxUpdate:R,recentBlockHash:S,skipPreflight:F=!0}=b||{};if(S&&p.forEach(h=>h.message.recentBlockhash=S),he(p),(P=this.owner)!=null&&P.isKeyPair){if(x){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(x){let B=0,I=[],V=async()=>{if(!h[B])return;let _=await this.connection.sendTransaction(h[B],{skipPreflight:F});I.push({txId:_,status:"sent",signedTx:h[B]}),R==null||R([...I]),B++;let g=!1,A=null,w=null,K=L=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let E=I.findIndex(ae=>ae.txId===_);if(E>-1){if(I[E].status==="error"||I[E].status==="success")return;I[E].status=L.err?"error":"success"}R==null||R([...I]),L.err||V()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var L;if(g){clearInterval(A);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(g=!0,clearInterval(A),K({err:((L=E.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){g=!0,clearInterval(A),console.error("getTransaction timeout:",E,_)}},lt)),w=this.connection.onSignature(_,L=>{if(g){this.connection.removeSignatureListener(w);return}g=!0,K(L)},"confirmed"),this.connection.getSignatureStatus(_)};return V(),{txIds:[],signedTxs:h}}else{let B=[];for(let I=0;I<h.length;I+=1){let V=await this.connection.sendTransaction(h[I],{skipPreflight:F});B.push(V)}return{txIds:B,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(n){var R;let x=n||{},{splitIns:t=[],computeBudgetConfig:i}=x,a=de(x,["splitIns","computeBudgetConfig"]),m=i?ut(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,F)=>D(C({},S),{[F.publicKey.toBase58()]:F}),{}),f=[],y=[],T=[],b=0;if(this.allInstructions.forEach(S=>{let F=[...T,S],P=i?[...m.instructions,...F]:F,B=[...new Set(F.map(I=>I.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(I=>new Me(I));if(S!==t[b]&&T.length<12&&(Ye({instructions:P,payer:this.feePayer,signers:B})||Ye({instructions:F,payer:this.feePayer,signers:B})))T.push(S);else{if(T.length===0)throw Error("item ins too big");b+=S===t[b]?1:0,Ye({instructions:i?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:B})?f.push(new Ze().add(...m.instructions,...T)):f.push(new Ze().add(...T)),y.push(Array.from(new Set(T.map(I=>I.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(I=>p[I]).filter(I=>I!==void 0)),T=[S]}}),T.length>0){let F=[...new Set(T.map(P=>P.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(P=>p[P]).filter(P=>P!==void 0);Ye({instructions:i?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:F.map(P=>P.publicKey)})?f.push(new Ze().add(...m.instructions,...T)):f.push(new Ze().add(...T)),y.push(F)}return f.forEach(S=>S.feePayer=this.feePayer),(R=this.owner)!=null&&R.signer&&y.forEach(S=>{S.some(F=>F.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:f,signers:y,instructionTypes:this.instructionTypes,execute:async S=>{var _;let{sequentially:F,onTxUpdate:P,skipTxCount:h=0,recentBlockHash:B,skipPreflight:I=!0}=S||{},V=B!=null?B:await Ne(this.connection,this.blockhashCommitment);if(f.forEach(async(g,A)=>{g.recentBlockhash=V,y[A].length&&g.sign(...y[A])}),he(f),(_=this.owner)!=null&&_.isKeyPair){if(F){let g=0,A=[];for(let w of f){if(++g,g<=h){A.push("tx skipped");continue}let K=await Vt(this.connection,w,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});A.push(K)}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,K=[],L=async()=>{if(!A[w])return;w<h&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,L());let E=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:I});K.push({txId:E,status:"sent",signedTx:A[w]}),P==null||P([...K]),w++;let ae=!1,U=null,q=null,ee=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let oe=K.findIndex(be=>be.txId===E);if(oe>-1){if(K[oe].status==="error"||K[oe].status==="success")return;K[oe].status=G.err?"error":"success"}P==null||P([...K]),G.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ae){clearInterval(U);return}try{let oe=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(ae=!0,clearInterval(U),ee({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",E))}catch(oe){ae=!0,clearInterval(U),console.error("getTransaction timeout:",oe,E)}},lt)),q=this.connection.onSignature(E,G=>{if(ae){this.connection.removeSignatureListener(q);return}ae=!0,ee(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await L(),{txIds:K.map(E=>E.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let L=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:I});w.push(L)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(n){var _;let V=n||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:p=12}=V,f=de(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=C(C({},this.cluster==="devnet"?await Ft(this.connection):await Mt(this.connection)),a),T=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of T)y[g]===void 0&&b.push(new Me(g));let x=await Nt({connection:this.connection,address:b});for(let[g,A]of Object.entries(x))y[g]=A;let R=t?ut(t):{instructions:[],instructionTypes:[]},S=await Ne(this.connection,this.blockhashCommitment),F=this.signers.reduce((g,A)=>D(C({},g),{[A.publicKey.toBase58()]:A}),{}),P=[],h=[],B=[],I=0;if(this.allInstructions.forEach(g=>{let A=[...B,g],w=t?[...R.instructions,...A]:A;if(g!==i[I]&&B.length<p&&(Qe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:y})||Qe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:y})))B.push(g);else{if(B.length===0)throw Error("item ins too big");I+=g===i[I]?1:0;let K={};for(let L of[...new Set(T)])y[L]!==void 0&&(K[L]=y[L]);if(t&&Qe({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:S})){let L=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(y));P.push(new je(L))}else{let L=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(y));P.push(new je(L))}h.push(Array.from(new Set(B.map(L=>L.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(L=>F[L]).filter(L=>L!==void 0)),B=[g]}}),B.length>0){let A=[...new Set(B.map(w=>w.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(w=>F[w]).filter(w=>w!==void 0);if(t&&Qe({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:S})){let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(y));P.push(new je(w))}else{let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(y));P.push(new je(w))}h.push(A)}return(_=this.owner)!=null&&_.signer&&h.forEach(g=>{g.some(A=>A.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),P.forEach((g,A)=>{g.sign(h[A])}),{builder:this,transactions:P,buildProps:n,signers:h,instructionTypes:this.instructionTypes,execute:async g=>{var ae;let{sequentially:A,onTxUpdate:w,skipTxCount:K=0,recentBlockHash:L,skipPreflight:E=!0}=g||{};if(P.map(async(U,q)=>{h[q].length&&U.sign(h[q]),L&&(U.message.recentBlockhash=L)}),he(P),(ae=this.owner)!=null&&ae.isKeyPair){if(A){let U=0,q=[];for(let ee of P){if(++U,U<=K){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(ee,{skipPreflight:E});await ct(this.connection,G),q.push(G)}return{txIds:q,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(K,P.length)),q=[...P.slice(0,K),...U];if(A){let ee=0,G=[],oe=async()=>{if(!q[ee])return;if(ee<K){G.push({txId:"",status:"success",signedTx:q[ee]}),w==null||w([...G]),ee++,oe();return}let be=await this.connection.sendTransaction(q[ee],{skipPreflight:E});G.push({txId:be,status:"sent",signedTx:q[ee]}),w==null||w([...G]),ee++;let Ge=!1,Ce=null,at=null,un=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:0});ge&&(Ge=!0,clearInterval(Ce),un({err:((Te=ge.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",be))}catch(ge){Ge=!0,clearInterval(Ce),console.error("getTransaction timeout:",ge,be)}},lt)),at=this.connection.onSignature(be,Te=>{if(Ge){this.connection.removeSignatureListener(at);return}Ge=!0,un(Te)},"confirmed"),this.connection.getSignatureStatus(be)};return oe(),{txIds:[],signedTxs:q}}else{let ee=[];for(let G=0;G<q.length;G+=1){let oe=await this.connection.sendTransaction(q[G],{skipPreflight:E});ee.push(oe)}return{txIds:ee,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var _t=(...o)=>o.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),ie=class{constructor({scope:n,moduleName:t}){this.disabled=!1;this.scope=n,this.logger=v(t)}createTxBuilder(n){return this.scope.checkOwner(),new mt({connection:this.scope.connection,feePayer:n||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...n){this.logger.debug(_t(n))}logInfo(...n){this.logger.info(_t(n))}logAndCreateError(...n){let t=_t(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Tc,SystemProgram as Ic}from"@solana/web3.js";import xc from"bn.js";import{createCloseAccountInstruction as Lc,createInitializeAccountInstruction as Oc,createTransferInstruction as Nc,TOKEN_PROGRAM_ID as Mc}from"@solana/spl-token";import{PublicKey as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tn}from"@solana/spl-token";var dt={chainId:101,address:Fo.default.toBase58(),programId:Tn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Tn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{Keypair as cc,PublicKey as lc}from"@solana/web3.js";import pc from"bn.js";import{TOKEN_PROGRAM_ID as bc}from"@solana/spl-token";import{PublicKey as Yo}from"@solana/web3.js";import xn,{isBN as Kn}from"bn.js";import{bits as vo,BitStructure as fu,blob as Vo,Blob as yu,cstr as bu,f32 as gu,f32be as Pu,f64 as Au,f64be as wu,greedy as ku,Layout as _o,ns64 as Tu,ns64be as hu,nu64 as Iu,nu64be as Bu,offset as Eo,s16 as Su,s16be as xu,s24 as Ku,s24be as Cu,s32 as Do,s32be as Ru,s40 as Lu,s40be as Ou,s48 as Nu,s48be as Mu,s8 as Fu,seq as Wo,struct as vu,Structure as qo,u16 as Uo,u16be as Vu,u24 as _u,u24be as Eu,u32 as Go,u32be as Du,u40 as Wu,u40be as qu,u48 as Uu,u48be as Gu,u8 as zo,UInt as Xo,union as zu,Union as Xu,unionLayoutDiscriminator as Yu,utf8 as Qu}from"@solana/buffer-layout";var pt=_o,hn=qo;var Et=Xo;var In=zo,$=Uo;var ft=Go;var ce=Do;var Bn=Wo;var M=Vo;var Dt=vo,Sn=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 C(C({},a),m)}encode(t,i,a=0){return this._lower.encode(t,i,a)+this._upper.encode(t,i,a+this._lower.span)}};function c(o){return new Et(1,o)}function z(o){return new Et(4,o)}function e(o){return new Be(8,!1,o)}function O(o){return new Be(16,!1,o)}function Cn(o){return new Be(1,!0,o)}function Fe(o){return new Be(8,!0,o)}function Rn(o){return new Be(16,!0,o)}var $e=class extends pt{constructor(t,i,a,m){super(t.span,m);this.layout=t,this.decoder=i,this.encoder=a}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,a){return this.layout.encode(this.encoder(t),i,a)}getSpan(t,i){return this.layout.getSpan(t,i)}};function r(o){return new $e(M(32),n=>new Yo(n),n=>n.toBuffer(),o)}function ue(o){return new $e(In(),Qo,Zo,o)}function Qo(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Zo(o){return o?1:0}function Ln(o,n){let t=ft("length"),i=l([t,d(o,Sn(t,-t.span),"values")]);return new $e(i,({values:a})=>a,a=>({values:a}),n)}var Wt=class extends hn{decode(n,t){return super.decode(n,t)}};function l(o,n,t){return new Wt(o,n,t)}function d(o,n,t){let i,a=typeof n=="number"?n:Kn(n)?n.toNumber():new Proxy(n,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=Kn(f)?f.toNumber():f,Reflect.set(m,"count",i)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(i=f),Reflect.set(m,p,f)}});return Bn(o,a,t)}var bt=l([r("mint"),r("owner"),e("amount"),z("delegateOption"),r("delegate"),c("state"),z("isNativeOption"),e("isNative"),e("delegatedAmount"),z("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as Og,SystemProgram as Ng}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Fg}from"@solana/spl-token";import{PublicKey as sl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as cl}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Nn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Mn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Fn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),qt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),pl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),jo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Vn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),fl=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),$o=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_n=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Jo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ei=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),En=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),yl=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ti=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ut=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ni=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),bl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),oi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ii=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ri=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),gl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Pl=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Al=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),wl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),kl=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 Gt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Je=new X("SysvarRent111111111111111111111111111111111"),Sl=new X("SysvarC1ock11111111111111111111111111111111"),Pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ci=new X("Sysvar1nstructions1111111111111111111111111"),li=Dn.programId,xl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Kl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Cl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Rl=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ll=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ol=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Nl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ml=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Fl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),vl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Vl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new X("So11111111111111111111111111111111111111112"),Se=X.default;import zg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as ly,TOKEN_2022_PROGRAM_ID as my,TOKEN_PROGRAM_ID as dy}from"@solana/spl-token";import{PublicKey as fy}from"@solana/web3.js";import by from"bn.js";import Py from"decimal.js";import{TOKEN_PROGRAM_ID as hm}from"@solana/spl-token";import{PublicKey as xm}from"@solana/web3.js";import{PublicKey as zt}from"@solana/web3.js";var Xt=class{constructor({mint:n,decimals:t,symbol:i,name:a,skipMint:m=!1,isToken2022:p=!1}){if(n===Se.toBase58()||n instanceof zt&&Se.equals(n)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new zt(fe.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||n.toString().substring(0,6),this.name=a||n.toString().substring(0,6),this.mint=m?zt.default:Wn({publicKey:n}),this.isToken2022=p}equals(n){return this===n?!0:this.mint.equals(n.mint)}},J=Xt;J.WSOL=new Xt(D(C({},fe),{mint:fe.address}));var Yt=class{constructor({decimals:n,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=n,this.symbol=t,this.name=i}equals(n){return this===n}},et=Yt;et.SOL=new Yt(dt);import 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 Of,TOKEN_2022_PROGRAM_ID as Nf,TOKEN_PROGRAM_ID as Mf}from"@solana/spl-token";import{Keypair as Vf,PublicKey as _f,SystemProgram as Df,TransactionInstruction as Wf}from"@solana/web3.js";import Uf from"bn.js";import W from"bn.js";var Ve=new W(1).shln(64);var ki=new W(1).shln(128),Ht=new W(1).shln(64).subn(1),Ti=new W(1).shln(128).subn(1);var _e=new W("4295048016"),Ee=new W("79226673521066979257578248091"),hi=new W("59543866431248"),Ii=new W("184467440737095516"),Bi=new W("15793534762490258745");var jt=60,Em=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),Dm=new W(-1);var Wm=new W("18446744073700000000");var xi=l([M(8),c("bump"),$("index"),r("owner"),z("protocolFeeRate"),z("tradeFeeRate"),$("tickSpacing"),z("fundFeeRate"),d(z(),1),r("fundOwner"),d(e(),3)]),Ki=l([z("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),Yn=l([M(8),ue("initialized"),e("recentEpoch"),$("observationIndex"),r("poolId"),d(Ki,Gn,"observations"),d(e(),4)]),Ci=l([$("filterPeriod"),$("decayPeriod"),$("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"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),$t=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),$("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ce("tickCurrent"),z(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),M(6),d(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([O("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Li,ot,"rewardInfos"),e("recentEpoch"),d(e(),7)]),zm=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),ot,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ni=l([ce("tick"),Rn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),ot,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(z(),3)]),Qn=l([M(8),r("poolId"),ce("startTickIndex"),d(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"),O("unfilledRatioX64"),d(e(),4)]),Zn=l([M(8),r("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),Xm=l([M(8),$("index"),$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),vi=l([M(8),r("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),Ym=l([e(),c("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),d(e(),8)]),Vi=l([M(8),c("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),d(e(),8)]);import Hm from"bn.js";var sd=Buffer.from("amm_config","utf8"),_i=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),ud=Buffer.from("pool_reward_vault","utf8"),cd=Buffer.from("position","utf8"),ld=Buffer.from("tick_array","utf8"),md=Buffer.from("operation","utf8"),dd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),pd=Buffer.from("observation","utf8"),fd=Buffer.from("support_mint","utf8"),yd=Buffer.from("dynamic_fee_config","utf8");var bd=Buffer.from("locked_position","utf8");import{sha256 as er}from"js-sha256";import Di from"bn.js";import wd from"decimal.js";var Td=new Di(1).shln(256).subn(1);import Dd from"bn.js";import Cd from"bn.js";import Ld from"decimal.js";import zd from"bn.js";import Yd from"decimal.js";import{PublicKey as Np}from"@solana/web3.js";import Fp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Up,TOKEN_PROGRAM_ID as Gp}from"@solana/spl-token";import Qp from"decimal.js";import Tp from"bn.js";import cp from"bn.js";import af from"bn.js";function te(o){let n=`global:${o}`;return Buffer.from(er.digest(n)).slice(0,8)}Yn.span;var jf=v("Raydium_Clmm"),$f={createPool:te("create_pool"),createCustomizablePool:te("create_customizable_pool"),openPositionV2:te("open_position_v2"),openPositionWithToken22Nft:te("open_position_with_token22_nft"),closePosition:te("close_position"),increaseLiquidityV2:te("increase_liquidity_v2"),decreaseLiquidityV2:te("decrease_liquidity_v2"),initializeReward:te("initiali