@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 77.9 kB
JavaScript
var Ao=Object.defineProperty,wo=Object.defineProperties;var ko=Object.getOwnPropertyDescriptors;var ut=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(r,e,n)=>e in r?Ao(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n,L=(r,e)=>{for(var n in e||(e={}))sn.call(e,n)&&an(r,n,e[n]);if(ut)for(var n of ut(e))un.call(e,n)&&an(r,n,e[n]);return r},_=(r,e)=>wo(r,ko(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&&ut)for(var o of ut(r))e.indexOf(o)<0&&un.call(r,o)&&(n[o]=r[o]);return n};import{PublicKey as Io}from"@solana/web3.js";import{get as cn,set as To}from"lodash";var Kt=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}},ln={},ho={};function E(r){let e=cn(ln,r);if(!e){let n=cn(ho,r);e=new Kt({name:r,logLevel:n}),To(ln,r,e)}return e}import{MINT_SIZE as va,TOKEN_PROGRAM_ID as Va,getTransferFeeConfig as _a,unpackMint as Ea}from"@solana/spl-token";var Ct=E("Raydium_accountInfo_util");async function ke(r,e,n){let{batchRequest:o,commitment:u="confirmed",chunkCount:l=100}=L({batchRequest:!1},n),p=Rt(e,l),c=new Array(p.length).fill([]);if(o){let b=p.map(h=>{let K=r._buildArgs([h.map(k=>k.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:K}}),w=Rt(b,10);c=(await(await Promise.all(w.map(async h=>await r._rpcBatchRequest(h)))).flat()).map(h=>(h.error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${h.error.message}`),h.result.value.map(K=>{if(K){let{data:k,executable:R,lamports:A,owner:T,rentEpoch:S}=K;return k.length!==2&&k[1]!=="base64"&&Ct.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(k[0],"base64"),executable:R,lamports:A,owner:new Io(T),rentEpoch:S}}return null})))}else try{c=await Promise.all(p.map(b=>r.getMultipleAccountsInfo(b,u)))}catch(b){b instanceof Error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return c.flat()}import Le from"bn.js";import JC from"decimal.js";import Oo from"big.js";import ns 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 mn=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>=mn||r<=-mn)&&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"),Lt=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 u=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return u.toFormat(u.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.`),Lt.DP=e,Lt.RM=Lo[o]||1,new Lt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var ms=E("Raydium_amount"),ds=Qe(Oo);import{PublicKey as Mo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as dn}from"@solana/spl-token";var mt={chainId:101,address:Mo.default.toBase58(),programId:dn.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:dn.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 Nt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as pn,SYSVAR_RENT_PUBKEY as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";function Ne({pubkey:r,isSigner:e=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:e}}var Vo=[Ne({pubkey:vo,isWritable:!1}),Ne({pubkey:pn.programId,isWritable:!1}),Ne({pubkey:Fo,isWritable:!1})];function fn({publicKey:r,transformSol:e}){let n=yn(r.toString());if(n instanceof X)return e&&n.equals(Ie)?fe:n;if(e&&n.toString()===Ie.toBase58())return fe;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 yn(r){try{return new X(r)}catch{return r}}var Ot=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Me=new X("SysvarRent111111111111111111111111111111111"),_o=new X("SysvarC1ock11111111111111111111111111111111"),dt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Eo=new X("Sysvar1nstructions1111111111111111111111111"),bn=pn.programId,ws=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ks=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ts=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),hs=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Is=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Bs=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ss=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),xs=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ks=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Cs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Rs=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new X("So11111111111111111111111111111111111111112"),Ie=X.default;var Mt=class{constructor({mint:e,decimals:n,symbol:o,name:u,skipMint:l=!1,isToken2022:p=!1}){if(e===Ie.toBase58()||e instanceof Nt&&Ie.equals(e)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new Nt(ye.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=o||e.toString().substring(0,6),this.name=u||e.toString().substring(0,6),this.mint=l?Nt.default:fn({publicKey:e}),this.isToken2022=p}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ne=Mt;ne.WSOL=new Mt(_(L({},ye),{mint:ye.address}));var Ft=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=Ft;pt.SOL=new Ft(mt);import Do from"bn.js";var qs=new G(new Do(100));var Qs=E("Raydium_price");import{merge as JK}from"lodash";import ou from"axios";var gn={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"},Wo=_(L({},gn),{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 Su=E("Raydium_Api");import{PublicKey as Gl,SystemProgram as zl}from"@solana/web3.js";import{AccountLayout as Hl,createAssociatedTokenAccountIdempotentInstruction as jl,TOKEN_PROGRAM_ID as $l,TOKEN_2022_PROGRAM_ID as Jl}from"@solana/spl-token";import{PublicKey as Ee,sendAndConfirmTransaction as Wt,SystemProgram as Yo,Transaction as Je,TransactionMessage as et,VersionedTransaction as tt}from"@solana/web3.js";import Qo from"axios";import{PublicKey as vt,AddressLookupTableAccount as Ve}from"@solana/web3.js";async function Vt({connection:r,address:e,cluster:n="mainnet"}){let o=await ke(r,[...new Set(e.map(l=>l.toString()))].map(l=>new vt(l))),u={};for(let l=0;l<e.length;l++){let p=o[l],c=e[l];if(!p)continue;let b=new Ve({key:c,state:Ve.deserialize(p.data)});u[c.toString()]=b,n==="devnet"?ve[c.toString()]=b:Fe[c.toString()]=b}return u}var Fe={},_t=async r=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Fe[e])return Fe;let n=new vt(e),o=await r.getAccountInfo(n);return o&&(Fe[e]=new Ve({key:n,state:Ve.deserialize(o.data)})),Fe},ve={},Et=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 Ve({key:n,state:Ve.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 Pn,Keypair as wn,PublicKey as qo,Transaction as kn,TransactionMessage as Uo,VersionedTransaction as Tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";var An=E("Raydium_txUtil"),hn=1644;function ft(r){let e=[],n=[];return r.microLamports&&(e.push(Pn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(j.SetComputeUnitPrice)),r.units&&(e.push(Pn.setComputeUnitLimit({units:r.units})),n.push(j.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function _e(r,e){var o,u;let n=e!=null?e:"confirmed";return(u=await((o=r.getLatestBlockhash)==null?void 0:o.call(r,{commitment:n})))==null?void 0:u.blockhash}async function yt(r,e){return r.getSignatureStatuses([e]),new Promise((n,o)=>{let u=setTimeout(o,6e4);r.onSignature(e,l=>{if(clearTimeout(u),!l.err){n("");return}o(Object.assign(l.err,{txId:e}))},"confirmed")})}function Dt(r,e){r.length<1&&An.logWithError(`no instructions provided: ${r.toString()}`),e.length<1&&An.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<hn}catch{return!1}}function be(r,e){let[n,o]=qo.findProgramAddressSync(r,e);return{publicKey:n,nonce:o}}function je({instructions:r,payer:e,signers:n}){return Dt(r,[e,...n])}function $e({instructions:r,payer:e,lookupTableAddressAccount:n,recentBlockhash:o=wn.generate().publicKey.toString()}){let l=new Uo({payerKey:e,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(l).serialize()).toString("base64").length<hn}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 Tn&&(e=zo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Be(r){let e=[];return r.forEach(n=>{n instanceof kn&&(n.recentBlockhash||(n.recentBlockhash=Go.toBase58()),n.feePayer||(n.feePayer=wn.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 Ee(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:u=[],endInstructionTypes:l=[],lookupTableAddress:p=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...u),this.endInstructionTypes.push(...l),this.lookupTableAddress.push(...p.filter(c=>c!==Ee.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:o}){return e===0?await this.buildV0(_(L({},n||{}),{lookupTableAddress:o})):this.build(n)}build(e){var o;let n=new Je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(u=>u.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 u=>{var y;let{recentBlockHash:l,skipPreflight:p=!0,sendAndConfirm:c,notSendToRpc:b}=u||{},w=l!=null?l:await _e(this.connection,this.blockhashCommitment);if(n.recentBlockhash=w,this.signers.length&&n.sign(...this.signers),Be([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:c?await Wt(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 h=await this.signAllTransactions([n]);if(this.signers.length)for(let K of h)try{K.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(h[0].serialize(),{skipPreflight:p}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var w;let{extraPreBuildData:n=[],extInfo:o}=e,{transaction:u}=this.build(o),l=n.filter(y=>y.transaction.instructions.length>0),p=[u,...l.map(y=>y.transaction)],c=[this.signers,...l.map(y=>y.signers)],b=[...this.instructionTypes,...l.map(y=>y.instructionTypes).flat()];return(w=this.owner)!=null&&w.signer&&c.forEach(y=>{y.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:c,instructionTypes:b,execute:async y=>{var S;let{sequentially:h,onTxUpdate:K,skipTxCount:k=0,recentBlockHash:R,skipPreflight:A=!0}=y||{},T=R!=null?R:await _e(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(h){let x=[],F=0;for(let v of p){if(++F,F<=k)continue;let g=await Wt(this.connection,v,this.signers.find(I=>I.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=T,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:A})))),signedTxs:p}}if(this.signAllTransactions){let x=p.map((v,g)=>(v.recentBlockhash=T,c[g].length&&v.sign(...c[g]),v));Be(x);let F=await this.signAllTransactions(x);if(h){let v=0,g=[],I=async()=>{if(!F[v])return;let B=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});g.push({txId:B,status:"sent",signedTx:F[v]}),K==null||K([...g]),v++;let C=!1,O=null,V=null,se=U=>{O!==null&&clearInterval(O),V!==null&&this.connection.removeSignatureListener(V);let W=g.findIndex(ee=>ee.txId===B);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||I()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var U;if(C){clearInterval(O);return}try{let W=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(O),se({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",B))}catch(W){C=!0,clearInterval(O),console.error("getTransaction timeout:",W,B)}},bt)),V=this.connection.onSignature(B,U=>{if(C){this.connection.removeSignatureListener(V);return}C=!0,se(U)},"confirmed"),this.connection.getSignatureStatus(B)};return await I(),{txIds:g.map(B=>B.txId),signedTxs:F}}else{let v=[];for(let g=0;g<F.length;g+=1){let I=await this.connection.sendRawTransaction(F[g].serialize(),{skipPreflight:A});v.push(I)}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:u,recentBlockhash:l}=R,p=pe(R,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),c=L(L({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),n),b=Array.from(new Set([...o,...this.lookupTableAddress])),w=[];for(let T of b)c[T]===void 0&&w.push(new Ee(T));let y=await Vt({connection:this.connection,address:w});for(let[T,S]of Object.entries(y))c[T]=S;let h=u?Ee.default.toBase58():l!=null?l:await _e(this.connection,this.blockhashCommitment),K=new et({payerKey:this.feePayer,recentBlockhash:h,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(c));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let k=new tt(K);return k.sign(this.signers),{builder:this,transaction:k,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:S=!0,sendAndConfirm:x,notSendToRpc:F}=T||{};if(Be([k]),(v=this.owner)!=null&&v.isKeyPair){let g=await this.connection.sendTransaction(k,{skipPreflight:S});return x&&await yt(this.connection,g),{txId:g,signedTx:k}}if(this.signAllTransactions){let g=await this.signAllTransactions([k]);if(this.signers.length)for(let I of g)try{I.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(g[0],{skipPreflight:S}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(e){var w;let{extraPreBuildData:n=[],buildProps:o}=e,{transaction:u}=await this.buildV0(o),l=n.filter(y=>y.builder.instructions.length>0),p=[u,...l.map(y=>y.transaction)],c=[this.signers,...l.map(y=>y.signers)],b=[...this.instructionTypes,...l.map(y=>y.instructionTypes).flat()];return(w=this.owner)!=null&&w.signer&&c.forEach(y=>{y.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(y,h)=>{y.sign(c[h])}),{builder:this,transactions:p,signers:c,instructionTypes:b,buildProps:o,execute:async y=>{var A;let{sequentially:h,onTxUpdate:K,recentBlockHash:k,skipPreflight:R=!0}=y||{};if(k&&p.forEach(T=>T.message.recentBlockhash=k),Be(p),(A=this.owner)!=null&&A.isKeyPair){if(h){let T=[];for(let S of p){let x=await this.connection.sendTransaction(S,{skipPreflight:R});await yt(this.connection,x),T.push(x)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:R}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p);if(h){let S=0,x=[],F=async()=>{if(!T[S])return;let v=await this.connection.sendTransaction(T[S],{skipPreflight:R});x.push({txId:v,status:"sent",signedTx:T[S]}),K==null||K([...x]),S++;let g=!1,I=null,B=null,C=O=>{I!==null&&clearInterval(I),B!==null&&this.connection.removeSignatureListener(B);let V=x.findIndex(se=>se.txId===v);if(V>-1){if(x[V].status==="error"||x[V].status==="success")return;x[V].status=O.err?"error":"success"}K==null||K([...x]),O.err||F()};this.loopMultiTxStatus&&(I=setInterval(async()=>{var O;if(g){clearInterval(I);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(g=!0,clearInterval(I),C({err:((O=V.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){g=!0,clearInterval(I),console.error("getTransaction timeout:",V,v)}},bt)),B=this.connection.onSignature(v,O=>{if(g){this.connection.removeSignatureListener(B);return}g=!0,C(O)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let S=[];for(let x=0;x<T.length;x+=1){let F=await this.connection.sendTransaction(T[x],{skipPreflight:R});S.push(F)}return{txIds:S,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var K;let h=e||{},{splitIns:n=[],computeBudgetConfig:o}=h,u=pe(h,["splitIns","computeBudgetConfig"]),l=o?ft(o):{instructions:[],instructionTypes:[]},p=this.signers.reduce((k,R)=>_(L({},k),{[R.publicKey.toBase58()]:R}),{}),c=[],b=[],w=[],y=0;if(this.allInstructions.forEach(k=>{let R=[...w,k],A=o?[...l.instructions,...R]:R,S=[...new Set(R.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new Ee(x));if(k!==n[y]&&w.length<12&&(je({instructions:A,payer:this.feePayer,signers:S})||je({instructions:R,payer:this.feePayer,signers:S})))w.push(k);else{if(w.length===0)throw Error("item ins too big");y+=k===n[y]?1:0,je({instructions:o?[...l.instructions,...w]:[...w],payer:this.feePayer,signers:S})?c.push(new Je().add(...l.instructions,...w)):c.push(new Je().add(...w)),b.push(Array.from(new Set(w.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>p[x]).filter(x=>x!==void 0)),w=[k]}}),w.length>0){let R=[...new Set(w.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);je({instructions:o?[...l.instructions,...w]:[...w],payer:this.feePayer,signers:R.map(A=>A.publicKey)})?c.push(new Je().add(...l.instructions,...w)):c.push(new Je().add(...w)),b.push(R)}return c.forEach(k=>k.feePayer=this.feePayer),(K=this.owner)!=null&&K.signer&&b.forEach(k=>{k.some(R=>R.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),{builder:this,transactions:c,signers:b,instructionTypes:this.instructionTypes,execute:async k=>{var v;let{sequentially:R,onTxUpdate:A,skipTxCount:T=0,recentBlockHash:S,skipPreflight:x=!0}=k||{},F=S!=null?S:await _e(this.connection,this.blockhashCommitment);if(c.forEach(async(g,I)=>{g.recentBlockhash=F,b[I].length&&g.sign(...b[I])}),Be(c),(v=this.owner)!=null&&v.isKeyPair){if(R){let g=0,I=[];for(let B of c){if(++g,g<=T){I.push("tx skipped");continue}let C=await Wt(this.connection,B,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});I.push(C)}return{txIds:I,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(T,c.length)),I=[...c.slice(0,T),...g];if(R){let B=0,C=[],O=async()=>{if(!I[B])return;B<T&&(C.push({txId:"",status:"success",signedTx:I[B]}),A==null||A([...C]),B++,O());let V=await this.connection.sendRawTransaction(I[B].serialize(),{skipPreflight:x});C.push({txId:V,status:"sent",signedTx:I[B]}),A==null||A([...C]),B++;let se=!1,U=null,W=null,ee=z=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ie=C.findIndex(Ae=>Ae.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||O()};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),ee({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,ee(z)},"confirmed"),this.connection.getSignatureStatus(V)};return await O(),{txIds:C.map(V=>V.txId),signedTxs:I}}else{let B=[];for(let C=0;C<I.length;C+=1){let O=await this.connection.sendRawTransaction(I[C].serialize(),{skipPreflight:x});B.push(O)}return{txIds:B,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:u={},lookupTableAddress:l=[],insCountLimit:p=12}=F,c=pe(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=L(L({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),u),w=Array.from(new Set([...this.lookupTableAddress,...l])),y=[];for(let g of w)b[g]===void 0&&y.push(new Ee(g));let h=await Vt({connection:this.connection,address:y});for(let[g,I]of Object.entries(h))b[g]=I;let K=n?ft(n):{instructions:[],instructionTypes:[]},k=await _e(this.connection,this.blockhashCommitment),R=this.signers.reduce((g,I)=>_(L({},g),{[I.publicKey.toBase58()]:I}),{}),A=[],T=[],S=[],x=0;if(this.allInstructions.forEach(g=>{let I=[...S,g],B=n?[...K.instructions,...I]:I;if(g!==o[x]&&S.length<p&&($e({instructions:B,payer:this.feePayer,lookupTableAddressAccount:b})||$e({instructions:I,payer:this.feePayer,lookupTableAddressAccount:b})))S.push(g);else{if(S.length===0)throw Error("item ins too big");x+=g===o[x]?1:0;let C={};for(let O of[...new Set(w)])b[O]!==void 0&&(C[O]=b[O]);if(n&&$e({instructions:[...K.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:k})){let O=new et({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K.instructions,...S]}).compileToV0Message(Object.values(b));A.push(new tt(O))}else{let O=new et({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S]}).compileToV0Message(Object.values(b));A.push(new tt(O))}T.push(Array.from(new Set(S.map(O=>O.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(O=>R[O]).filter(O=>O!==void 0)),S=[g]}}),S.length>0){let I=[...new Set(S.map(B=>B.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(B=>R[B]).filter(B=>B!==void 0);if(n&&$e({instructions:[...K.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:k})){let B=new et({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K.instructions,...S]}).compileToV0Message(Object.values(b));A.push(new tt(B))}else{let B=new et({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S]}).compileToV0Message(Object.values(b));A.push(new tt(B))}T.push(I)}return(v=this.owner)!=null&&v.signer&&T.forEach(g=>{g.some(I=>I.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,I)=>{g.sign(T[I])}),{builder:this,transactions:A,buildProps:e,signers:T,instructionTypes:this.instructionTypes,execute:async g=>{var se;let{sequentially:I,onTxUpdate:B,skipTxCount:C=0,recentBlockHash:O,skipPreflight:V=!0}=g||{};if(A.map(async(U,W)=>{T[W].length&&U.sign(T[W]),O&&(U.message.recentBlockhash=O)}),Be(A),(se=this.owner)!=null&&se.isKeyPair){if(I){let U=0,W=[];for(let ee of A){if(++U,U<=C){console.log("skip tx: ",U),W.push("tx skipped");continue}let z=await this.connection.sendTransaction(ee,{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(I){let ee=0,z=[],ie=async()=>{if(!W[ee])return;if(ee<C){z.push({txId:"",status:"success",signedTx:W[ee]}),B==null||B([...z]),ee++,ie();return}let Ae=await this.connection.sendTransaction(W[ee],{skipPreflight:V});z.push({txId:Ae,status:"sent",signedTx:W[ee]}),B==null||B([...z]),ee++;let Xe=!1,Oe=null,st=null,rn=he=>{Oe!==null&&clearInterval(Oe),st!==null&&this.connection.removeSignatureListener(st);let we=z.findIndex(Po=>Po.txId===Ae);if(we>-1){if(z[we].status==="error"||z[we].status==="success")return;z[we].status=he.err?"error":"success"}B==null||B([...z]),he.err||ie()};this.loopMultiTxStatus&&(Oe=setInterval(async()=>{var he;if(Xe){clearInterval(Oe);return}try{let we=await this.connection.getTransaction(Ae,{commitment:"confirmed",maxSupportedTransactionVersion:0});we&&(Xe=!0,clearInterval(Oe),rn({err:((he=we.meta)==null?void 0:he.err)||null}),console.log("tx status from getTransaction:",Ae))}catch(we){Xe=!0,clearInterval(Oe),console.error("getTransaction timeout:",we,Ae)}},bt)),st=this.connection.onSignature(Ae,he=>{if(Xe){this.connection.removeSignatureListener(st);return}Xe=!0,rn(he)},"confirmed"),this.connection.getSignatureStatus(Ae)};return ie(),{txIds:[],signedTxs:W}}else{let ee=[];for(let z=0;z<W.length;z+=1){let ie=await this.connection.sendTransaction(W[z],{skipPreflight:V});ee.push(ie)}return{txIds:ee,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}};var qt=(...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(qt(e))}logInfo(...e){this.logger.info(qt(e))}logAndCreateError(...e){let n=qt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as kl,SystemProgram as hl}from"@solana/web3.js";import Sl from"bn.js";import{createCloseAccountInstruction as Rl,createInitializeAccountInstruction as Ll,createTransferInstruction as Ol,TOKEN_PROGRAM_ID as Nl}from"@solana/spl-token";import{Keypair as ul,PublicKey as cl}from"@solana/web3.js";import dl from"bn.js";import{TOKEN_PROGRAM_ID as yl}from"@solana/spl-token";import{PublicKey as si}from"@solana/web3.js";import Cn,{isBN as Rn}from"bn.js";import{bits as Zo,BitStructure as fc,blob as Ho,Blob as yc,cstr as bc,f32 as gc,f32be as Pc,f64 as Ac,f64be as wc,greedy as kc,Layout as jo,ns64 as Tc,ns64be as hc,nu64 as $o,nu64be as Ic,offset as Jo,s16 as Bc,s16be as Sc,s24 as xc,s24be as Kc,s32 as ei,s32be as Cc,s40 as Rc,s40be as Lc,s48 as Oc,s48be as Nc,s8 as Mc,seq as ti,struct as Fc,Structure as ni,u16 as oi,u16be as vc,u24 as Vc,u24be as _c,u32 as ii,u32be as Ec,u40 as Dc,u40be as Wc,u48 as qc,u48be as Uc,u8 as ri,UInt as ai,union as Gc,Union as zc,unionLayoutDiscriminator as Xc,utf8 as Yc}from"@solana/buffer-layout";var Pt=jo,In=ni;var Ut=ai;var Bn=ri,$=oi;var At=ii;var Sn=$o;var me=ei;var xn=ti;var M=Ho;var Gt=Zo,Kn=Jo;var xe=class extends Pt{constructor(n,o,u){super(n,u);this.blob=M(n),this.signed=o}decode(n,o=0){let u=new Cn(this.blob.decode(n,o),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,o,u=0){return typeof n=="number"&&(n=new Cn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,u)}},wt=class extends Pt{constructor(n){super(8,n);this._lower=Gt(At(),!1),this._upper=Gt(At(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,o=0){let u=this._lower.decode(n,o),l=this._upper.decode(n,o+this._lower.span);return L(L({},u),l)}encode(n,o,u=0){return this._lower.encode(n,o,u)+this._upper.encode(n,o,u+this._lower.span)}};function m(r){return new Ut(1,r)}function Y(r){return new Ut(4,r)}function t(r){return new xe(8,!1,r)}function N(r){return new xe(16,!1,r)}function Ln(r){return new xe(1,!0,r)}function De(r){return new xe(8,!0,r)}function On(r){return new xe(16,!0,r)}var nt=class extends Pt{constructor(n,o,u,l){super(n.span,l);this.layout=n,this.decoder=o,this.encoder=u}decode(n,o){return this.decoder(this.layout.decode(n,o))}encode(n,o,u){return this.layout.encode(this.encoder(n),o,u)}getSpan(n,o){return this.layout.getSpan(n,o)}};function i(r){return new nt(M(32),e=>new si(e),e=>e.toBuffer(),r)}function ue(r){return new nt(Bn(),ui,ci,r)}function ui(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ci(r){return r?1:0}function Nn(r,e){let n=At("length"),o=d([n,f(r,Kn(n,-n.span),"values")]);return new nt(o,({values:u})=>u,u=>({values:u}),e)}var zt=class extends In{decode(e,n){return super.decode(e,n)}};function d(r,e,n){return new zt(r,e,n)}function f(r,e,n){let o,u=typeof e=="number"?e:Rn(e)?e.toNumber():new Proxy(e,{get(l,p){if(!o){let c=Reflect.get(l,"count");o=Rn(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 xn(r,u,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 Ig,SystemProgram as Bg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as xg}from"@solana/spl-token";import{PublicKey as am}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as um}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"),Xt=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),dm=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),mi=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),_n=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),En=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),pm=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),di=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Dn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),pi=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),fi=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Wn=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),fm=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),yi=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),bi=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),gi=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Pi=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ai=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Yt=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),wi=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ym=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ki=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ti=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),hi=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),bm=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),gm=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Pm=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Am=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),wm=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),ot={IDO_PROGRAM_ID_V1:bi,IDO_PROGRAM_ID_V2:gi,IDO_PROGRAM_ID_V3:Pi,IDO_PROGRAM_ID_V4:Ai};var Te={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 Vg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as ey,TOKEN_2022_PROGRAM_ID as ty,TOKEN_PROGRAM_ID as ny}from"@solana/spl-token";import{PublicKey as iy}from"@solana/web3.js";import ay from"bn.js";import uy from"decimal.js";import{TOKEN_PROGRAM_ID as Mm}from"@solana/spl-token";import{PublicKey as _m}from"@solana/web3.js";var Ii=d([Y("mintAuthorityOption"),i("mintAuthority"),t("supply"),m("decimals"),m("isInitialized"),Y("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as hf,TOKEN_2022_PROGRAM_ID as If,TOKEN_PROGRAM_ID as Bf}from"@solana/spl-token";import{Keypair as Kf,PublicKey as Cf,SystemProgram as Lf,TransactionInstruction as Of}from"@solana/web3.js";import Mf from"bn.js";import D from"bn.js";var J=new D(1).shln(64);var Bi=new D(1).shln(128),Qt=new D(1).shln(64).subn(1),Si=new D(1).shln(128).subn(1),qe=-443636,Ue=443636,Ke=new D("4295048016"),Ce=new D("79226673521066979257578248091"),qn=new D("59543866431248"),Un=new D("184467440737095516"),Gn=new D("15793534762490258745"),zn=16;var Zt=60,Hm=new D("18446743708227953217"),Xn=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var it=3,Yn=100;var Qn=10,Zn=100,ht=14;var q=new D(0),Re=new D(1),jm=new D(-1);var $m=new D("18446744073700000000");var xi=d([M(8),m("bump"),$("index"),i("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),$("tickSpacing"),Y("fundFeeRate"),f(Y(),1),i("fundOwner"),f(t(),3)]),Ki=d([Y("blockTimestamp"),De("tickCumulative"),f(t(),4)]),Hn=d([M(8),ue("initialized"),t("recentEpoch"),$("observationIndex"),i("poolId"),f(Ki,Yn,"observations"),f(t(),4)]),Ci=d([$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),me("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),t("lastUpdateTimestamp"),f(m(),46)]),Ri=d([m("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),N("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),i("mint"),i("vault"),i("creator"),N("growthGlobalX64")]),Ht=d([M(8),m("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),$("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(Ri,it,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Ci.replicate("dynamicFeeInfo"),f(t(),46)]),Li=d([N("growthInsideLastX64"),t("rewardAmountOwed")]),Oi=d([M(8),m("bump"),i("nftMint"),i("poolId"),me("tickLower"),me("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(Li,it,"rewardInfos"),t("recentEpoch"),f(t(),7)]),nd=d([M(8),m("bump"),i("poolId"),me("tickLower"),me("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(N(),it,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),Ni=d([me("tick"),On("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),f(N(),it,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),N("unfilledRatioX64"),f(Y(),3)]),jn=d([M(8),i("poolId"),me("startTickIndex"),f(Ni,Zt,"ticks"),m("initializedTickCount"),t("recentEpoch"),f(m(),107)]),Mi=d([M(8),m("bump"),f(i(),Qn,"operationOwners"),f(i(),Zn,"whitelistMints")]),Fi=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)]),$n=d([M(8),i("poolId"),M(8*8*ht,"positiveTickArrayBitmap"),M(8*8*ht,"negativeTickArrayBitmap")]),od=d([M(8),$("index"),$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(t(),8)]),vi=d([M(8),i("wallet"),m("nonceIndex"),t("orderNonce"),f(t(),4)]),id=d([t(),m("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),f(t(),8)]),Vi=d([M(8),m("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),t("recentEpoch"),f(t(),8)]);import sd from"bn.js";var Pd=Buffer.from("amm_config","utf8"),_i=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),Ad=Buffer.from("pool_reward_vault","utf8"),wd=Buffer.from("position","utf8"),kd=Buffer.from("tick_array","utf8"),Td=Buffer.from("operation","utf8"),hd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Id=Buffer.from("observation","utf8"),Bd=Buffer.from("support_mint","utf8"),Sd=Buffer.from("dynamic_fee_config","utf8");var xd=Buffer.from("locked_position","utf8");import{sha256 as er}from"js-sha256";import Di from"bn.js";import Ld 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),u=o.div(n);return o.mod(n).isZero()?u:u.addn(1)}var Nd=new Di(1).shln(256).subn(1);function Jn(r){return r.isZero()?-1:r.bitLength()-1}import vd from"bn.js";import Wd from"bn.js";import Ud from"decimal.js";import{PublicKey as xp}from"@solana/web3.js";import Cp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Vp}from"@solana/spl-token";import Wp from"decimal.js";import bp from"bn.js";import op from"bn.js";import Hp from"bn.js";function te(r){let e=`global:${r}`;return Buffer.from(er.digest(e)).slice(0,8)}Hn.span;var qf=E("Raydium_Clmm"),Uf={createPool:te("create_pool"),createCustomizablePool:te("create_customizable_pool"),openPositionV2:te("open_position_v2"),openPositionWithToken22Nft:te("open_position_with_token22_nft"),closePosition:te("close_position"),increaseLiquidityV2:te("increase_liquidity_v2"),decreaseLiquidityV2:te("decrease_liquidity_v2"),initializeReward:te("initialize_reward"),setRewardParams:te("set_reward_params"),updateRewardInfos:te("update_reward_infos"),collectRemainingRewards:te("collect_remaining_rewards"),swapV2:te("swap_v2"),openLimitOrder:te("open_limit_order"),increaseLimitOrder:te("increase_limit_order"),decreaseLimitOrder:te("