UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 77.8 kB
var go=Object.defineProperty,Po=Object.defineProperties;var Ao=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(r,e,n)=>e in r?go(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n,O=(r,e)=>{for(var n in e||(e={}))sn.call(e,n)&&an(r,n,e[n]);if(st)for(var n of st(e))un.call(e,n)&&an(r,n,e[n]);return r},D=(r,e)=>Po(r,Ao(e));var pe=(r,e)=>{var n={};for(var o in r)sn.call(r,o)&&e.indexOf(o)<0&&(n[o]=r[o]);if(r!=null&&st)for(var o of st(r))e.indexOf(o)<0&&un.call(r,o)&&(n[o]=r[o]);return n};import ga from"bn.js";import _ from"bn.js";var $=new _(1).shln(64);var wo=new _(1).shln(128),xt=new _(1).shln(64).subn(1),ko=new _(1).shln(128).subn(1),Ne=-443636,Me=443636,Be=new _("4295048016"),Se=new _("79226673521066979257578248091"),cn=new _("59543866431248"),ln=new _("184467440737095516"),mn=new _("15793534762490258745"),dn=16;var Kt=60,wa=new _("18446743708227953217"),pn=[{bit:0,factor:new _("fffcb933bd6fb800",16)},{bit:1,factor:new _("fff97272373d4000",16)},{bit:2,factor:new _("fff2e50f5f657000",16)},{bit:3,factor:new _("ffe5caca7e10f000",16)},{bit:4,factor:new _("ffcb9843d60f7000",16)},{bit:5,factor:new _("ff973b41fa98e800",16)},{bit:6,factor:new _("ff2ea16466c9b000",16)},{bit:7,factor:new _("fe5dee046a9a3800",16)},{bit:8,factor:new _("fcbe86c7900bb000",16)},{bit:9,factor:new _("f987a7253ac65800",16)},{bit:10,factor:new _("f3392b0822bb6000",16)},{bit:11,factor:new _("e7159475a2caf000",16)},{bit:12,factor:new _("d097f3bdfd2f2000",16)},{bit:13,factor:new _("a9f746462d9f8000",16)},{bit:14,factor:new _("70d869a156f31c00",16)},{bit:15,factor:new _("31be135f97ed3200",16)},{bit:16,factor:new _("9aa508b5b85a500",16)},{bit:17,factor:new _("5d6af8dedc582c",16)},{bit:18,factor:new _("2216e584f5fa",16)}];var Xe=3,fn=100;var yn=10,bn=100,ut=14;var q=new _(0),we=new _(1),ka=new _(-1);var Ta=new _("18446744073700000000");import{PublicKey as Io}from"@solana/web3.js";import{get as gn,set as To}from"lodash";var Ct=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Pn={},ho={};function E(r){let e=gn(Pn,r);if(!e){let n=gn(ho,r);e=new Ct({name:r,logLevel:n}),To(Pn,r,e)}return e}import{MINT_SIZE as Na,TOKEN_PROGRAM_ID as Ma,getTransferFeeConfig as Fa,unpackMint as va}from"@solana/spl-token";var Rt=E("Raydium_accountInfo_util");async function ke(r,e,n){let{batchRequest:o,commitment:a="confirmed",chunkCount:l=100}=O({batchRequest:!1},n),p=Lt(e,l),c=new Array(p.length).fill([]);if(o){let b=p.map(T=>{let K=r._buildArgs([T.map(w=>w.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:K}}),P=Lt(b,10);c=(await(await Promise.all(P.map(async T=>await r._rpcBatchRequest(T)))).flat()).map(T=>(T.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${T.error.message}`),T.result.value.map(K=>{if(K){let{data:w,executable:R,lamports:A,owner:k,rentEpoch:B}=K;return w.length!==2&&w[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:R,lamports:A,owner:new Io(k),rentEpoch:B}}return null})))}else try{c=await Promise.all(p.map(b=>r.getMultipleAccountsInfo(b,a)))}catch(b){b instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return c.flat()}import Le from"bn.js";import bC from"decimal.js";import Oo from"big.js";import Ja from"bn.js";import Bo from"toformat";var So=Bo,Qe=So;import lt from"big.js";import Ko from"bn.js";import Co from"decimal.js-light";import Ze from"bn.js";var An=9007199254740991;function re(r){let e=E("Raydium_parseBigNumberish");if(r instanceof Ze)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new Ze(r);e.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&e.logWithError(`BigNumberish number underflow: ${r}`),(r>=An||r<=-An)&&e.logWithError(`BigNumberish number overflow: ${r}`),new Ze(String(r))):typeof r=="bigint"?new Ze(r.toString()):(e.error(`invalid BigNumberish value: ${r}`),new Ze(0))}var ct=E("module/fraction"),Ot=Qe(lt),He=Qe(Co),Ro={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},Lo={[0]:lt.roundDown,[1]:lt.roundHalfUp,[2]:lt.roundUp},G=class{constructor(e,n=new Ko(1)){this.numerator=re(e),this.denominator=re(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new G(this.denominator,this.numerator)}add(e){let n=e instanceof G?e:new G(re(e));return this.denominator.eq(n.denominator)?new G(this.numerator.add(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof G?e:new G(re(e));return this.denominator.eq(n.denominator)?new G(this.numerator.sub(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof G?e:new G(re(e));return new G(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof G?e:new G(re(e));return new G(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},o=1){Number.isInteger(e)||ct.logWithError(`${e} is not an integer.`),e<=0&&ct.logWithError(`${e} is not positive.`),He.set({precision:e+1,rounding:Ro[o]});let a=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},o=1){return Number.isInteger(e)||ct.logWithError(`${e} is not an integer.`),e<0&&ct.logWithError(`${e} is negative.`),Ot.DP=e,Ot.RM=Lo[o]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var us=E("Raydium_amount"),cs=Qe(Oo);import{PublicKey as Mo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wn}from"@solana/spl-token";var mt={chainId:101,address:Mo.default.toBase58(),programId:wn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:wn.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{PublicKey as Mt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as kn,SYSVAR_RENT_PUBKEY as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";function Fe({pubkey:r,isSigner:e=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:e}}var Vo=[Fe({pubkey:vo,isWritable:!1}),Fe({pubkey:kn.programId,isWritable:!1}),Fe({pubkey:Fo,isWritable:!1})];function Tn({publicKey:r,transformSol:e}){let n=hn(r.toString());if(n instanceof X)return e&&n.equals(xe)?Te:n;if(e&&n.toString()===xe.toBase58())return Te;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function hn(r){try{return new X(r)}catch{return r}}var Nt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),je=new X("SysvarRent111111111111111111111111111111111"),gs=new X("SysvarC1ock11111111111111111111111111111111"),dt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),_o=new X("Sysvar1nstructions1111111111111111111111111"),Eo=kn.programId,Ps=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),As=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ws=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ks=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ts=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),hs=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Is=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Bs=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ss=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),xs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ks=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Te=new X("So11111111111111111111111111111111111111112"),xe=X.default;var Ft=class{constructor({mint:e,decimals:n,symbol:o,name:a,skipMint:l=!1,isToken2022:p=!1}){if(e===xe.toBase58()||e instanceof Mt&&xe.equals(e)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new Mt(fe.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=o||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=l?Mt.default:Tn({publicKey:e}),this.isToken2022=p}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ne=Ft;ne.WSOL=new Ft(D(O({},fe),{mint:fe.address}));var vt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=o}equals(e){return this===e}},pt=vt;pt.SOL=new vt(mt);import Do from"bn.js";var Ds=new G(new Do(100));var Xs=E("Raydium_price");import{merge as PK}from"lodash";import tu from"axios";var In={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Wo=D(O({},In),{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 Iu=E("Raydium_Api");import{PublicKey as Ul,SystemProgram as Gl}from"@solana/web3.js";import{AccountLayout as Zl,createAssociatedTokenAccountIdempotentInstruction as Hl,TOKEN_PROGRAM_ID as jl,TOKEN_2022_PROGRAM_ID as $l}from"@solana/spl-token";import{PublicKey as De,sendAndConfirmTransaction as qt,SystemProgram as Yo,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import Qo from"axios";import{PublicKey as Vt,AddressLookupTableAccount as _e}from"@solana/web3.js";async function _t({connection:r,address:e,cluster:n="mainnet"}){let o=await ke(r,[...new Set(e.map(l=>l.toString()))].map(l=>new Vt(l))),a={};for(let l=0;l<e.length;l++){let p=o[l],c=e[l];if(!p)continue;let b=new _e({key:c,state:_e.deserialize(p.data)});a[c.toString()]=b,n==="devnet"?Ve[c.toString()]=b:ve[c.toString()]=b}return a}var ve={},Et=async r=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(ve[e])return ve;let n=new Vt(e),o=await r.getAccountInfo(n);return o&&(ve[e]=new _e({key:n,state:_e.deserialize(o.data)})),ve},Ve={},Dt=async r=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ve[e])return Ve;let n=new Vt(e),o=await r.getAccountInfo(n);return o&&(Ve[e]=new _e({key:n,state:_e.deserialize(o.data)})),Ve};var J={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Bn,Keypair as xn,PublicKey as qo,Transaction as Kn,TransactionMessage as Uo,VersionedTransaction as Cn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";var Sn=E("Raydium_txUtil"),Rn=1644;function ft(r){let e=[],n=[];return r.microLamports&&(e.push(Bn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(J.SetComputeUnitPrice)),r.units&&(e.push(Bn.setComputeUnitLimit({units:r.units})),n.push(J.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Ee(r,e){var o,a;let n=e!=null?e:"confirmed";return(a=await((o=r.getLatestBlockhash)==null?void 0:o.call(r,{commitment:n})))==null?void 0:a.blockhash}async function yt(r,e){return r.getSignatureStatuses([e]),new Promise((n,o)=>{let a=setTimeout(o,6e4);r.onSignature(e,l=>{if(clearTimeout(a),!l.err){n("");return}o(Object.assign(l.err,{txId:e}))},"confirmed")})}function Wt(r,e){r.length<1&&Sn.logWithError(`no instructions provided: ${r.toString()}`),e.length<1&&Sn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Rn}catch{return!1}}function ye(r,e){let[n,o]=qo.findProgramAddressSync(r,e);return{publicKey:n,nonce:o}}function $e({instructions:r,payer:e,signers:n}){return Wt(r,[e,...n])}function Je({instructions:r,payer:e,lookupTableAddressAccount:n,recentBlockhash:o=xn.generate().publicKey.toString()}){let l=new Uo({payerKey:e,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Cn(l).serialize()).toString("base64").length<Rn}catch{return!1}}var zo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Xo=r=>{let e=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Cn&&(e=zo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ke(r){let e=[];return r.forEach(n=>{n instanceof Kn&&(n.recentBlockhash||(n.recentBlockhash=Go.toBase58()),n.feePayer||(n.feePayer=xn.generate().publicKey)),e.push(Xo(n))}),console.log("simulate tx string:",e),e}var bt=2e3,gt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.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 o;let e=(await Qo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(o=e==null?void 0:e[15])!=null?o:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:o}=ft(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(Yo.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new De(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(J.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let o=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:o=[],instructionTypes:a=[],endInstructionTypes:l=[],lookupTableAddress:p=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...a),this.endInstructionTypes.push(...l),this.lookupTableAddress.push(...p.filter(c=>c!==De.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:o}){return e===0?await this.buildV0(D(O({},n||{}),{lookupTableAddress:o})):this.build(n)}build(e){var o;let n=new et;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var y;let{recentBlockHash:l,skipPreflight:p=!0,sendAndConfirm:c,notSendToRpc:b}=a||{},P=l!=null?l:await Ee(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),Ke([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:c?await qt(this.connection,n,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let T=await this.signAllTransactions([n]);if(this.signers.length)for(let K of T)try{K.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(T[0].serialize(),{skipPreflight:p}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var P;let{extraPreBuildData:n=[],extInfo:o}=e,{transaction:a}=this.build(o),l=n.filter(y=>y.transaction.instructions.length>0),p=[a,...l.map(y=>y.transaction)],c=[this.signers,...l.map(y=>y.signers)],b=[...this.instructionTypes,...l.map(y=>y.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&c.forEach(y=>{y.some(T=>T.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:c,instructionTypes:b,execute:async y=>{var B;let{sequentially:T,onTxUpdate:K,skipTxCount:w=0,recentBlockHash:R,skipPreflight:A=!0}=y||{},k=R!=null?R:await Ee(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(T){let x=[],F=0;for(let v of p){if(++F,F<=w)continue;let g=await qt(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});x.push(g)}return{txIds:x,signedTxs:p}}return{txIds:await await Promise.all(p.map(async x=>(x.recentBlockhash=k,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:A})))),signedTxs:p}}if(this.signAllTransactions){let x=p.map((v,g)=>(v.recentBlockhash=k,c[g].length&&v.sign(...c[g]),v));Ke(x);let F=await this.signAllTransactions(x);if(T){let v=0,g=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});g.push({txId:I,status:"sent",signedTx:F[v]}),K==null||K([...g]),v++;let C=!1,L=null,V=null,se=U=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=g.findIndex(te=>te.txId===I);if(W>-1){if(g[W].status==="error"||g[W].status==="success")return;g[W].status=U.err?"error":"success"}K==null||K([...g]),U.err||h()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),se({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",I))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,I)}},bt)),V=this.connection.onSignature(I,U=>{if(C){this.connection.removeSignatureListener(V);return}C=!0,se(U)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:g.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let g=0;g<F.length;g+=1){let h=await this.connection.sendRawTransaction(F[g].serialize(),{skipPreflight:A});v.push(h)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:o}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})}async buildV0(e){var A;let R=e||{},{lookupTableCache:n={},lookupTableAddress:o=[],forerunCreate:a,recentBlockhash:l}=R,p=pe(R,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),c=O(O({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),n),b=Array.from(new Set([...o,...this.lookupTableAddress])),P=[];for(let k of b)c[k]===void 0&&P.push(new De(k));let y=await _t({connection:this.connection,address:P});for(let[k,B]of Object.entries(y))c[k]=B;let T=a?De.default.toBase58():l!=null?l:await Ee(this.connection,this.blockhashCommitment),K=new tt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(c));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(k=>k.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new nt(K);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async k=>{var v;let{skipPreflight:B=!0,sendAndConfirm:x,notSendToRpc:F}=k||{};if(Ke([w]),(v=this.owner)!=null&&v.isKeyPair){let g=await this.connection.sendTransaction(w,{skipPreflight:B});return x&&await yt(this.connection,g),{txId:g,signedTx:w}}if(this.signAllTransactions){let g=await this.signAllTransactions([w]);if(this.signers.length)for(let h of g)try{h.sign(this.signers)}catch{}return{txId:F?"":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(e){var P;let{extraPreBuildData:n=[],buildProps:o}=e,{transaction:a}=await this.buildV0(o),l=n.filter(y=>y.builder.instructions.length>0),p=[a,...l.map(y=>y.transaction)],c=[this.signers,...l.map(y=>y.signers)],b=[...this.instructionTypes,...l.map(y=>y.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&c.forEach(y=>{y.some(T=>T.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(y,T)=>{y.sign(c[T])}),{builder:this,transactions:p,signers:c,instructionTypes:b,buildProps:o,execute:async y=>{var A;let{sequentially:T,onTxUpdate:K,recentBlockHash:w,skipPreflight:R=!0}=y||{};if(w&&p.forEach(k=>k.message.recentBlockhash=w),Ke(p),(A=this.owner)!=null&&A.isKeyPair){if(T){let k=[];for(let B of p){let x=await this.connection.sendTransaction(B,{skipPreflight:R});await yt(this.connection,x),k.push(x)}return{txIds:k,signedTxs:p}}return{txIds:await Promise.all(p.map(async k=>await this.connection.sendTransaction(k,{skipPreflight:R}))),signedTxs:p}}if(this.signAllTransactions){let k=await this.signAllTransactions(p);if(T){let B=0,x=[],F=async()=>{if(!k[B])return;let v=await this.connection.sendTransaction(k[B],{skipPreflight:R});x.push({txId:v,status:"sent",signedTx:k[B]}),K==null||K([...x]),B++;let g=!1,h=null,I=null,C=L=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let V=x.findIndex(se=>se.txId===v);if(V>-1){if(x[V].status==="error"||x[V].status==="success")return;x[V].status=L.err?"error":"success"}K==null||K([...x]),L.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var L;if(g){clearInterval(h);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(g=!0,clearInterval(h),C({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){g=!0,clearInterval(h),console.error("getTransaction timeout:",V,v)}},bt)),I=this.connection.onSignature(v,L=>{if(g){this.connection.removeSignatureListener(I);return}g=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:k}}else{let B=[];for(let x=0;x<k.length;x+=1){let F=await this.connection.sendTransaction(k[x],{skipPreflight:R});B.push(F)}return{txIds:B,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var K;let T=e||{},{splitIns:n=[],computeBudgetConfig:o}=T,a=pe(T,["splitIns","computeBudgetConfig"]),l=o?ft(o):{instructions:[],instructionTypes:[]},p=this.signers.reduce((w,R)=>D(O({},w),{[R.publicKey.toBase58()]:R}),{}),c=[],b=[],P=[],y=0;if(this.allInstructions.forEach(w=>{let R=[...P,w],A=o?[...l.instructions,...R]:R,B=[...new Set(R.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new De(x));if(w!==n[y]&&P.length<12&&($e({instructions:A,payer:this.feePayer,signers:B})||$e({instructions:R,payer:this.feePayer,signers:B})))P.push(w);else{if(P.length===0)throw Error("item ins too big");y+=w===n[y]?1:0,$e({instructions:o?[...l.instructions,...P]:[...P],payer:this.feePayer,signers:B})?c.push(new et().add(...l.instructions,...P)):c.push(new et().add(...P)),b.push(Array.from(new Set(P.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>p[x]).filter(x=>x!==void 0)),P=[w]}}),P.length>0){let R=[...new Set(P.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);$e({instructions:o?[...l.instructions,...P]:[...P],payer:this.feePayer,signers:R.map(A=>A.publicKey)})?c.push(new et().add(...l.instructions,...P)):c.push(new et().add(...P)),b.push(R)}return c.forEach(w=>w.feePayer=this.feePayer),(K=this.owner)!=null&&K.signer&&b.forEach(w=>{w.some(R=>R.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:c,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var v;let{sequentially:R,onTxUpdate:A,skipTxCount:k=0,recentBlockHash:B,skipPreflight:x=!0}=w||{},F=B!=null?B:await Ee(this.connection,this.blockhashCommitment);if(c.forEach(async(g,h)=>{g.recentBlockhash=F,b[h].length&&g.sign(...b[h])}),Ke(c),(v=this.owner)!=null&&v.isKeyPair){if(R){let g=0,h=[];for(let I of c){if(++g,g<=k){h.push("tx skipped");continue}let C=await qt(this.connection,I,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});h.push(C)}return{txIds:h,signedTxs:c}}return{txIds:await Promise.all(c.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:x}))),signedTxs:c}}if(this.signAllTransactions){let g=await this.signAllTransactions(c.slice(k,c.length)),h=[...c.slice(0,k),...g];if(R){let I=0,C=[],L=async()=>{if(!h[I])return;I<k&&(C.push({txId:"",status:"success",signedTx:h[I]}),A==null||A([...C]),I++,L());let V=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:x});C.push({txId:V,status:"sent",signedTx:h[I]}),A==null||A([...C]),I++;let se=!1,U=null,W=null,te=z=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ie=C.findIndex(Pe=>Pe.txId===V);if(ie>-1){if(C[ie].status==="error"||C[ie].status==="success")return;C[ie].status=z.err?"error":"success"}A==null||A([...C]),z.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var z;if(se){clearInterval(U);return}try{let ie=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ie&&(se=!0,clearInterval(U),te({err:((z=ie.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",V))}catch(ie){se=!0,clearInterval(U),console.error("getTransaction timeout:",ie,V)}},bt)),W=this.connection.onSignature(V,z=>{if(se){this.connection.removeSignatureListener(W);return}se=!0,te(z)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:C.map(V=>V.txId),signedTxs:h}}else{let I=[];for(let C=0;C<h.length;C+=1){let L=await this.connection.sendRawTransaction(h[C].serialize(),{skipPreflight:x});I.push(L)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:a={},lookupTableAddress:l=[],insCountLimit:p=12}=F,c=pe(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=O(O({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),a),P=Array.from(new Set([...this.lookupTableAddress,...l])),y=[];for(let g of P)b[g]===void 0&&y.push(new De(g));let T=await _t({connection:this.connection,address:y});for(let[g,h]of Object.entries(T))b[g]=h;let K=n?ft(n):{instructions:[],instructionTypes:[]},w=await Ee(this.connection,this.blockhashCommitment),R=this.signers.reduce((g,h)=>D(O({},g),{[h.publicKey.toBase58()]:h}),{}),A=[],k=[],B=[],x=0;if(this.allInstructions.forEach(g=>{let h=[...B,g],I=n?[...K.instructions,...h]:h;if(g!==o[x]&&B.length<p&&(Je({instructions:I,payer:this.feePayer,lookupTableAddressAccount:b})||Je({instructions:h,payer:this.feePayer,lookupTableAddressAccount:b})))B.push(g);else{if(B.length===0)throw Error("item ins too big");x+=g===o[x]?1:0;let C={};for(let L of[...new Set(P)])b[L]!==void 0&&(C[L]=b[L]);if(n&&Je({instructions:[...K.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let L=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...K.instructions,...B]}).compileToV0Message(Object.values(b));A.push(new nt(L))}else{let L=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...B]}).compileToV0Message(Object.values(b));A.push(new nt(L))}k.push(Array.from(new Set(B.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>R[L]).filter(L=>L!==void 0)),B=[g]}}),B.length>0){let h=[...new Set(B.map(I=>I.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(I=>R[I]).filter(I=>I!==void 0);if(n&&Je({instructions:[...K.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let I=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...K.instructions,...B]}).compileToV0Message(Object.values(b));A.push(new nt(I))}else{let I=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...B]}).compileToV0Message(Object.values(b));A.push(new nt(I))}k.push(h)}return(v=this.owner)!=null&&v.signer&&k.forEach(g=>{g.some(h=>h.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,h)=>{g.sign(k[h])}),{builder:this,transactions:A,buildProps:e,signers:k,instructionTypes:this.instructionTypes,execute:async g=>{var se;let{sequentially:h,onTxUpdate:I,skipTxCount:C=0,recentBlockHash:L,skipPreflight:V=!0}=g||{};if(A.map(async(U,W)=>{k[W].length&&U.sign(k[W]),L&&(U.message.recentBlockhash=L)}),Ke(A),(se=this.owner)!=null&&se.isKeyPair){if(h){let U=0,W=[];for(let te of A){if(++U,U<=C){console.log("skip tx: ",U),W.push("tx skipped");continue}let z=await this.connection.sendTransaction(te,{skipPreflight:V});await yt(this.connection,z),W.push(z)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(C,A.length)),W=[...A.slice(0,C),...U];if(h){let te=0,z=[],ie=async()=>{if(!W[te])return;if(te<C){z.push({txId:"",status:"success",signedTx:W[te]}),I==null||I([...z]),te++,ie();return}let Pe=await this.connection.sendTransaction(W[te],{skipPreflight:V});z.push({txId:Pe,status:"sent",signedTx:W[te]}),I==null||I([...z]),te++;let ze=!1,Oe=null,at=null,rn=Ie=>{Oe!==null&&clearInterval(Oe),at!==null&&this.connection.removeSignatureListener(at);let Ae=z.findIndex(bo=>bo.txId===Pe);if(Ae>-1){if(z[Ae].status==="error"||z[Ae].status==="success")return;z[Ae].status=Ie.err?"error":"success"}I==null||I([...z]),Ie.err||ie()};this.loopMultiTxStatus&&(Oe=setInterval(async()=>{var Ie;if(ze){clearInterval(Oe);return}try{let Ae=await this.connection.getTransaction(Pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ae&&(ze=!0,clearInterval(Oe),rn({err:((Ie=Ae.meta)==null?void 0:Ie.err)||null}),console.log("tx status from getTransaction:",Pe))}catch(Ae){ze=!0,clearInterval(Oe),console.error("getTransaction timeout:",Ae,Pe)}},bt)),at=this.connection.onSignature(Pe,Ie=>{if(ze){this.connection.removeSignatureListener(at);return}ze=!0,rn(Ie)},"confirmed"),this.connection.getSignatureStatus(Pe)};return ie(),{txIds:[],signedTxs:W}}else{let te=[];for(let z=0;z<W.length;z+=1){let ie=await this.connection.sendTransaction(W[z],{skipPreflight:V});te.push(ie)}return{txIds:te,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}};var Ut=(...r)=>r.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ae=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=E(n)}createTxBuilder(e){return this.scope.checkOwner(),new gt({connection:this.scope.connection,feePayer:e||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(...e){this.logger.debug(Ut(e))}logInfo(...e){this.logger.info(Ut(e))}logAndCreateError(...e){let n=Ut(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as wl,SystemProgram as Tl}from"@solana/web3.js";import Bl from"bn.js";import{createCloseAccountInstruction as Cl,createInitializeAccountInstruction as Rl,createTransferInstruction as Ll,TOKEN_PROGRAM_ID as Ol}from"@solana/spl-token";import{Keypair as sl,PublicKey as ul}from"@solana/web3.js";import ml from"bn.js";import{TOKEN_PROGRAM_ID as fl}from"@solana/spl-token";import{PublicKey as ai}from"@solana/web3.js";import Fn,{isBN as vn}from"bn.js";import{bits as Zo,BitStructure as dc,blob as Ho,Blob as pc,cstr as fc,f32 as yc,f32be as bc,f64 as gc,f64be as Pc,greedy as Ac,Layout as jo,ns64 as wc,ns64be as kc,nu64 as Tc,nu64be as hc,offset as $o,s16 as Ic,s16be as Bc,s24 as Sc,s24be as xc,s32 as Jo,s32be as Kc,s40 as Cc,s40be as Rc,s48 as Lc,s48be as Oc,s8 as Nc,seq as ei,struct as Mc,Structure as ti,u16 as ni,u16be as Fc,u24 as vc,u24be as Vc,u32 as oi,u32be as _c,u40 as Ec,u40be as Dc,u48 as Wc,u48be as qc,u8 as ii,UInt as ri,union as Uc,Union as Gc,unionLayoutDiscriminator as zc,utf8 as Xc}from"@solana/buffer-layout";var Pt=jo,Ln=ti;var Gt=ri;var On=ii,Z=ni;var At=oi;var me=Jo;var Nn=ei;var M=Ho;var zt=Zo,Mn=$o;var Re=class extends Pt{constructor(n,o,a){super(n,a);this.blob=M(n),this.signed=o}decode(n,o=0){let a=new Fn(this.blob.decode(n,o),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,o,a=0){return typeof n=="number"&&(n=new Fn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,a)}},wt=class extends Pt{constructor(n){super(8,n);this._lower=zt(At(),!1),this._upper=zt(At(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,o=0){let a=this._lower.decode(n,o),l=this._upper.decode(n,o+this._lower.span);return O(O({},a),l)}encode(n,o,a=0){return this._lower.encode(n,o,a)+this._upper.encode(n,o,a+this._lower.span)}};function m(r){return new Gt(1,r)}function Y(r){return new Gt(4,r)}function t(r){return new Re(8,!1,r)}function N(r){return new Re(16,!1,r)}function Vn(r){return new Re(1,!0,r)}function We(r){return new Re(8,!0,r)}function _n(r){return new Re(16,!0,r)}var ot=class extends Pt{constructor(n,o,a,l){super(n.span,l);this.layout=n,this.decoder=o,this.encoder=a}decode(n,o){return this.decoder(this.layout.decode(n,o))}encode(n,o,a){return this.layout.encode(this.encoder(n),o,a)}getSpan(n,o){return this.layout.getSpan(n,o)}};function i(r){return new ot(M(32),e=>new ai(e),e=>e.toBuffer(),r)}function ue(r){return new ot(On(),si,ui,r)}function si(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ui(r){return r?1:0}function En(r,e){let n=At("length"),o=d([n,f(r,Mn(n,-n.span),"values")]);return new ot(o,({values:a})=>a,a=>({values:a}),e)}var Xt=class extends Ln{decode(e,n){return super.decode(e,n)}};function d(r,e,n){return new Xt(r,e,n)}function f(r,e,n){let o,a=typeof e=="number"?e:vn(e)?e.toNumber():new Proxy(e,{get(l,p){if(!o){let c=Reflect.get(l,"count");o=vn(c)?c.toNumber():c,Reflect.set(l,"count",o)}return Reflect.get(l,p)},set(l,p,c){return p==="count"&&(o=c),Reflect.set(l,p,c)}});return Nn(r,a,n)}var kt=d([i("mint"),i("owner"),t("amount"),Y("delegateOption"),i("delegate"),m("state"),Y("isNativeOption"),t("isNative"),t("delegatedAmount"),Y("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as wg,SystemProgram as kg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as hg}from"@solana/spl-token";import{PublicKey as rm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sm}from"@solana/spl-token";import{PublicKey as S}from"@solana/web3.js";var Wn=new S("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),qn=new S("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Un=new S("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Yt=new S("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),mm=new S("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),li=new S("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Gn=new S("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),zn=new S("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),dm=new S("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),mi=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xn=new S("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),di=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pi=new S("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Yn=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),pm=new S("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fi=new S("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Qt=new S("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),yi=new S("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),fm=new S("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new S("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new S("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ym=new S("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),bm=new S("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),gm=new S("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Pm=new S("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Am=new S("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var he={OPEN_BOOK_PROGRAM:new S("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new S("Ray1111111111111111111111111111111111111111"),AMM_V4:new S("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new S("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new S("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new S("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new S("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new S("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new S("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new S("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new S("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new S("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:S.default,Router:new S("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new S("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new S("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new S("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new S("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new S("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new S("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new S("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new S("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new S("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new S("Ray1111111111111111111111111111111111111111")};import Ng from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Hf,TOKEN_2022_PROGRAM_ID as jf,TOKEN_PROGRAM_ID as $f}from"@solana/spl-token";import{PublicKey as ey}from"@solana/web3.js";import ny 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";var Ai=d([Y("mintAuthorityOption"),i("mintAuthority"),t("supply"),m("decimals"),m("isInitialized"),Y("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as wf,TOKEN_2022_PROGRAM_ID as kf,TOKEN_PROGRAM_ID as Tf}from"@solana/spl-token";import{Keypair as Bf,PublicKey as Sf,SystemProgram as Kf,TransactionInstruction as Cf}from"@solana/web3.js";import Lf from"bn.js";var wi=d([M(8),m("bump"),Z("index"),i("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Z("tickSpacing"),Y("fundFeeRate"),f(Y(),1),i("fundOwner"),f(t(),3)]),ki=d([Y("blockTimestamp"),We("tickCumulative"),f(t(),4)]),Qn=d([M(8),ue("initialized"),t("recentEpoch"),Z("observationIndex"),i("poolId"),f(ki,fn,"observations"),f(t(),4)]),Ti=d([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),me("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),t("lastUpdateTimestamp"),f(m(),46)]),hi=d([m("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),N("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),i("mint"),i("vault"),i("creator"),N("growthGlobalX64")]),Zt=d([M(8),m("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),Z("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),me("tickCurrent"),Y(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(N(),4),m("status"),m("feeOn"),M(6),f(hi,Xe,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Ti.replicate("dynamicFeeInfo"),f(t(),46)]),Ii=d([N("growthInsideLastX64"),t("rewardAmountOwed")]),Bi=d([M(8),m("bump"),i("nftMint"),i("poolId"),me("tickLower"),me("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(Ii,Xe,"rewardInfos"),t("recentEpoch"),f(t(),7)]),Hm=d([M(8),m("bump"),i("poolId"),me("tickLower"),me("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(N(),Xe,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),Si=d([me("tick"),_n("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),f(N(),Xe,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),N("unfilledRatioX64"),f(Y(),3)]),Zn=d([M(8),i("poolId"),me("startTickIndex"),f(Si,Kt,"ticks"),m("initializedTickCount"),t("recentEpoch"),f(m(),107)]),xi=d([M(8),m("bump"),f(i(),yn,"operationOwners"),f(i(),bn,"whitelistMints")]),Ki=d([M(8),i("poolId"),i("owner"),me("tick"),ue("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),N("unfilledRatioX64"),f(t(),4)]),Hn=d([M(8),i("poolId"),M(8*8*ut,"positiveTickArrayBitmap"),M(8*8*ut,"negativeTickArrayBitmap")]),jm=d([M(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(t(),8)]),Ci=d([M(8),i("wallet"),m("nonceIndex"),t("orderNonce"),f(t(),4)]),$m=d([t(),m("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),f(t(),8)]),Ri=d([M(8),m("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),t("recentEpoch"),f(t(),8)]);import td from"bn.js";var dd=Buffer.from("amm_config","utf8"),Oi=Buffer.from("pool","utf8"),Ni=Buffer.from("pool_vault","utf8"),pd=Buffer.from("pool_reward_vault","utf8"),fd=Buffer.from("position","utf8"),yd=Buffer.from("tick_array","utf8"),bd=Buffer.from("operation","utf8"),gd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Pd=Buffer.from("observation","utf8"),Ad=Buffer.from("support_mint","utf8"),wd=Buffer.from("dynamic_fee_config","utf8"),kd=Buffer.from("permission","utf8");var Td=Buffer.from("locked_position","utf8");import{sha256 as Qi}from"js-sha256";import Mi from"bn.js";import Sd from"decimal.js";function ce(r,e,n){if(n.isZero())throw new Error("Division by zero");return r.mul(e).div(n)}function le(r,e,n){if(n.isZero())throw new Error("Division by zero");let o=r.mul(e),a=o.div(n);return o.mod(n).isZero()?a:a.addn(1)}var Kd=new Mi(1).shln(256).subn(1);function jn(r){return r.isZero()?-1:r.bitLength()-1}import Ld from"bn.js";import Nd from"decimal.js";import{PublicKey as Ap}from"@solana/web3.js";import kp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Cp,TOKEN_PROGRAM_ID as Rp}from"@solana/spl-token";import Mp from"decimal.js";import up from"bn.js";import Zd from"bn.js";import zp from"bn.js";function ee(r){let e=`global:${r}`;return Buffer.from(Qi.digest(e)).slice(0,8)}Qn.span;var Ef=E("Raydium_Clmm"),Df={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),createPermissionedPool:ee("create_permissioned_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as en}from"@solana/web3.js";var Ji=d([m("instruction")]),er=d([m("instruction")]),tr=d([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t