UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 79.4 kB
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 Va from"decimal.js";import Fa 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 Ha,TOKEN_PROGRAM_ID as ja,getTransferFeeConfig as $a,unpackMint as Ja}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 Ye from"bn.js";var yn=9007199254740991;function Y(o){let n=v("Raydium_parseBigNumberish");if(o instanceof Ye)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ye(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 Ye(String(o))):typeof o=="bigint"?new Ye(o.toString()):(n.error(`invalid BigNumberish value: ${o}`),new Ye(0))}import{merge as mC}from"lodash";import ms 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 Ms=v("Raydium_Api");import{PublicKey as tl,SystemProgram as nl}from"@solana/web3.js";import{AccountLayout as sl,createAssociatedTokenAccountIdempotentInstruction as ul,TOKEN_PROGRAM_ID as cl,TOKEN_2022_PROGRAM_ID as ll}from"@solana/spl-token";import{PublicKey as Me,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 Oe}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 Oe({key:f,state:Oe.deserialize(p.data)});u[f.toString()]=y,t==="devnet"?Le[f.toString()]=y:Re[f.toString()]=y}return u}var Re={},Ft=async o=>{let n="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[n])return Re;let t=new Nt(n),i=await o.getAccountInfo(t);return i&&(Re[n]=new Oe({key:t,state:Oe.deserialize(i.data)})),Re},Le={},vt=async o=>{let n="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[n])return Le;let t=new Nt(n),i=await o.getAccountInfo(t);return i&&(Le[n]=new Oe({key:t,state:Oe.deserialize(i.data)})),Le};var j={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as gn,Keypair as An,PublicKey as 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 Ne(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 Me(n.address),lamports:BigInt(n.amount.toString())})),this.endInstructionTypes.push(j.TransferTip),!0):!1}async calComputeBudget({config:n,defaultIns:t}){try{let i=n||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:n=[],endInstructions:t=[],signers:i=[],instructionTypes: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!==Me.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 Ne(this.connection,this.blockhashCommitment);if(t.recentBlockhash=T,this.signers.length&&t.sign(...this.signers),he([t]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await _t(this.connection,t,this.signers.find(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 Ne(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 Me(h));let b=await Mt({connection:this.connection,address:T});for(let[h,B]of Object.entries(b))f[h]=B;let x=u?Me.default.toBase58():m!=null?m:await Ne(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 Me(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 Ne(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 Me(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 Ne(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,Ce=null,st=null,cn=Te=>{Ce!==null&&clearInterval(Ce),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&&(Ce=setInterval(async()=>{var Te;if(ze){clearInterval(Ce);return}try{let Pe=await this.connection.getTransaction(ge,{commitment:"confirmed",maxSupportedTransactionVersion:0});Pe&&(ze=!0,clearInterval(Ce),cn({err:((Te=Pe.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",ge))}catch(Pe){ze=!0,clearInterval(Ce),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 Oc,SystemProgram as Mc}from"@solana/web3.js";import Vc from"bn.js";import{createCloseAccountInstruction as Wc,createInitializeAccountInstruction as qc,createTransferInstruction as Uc,TOKEN_PROGRAM_ID as Gc}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 Ac,PublicKey as wc}from"@solana/web3.js";import hc from"bn.js";import{TOKEN_PROGRAM_ID as Sc}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 Bu,blob as Do,Blob as Su,cstr as xu,f32 as Ku,f32be as Cu,f64 as Ru,f64be as Lu,greedy as Ou,Layout as Wo,ns64 as Nu,ns64be as Mu,nu64 as qo,nu64be as Fu,offset as Uo,s16 as vu,s16be as Vu,s24 as _u,s24be as Eu,s32 as Go,s32be as Du,s40 as Wu,s40be as qu,s48 as Uu,s48be as Gu,s8 as zu,seq as zo,struct as Xu,Structure as Xo,u16 as Yo,u16be as Yu,u24 as Qu,u24be as Zu,u32 as Qo,u32be as Hu,u40 as ju,u40be as $u,u48 as Ju,u48be as ec,u8 as Zo,UInt as Ho,union as tc,Union as nc,unionLayoutDiscriminator as oc,utf8 as ic}from"@solana/buffer-layout";var ft=Wo,In=Xo;var Dt=Ho;var Bn=Zo,$=Yo;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 Fe(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 gl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Al}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"),hl=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ti=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),_n=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),En=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Il=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ni=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Dn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),oi=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ii=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Wn=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Bl=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"),Sl=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),mi=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),pi=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),xl=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Kl=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Cl=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Rl=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ll=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 X,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 X)return n&&t.equals(Se)?pe:t;if(n&&t.toString()===Se.toBase58())return pe;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 Gn(o){try{return new X(o)}catch{return o}}var zt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ve=new X("SysvarRent111111111111111111111111111111111"),gi=new X("SysvarC1ock11111111111111111111111111111111"),At=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Pi=new X("Sysvar1nstructions1111111111111111111111111"),zn=qn.programId,vl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Vl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),_l=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),El=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Dl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Wl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ql=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ul=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Gl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),zl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),pe=new X("So11111111111111111111111111111111111111112"),Se=X.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 Om}from"@solana/spl-token";import{PublicKey as vm}from"@solana/web3.js";import{PublicKey as Xt}from"@solana/web3.js";var Yt=class{constructor({mint:n,decimals:t,symbol:i,name:u,skipMint:m=!1,isToken2022:p=!1}){if(n===Se.toBase58()||n instanceof Xt&&Se.equals(n)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new Xt(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?Xt.default:Un({publicKey:n}),this.isToken2022=p}equals(n){return this===n?!0:this.mint.equals(n.mint)}},J=Yt;J.WSOL=new Yt(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=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)||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 Xn=new N(new Si(100)),le=class extends N{toSignificant(n=5,t,i){return this.mul(Xn).toSignificant(n,t,i)}toFixed(n=2,t,i){return this.mul(Xn).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 Xf,TransactionInstruction as Yf}from"@solana/web3.js";import Zf from"bn.js";import W from"bn.js";var _e=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,Qm=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,Yn=100;var Qn=10,Zn=100,Tt=14;var Q=new W(0),We=new W(1),Zm=new W(-1);var Hm=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"),Fe("tickCumulative"),d(e(),4)]),Hn=l([M(8),ue("initialized"),e("recentEpoch"),$("observationIndex"),r("poolId"),d(vi,Yn,"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)]),ed=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")]),td=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)]),nd=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 rd from"bn.js";var bd=Buffer.from("amm_config","utf8"),Xi=Buffer.from("pool","utf8"),Yi=Buffer.from("pool_vault","utf8"),gd=Buffer.from("pool_reward_vault","utf8"),Pd=Buffer.from("position","utf8"),Ad=Buffer.from("tick_array","utf8"),wd=Buffer.from("operation","utf8"),kd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Td=Buffer.from("observation","utf8"),hd=Buffer.from("support_mint","utf8"),Id=Buffer.from("dynamic_fee_config","utf8");var Bd=Buffer.from("locked_position","utf8");import{sha256 as ur}from"js-sha256";import Qi from"bn.js";import Cd from"decimal.js";var Ld=new Qi(1).shln(256).subn(1);import Zd from"bn.js";import _d from"bn.js";import Dd from"decimal.js";import ep from"bn.js";import np 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(ur.digest(n)).slice(0,8)}Hn.span;var oy=v("Raydiu