@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 79.3 kB
JavaScript
var Io=Object.defineProperty,Bo=Object.defineProperties;var So=Object.getOwnPropertyDescriptors;var ut=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var ln=(o,n,t)=>n in o?Io(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,C=(o,n)=>{for(var t in n||(n={}))mn.call(n,t)&&ln(o,t,n[t]);if(ut)for(var t of ut(n))dn.call(n,t)&&ln(o,t,n[t]);return o},V=(o,n)=>Bo(o,So(n));var de=(o,n)=>{var t={};for(var i in o)mn.call(o,i)&&n.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&ut)for(var i of ut(o))n.indexOf(i)<0&&dn.call(o,i)&&(t[i]=o[i]);return t};import Z from"bn.js";import _a from"decimal.js";import va from"big.js";import ke from"bn.js";import{get as pn,set as xo}from"lodash";var Rt=class{constructor(n){this.logLevel=n.logLevel!==void 0?n.logLevel:0,this.name=n.name}set level(n){this.logLevel=n}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(n){return n<=this.logLevel}error(...n){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...n),this):this}logWithError(...n){let t=n.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...n){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...n),this):this}info(...n){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...n),this):this}debug(...n){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...n),this):this}},fn={},Ko={};function v(o){let n=pn(fn,o);if(!n){let t=pn(Ko,o);n=new Rt({name:o,logLevel:t}),xo(fn,o,n)}return n}import{PublicKey as Co}from"@solana/web3.js";import{MINT_SIZE as ja,TOKEN_PROGRAM_ID as $a,getTransferFeeConfig as Ja,unpackMint as es}from"@solana/spl-token";var Lt=v("Raydium_accountInfo_util");async function Ae(o,n,t){let{batchRequest:i,commitment:u="confirmed",chunkCount:m=100}=C({batchRequest:!1},t),p=Ot(n,m),f=new Array(p.length).fill([]);if(i){let y=p.map(x=>{let R=o._buildArgs([x.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),T=Ot(y,10);f=(await(await Promise.all(T.map(async x=>await o._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&Lt.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:A,owner:h,rentEpoch:B}=R;return S.length!==2&&S[1]!=="base64"&&Lt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:F,lamports:A,owner:new Co(h),rentEpoch:B}}return null})))}else try{f=await Promise.all(p.map(y=>o.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return f.flat()}import Xe from"bn.js";var yn=9007199254740991;function X(o){let n=v("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);n.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&n.logWithError(`BigNumberish number underflow: ${o}`),(o>=yn||o<=-yn)&&n.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(n.error(`invalid BigNumberish value: ${o}`),new Xe(0))}import{merge as uC}from"lodash";import ds from"axios";var bn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",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"},Ro=V(C({},bn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Fs=v("Raydium_Api");import{PublicKey as nl,SystemProgram as ol}from"@solana/web3.js";import{AccountLayout as ul,createAssociatedTokenAccountIdempotentInstruction as cl,TOKEN_PROGRAM_ID as ll,TOKEN_2022_PROGRAM_ID as ml}from"@solana/spl-token";import{PublicKey as Fe,sendAndConfirmTransaction as _t,SystemProgram as vo,Transaction as He,TransactionMessage as je,VersionedTransaction as $e}from"@solana/web3.js";import Vo from"axios";import{PublicKey as Nt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Mt({connection:o,address:n,cluster:t="mainnet"}){let i=await Ae(o,[...new Set(n.map(m=>m.toString()))].map(m=>new Nt(m))),u={};for(let m=0;m<n.length;m++){let p=i[m],f=n[m];if(!p)continue;let y=new Ne({key:f,state:Ne.deserialize(p.data)});u[f.toString()]=y,t==="devnet"?Oe[f.toString()]=y:Le[f.toString()]=y}return u}var Le={},Ft=async o=>{let n="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[n])return Le;let t=new Nt(n),i=await o.getAccountInfo(t);return i&&(Le[n]=new Ne({key:t,state:Ne.deserialize(i.data)})),Le},Oe={},vt=async o=>{let n="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[n])return Oe;let t=new Nt(n),i=await o.getAccountInfo(t);return i&&(Oe[n]=new Ne({key:t,state:Ne.deserialize(i.data)})),Oe};var j={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as gn,Keypair as An,PublicKey as Lo,Transaction as wn,TransactionMessage as Oo,VersionedTransaction as kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as No}from"@solana/spl-token";var Pn=v("Raydium_txUtil"),Tn=1644;function ct(o){let n=[],t=[];return o.microLamports&&(n.push(gn.setComputeUnitPrice({microLamports:o.microLamports})),t.push(j.SetComputeUnitPrice)),o.units&&(n.push(gn.setComputeUnitLimit({units:o.units})),t.push(j.SetComputeUnitLimit)),{instructions:n,instructionTypes:t}}async function Me(o,n){var i,u;let t=n!=null?n:"confirmed";return(u=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:t})))==null?void 0:u.blockhash}async function lt(o,n){return o.getSignatureStatuses([n]),new Promise((t,i)=>{let u=setTimeout(i,6e4);o.onSignature(n,m=>{if(clearTimeout(u),!m.err){t("");return}i(Object.assign(m.err,{txId:n}))},"confirmed")})}function Vt(o,n){o.length<1&&Pn.logWithError(`no instructions provided: ${o.toString()}`),n.length<1&&Pn.logWithError(`no signers provided:, ${n.toString()}`);let t=new wn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Tn}catch{return!1}}function fe(o,n){let[t,i]=Lo.findProgramAddressSync(o,n);return{publicKey:t,nonce:i}}function Qe({instructions:o,payer:n,signers:t}){return Vt(o,[n,...t])}function Ze({instructions:o,payer:n,lookupTableAddressAccount:t,recentBlockhash:i=An.generate().publicKey.toString()}){let m=new Oo({payerKey:n,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new kn(m).serialize()).toString("base64").length<Tn}catch{return!1}}var Mo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Fo=o=>{let n=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof kn&&(n=Mo(n));try{return n instanceof Buffer?n.toString("base64"):Buffer.from(n).toString("base64")}catch{return n.toString("base64")}};function he(o){let n=[];return o.forEach(t=>{t instanceof wn&&(t.recentBlockhash||(t.recentBlockhash=No.toBase58()),t.feePayer||(t.feePayer=An.generate().publicKey)),n.push(Fo(t))}),console.log("simulate tx string:",n),n}var mt=2e3,dt=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 Vo.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}=ct(n);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(n){var t;return n?(this.endInstructions.push(vo.transfer({fromPubkey:(t=n.feePayer)!=null?t:this.feePayer,toPubkey:new Fe(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:u=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...n),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Fe.default.toString())),this}async versionBuild({txVersion:n,extInfo:t,lookupTableAddress:i}){return n===0?await this.buildV0(V(C({},t||{}),{lookupTableAddress:i})):this.build(t)}build(n){var i;let t=new He;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(u=>u.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 u=>{var b;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:y}=u||{},T=m!=null?m:await Me(this.connection,this.blockhashCommitment);if(t.recentBlockhash=T,this.signers.length&&t.sign(...this.signers),he([t]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await _t(this.connection,t,this.signers.find(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:u}=this.build(i),m=t.filter(b=>b.transaction.instructions.length>0),p=[u,...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:A=!0}=b||{},h=F!=null?F:await Me(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(x){let I=[],_=0;for(let E of p){if(++_,_<=S)continue;let g=await _t(this.connection,E,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});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:A})))),signedTxs:p}}if(this.signAllTransactions){let I=p.map((E,g)=>(E.recentBlockhash=h,f[g].length&&E.sign(...f[g]),E));he(I);let _=await this.signAllTransactions(I);if(x){let E=0,g=[],w=async()=>{if(!_[E])return;let k=await this.connection.sendRawTransaction(_[E].serialize(),{skipPreflight:A});g.push({txId:k,status:"sent",signedTx:_[E]}),R==null||R([...g]),E++;let K=!1,L=null,D=null,ae=U=>{L!==null&&clearInterval(L),D!==null&&this.connection.removeSignatureListener(D);let q=g.findIndex(ee=>ee.txId===k);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||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(K){clearInterval(L);return}try{let q=await this.connection.getTransaction(k,{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:",k))}catch(q){K=!0,clearInterval(L),console.error("getTransaction timeout:",q,k)}},mt)),D=this.connection.onSignature(k,U=>{if(K){this.connection.removeSignatureListener(D);return}K=!0,ae(U)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:g.map(k=>k.txId),signedTxs:_}}else{let E=[];for(let g=0;g<_.length;g+=1){let w=await this.connection.sendRawTransaction(_[g].serialize(),{skipPreflight:A});E.push(w)}return{txIds:E,signedTxs:_}}}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 A;let F=n||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:m}=F,p=de(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await vt(this.connection):await Ft(this.connection)),t),y=Array.from(new Set([...i,...this.lookupTableAddress])),T=[];for(let h of y)f[h]===void 0&&T.push(new Fe(h));let b=await Mt({connection:this.connection,address:T});for(let[h,B]of Object.entries(b))f[h]=B;let x=u?Fe.default.toBase58():m!=null?m:await Me(this.connection,this.blockhashCommitment),R=new je({payerKey:this.feePayer,recentBlockhash:x,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new $e(R);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var E;let{skipPreflight:B=!0,sendAndConfirm:I,notSendToRpc:_}=h||{};if(he([S]),(E=this.owner)!=null&&E.isKeyPair){let g=await this.connection.sendTransaction(S,{skipPreflight:B});return I&&await lt(this.connection,g),{txId:g,signedTx:S}}if(this.signAllTransactions){let g=await this.signAllTransactions([S]);if(this.signers.length)for(let w of g)try{w.sign(this.signers)}catch{}return{txId:_?"":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:u}=await this.buildV0(i),m=t.filter(b=>b.builder.instructions.length>0),p=[u,...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 A;let{sequentially:x,onTxUpdate:R,recentBlockHash:S,skipPreflight:F=!0}=b||{};if(S&&p.forEach(h=>h.message.recentBlockhash=S),he(p),(A=this.owner)!=null&&A.isKeyPair){if(x){let h=[];for(let B of p){let I=await this.connection.sendTransaction(B,{skipPreflight:F});await lt(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=[],_=async()=>{if(!h[B])return;let E=await this.connection.sendTransaction(h[B],{skipPreflight:F});I.push({txId:E,status:"sent",signedTx:h[B]}),R==null||R([...I]),B++;let g=!1,w=null,k=null,K=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let D=I.findIndex(ae=>ae.txId===E);if(D>-1){if(I[D].status==="error"||I[D].status==="success")return;I[D].status=L.err?"error":"success"}R==null||R([...I]),L.err||_()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(g){clearInterval(w);return}try{let D=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});D&&(g=!0,clearInterval(w),K({err:((L=D.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",E))}catch(D){g=!0,clearInterval(w),console.error("getTransaction timeout:",D,E)}},mt)),k=this.connection.onSignature(E,L=>{if(g){this.connection.removeSignatureListener(k);return}g=!0,K(L)},"confirmed"),this.connection.getSignatureStatus(E)};return _(),{txIds:[],signedTxs:h}}else{let B=[];for(let I=0;I<h.length;I+=1){let _=await this.connection.sendTransaction(h[I],{skipPreflight:F});B.push(_)}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,u=de(x,["splitIns","computeBudgetConfig"]),m=i?ct(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,F)=>V(C({},S),{[F.publicKey.toBase58()]:F}),{}),f=[],y=[],T=[],b=0;if(this.allInstructions.forEach(S=>{let F=[...T,S],A=i?[...m.instructions,...F]:F,B=[...new Set(F.map(I=>I.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat()).values()].map(I=>new Fe(I));if(S!==t[b]&&T.length<12&&(Qe({instructions:A,payer:this.feePayer,signers:B})||Qe({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,Qe({instructions:i?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:B})?f.push(new He().add(...m.instructions,...T)):f.push(new He().add(...T)),y.push(Array.from(new Set(T.map(I=>I.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(I=>p[I]).filter(I=>I!==void 0)),T=[S]}}),T.length>0){let F=[...new Set(T.map(A=>A.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);Qe({instructions:i?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:F.map(A=>A.publicKey)})?f.push(new He().add(...m.instructions,...T)):f.push(new He().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 E;let{sequentially:F,onTxUpdate:A,skipTxCount:h=0,recentBlockHash:B,skipPreflight:I=!0}=S||{},_=B!=null?B:await Me(this.connection,this.blockhashCommitment);if(f.forEach(async(g,w)=>{g.recentBlockhash=_,y[w].length&&g.sign(...y[w])}),he(f),(E=this.owner)!=null&&E.isKeyPair){if(F){let g=0,w=[];for(let k of f){if(++g,g<=h){w.push("tx skipped");continue}let K=await _t(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});w.push(K)}return{txIds:w,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)),w=[...f.slice(0,h),...g];if(F){let k=0,K=[],L=async()=>{if(!w[k])return;k<h&&(K.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...K]),k++,L());let D=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:I});K.push({txId:D,status:"sent",signedTx:w[k]}),A==null||A([...K]),k++;let ae=!1,U=null,q=null,ee=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let oe=K.findIndex(ge=>ge.txId===D);if(oe>-1){if(K[oe].status==="error"||K[oe].status==="success")return;K[oe].status=G.err?"error":"success"}A==null||A([...K]),G.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ae){clearInterval(U);return}try{let oe=await this.connection.getTransaction(D,{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:",D))}catch(oe){ae=!0,clearInterval(U),console.error("getTransaction timeout:",oe,D)}},mt)),q=this.connection.onSignature(D,G=>{if(ae){this.connection.removeSignatureListener(q);return}ae=!0,ee(G)},"confirmed"),this.connection.getSignatureStatus(D)};return await L(),{txIds:K.map(D=>D.txId),signedTxs:w}}else{let k=[];for(let K=0;K<w.length;K+=1){let L=await this.connection.sendRawTransaction(w[K].serialize(),{skipPreflight:I});k.push(L)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(n){var E;let _=n||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=_,f=de(_,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=C(C({},this.cluster==="devnet"?await vt(this.connection):await Ft(this.connection)),u),T=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of T)y[g]===void 0&&b.push(new Fe(g));let x=await Mt({connection:this.connection,address:b});for(let[g,w]of Object.entries(x))y[g]=w;let R=t?ct(t):{instructions:[],instructionTypes:[]},S=await Me(this.connection,this.blockhashCommitment),F=this.signers.reduce((g,w)=>V(C({},g),{[w.publicKey.toBase58()]:w}),{}),A=[],h=[],B=[],I=0;if(this.allInstructions.forEach(g=>{let w=[...B,g],k=t?[...R.instructions,...w]:w;if(g!==i[I]&&B.length<p&&(Ze({instructions:k,payer:this.feePayer,lookupTableAddressAccount:y})||Ze({instructions:w,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&&Ze({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:S})){let L=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(y));A.push(new $e(L))}else{let L=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(y));A.push(new $e(L))}h.push(Array.from(new Set(B.map(L=>L.keys.filter(D=>D.isSigner).map(D=>D.pubkey.toString())).flat())).map(L=>F[L]).filter(L=>L!==void 0)),B=[g]}}),B.length>0){let w=[...new Set(B.map(k=>k.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(k=>F[k]).filter(k=>k!==void 0);if(t&&Ze({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:S})){let k=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(y));A.push(new $e(k))}else{let k=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(y));A.push(new $e(k))}h.push(w)}return(E=this.owner)!=null&&E.signer&&h.forEach(g=>{g.some(w=>w.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,w)=>{g.sign(h[w])}),{builder:this,transactions:A,buildProps:n,signers:h,instructionTypes:this.instructionTypes,execute:async g=>{var ae;let{sequentially:w,onTxUpdate:k,skipTxCount:K=0,recentBlockHash:L,skipPreflight:D=!0}=g||{};if(A.map(async(U,q)=>{h[q].length&&U.sign(h[q]),L&&(U.message.recentBlockhash=L)}),he(A),(ae=this.owner)!=null&&ae.isKeyPair){if(w){let U=0,q=[];for(let ee of A){if(++U,U<=K){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(ee,{skipPreflight:D});await lt(this.connection,G),q.push(G)}return{txIds:q,signedTxs:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:D}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(K,A.length)),q=[...A.slice(0,K),...U];if(w){let ee=0,G=[],oe=async()=>{if(!q[ee])return;if(ee<K){G.push({txId:"",status:"success",signedTx:q[ee]}),k==null||k([...G]),ee++,oe();return}let ge=await this.connection.sendTransaction(q[ee],{skipPreflight:D});G.push({txId:ge,status:"sent",signedTx:q[ee]}),k==null||k([...G]),ee++;let ze=!1,Re=null,st=null,cn=Te=>{Re!==null&&clearInterval(Re),st!==null&&this.connection.removeSignatureListener(st);let Pe=G.findIndex(ho=>ho.txId===ge);if(Pe>-1){if(G[Pe].status==="error"||G[Pe].status==="success")return;G[Pe].status=Te.err?"error":"success"}k==null||k([...G]),Te.err||oe()};this.loopMultiTxStatus&&(Re=setInterval(async()=>{var Te;if(ze){clearInterval(Re);return}try{let Pe=await this.connection.getTransaction(ge,{commitment:"confirmed",maxSupportedTransactionVersion:0});Pe&&(ze=!0,clearInterval(Re),cn({err:((Te=Pe.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",ge))}catch(Pe){ze=!0,clearInterval(Re),console.error("getTransaction timeout:",Pe,ge)}},mt)),st=this.connection.onSignature(ge,Te=>{if(ze){this.connection.removeSignatureListener(st);return}ze=!0,cn(Te)},"confirmed"),this.connection.getSignatureStatus(ge)};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:D});ee.push(oe)}return{txIds:ee,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Et=(...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 dt({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(Et(n))}logInfo(...n){this.logger.info(Et(n))}logAndCreateError(...n){let t=Et(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Nc,SystemProgram as Fc}from"@solana/web3.js";import _c from"bn.js";import{createCloseAccountInstruction as qc,createInitializeAccountInstruction as Uc,createTransferInstruction as Gc,TOKEN_PROGRAM_ID as zc}from"@solana/spl-token";import{PublicKey as _o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hn}from"@solana/spl-token";var pt={chainId:101,address:_o.default.toBase58(),programId:hn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ye={chainId:101,address:"So11111111111111111111111111111111111111112",programId:hn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{Keypair as wc,PublicKey as kc}from"@solana/web3.js";import Ic from"bn.js";import{TOKEN_PROGRAM_ID as xc}from"@solana/spl-token";import{PublicKey as jo}from"@solana/web3.js";import Cn,{isBN as Rn}from"bn.js";import{bits as Eo,BitStructure as Su,blob as Do,Blob as xu,cstr as Ku,f32 as Cu,f32be as Ru,f64 as Lu,f64be as Ou,greedy as Nu,Layout as Wo,ns64 as Mu,ns64be as Fu,nu64 as qo,nu64be as vu,offset as Uo,s16 as Vu,s16be as _u,s24 as Eu,s24be as Du,s32 as Go,s32be as Wu,s40 as qu,s40be as Uu,s48 as Gu,s48be as zu,s8 as Yu,seq as zo,struct as Xu,Structure as Yo,u16 as Xo,u16be as Qu,u24 as Zu,u24be as Hu,u32 as Qo,u32be as ju,u40 as $u,u40be as Ju,u48 as ec,u48be as tc,u8 as Zo,UInt as Ho,union as nc,Union as oc,unionLayoutDiscriminator as ic,utf8 as rc}from"@solana/buffer-layout";var ft=Wo,In=Yo;var Dt=Ho;var Bn=Zo,$=Xo;var yt=Qo;var Sn=qo;var ce=Go;var xn=zo;var M=Do;var Wt=Eo,Kn=Uo;var Be=class extends ft{constructor(t,i,u){super(t,u);this.blob=M(t),this.signed=i}decode(t,i=0){let u=new Cn(this.blob.decode(t,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(t,i,u=0){return typeof t=="number"&&(t=new Cn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,u)}},bt=class extends ft{constructor(t){super(8,t);this._lower=Wt(yt(),!1),this._upper=Wt(yt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,i=0){let u=this._lower.decode(t,i),m=this._upper.decode(t,i+this._lower.span);return C(C({},u),m)}encode(t,i,u=0){return this._lower.encode(t,i,u)+this._upper.encode(t,i,u+this._lower.span)}};function c(o){return new Dt(1,o)}function z(o){return new Dt(4,o)}function e(o){return new Be(8,!1,o)}function O(o){return new Be(16,!1,o)}function Ln(o){return new Be(1,!0,o)}function ve(o){return new Be(8,!0,o)}function On(o){return new Be(16,!0,o)}var Je=class extends ft{constructor(t,i,u,m){super(t.span,m);this.layout=t,this.decoder=i,this.encoder=u}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,u){return this.layout.encode(this.encoder(t),i,u)}getSpan(t,i){return this.layout.getSpan(t,i)}};function r(o){return new Je(M(32),n=>new jo(n),n=>n.toBuffer(),o)}function ue(o){return new Je(Bn(),$o,Jo,o)}function $o(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Jo(o){return o?1:0}function Nn(o,n){let t=yt("length"),i=l([t,d(o,Kn(t,-t.span),"values")]);return new Je(i,({values:u})=>u,u=>({values:u}),n)}var qt=class extends In{decode(n,t){return super.decode(n,t)}};function l(o,n,t){return new qt(o,n,t)}function d(o,n,t){let i,u=typeof n=="number"?n:Rn(n)?n.toNumber():new Proxy(n,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=Rn(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 xn(o,u,t)}var gt=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 _g,SystemProgram as Eg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Wg}from"@solana/spl-token";import{PublicKey as Pl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wl}from"@solana/spl-token";import{PublicKey as P}from"@solana/web3.js";var Fn=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),vn=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Vn=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ut=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Il=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ti=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),_n=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),En=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Bl=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ni=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Dn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),oi=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ii=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Wn=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Sl=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ri=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ai=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),si=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ui=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ci=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Gt=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),li=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),xl=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),mi=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),pi=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Kl=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Cl=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Rl=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Ll=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ol=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),et={IDO_PROGRAM_ID_V1:ai,IDO_PROGRAM_ID_V2:si,IDO_PROGRAM_ID_V3:ui,IDO_PROGRAM_ID_V4:ci};var we={OPEN_BOOK_PROGRAM:new P("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new P("Ray1111111111111111111111111111111111111111"),AMM_V4:new P("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new P("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new P("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new P("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new P("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new P("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new P("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new P("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new P("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new P("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:P.default,Router:new P("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new P("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new P("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new P("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new P("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new P("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new P("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new P("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new P("Ray1111111111111111111111111111111111111111")};import{PublicKey as Y,SystemProgram as qn,SYSVAR_RENT_PUBKEY as fi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yi}from"@solana/spl-token";function Ve({pubkey:o,isSigner:n=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:n}}var bi=[Ve({pubkey:yi,isWritable:!1}),Ve({pubkey:qn.programId,isWritable:!1}),Ve({pubkey:fi,isWritable:!1})];function Un({publicKey:o,transformSol:n}){let t=Gn(o.toString());if(t instanceof Y)return n&&t.equals(Se)?pe:t;if(n&&t.toString()===Se.toBase58())return pe;if(typeof t=="string"){if(t===Y.default.toBase58())return Y.default;try{return new Y(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Gn(o){try{return new Y(o)}catch{return o}}var zt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),_e=new Y("SysvarRent111111111111111111111111111111111"),gi=new Y("SysvarC1ock11111111111111111111111111111111"),At=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Pi=new Y("Sysvar1nstructions1111111111111111111111111"),zn=qn.programId,Vl=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),_l=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),El=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Dl=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Wl=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ql=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ul=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Gl=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),zl=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Yl=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xl=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),pe=new Y("So11111111111111111111111111111111111111112"),Se=Y.default;import jg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as by,TOKEN_2022_PROGRAM_ID as gy,TOKEN_PROGRAM_ID as Py}from"@solana/spl-token";import{PublicKey as wy}from"@solana/web3.js";import Ty from"bn.js";import Iy from"decimal.js";import{TOKEN_PROGRAM_ID as Nm}from"@solana/spl-token";import{PublicKey as Vm}from"@solana/web3.js";import{PublicKey as Yt}from"@solana/web3.js";var Xt=class{constructor({mint:n,decimals:t,symbol:i,name:u,skipMint:m=!1,isToken2022:p=!1}){if(n===Se.toBase58()||n instanceof Yt&&Se.equals(n)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new Yt(ye.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||n.toString().substring(0,6),this.name=u||n.toString().substring(0,6),this.mint=m?Yt.default:Un({publicKey:n}),this.isToken2022=p}equals(n){return this===n?!0:this.mint.equals(n.mint)}},J=Xt;J.WSOL=new Xt(V(C({},ye),{mint:ye.address}));var Qt=class{constructor({decimals:n,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=n,this.symbol=t,this.name=i}equals(n){return this===n}},tt=Qt;tt.SOL=new Qt(pt);import Ai from"toformat";var wi=Ai,nt=wi;import kt from"big.js";import Ti from"bn.js";import hi from"decimal.js-light";var wt=v("module/fraction"),Zt=nt(kt),ot=nt(hi),Ii={[0]:ot.ROUND_DOWN,[1]:ot.ROUND_HALF_UP,[2]:ot.ROUND_UP},Bi={[0]:kt.roundDown,[1]:kt.roundHalfUp,[2]:kt.roundUp},N=class{constructor(n,t=new Ti(1)){this.numerator=X(n),this.denominator=X(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(X(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(X(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(X(n));return new N(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(n){let t=n instanceof N?n:new N(X(n));return new N(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(n,t={groupSeparator:""},i=1){Number.isInteger(n)||wt.logWithError(`${n} is not an integer.`),n<=0&&wt.logWithError(`${n} is not positive.`),ot.set({precision:n+1,rounding:Ii[i]});let u=new ot(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(n);return u.toFormat(u.decimalPlaces(),t)}toFixed(n,t={groupSeparator:""},i=1){return Number.isInteger(n)||wt.logWithError(`${n} is not an integer.`),n<0&&wt.logWithError(`${n} is negative.`),Zt.DP=n,Zt.RM=Bi[i]||1,new Zt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,t)}isZero(){return this.numerator.isZero()}};import Si from"bn.js";var Yn=new N(new Si(100)),le=class extends N{toSignificant(n=5,t,i){return this.mul(Yn).toSignificant(n,t,i)}toFixed(n=2,t,i){return this.mul(Yn).toFixed(n,t,i)}};var xi=v("Raydium_price"),se=class extends N{constructor(t){let{baseToken:i,quoteToken:u,numerator:m,denominator:p}=t;super(m,p);this.baseToken=i,this.quoteToken=u,this.scalar=new N(Ht(i.decimals),Ht(u.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&&xi.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,u){return this.adjusted.toSignificant(t,i,u)}toFixed(t=this.quoteToken.decimals,i,u){return this.adjusted.toFixed(t,i,u)}};var Ki=l([z("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as _f,TOKEN_2022_PROGRAM_ID as Ef,TOKEN_PROGRAM_ID as Df}from"@solana/spl-token";import{Keypair as Uf,PublicKey as Gf,SystemProgram as Yf,TransactionInstruction as Xf}from"@solana/web3.js";import Zf from"bn.js";import W from"bn.js";var xe=new W(1).shln(64);var Ci=new W(1).shln(128),jt=new W(1).shln(64).subn(1),Ri=new W(1).shln(128).subn(1);var Ee=new W("4295048016"),De=new W("79226673521066979257578248091"),Li=new W("59543866431248"),Oi=new W("184467440737095516"),Ni=new W("15793534762490258745");var $t=60,Zm=new W("18446743708227953217"),Mi=[{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 it=3,Xn=100;var Qn=10,Zn=100,Tt=14;var Q=new W(0),We=new W(1),Hm=new W(-1);var jm=new W("18446744073700000000");var Fi=l([M(8),c("bump"),$("index"),r("owner"),z("protocolFeeRate"),z("tradeFeeRate"),$("tickSpacing"),z("fundFeeRate"),d(z(),1),r("fundOwner"),d(e(),3)]),vi=l([z("blockTimestamp"),ve("tickCumulative"),d(e(),4)]),Hn=l([M(8),ue("initialized"),e("recentEpoch"),$("observationIndex"),r("poolId"),d(vi,Xn,"observations"),d(e(),4)]),Vi=l([$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),_i=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),Jt=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),$("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(_i,it,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Vi.replicate("dynamicFeeInfo"),d(e(),46)]),Ei=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Di=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Ei,it,"rewardInfos"),e("recentEpoch"),d(e(),7)]),td=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),it,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Wi=l([ce("tick"),On("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),it,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(z(),3)]),jn=l([M(8),r("poolId"),ce("startTickIndex"),d(Wi,$t,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),qi=l([M(8),c("bump"),d(r(),Qn,"operationOwners"),d(r(),Zn,"whitelistMints")]),Ui=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)]),$n=l([M(8),r("poolId"),M(8*8*Tt,"positiveTickArrayBitmap"),M(8*8*Tt,"negativeTickArrayBitmap")]),nd=l([M(8),$("index"),$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),Gi=l([M(8),r("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),od=l([e(),c("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),d(e(),8)]),zi=l([M(8),c("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),d(e(),8)]);import ad from"bn.js";var gd=Buffer.from("amm_config","utf8"),Yi=Buffer.from("pool","utf8"),Xi=Buffer.from("pool_vault","utf8"),Pd=Buffer.from("pool_reward_vault","utf8"),Ad=Buffer.from("position","utf8"),wd=Buffer.from("tick_array","utf8"),kd=Buffer.from("operation","utf8"),Td=Buffer.from("pool_tick_array_bitmap_extension","utf8"),hd=Buffer.from("observation","utf8"),Id=Buffer.from("support_mint","utf8"),Bd=Buffer.from("dynamic_fee_config","utf8");var Sd=Buffer.from("locked_position","utf8");import{sha256 as cr}from"js-sha256";import Qi from"bn.js";import Rd from"decimal.js";var Od=new Qi(1).shln(256).subn(1);import Hd from"bn.js";import Ed from"bn.js";import Wd from"decimal.js";import ip from"bn.js";import ap from"decimal.js";import{PublicKey as qp}from"@solana/web3.js";import Gp from"bn.js";import{TOKEN_2022_PROGRAM_ID as $p}from"@solana/spl-token";import nf from"decimal.js";import Lp from"bn.js";import Pp from"bn.js";import df from"bn.js";function te(o){let n=`global:${o}`;return Buffer.from(cr.digest(n)).slice(0,8)}Hn.span;var oy=v("Raydiu