@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 88.3 kB
JavaScript
var Eo=Object.defineProperty,Do=Object.defineProperties;var Wo=Object.getOwnPropertyDescriptors;var lt=Object.getOwnPropertySymbols;var xn=Object.prototype.hasOwnProperty,Kn=Object.prototype.propertyIsEnumerable;var Sn=(o,e,n)=>e in o?Eo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,M=(o,e)=>{for(var n in e||(e={}))xn.call(e,n)&&Sn(o,n,e[n]);if(lt)for(var n of lt(e))Kn.call(e,n)&&Sn(o,n,e[n]);return o},D=(o,e)=>Do(o,Wo(e));var be=(o,e)=>{var n={};for(var i in o)xn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&<)for(var i of lt(o))e.indexOf(i)<0&&Kn.call(o,i)&&(n[i]=o[i]);return n};import{PublicKey as L,SystemProgram as Le,SYSVAR_CLOCK_PUBKEY as Ye,SYSVAR_RENT_PUBKEY as Xa,TransactionInstruction as $}from"@solana/web3.js";import Mt from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Qa,createAssociatedTokenAccountIdempotentInstruction as Za,TOKEN_PROGRAM_ID as me}from"@solana/spl-token";import{PublicKey as Go}from"@solana/web3.js";import{get as Cn,set as qo}from"lodash";var Ft=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(i=>typeof i=="object"?JSON.stringify(i):i).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}},Rn={},Uo={};function W(o){let e=Cn(Rn,o);if(!e){let n=Cn(Uo,o);e=new Ft({name:o,logLevel:n}),qo(Rn,o,e)}return e}import{MINT_SIZE as ps,TOKEN_PROGRAM_ID as fs,getTransferFeeConfig as ys,unpackMint as bs}from"@solana/spl-token";var vt=W("Raydium_accountInfo_util");async function ke(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:m=100}=M({batchRequest:!1},n),l=Vt(e,m),d=new Array(l.length).fill([]);if(i){let b=l.map(w=>{let P=o._buildArgs([w.map(A=>A.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:P}}),g=Vt(b,10);d=(await(await Promise.all(g.map(async w=>await o._rpcBatchRequest(w)))).flat()).map(w=>(w.error&&vt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${w.error.message}`),w.result.value.map(P=>{if(P){let{data:A,executable:B,lamports:k,owner:I,rentEpoch:C}=P;return A.length!==2&&A[1]!=="base64"&&vt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(A[0],"base64"),executable:B,lamports:k,owner:new Go(I),rentEpoch:C}}return null})))}else try{d=await Promise.all(l.map(b=>o.getMultipleAccountsInfo(b,a)))}catch(b){b instanceof Error&&vt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return d.flat()}import Re from"bn.js";import eR from"decimal.js";import $o from"big.js";import Ns from"bn.js";import zo from"toformat";var Yo=zo,Ze=Yo;import dt from"big.js";import Qo from"bn.js";import Zo from"decimal.js-light";import He from"bn.js";var Ln=9007199254740991;function G(o){let e=W("Raydium_parseBigNumberish");if(o instanceof He)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new He(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Ln||o<=-Ln)&&e.logWithError(`BigNumberish number overflow: ${o}`),new He(String(o))):typeof o=="bigint"?new He(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new He(0))}var mt=W("module/fraction"),_t=Ze(dt),je=Ze(Zo),Ho={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},jo={[0]:dt.roundDown,[1]:dt.roundHalfUp,[2]:dt.roundUp},Y=class{constructor(e,n=new Qo(1)){this.numerator=G(e),this.denominator=G(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Y(this.denominator,this.numerator)}add(e){let n=e instanceof Y?e:new Y(G(e));return this.denominator.eq(n.denominator)?new Y(this.numerator.add(n.numerator),this.denominator):new Y(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof Y?e:new Y(G(e));return this.denominator.eq(n.denominator)?new Y(this.numerator.sub(n.numerator),this.denominator):new Y(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof Y?e:new Y(G(e));return new Y(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof Y?e:new Y(G(e));return new Y(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||mt.logWithError(`${e} is not an integer.`),e<=0&&mt.logWithError(`${e} is not positive.`),je.set({precision:e+1,rounding:Ho[i]});let a=new je(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||mt.logWithError(`${e} is not an integer.`),e<0&&mt.logWithError(`${e} is negative.`),_t.DP=e,_t.RM=jo[i]||1,new _t(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var qs=W("Raydium_amount"),Us=Ze($o);import{PublicKey as ei}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as On}from"@solana/spl-token";var pt={chainId:101,address:ei.default.toBase58(),programId:On.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Pe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:On.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 Wt}from"@solana/web3.js";import{PublicKey as Z,SystemProgram as Nn,SYSVAR_RENT_PUBKEY as ti}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ni}from"@solana/spl-token";function s({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var Et=[s({pubkey:ni,isWritable:!1}),s({pubkey:Nn.programId,isWritable:!1}),s({pubkey:ti,isWritable:!1})];function Mn({publicKey:o,transformSol:e}){let n=Fn(o.toString());if(n instanceof Z)return e&&n.equals(Te)?ge:n;if(e&&n.toString()===Te.toBase58())return ge;if(typeof n=="string"){if(n===Z.default.toBase58())return Z.default;try{return new Z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Fn(o){try{return new Z(o)}catch{return o}}var Dt=new Z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),he=new Z("SysvarRent111111111111111111111111111111111"),oi=new Z("SysvarC1ock11111111111111111111111111111111"),ft=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),yt=new Z("Sysvar1nstructions1111111111111111111111111"),vn=Nn.programId,js=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),$s=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Js=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),eu=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),tu=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),nu=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ou=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),iu=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ru=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),au=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),su=new Z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new Z("So11111111111111111111111111111111111111112"),Te=Z.default;var qt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:m=!1,isToken2022:l=!1}){if(e===Te.toBase58()||e instanceof Wt&&Te.equals(e)){this.decimals=Pe.decimals,this.symbol=Pe.symbol,this.name=Pe.name,this.mint=new Wt(Pe.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=m?Wt.default:Mn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ie=qt;ie.WSOL=new qt(D(M({},Pe),{mint:Pe.address}));var Ut=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},bt=Ut;bt.SOL=new Ut(pt);import ii from"bn.js";var Au=new Y(new ii(100));var Bu=W("Raydium_price");import{merge as eC}from"lodash";import Mu from"axios";var Vn={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"},ri=D(M({},Vn),{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 oc=W("Raydium_Api");import{PublicKey as km,SystemProgram as Tm}from"@solana/web3.js";import{AccountLayout as xm,createAssociatedTokenAccountIdempotentInstruction as Km,TOKEN_PROGRAM_ID as Cm,TOKEN_2022_PROGRAM_ID as Rm}from"@solana/spl-token";import{PublicKey as Ve,sendAndConfirmTransaction as Zt,SystemProgram as mi,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import di from"axios";import{PublicKey as Gt,AddressLookupTableAccount as Fe}from"@solana/web3.js";async function zt({connection:o,address:e,cluster:n="mainnet"}){let i=await ke(o,[...new Set(e.map(m=>m.toString()))].map(m=>new Gt(m))),a={};for(let m=0;m<e.length;m++){let l=i[m],d=e[m];if(!l)continue;let b=new Fe({key:d,state:Fe.deserialize(l.data)});a[d.toString()]=b,n==="devnet"?Me[d.toString()]=b:Ne[d.toString()]=b}return a}var Ne={},Yt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ne[e])return Ne;let n=new Gt(e),i=await o.getAccountInfo(n);return i&&(Ne[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Ne},Me={},Xt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Me[e])return Me;let n=new Gt(e),i=await o.getAccountInfo(n);return i&&(Me[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Me};var H={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 _n,Keypair as Dn,PublicKey as ai,Transaction as Wn,TransactionMessage as si,VersionedTransaction as qn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ui}from"@solana/spl-token";var En=W("Raydium_txUtil"),Un=1644;function gt(o){let e=[],n=[];return o.microLamports&&(e.push(_n.setComputeUnitPrice({microLamports:o.microLamports})),n.push(H.SetComputeUnitPrice)),o.units&&(e.push(_n.setComputeUnitLimit({units:o.units})),n.push(H.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function ve(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function Pt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,m=>{if(clearTimeout(a),!m.err){n("");return}i(Object.assign(m.err,{txId:e}))},"confirmed")})}function Qt(o,e){o.length<1&&En.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&En.logWithError(`no signers provided:, ${e.toString()}`);let n=new Wn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Un}catch{return!1}}function J(o,e){let[n,i]=ai.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function $e({instructions:o,payer:e,signers:n}){return Qt(o,[e,...n])}function Je({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=Dn.generate().publicKey.toString()}){let m=new si({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new qn(m).serialize()).toString("base64").length<Un}catch{return!1}}var ci=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),li=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof qn&&(e=ci(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Se(o){let e=[];return o.forEach(n=>{n instanceof Wn&&(n.recentBlockhash||(n.recentBlockhash=ui.toBase58()),n.feePayer||(n.feePayer=Dn.generate().publicKey)),e.push(li(n))}),console.log("simulate tx string:",e),e}var At=2e3,wt=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 i;let e=(await di.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=e==null?void 0:e[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:i}=gt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(mi.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Ve(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:m=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...l.filter(d=>d!==Ve.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(D(M({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new et;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var f;let{recentBlockHash:m,skipPreflight:l=!0,sendAndConfirm:d,notSendToRpc:b}=a||{},g=m!=null?m:await ve(this.connection,this.blockhashCommitment);if(n.recentBlockhash=g,this.signers.length&&n.sign(...this.signers),Se([n]),(f=this.owner)!=null&&f.isKeyPair)return{txId:d?await Zt(this.connection,n,this.signers.find(P=>P.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),signedTx:n};if(this.signAllTransactions){let w=await this.signAllTransactions([n]);if(this.signers.length)for(let P of w)try{P.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(w[0].serialize(),{skipPreflight:l}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var g;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),m=n.filter(f=>f.transaction.instructions.length>0),l=[a,...m.map(f=>f.transaction)],d=[this.signers,...m.map(f=>f.signers)],b=[...this.instructionTypes,...m.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&d.forEach(f=>{f.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:d,instructionTypes:b,execute:async f=>{var C;let{sequentially:w,onTxUpdate:P,skipTxCount:A=0,recentBlockHash:B,skipPreflight:k=!0}=f||{},I=B!=null?B:await ve(this.connection,this.blockhashCommitment);if((C=this.owner)!=null&&C.isKeyPair){if(w){let x=[],v=0;for(let _ of l){if(++v,v<=A)continue;let h=await Zt(this.connection,_,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});x.push(h)}return{txIds:x,signedTxs:l}}return{txIds:await await Promise.all(l.map(async x=>(x.recentBlockhash=I,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:k})))),signedTxs:l}}if(this.signAllTransactions){let x=l.map((_,h)=>(_.recentBlockhash=I,d[h].length&&_.sign(...d[h]),_));Se(x);let v=await this.signAllTransactions(x);if(w){let _=0,h=[],S=async()=>{if(!v[_])return;let K=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:k});h.push({txId:K,status:"sent",signedTx:v[_]}),P==null||P([...h]),_++;let O=!1,N=null,E=null,ae=z=>{N!==null&&clearInterval(N),E!==null&&this.connection.removeSignatureListener(E);let U=h.findIndex(ne=>ne.txId===K);if(U>-1){if(h[U].status==="error"||h[U].status==="success")return;h[U].status=z.err?"error":"success"}P==null||P([...h]),z.err||S()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var z;if(O){clearInterval(N);return}try{let U=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(O=!0,clearInterval(N),ae({err:((z=U.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",K))}catch(U){O=!0,clearInterval(N),console.error("getTransaction timeout:",U,K)}},At)),E=this.connection.onSignature(K,z=>{if(O){this.connection.removeSignatureListener(E);return}O=!0,ae(z)},"confirmed"),this.connection.getSignatureStatus(K)};return await S(),{txIds:h.map(K=>K.txId),signedTxs:v}}else{let _=[];for(let h=0;h<v.length;h+=1){let S=await this.connection.sendRawTransaction(v[h].serialize(),{skipPreflight:k});_.push(S)}return{txIds:_,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var k;let B=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:m}=B,l=be(B,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),d=M(M({},this.cluster==="devnet"?await Xt(this.connection):await Yt(this.connection)),n),b=Array.from(new Set([...i,...this.lookupTableAddress])),g=[];for(let I of b)d[I]===void 0&&g.push(new Ve(I));let f=await zt({connection:this.connection,address:g});for(let[I,C]of Object.entries(f))d[I]=C;let w=a?Ve.default.toBase58():m!=null?m:await ve(this.connection,this.blockhashCommitment),P=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(d));((k=this.owner)==null?void 0:k.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let A=new nt(P);return A.sign(this.signers),{builder:this,transaction:A,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var _;let{skipPreflight:C=!0,sendAndConfirm:x,notSendToRpc:v}=I||{};if(Se([A]),(_=this.owner)!=null&&_.isKeyPair){let h=await this.connection.sendTransaction(A,{skipPreflight:C});return x&&await Pt(this.connection,h),{txId:h,signedTx:A}}if(this.signAllTransactions){let h=await this.signAllTransactions([A]);if(this.signers.length)for(let S of h)try{S.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(h[0],{skipPreflight:C}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),m=n.filter(f=>f.builder.instructions.length>0),l=[a,...m.map(f=>f.transaction)],d=[this.signers,...m.map(f=>f.signers)],b=[...this.instructionTypes,...m.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&d.forEach(f=>{f.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(f,w)=>{f.sign(d[w])}),{builder:this,transactions:l,signers:d,instructionTypes:b,buildProps:i,execute:async f=>{var k;let{sequentially:w,onTxUpdate:P,recentBlockHash:A,skipPreflight:B=!0}=f||{};if(A&&l.forEach(I=>I.message.recentBlockhash=A),Se(l),(k=this.owner)!=null&&k.isKeyPair){if(w){let I=[];for(let C of l){let x=await this.connection.sendTransaction(C,{skipPreflight:B});await Pt(this.connection,x),I.push(x)}return{txIds:I,signedTxs:l}}return{txIds:await Promise.all(l.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:B}))),signedTxs:l}}if(this.signAllTransactions){let I=await this.signAllTransactions(l);if(w){let C=0,x=[],v=async()=>{if(!I[C])return;let _=await this.connection.sendTransaction(I[C],{skipPreflight:B});x.push({txId:_,status:"sent",signedTx:I[C]}),P==null||P([...x]),C++;let h=!1,S=null,K=null,O=N=>{S!==null&&clearInterval(S),K!==null&&this.connection.removeSignatureListener(K);let E=x.findIndex(ae=>ae.txId===_);if(E>-1){if(x[E].status==="error"||x[E].status==="success")return;x[E].status=N.err?"error":"success"}P==null||P([...x]),N.err||v()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var N;if(h){clearInterval(S);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(h=!0,clearInterval(S),O({err:((N=E.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){h=!0,clearInterval(S),console.error("getTransaction timeout:",E,_)}},At)),K=this.connection.onSignature(_,N=>{if(h){this.connection.removeSignatureListener(K);return}h=!0,O(N)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:I}}else{let C=[];for(let x=0;x<I.length;x+=1){let v=await this.connection.sendTransaction(I[x],{skipPreflight:B});C.push(v)}return{txIds:C,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var P;let w=e||{},{splitIns:n=[],computeBudgetConfig:i}=w,a=be(w,["splitIns","computeBudgetConfig"]),m=i?gt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((A,B)=>D(M({},A),{[B.publicKey.toBase58()]:B}),{}),d=[],b=[],g=[],f=0;if(this.allInstructions.forEach(A=>{let B=[...g,A],k=i?[...m.instructions,...B]:B,C=[...new Set(B.map(x=>x.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(x=>new Ve(x));if(A!==n[f]&&g.length<12&&($e({instructions:k,payer:this.feePayer,signers:C})||$e({instructions:B,payer:this.feePayer,signers:C})))g.push(A);else{if(g.length===0)throw Error("item ins too big");f+=A===n[f]?1:0,$e({instructions:i?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:C})?d.push(new et().add(...m.instructions,...g)):d.push(new et().add(...g)),b.push(Array.from(new Set(g.map(x=>x.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(x=>l[x]).filter(x=>x!==void 0)),g=[A]}}),g.length>0){let B=[...new Set(g.map(k=>k.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(k=>l[k]).filter(k=>k!==void 0);$e({instructions:i?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:B.map(k=>k.publicKey)})?d.push(new et().add(...m.instructions,...g)):d.push(new et().add(...g)),b.push(B)}return d.forEach(A=>A.feePayer=this.feePayer),(P=this.owner)!=null&&P.signer&&b.forEach(A=>{A.some(B=>B.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),{builder:this,transactions:d,signers:b,instructionTypes:this.instructionTypes,execute:async A=>{var _;let{sequentially:B,onTxUpdate:k,skipTxCount:I=0,recentBlockHash:C,skipPreflight:x=!0}=A||{},v=C!=null?C:await ve(this.connection,this.blockhashCommitment);if(d.forEach(async(h,S)=>{h.recentBlockhash=v,b[S].length&&h.sign(...b[S])}),Se(d),(_=this.owner)!=null&&_.isKeyPair){if(B){let h=0,S=[];for(let K of d){if(++h,h<=I){S.push("tx skipped");continue}let O=await Zt(this.connection,K,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});S.push(O)}return{txIds:S,signedTxs:d}}return{txIds:await Promise.all(d.map(async h=>await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:x}))),signedTxs:d}}if(this.signAllTransactions){let h=await this.signAllTransactions(d.slice(I,d.length)),S=[...d.slice(0,I),...h];if(B){let K=0,O=[],N=async()=>{if(!S[K])return;K<I&&(O.push({txId:"",status:"success",signedTx:S[K]}),k==null||k([...O]),K++,N());let E=await this.connection.sendRawTransaction(S[K].serialize(),{skipPreflight:x});O.push({txId:E,status:"sent",signedTx:S[K]}),k==null||k([...O]),K++;let ae=!1,z=null,U=null,ne=X=>{z!==null&&clearInterval(z),U!==null&&this.connection.removeSignatureListener(U);let se=O.findIndex(Ae=>Ae.txId===E);if(se>-1){if(O[se].status==="error"||O[se].status==="success")return;O[se].status=X.err?"error":"success"}k==null||k([...O]),X.err||N()};this.loopMultiTxStatus&&(z=setInterval(async()=>{var X;if(ae){clearInterval(z);return}try{let se=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});se&&(ae=!0,clearInterval(z),ne({err:((X=se.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",E))}catch(se){ae=!0,clearInterval(z),console.error("getTransaction timeout:",se,E)}},At)),U=this.connection.onSignature(E,X=>{if(ae){this.connection.removeSignatureListener(U);return}ae=!0,ne(X)},"confirmed"),this.connection.getSignatureStatus(E)};return await N(),{txIds:O.map(E=>E.txId),signedTxs:S}}else{let K=[];for(let O=0;O<S.length;O+=1){let N=await this.connection.sendRawTransaction(S[O].serialize(),{skipPreflight:x});K.push(N)}return{txIds:K,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var _;let v=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:l=12}=v,d=be(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=M(M({},this.cluster==="devnet"?await Xt(this.connection):await Yt(this.connection)),a),g=Array.from(new Set([...this.lookupTableAddress,...m])),f=[];for(let h of g)b[h]===void 0&&f.push(new Ve(h));let w=await zt({connection:this.connection,address:f});for(let[h,S]of Object.entries(w))b[h]=S;let P=n?gt(n):{instructions:[],instructionTypes:[]},A=await ve(this.connection,this.blockhashCommitment),B=this.signers.reduce((h,S)=>D(M({},h),{[S.publicKey.toBase58()]:S}),{}),k=[],I=[],C=[],x=0;if(this.allInstructions.forEach(h=>{let S=[...C,h],K=n?[...P.instructions,...S]:S;if(h!==i[x]&&C.length<l&&(Je({instructions:K,payer:this.feePayer,lookupTableAddressAccount:b})||Je({instructions:S,payer:this.feePayer,lookupTableAddressAccount:b})))C.push(h);else{if(C.length===0)throw Error("item ins too big");x+=h===i[x]?1:0;let O={};for(let N of[...new Set(g)])b[N]!==void 0&&(O[N]=b[N]);if(n&&Je({instructions:[...P.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:A})){let N=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...P.instructions,...C]}).compileToV0Message(Object.values(b));k.push(new nt(N))}else{let N=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(b));k.push(new nt(N))}I.push(Array.from(new Set(C.map(N=>N.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(N=>B[N]).filter(N=>N!==void 0)),C=[h]}}),C.length>0){let S=[...new Set(C.map(K=>K.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(K=>B[K]).filter(K=>K!==void 0);if(n&&Je({instructions:[...P.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:A})){let K=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...P.instructions,...C]}).compileToV0Message(Object.values(b));k.push(new nt(K))}else{let K=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(b));k.push(new nt(K))}I.push(S)}return(_=this.owner)!=null&&_.signer&&I.forEach(h=>{h.some(S=>S.publicKey.equals(this.owner.publicKey))||h.push(this.owner.signer)}),k.forEach((h,S)=>{h.sign(I[S])}),{builder:this,transactions:k,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async h=>{var ae;let{sequentially:S,onTxUpdate:K,skipTxCount:O=0,recentBlockHash:N,skipPreflight:E=!0}=h||{};if(k.map(async(z,U)=>{I[U].length&&z.sign(I[U]),N&&(z.message.recentBlockhash=N)}),Se(k),(ae=this.owner)!=null&&ae.isKeyPair){if(S){let z=0,U=[];for(let ne of k){if(++z,z<=O){console.log("skip tx: ",z),U.push("tx skipped");continue}let X=await this.connection.sendTransaction(ne,{skipPreflight:E});await Pt(this.connection,X),U.push(X)}return{txIds:U,signedTxs:k}}return{txIds:await Promise.all(k.map(async z=>await this.connection.sendTransaction(z,{skipPreflight:E}))),signedTxs:k}}if(this.signAllTransactions){let z=await this.signAllTransactions(k.slice(O,k.length)),U=[...k.slice(0,O),...z];if(S){let ne=0,X=[],se=async()=>{if(!U[ne])return;if(ne<O){X.push({txId:"",status:"success",signedTx:U[ne]}),K==null||K([...X]),ne++,se();return}let Ae=await this.connection.sendTransaction(U[ne],{skipPreflight:E});X.push({txId:Ae,status:"sent",signedTx:U[ne]}),K==null||K([...X]),ne++;let Xe=!1,Oe=null,ct=null,Bn=Be=>{Oe!==null&&clearInterval(Oe),ct!==null&&this.connection.removeSignatureListener(ct);let we=X.findIndex(_o=>_o.txId===Ae);if(we>-1){if(X[we].status==="error"||X[we].status==="success")return;X[we].status=Be.err?"error":"success"}K==null||K([...X]),Be.err||se()};this.loopMultiTxStatus&&(Oe=setInterval(async()=>{var Be;if(Xe){clearInterval(Oe);return}try{let we=await this.connection.getTransaction(Ae,{commitment:"confirmed",maxSupportedTransactionVersion:0});we&&(Xe=!0,clearInterval(Oe),Bn({err:((Be=we.meta)==null?void 0:Be.err)||null}),console.log("tx status from getTransaction:",Ae))}catch(we){Xe=!0,clearInterval(Oe),console.error("getTransaction timeout:",we,Ae)}},At)),ct=this.connection.onSignature(Ae,Be=>{if(Xe){this.connection.removeSignatureListener(ct);return}Xe=!0,Bn(Be)},"confirmed"),this.connection.getSignatureStatus(Ae)};return se(),{txIds:[],signedTxs:U}}else{let ne=[];for(let X=0;X<U.length;X+=1){let se=await this.connection.sendTransaction(U[X],{skipPreflight:E});ne.push(se)}return{txIds:ne,signedTxs:U}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}};var Ht=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ue=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=W(n)}createTxBuilder(e){return this.scope.checkOwner(),new wt({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(Ht(e))}logInfo(...e){this.logger.info(Ht(e))}logAndCreateError(...e){let n=Ht(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as $l,SystemProgram as em}from"@solana/web3.js";import om from"bn.js";import{createCloseAccountInstruction as sm,createInitializeAccountInstruction as um,createTransferInstruction as cm,TOKEN_PROGRAM_ID as lm}from"@solana/spl-token";import{Keypair as El,PublicKey as Dl}from"@solana/web3.js";import Ul from"bn.js";import{TOKEN_PROGRAM_ID as Yl}from"@solana/spl-token";import{PublicKey as Bi}from"@solana/web3.js";import Zn,{isBN as Hn}from"bn.js";import{bits as pi,BitStructure as zc,blob as fi,Blob as Yc,cstr as Xc,f32 as Qc,f32be as Zc,f64 as Hc,f64be as jc,greedy as $c,Layout as yi,ns64 as Jc,ns64be as el,nu64 as bi,nu64be as tl,offset as gi,s16 as nl,s16be as ol,s24 as il,s24be as rl,s32 as Pi,s32be as al,s40 as sl,s40be as ul,s48 as cl,s48be as ll,s8 as ml,seq as Ai,struct as dl,Structure as wi,u16 as ki,u16be as pl,u24 as fl,u24be as yl,u32 as Ti,u32be as bl,u40 as gl,u40be as Pl,u48 as Al,u48be as wl,u8 as hi,UInt as Ii,union as kl,Union as Tl,unionLayoutDiscriminator as hl,utf8 as Il}from"@solana/buffer-layout";var kt=yi,Gn=wi;var jt=Ii;var zn=hi,ee=ki;var Tt=Ti;var Yn=bi;var fe=Pi;var Xn=Ai;var V=fi;var $t=pi,Qn=gi;var Ke=class extends kt{constructor(n,i,a){super(n,a);this.blob=V(n),this.signed=i}decode(n,i=0){let a=new Zn(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new Zn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},ht=class extends kt{constructor(n){super(8,n);this._lower=$t(Tt(),!1),this._upper=$t(Tt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),m=this._upper.decode(n,i+this._lower.span);return M(M({},a),m)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function p(o){return new jt(1,o)}function Q(o){return new jt(4,o)}function t(o){return new Ke(8,!1,o)}function F(o){return new Ke(16,!1,o)}function jn(o){return new Ke(1,!0,o)}function _e(o){return new Ke(8,!0,o)}function $n(o){return new Ke(16,!0,o)}var ot=class extends kt{constructor(n,i,a,m){super(n.span,m);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new ot(V(32),e=>new Bi(e),e=>e.toBuffer(),o)}function de(o){return new ot(zn(),Si,xi,o)}function Si(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function xi(o){return o?1:0}function Jn(o,e){let n=Tt("length"),i=y([n,T(o,Qn(n,-n.span),"values")]);return new ot(i,({values:a})=>a,a=>({values:a}),e)}var Jt=class extends Gn{decode(e,n){return super.decode(e,n)}};function y(o,e,n){return new Jt(o,e,n)}function T(o,e,n){let i,a=typeof e=="number"?e:Hn(e)?e.toNumber():new Proxy(e,{get(m,l){if(!i){let d=Reflect.get(m,"count");i=Hn(d)?d.toNumber():d,Reflect.set(m,"count",i)}return Reflect.get(m,l)},set(m,l,d){return l==="count"&&(i=d),Reflect.set(m,l,d)}});return Xn(o,a,n)}var It=y([r("mint"),r("owner"),t("amount"),Q("delegateOption"),r("delegate"),p("state"),Q("isNativeOption"),t("isNative"),t("delegatedAmount"),Q("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as Sg,SystemProgram as xg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Cg}from"@solana/spl-token";import{PublicKey as Ci}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ri}from"@solana/spl-token";function ce(o,e,n){return J([o.toBuffer(),(n!=null?n:Ri).toBuffer(),e.toBuffer()],new Ci("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as R}from"@solana/web3.js";var to=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),no=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),oo=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),en=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Wm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Li=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),io=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ro=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),qm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Oi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ao=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ni=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),so=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Um=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Fi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),vi=new R("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Vi=new R("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),_i=new R("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ei=new R("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),tn=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Di=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Gm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Wi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),qi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ui=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),zm=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ym=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Xm=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Qm=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Zm=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),it={IDO_PROGRAM_ID_V1:vi,IDO_PROGRAM_ID_V2:Vi,IDO_PROGRAM_ID_V3:_i,IDO_PROGRAM_ID_V4:Ei};var Ie={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import Eg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Yy,TOKEN_2022_PROGRAM_ID as Xy,TOKEN_PROGRAM_ID as Qy}from"@solana/spl-token";import{PublicKey as Hy}from"@solana/web3.js";import $y from"bn.js";import eb from"decimal.js";import{TOKEN_PROGRAM_ID as cd}from"@solana/spl-token";import{PublicKey as pd}from"@solana/web3.js";var Gi=y([Q("mintAuthorityOption"),r("mintAuthority"),t("supply"),p("decimals"),p("isInitialized"),Q("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as fy,TOKEN_2022_PROGRAM_ID as yy,TOKEN_PROGRAM_ID as by}from"@solana/spl-token";import{Keypair as Ay,PublicKey as wy,SystemProgram as Ty,TransactionInstruction as hy}from"@solana/web3.js";import By from"bn.js";import q from"bn.js";var Ce=new q(1).shln(64);var zi=new q(1).shln(128),nn=new q(1).shln(64).subn(1),Yi=new q(1).shln(128).subn(1);var De=new q("4295048016"),We=new q("79226673521066979257578248091"),Xi=new q("59543866431248"),Qi=new q("184467440737095516"),Zi=new q("15793534762490258745");var on=60,Bd=new q("18446743708227953217"),Hi=[{bit:0,factor:new q("fffcb933bd6fb800",16)},{bit:1,factor:new q("fff97272373d4000",16)},{bit:2,factor:new q("fff2e50f5f657000",16)},{bit:3,factor:new q("ffe5caca7e10f000",16)},{bit:4,factor:new q("ffcb9843d60f7000",16)},{bit:5,factor:new q("ff973b41fa98e800",16)},{bit:6,factor:new q("ff2ea16466c9b000",16)},{bit:7,factor:new q("fe5dee046a9a3800",16)},{bit:8,factor:new q("fcbe86c7900bb000",16)},{bit:9,factor:new q("f987a7253ac65800",16)},{bit:10,factor:new q("f3392b0822bb6000",16)},{bit:11,factor:new q("e7159475a2caf000",16)},{bit:12,factor:new q("d097f3bdfd2f2000",16)},{bit:13,factor:new q("a9f746462d9f8000",16)},{bit:14,factor:new q("70d869a156f31c00",16)},{bit:15,factor:new q("31be135f97ed3200",16)},{bit:16,factor:new q("9aa508b5b85a500",16)},{bit:17,factor:new q("5d6af8dedc582c",16)},{bit:18,factor:new q("2216e584f5fa",16)}];var rt=3,uo=100;var co=10,lo=100,St=14;var te=new q(0),qe=new q(1),Sd=new q(-1);var xd=new q("18446744073700000000");var ji=y([V(8),p("bump"),ee("index"),r("owner"),Q("protocolFeeRate"),Q("tradeFeeRate"),ee("tickSpacing"),Q("fundFeeRate"),T(Q(),1),r("fundOwner"),T(t(),3)]),$i=y([Q("blockTimestamp"),_e("tickCumulative"),T(t(),4)]),mo=y([V(8),de("initialized"),t("recentEpoch"),ee("observationIndex"),r("poolId"),T($i,uo,"observations"),T(t(),4)]),Ji=y([ee("filterPeriod"),ee("decayPeriod"),ee("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),fe("tickSpacingIndexReference"),Q("volatilityReference"),Q("volatilityAccumulator"),t("lastUpdateTimestamp"),T(p(),46)]),er=y([p("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),F("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),F("growthGlobalX64")]),rn=y([V(8),p("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),p("mintDecimalsA"),p("mintDecimalsB"),ee("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),fe("tickCurrent"),Q(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),T(F(),4),p("status"),p("feeOn"),V(6),T(er,rt,"rewardInfos"),V(8*16,"tickArrayBitmap"),T(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Ji.replicate("dynamicFeeInfo"),T(t(),46)]),tr=y([F("growthInsideLastX64"),t("rewardAmountOwed")]),nr=y([V(8),p("bump"),r("nftMint"),r("poolId"),fe("tickLower"),fe("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),T(tr,rt,"rewardInfos"),t("recentEpoch"),T(t(),7)]),Ld=y([V(8),p("bump"),r("poolId"),fe("tickLower"),fe("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),T(F(),rt,"rewardGrowthInside"),t("recentEpoch"),T(t(),7)]),or=y([fe("tick"),$n("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),T(F(),rt,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),F("unfilledRatioX64"),T(Q(),3)]),po=y([V(8),r("poolId"),fe("startTickIndex"),T(or,on,"ticks"),p("initializedTickCount"),t("recentEpoch"),T(p(),107)]),ir=y([V(8),p("bump"),T(r(),co,"operationOwners"),T(r(),lo,"whitelistMints")]),rr=y([V(8),r("poolId"),r("owner"),fe("tick"),de("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),F("unfilledRatioX64"),T(t(),4)]),fo=y([V(8),r("poolId"),V(8*8*St,"positiveTickArrayBitmap"),V(8*8*St,"negativeTickArrayBitmap")]),Od=y([V(8),ee("index"),ee("filterPeriod"),ee("decayPeriod"),ee("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),T(t(),8)]),ar=y([V(8),r("wallet"),p("nonceIndex"),t("orderNonce"),T(t(),4)]),Nd=y([t(),p("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),T(t(),8)]),sr=y([V(8),p("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),T(t(),8)]);import vd from"bn.js";var Xd=Buffer.from("amm_config","utf8"),ur=Buffer.from("pool","utf8"),cr=Buffer.from("pool_vault","utf8"),Qd=Buffer.from("pool_reward_vault","utf8"),Zd=Buffer.from("position","utf8"),Hd=Buffer.from("tick_array","utf8"),jd=Buffer.from("operation","utf8"),$d=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Jd=Buffer.from("observation","utf8"),ep=Buffer.from("support_mint","utf8"),tp=Buffer.from("dynamic_fee_config","utf8");var np=Buffer.from("locked_position","utf8");import{sha256 as Br}from"js-sha256";import lr from"bn.js";import ap from"decimal.js";var up=new lr(1).shln(256).subn(1);import Sp from"bn.js";import yp from"bn.js";import gp from"decimal.js";import Mp from"bn.js";import vp from"decimal.js";import{PublicKey as Af}from"@solana/web3.js";import kf from"bn.js";import{TOKEN_2022_PROGRAM_ID as Cf}from"@solana/spl-token";import Nf from"decimal.js";import uf from"bn.js";import Qp from"bn.js";import qf from"bn.js";function oe(o){let e=`global:${o}`;return Buffer.from(Br.digest(e)).slice(0,8)}mo.span;var Ny=W("Raydium_Clmm"),My={createPool:oe("create_pool"),createCustomizablePool:oe("create_customizable_pool"),openPositionV2:oe("open_position_v2"),openPositionWithToken22Nft:oe("open_position_with_token22_nft"),closePosition:oe("close_position"),increaseLiquidityV2:oe("increase_liquidity_v2"),decreaseLiquidityV2:oe("decrease_liquidity_v2"),initializeReward:oe("initialize_reward"),setRewardParams:oe("set_reward_params"),updateRewardInfos:oe("update_