@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 78.7 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 xa from"decimal.js";import Ba 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 Da,TOKEN_PROGRAM_ID as Wa,getTransferFeeConfig as qa,unpackMint as Ua}from"@solana/spl-token";var Rt=v("Raydium_accountInfo_util");async function Pe(o,n,t){let{batchRequest:i,commitment:a="confirmed",chunkCount:m=100}=C({batchRequest:!1},t),p=Lt(n,m),f=new Array(p.length).fill([]);if(i){let y=p.map(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 OK}from"lodash";import ts from"axios";var yn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},xo=D(C({},yn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Is=v("Raydium_Api");import{PublicKey as Xc,SystemProgram as Yc}from"@solana/web3.js";import{AccountLayout as $c,createAssociatedTokenAccountIdempotentInstruction as Jc,TOKEN_PROGRAM_ID as el,TOKEN_2022_PROGRAM_ID as tl}from"@solana/spl-token";import{PublicKey as Me,sendAndConfirmTransaction as Vt,SystemProgram as 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 $={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($.SetComputeUnitPrice)),o.units&&(n.push(bn.setComputeUnitLimit({units:o.units})),t.push($.SetComputeUnitLimit)),{instructions:n,instructionTypes:t}}async function Ne(o,n){var i,a;let t=n!=null?n:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:t})))==null?void 0:a.blockhash}async function ct(o,n){return o.getSignatureStatuses([n]),new Promise((t,i)=>{let a=setTimeout(i,6e4);o.onSignature(n,m=>{if(clearTimeout(a),!m.err){t("");return}i(Object.assign(m.err,{txId:n}))},"confirmed")})}function vt(o,n){o.length<1&&gn.logWithError(`no instructions provided: ${o.toString()}`),n.length<1&&gn.logWithError(`no signers provided:, ${n.toString()}`);let t=new An;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<kn}catch{return!1}}function pe(o,n){let[t,i]=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($.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(te=>te.txId===w);if(q>-1){if(g[q].status==="error"||g[q].status==="success")return;g[q].status=U.err?"error":"success"}R==null||R([...g]),U.err||A()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(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,te=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),te({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",E))}catch(oe){ae=!0,clearInterval(U),console.error("getTransaction timeout:",oe,E)}},lt)),q=this.connection.onSignature(E,G=>{if(ae){this.connection.removeSignatureListener(q);return}ae=!0,te(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await L(),{txIds: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 te of P){if(++U,U<=K){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(te,{skipPreflight:E});await ct(this.connection,G),q.push(G)}return{txIds:q,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(K,P.length)),q=[...P.slice(0,K),...U];if(A){let te=0,G=[],oe=async()=>{if(!q[te])return;if(te<K){G.push({txId:"",status:"success",signedTx:q[te]}),w==null||w([...G]),te++,oe();return}let be=await this.connection.sendTransaction(q[te],{skipPreflight:E});G.push({txId:be,status:"sent",signedTx:q[te]}),w==null||w([...G]),te++;let Ge=!1,Ce=null,at=null,un=Te=>{Ce!==null&&clearInterval(Ce),at!==null&&this.connection.removeSignatureListener(at);let ge=G.findIndex(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 te=[];for(let G=0;G<q.length;G+=1){let oe=await this.connection.sendTransaction(q[G],{skipPreflight:E});te.push(oe)}return{txIds:te,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var _t=(...o)=>o.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),ie=class{constructor({scope:n,moduleName:t}){this.disabled=!1;this.scope=n,this.logger=v(t)}createTxBuilder(n){return this.scope.checkOwner(),new mt({connection:this.scope.connection,feePayer:n||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...n){this.logger.debug(_t(n))}logInfo(...n){this.logger.info(_t(n))}logAndCreateError(...n){let t=_t(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as hc,SystemProgram as Bc}from"@solana/web3.js";import Kc from"bn.js";import{createCloseAccountInstruction as Oc,createInitializeAccountInstruction as Nc,createTransferInstruction as Mc,TOKEN_PROGRAM_ID as Fc}from"@solana/spl-token";import{PublicKey as 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 lc,PublicKey as mc}from"@solana/web3.js";import fc from"bn.js";import{TOKEN_PROGRAM_ID as gc}from"@solana/spl-token";import{PublicKey as Yo}from"@solana/web3.js";import xn,{isBN as Kn}from"bn.js";import{bits as vo,BitStructure as yu,blob as Vo,Blob as bu,cstr as gu,f32 as Pu,f32be as Au,f64 as wu,f64be as ku,greedy as Tu,Layout as _o,ns64 as hu,ns64be as Iu,nu64 as Bu,nu64be as Su,offset as Eo,s16 as xu,s16be as Ku,s24 as Cu,s24be as Ru,s32 as Do,s32be as Lu,s40 as Ou,s40be as Nu,s48 as Mu,s48be as Fu,s8 as vu,seq as Wo,struct as Vu,Structure as qo,u16 as Uo,u16be as _u,u24 as Eu,u24be as Du,u32 as Go,u32be as Wu,u40 as qu,u40be as Uu,u48 as Gu,u48be as zu,u8 as zo,UInt as Xo,union as Xu,Union as Yu,unionLayoutDiscriminator as Qu,utf8 as Zu}from"@solana/buffer-layout";var pt=_o,hn=qo;var Et=Xo;var In=zo,H=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 vg,SystemProgram as Vg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Eg}from"@solana/spl-token";import{PublicKey as ul}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ll}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Nn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Mn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Fn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),qt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),fl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),jo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Vn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),yl=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),$o=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_n=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Jo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ei=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),En=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),bl=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ti=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ut=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ni=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),gl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),oi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ii=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ri=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Pl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Al=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),wl=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),kl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Tl=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var we={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import{PublicKey as X,SystemProgram as Dn,SYSVAR_RENT_PUBKEY as 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"),xl=new X("SysvarC1ock11111111111111111111111111111111"),Pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ci=new X("Sysvar1nstructions1111111111111111111111111"),li=Dn.programId,Kl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Cl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Rl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ll=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ol=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Nl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ml=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Fl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),vl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Vl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),_l=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new X("So11111111111111111111111111111111111111112"),Se=X.default;import Zg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as fy,TOKEN_2022_PROGRAM_ID as yy,TOKEN_PROGRAM_ID as by}from"@solana/spl-token";import{PublicKey as Py}from"@solana/web3.js";import wy from"bn.js";import Ty from"decimal.js";import{TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";import{PublicKey as Km}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 vf,TOKEN_2022_PROGRAM_ID as Vf,TOKEN_PROGRAM_ID as _f}from"@solana/spl-token";import{Keypair as Wf,PublicKey as qf,SystemProgram as Gf,TransactionInstruction as zf}from"@solana/web3.js";import Yf from"bn.js";import W from"bn.js";var Ve=new W(1).shln(64);var 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,Dm=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),Wm=new W(-1);var qm=new W("18446744073700000000");var xi=l([M(8),c("bump"),H("index"),r("owner"),z("protocolFeeRate"),z("tradeFeeRate"),H("tickSpacing"),z("fundFeeRate"),d(z(),1),r("fundOwner"),d(e(),3)]),Ki=l([z("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),Yn=l([M(8),ue("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),d(Ki,Gn,"observations"),d(e(),4)]),Ci=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ri=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),$t=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ce("tickCurrent"),z(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),M(6),d(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)]),Xm=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),ot,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),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")]),Ym=l([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),vi=l([M(8),r("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),Qm=l([e(),c("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),d(e(),8)]),Vi=l([M(8),c("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),d(e(),8)]);import jm from"bn.js";var ud=Buffer.from("amm_config","utf8"),Ei=Buffer.from("pool","utf8"),Di=Buffer.from("pool_vault","utf8"),cd=Buffer.from("pool_reward_vault","utf8"),ld=Buffer.from("position","utf8"),md=Buffer.from("tick_array","utf8"),dd=Buffer.from("operation","utf8"),pd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),fd=Buffer.from("observation","utf8"),yd=Buffer.from("support_mint","utf8"),bd=Buffer.from("dynamic_fee_config","utf8"),gd=Buffer.from("permission","utf8");var Pd=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Wi from"bn.js";import Td from"decimal.js";var Id=new Wi(1).shln(256).subn(1);import qd from"bn.js";import Ld from"bn.js";import Nd from"decimal.js";import Yd from"bn.js";import Zd from"decimal.js";import{PublicKey as Fp}from"@solana/web3.js";import Vp from"bn.js";import{TOKEN_2022_PROGRAM_ID as zp,TOKEN_PROGRAM_ID as Xp}from"@solana/spl-token";import Hp from"decimal.js";import Ip from"bn.js";import mp from"bn.js";import uf from"bn.js";function ee(o){let n=`global:${o}`;return Buffer.from(tr.digest(n)).slice(0,8)}Yn.span;var ty=v("Raydium_Clmm"),ny={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),createPermissionedPool:ee("create_permissioned_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_li