UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 83.6 kB
var No=Object.defineProperty,Mo=Object.defineProperties;var Fo=Object.getOwnPropertyDescriptors;var ct=Object.getOwnPropertySymbols;var Pn=Object.prototype.hasOwnProperty,An=Object.prototype.propertyIsEnumerable;var gn=(o,e,n)=>e in o?No(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,O=(o,e)=>{for(var n in e||(e={}))Pn.call(e,n)&&gn(o,n,e[n]);if(ct)for(var n of ct(e))An.call(e,n)&&gn(o,n,e[n]);return o},W=(o,e)=>Mo(o,Fo(e));var me=(o,e)=>{var n={};for(var i in o)Pn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&ct)for(var i of ct(o))e.indexOf(i)<0&&An.call(o,i)&&(n[i]=o[i]);return n};var U={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{TOKEN_PROGRAM_ID as Lo}from"@solana/spl-token";import{PublicKey as at}from"@solana/web3.js";import st from"bn.js";import{Keypair as Da,PublicKey as Wa}from"@solana/web3.js";import CR from"bn.js";import{PublicKey as Vo}from"@solana/web3.js";import{get as wn,set as vo}from"lodash";var Nt=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}},kn={},_o={};function E(o){let e=wn(kn,o);if(!e){let n=wn(_o,o);e=new Nt({name:o,logLevel:n}),vo(kn,o,e)}return e}import{MINT_SIZE as ts,TOKEN_PROGRAM_ID as ns,getTransferFeeConfig as os,unpackMint as is}from"@solana/spl-token";var Mt=E("Raydium_accountInfo_util");async function be(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=O({batchRequest:!1},n),l=Ft(e,c),m=new Array(l.length).fill([]);if(i){let y=l.map(g=>{let B=o._buildArgs([g.map(T=>T.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:B}}),k=Ft(y,10);m=(await(await Promise.all(k.map(async g=>await o._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(B=>{if(B){let{data:T,executable:L,lamports:w,owner:P,rentEpoch:x}=B;return T.length!==2&&T[1]!=="base64"&&Mt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:L,lamports:w,owner:new Vo(P),rentEpoch:x}}return null})))}else try{m=await Promise.all(l.map(y=>o.getMultipleAccountsInfo(y,a)))}catch(y){y instanceof Error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return m.flat()}import Ke from"bn.js";import RC from"decimal.js";import Xo from"big.js";import ks from"bn.js";import Eo from"toformat";var Do=Eo,ze=Do;import mt from"big.js";import qo from"bn.js";import Uo from"decimal.js-light";import Xe from"bn.js";var Tn=9007199254740991;function ie(o){let e=E("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Tn||o<=-Tn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Xe(0))}var lt=E("module/fraction"),vt=ze(mt),Ye=ze(Uo),Go={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},zo={[0]:mt.roundDown,[1]:mt.roundHalfUp,[2]:mt.roundUp},z=class{constructor(e,n=new qo(1)){this.numerator=ie(e),this.denominator=ie(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new z(this.denominator,this.numerator)}add(e){let n=e instanceof z?e:new z(ie(e));return this.denominator.eq(n.denominator)?new z(this.numerator.add(n.numerator),this.denominator):new z(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof z?e:new z(ie(e));return this.denominator.eq(n.denominator)?new z(this.numerator.sub(n.numerator),this.denominator):new z(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof z?e:new z(ie(e));return new z(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof z?e:new z(ie(e));return new z(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||lt.logWithError(`${e} is not an integer.`),e<=0&&lt.logWithError(`${e} is not positive.`),Ye.set({precision:e+1,rounding:Go[i]});let a=new Ye(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)||lt.logWithError(`${e} is not an integer.`),e<0&&lt.logWithError(`${e} is negative.`),vt.DP=e,vt.RM=zo[i]||1,new vt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Rs=E("Raydium_amount"),Ls=ze(Xo);import{PublicKey as Ho}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hn}from"@solana/spl-token";var dt={chainId:101,address:Ho.default.toBase58(),programId:hn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:hn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Vt}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as In,SYSVAR_RENT_PUBKEY as Qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zo}from"@solana/spl-token";function Re({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var jo=[Re({pubkey:Zo,isWritable:!1}),Re({pubkey:In.programId,isWritable:!1}),Re({pubkey:Qo,isWritable:!1})];function Bn({publicKey:o,transformSol:e}){let n=xn(o.toString());if(n instanceof Y)return e&&n.equals(he)?ge:n;if(e&&n.toString()===he.toBase58())return ge;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function xn(o){try{return new Y(o)}catch{return o}}var _t=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),He=new Y("SysvarRent111111111111111111111111111111111"),Es=new Y("SysvarC1ock11111111111111111111111111111111"),pt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$o=new Y("Sysvar1nstructions1111111111111111111111111"),Jo=In.programId,Ds=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ws=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),qs=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Us=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Gs=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),zs=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Xs=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ys=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Hs=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Qs=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Zs=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new Y("So11111111111111111111111111111111111111112"),he=Y.default;var Et=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===he.toBase58()||e instanceof Vt&&he.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Vt(de.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=c?Vt.default:Bn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},te=Et;te.WSOL=new Et(W(O({},de),{mint:de.address}));var Dt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},ft=Dt;ft.SOL=new Dt(dt);import ei from"bn.js";var uu=new z(new ei(100));var fu=E("Raydium_price");import{merge as OK}from"lodash";import hu from"axios";var Sn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},ti=W(O({},Sn),{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 Xu=E("Raydium_Api");import{PublicKey as Zl,SystemProgram as jl}from"@solana/web3.js";import{AccountLayout as nm,createAssociatedTokenAccountIdempotentInstruction as om,TOKEN_PROGRAM_ID as im,TOKEN_2022_PROGRAM_ID as rm}from"@solana/spl-token";import{PublicKey as Fe,sendAndConfirmTransaction as Xt,SystemProgram as si,Transaction as je,TransactionMessage as $e,VersionedTransaction as Je}from"@solana/web3.js";import ui from"axios";import{PublicKey as Wt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function qt({connection:o,address:e,cluster:n="mainnet"}){let i=await be(o,[...new Set(e.map(c=>c.toString()))].map(c=>new Wt(c))),a={};for(let c=0;c<e.length;c++){let l=i[c],m=e[c];if(!l)continue;let y=new Ne({key:m,state:Ne.deserialize(l.data)});a[m.toString()]=y,n==="devnet"?Oe[m.toString()]=y:Le[m.toString()]=y}return a}var Le={},Ut=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[e])return Le;let n=new Wt(e),i=await o.getAccountInfo(n);return i&&(Le[e]=new Ne({key:n,state:Ne.deserialize(i.data)})),Le},Oe={},Gt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[e])return Oe;let n=new Wt(e),i=await o.getAccountInfo(n);return i&&(Oe[e]=new Ne({key:n,state:Ne.deserialize(i.data)})),Oe};import{ComputeBudgetProgram as Kn,Keypair as Rn,PublicKey as ni,Transaction as Ln,TransactionMessage as oi,VersionedTransaction as On}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ii}from"@solana/spl-token";var Cn=E("Raydium_txUtil"),Nn=1644;function yt(o){let e=[],n=[];return o.microLamports&&(e.push(Kn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(U.SetComputeUnitPrice)),o.units&&(e.push(Kn.setComputeUnitLimit({units:o.units})),n.push(U.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Me(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 bt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function zt(o,e){o.length<1&&Cn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Cn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Ln;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Nn}catch{return!1}}function pe(o,e){let[n,i]=ni.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function Qe({instructions:o,payer:e,signers:n}){return zt(o,[e,...n])}function Ze({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=Rn.generate().publicKey.toString()}){let c=new oi({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new On(c).serialize()).toString("base64").length<Nn}catch{return!1}}var ri=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ai=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof On&&(e=ri(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ie(o){let e=[];return o.forEach(n=>{n instanceof Ln&&(n.recentBlockhash||(n.recentBlockhash=ii.toBase58()),n.feePayer||(n.feePayer=Rn.generate().publicKey)),e.push(ai(n))}),console.log("simulate tx string:",e),e}var gt=2e3,Pt=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 ui.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}=yt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(si.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Fe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(U.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:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(m=>m!==Fe.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(W(O({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new je;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 b;let{recentBlockHash:c,skipPreflight:l=!0,sendAndConfirm:m,notSendToRpc:y}=a||{},k=c!=null?c:await Me(this.connection,this.blockhashCommitment);if(n.recentBlockhash=k,this.signers.length&&n.sign(...this.signers),Ie([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:m?await Xt(this.connection,n,this.signers.find(B=>B.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 g=await this.signAllTransactions([n]);if(this.signers.length)for(let B of g)try{B.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:l}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var k;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),c=n.filter(b=>b.transaction.instructions.length>0),l=[a,...c.map(b=>b.transaction)],m=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(k=this.owner)!=null&&k.signer&&m.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:m,instructionTypes:y,execute:async b=>{var x;let{sequentially:g,onTxUpdate:B,skipTxCount:T=0,recentBlockHash:L,skipPreflight:w=!0}=b||{},P=L!=null?L:await Me(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(g){let S=[],F=0;for(let v of l){if(++F,F<=T)continue;let A=await Xt(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});S.push(A)}return{txIds:S,signedTxs:l}}return{txIds:await await Promise.all(l.map(async S=>(S.recentBlockhash=P,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:w})))),signedTxs:l}}if(this.signAllTransactions){let S=l.map((v,A)=>(v.recentBlockhash=P,m[A].length&&v.sign(...m[A]),v));Ie(S);let F=await this.signAllTransactions(S);if(g){let v=0,A=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:w});A.push({txId:I,status:"sent",signedTx:F[v]}),B==null||B([...A]),v++;let C=!1,R=null,_=null,oe=G=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let V=A.findIndex(H=>H.txId===I);if(V>-1){if(A[V].status==="error"||A[V].status==="success")return;A[V].status=G.err?"error":"success"}B==null||B([...A]),G.err||h()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var G;if(C){clearInterval(R);return}try{let V=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(C=!0,clearInterval(R),oe({err:((G=V.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",I))}catch(V){C=!0,clearInterval(R),console.error("getTransaction timeout:",V,I)}},gt)),_=this.connection.onSignature(I,G=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,oe(G)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:A.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let A=0;A<F.length;A+=1){let h=await this.connection.sendRawTransaction(F[A].serialize(),{skipPreflight:w});v.push(h)}return{txIds:v,signedTxs:F}}}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 w;let L=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=L,l=me(L,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=O(O({},this.cluster==="devnet"?await Gt(this.connection):await Ut(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),k=[];for(let P of y)m[P]===void 0&&k.push(new Fe(P));let b=await qt({connection:this.connection,address:k});for(let[P,x]of Object.entries(b))m[P]=x;let g=a?Fe.default.toBase58():c!=null?c:await Me(this.connection,this.blockhashCommitment),B=new $e({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new Je(B);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var v;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:F}=P||{};if(Ie([T]),(v=this.owner)!=null&&v.isKeyPair){let A=await this.connection.sendTransaction(T,{skipPreflight:x});return S&&await bt(this.connection,A),{txId:A,signedTx:T}}if(this.signAllTransactions){let A=await this.signAllTransactions([T]);if(this.signers.length)for(let h of A)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(A[0],{skipPreflight:x}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var k;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),c=n.filter(b=>b.builder.instructions.length>0),l=[a,...c.map(b=>b.transaction)],m=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(k=this.owner)!=null&&k.signer&&m.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(b,g)=>{b.sign(m[g])}),{builder:this,transactions:l,signers:m,instructionTypes:y,buildProps:i,execute:async b=>{var w;let{sequentially:g,onTxUpdate:B,recentBlockHash:T,skipPreflight:L=!0}=b||{};if(T&&l.forEach(P=>P.message.recentBlockhash=T),Ie(l),(w=this.owner)!=null&&w.isKeyPair){if(g){let P=[];for(let x of l){let S=await this.connection.sendTransaction(x,{skipPreflight:L});await bt(this.connection,S),P.push(S)}return{txIds:P,signedTxs:l}}return{txIds:await Promise.all(l.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:L}))),signedTxs:l}}if(this.signAllTransactions){let P=await this.signAllTransactions(l);if(g){let x=0,S=[],F=async()=>{if(!P[x])return;let v=await this.connection.sendTransaction(P[x],{skipPreflight:L});S.push({txId:v,status:"sent",signedTx:P[x]}),B==null||B([...S]),x++;let A=!1,h=null,I=null,C=R=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let _=S.findIndex(oe=>oe.txId===v);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=R.err?"error":"success"}B==null||B([...S]),R.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var R;if(A){clearInterval(h);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(A=!0,clearInterval(h),C({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){A=!0,clearInterval(h),console.error("getTransaction timeout:",_,v)}},gt)),I=this.connection.onSignature(v,R=>{if(A){this.connection.removeSignatureListener(I);return}A=!0,C(R)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:P}}else{let x=[];for(let S=0;S<P.length;S+=1){let F=await this.connection.sendTransaction(P[S],{skipPreflight:L});x.push(F)}return{txIds:x,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var B;let g=e||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=me(g,["splitIns","computeBudgetConfig"]),c=i?yt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((T,L)=>W(O({},T),{[L.publicKey.toBase58()]:L}),{}),m=[],y=[],k=[],b=0;if(this.allInstructions.forEach(T=>{let L=[...k,T],w=i?[...c.instructions,...L]:L,x=[...new Set(L.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(S=>new Fe(S));if(T!==n[b]&&k.length<12&&(Qe({instructions:w,payer:this.feePayer,signers:x})||Qe({instructions:L,payer:this.feePayer,signers:x})))k.push(T);else{if(k.length===0)throw Error("item ins too big");b+=T===n[b]?1:0,Qe({instructions:i?[...c.instructions,...k]:[...k],payer:this.feePayer,signers:x})?m.push(new je().add(...c.instructions,...k)):m.push(new je().add(...k)),y.push(Array.from(new Set(k.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(S=>l[S]).filter(S=>S!==void 0)),k=[T]}}),k.length>0){let L=[...new Set(k.map(w=>w.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(w=>l[w]).filter(w=>w!==void 0);Qe({instructions:i?[...c.instructions,...k]:[...k],payer:this.feePayer,signers:L.map(w=>w.publicKey)})?m.push(new je().add(...c.instructions,...k)):m.push(new je().add(...k)),y.push(L)}return m.forEach(T=>T.feePayer=this.feePayer),(B=this.owner)!=null&&B.signer&&y.forEach(T=>{T.some(L=>L.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:m,signers:y,instructionTypes:this.instructionTypes,execute:async T=>{var v;let{sequentially:L,onTxUpdate:w,skipTxCount:P=0,recentBlockHash:x,skipPreflight:S=!0}=T||{},F=x!=null?x:await Me(this.connection,this.blockhashCommitment);if(m.forEach(async(A,h)=>{A.recentBlockhash=F,y[h].length&&A.sign(...y[h])}),Ie(m),(v=this.owner)!=null&&v.isKeyPair){if(L){let A=0,h=[];for(let I of m){if(++A,A<=P){h.push("tx skipped");continue}let C=await Xt(this.connection,I,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});h.push(C)}return{txIds:h,signedTxs:m}}return{txIds:await Promise.all(m.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:S}))),signedTxs:m}}if(this.signAllTransactions){let A=await this.signAllTransactions(m.slice(P,m.length)),h=[...m.slice(0,P),...A];if(L){let I=0,C=[],R=async()=>{if(!h[I])return;I<P&&(C.push({txId:"",status:"success",signedTx:h[I]}),w==null||w([...C]),I++,R());let _=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:S});C.push({txId:_,status:"sent",signedTx:h[I]}),w==null||w([...C]),I++;let oe=!1,G=null,V=null,H=q=>{G!==null&&clearInterval(G),V!==null&&this.connection.removeSignatureListener(V);let Q=C.findIndex(J=>J.txId===_);if(Q>-1){if(C[Q].status==="error"||C[Q].status==="success")return;C[Q].status=q.err?"error":"success"}w==null||w([...C]),q.err||R()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var q;if(oe){clearInterval(G);return}try{let Q=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});Q&&(oe=!0,clearInterval(G),H({err:((q=Q.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",_))}catch(Q){oe=!0,clearInterval(G),console.error("getTransaction timeout:",Q,_)}},gt)),V=this.connection.onSignature(_,q=>{if(oe){this.connection.removeSignatureListener(V);return}oe=!0,H(q)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:C.map(_=>_.txId),signedTxs:h}}else{let I=[];for(let C=0;C<h.length;C+=1){let R=await this.connection.sendRawTransaction(h[C].serialize(),{skipPreflight:S});I.push(R)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:l=12}=F,m=me(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=O(O({},this.cluster==="devnet"?await Gt(this.connection):await Ut(this.connection)),a),k=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let A of k)y[A]===void 0&&b.push(new Fe(A));let g=await qt({connection:this.connection,address:b});for(let[A,h]of Object.entries(g))y[A]=h;let B=n?yt(n):{instructions:[],instructionTypes:[]},T=await Me(this.connection,this.blockhashCommitment),L=this.signers.reduce((A,h)=>W(O({},A),{[h.publicKey.toBase58()]:h}),{}),w=[],P=[],x=[],S=0;if(this.allInstructions.forEach(A=>{let h=[...x,A],I=n?[...B.instructions,...h]:h;if(A!==i[S]&&x.length<l&&(Ze({instructions:I,payer:this.feePayer,lookupTableAddressAccount:y})||Ze({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})))x.push(A);else{if(x.length===0)throw Error("item ins too big");S+=A===i[S]?1:0;let C={};for(let R of[...new Set(k)])y[R]!==void 0&&(C[R]=y[R]);if(n&&Ze({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let R=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new Je(R))}else{let R=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new Je(R))}P.push(Array.from(new Set(x.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>L[R]).filter(R=>R!==void 0)),x=[A]}}),x.length>0){let h=[...new Set(x.map(I=>I.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(I=>L[I]).filter(I=>I!==void 0);if(n&&Ze({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let I=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new Je(I))}else{let I=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new Je(I))}P.push(h)}return(v=this.owner)!=null&&v.signer&&P.forEach(A=>{A.some(h=>h.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),w.forEach((A,h)=>{A.sign(P[h])}),{builder:this,transactions:w,buildProps:e,signers:P,instructionTypes:this.instructionTypes,execute:async A=>{var oe;let{sequentially:h,onTxUpdate:I,skipTxCount:C=0,recentBlockHash:R,skipPreflight:_=!0}=A||{};if(w.map(async(G,V)=>{P[V].length&&G.sign(P[V]),R&&(G.message.recentBlockhash=R)}),Ie(w),(oe=this.owner)!=null&&oe.isKeyPair){if(h){let G=0,V=[];for(let H of w){if(++G,G<=C){console.log("skip tx: ",G),V.push("tx skipped");continue}let q=await this.connection.sendTransaction(H,{skipPreflight:_});await bt(this.connection,q),V.push(q)}return{txIds:V,signedTxs:w}}return{txIds:await Promise.all(w.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let G=await this.signAllTransactions(w.slice(C,w.length)),V=[...w.slice(0,C),...G];if(h){let H=0,q=[],Q=async()=>{if(!V[H])return;if(H<C){q.push({txId:"",status:"success",signedTx:V[H]}),I==null||I([...q]),H++,Q();return}let J=await this.connection.sendTransaction(V[H],{skipPreflight:_});q.push({txId:J,status:"sent",signedTx:V[H]}),I==null||I([...q]),H++;let ke=!1,Ce=null,ut=null,bn=Te=>{Ce!==null&&clearInterval(Ce),ut!==null&&this.connection.removeSignatureListener(ut);let ye=q.findIndex(Oo=>Oo.txId===J);if(ye>-1){if(q[ye].status==="error"||q[ye].status==="success")return;q[ye].status=Te.err?"error":"success"}I==null||I([...q]),Te.err||Q()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var Te;if(ke){clearInterval(Ce);return}try{let ye=await this.connection.getTransaction(J,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(ke=!0,clearInterval(Ce),bn({err:((Te=ye.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",J))}catch(ye){ke=!0,clearInterval(Ce),console.error("getTransaction timeout:",ye,J)}},gt)),ut=this.connection.onSignature(J,Te=>{if(ke){this.connection.removeSignatureListener(ut);return}ke=!0,bn(Te)},"confirmed"),this.connection.getSignatureStatus(J)};return Q(),{txIds:[],signedTxs:V}}else{let H=[];for(let q=0;q<V.length;q+=1){let Q=await this.connection.sendTransaction(V[q],{skipPreflight:_});H.push(Q)}return{txIds:H,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var Yt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),re=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=E(n)}createTxBuilder(e){return this.scope.checkOwner(),new Pt({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(Yt(e))}logInfo(...e){this.logger.info(Yt(e))}logAndCreateError(...e){let n=Yt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Kl,SystemProgram as Rl}from"@solana/web3.js";import Nl from"bn.js";import{createCloseAccountInstruction as _l,createInitializeAccountInstruction as Vl,createTransferInstruction as El,TOKEN_PROGRAM_ID as Dl}from"@solana/spl-token";import{PublicKey as wi}from"@solana/web3.js";import Vn,{isBN as En}from"bn.js";import{bits as ci,BitStructure as Nc,blob as li,Blob as Mc,cstr as Fc,f32 as vc,f32be as _c,f64 as Vc,f64be as Ec,greedy as Dc,Layout as mi,ns64 as Wc,ns64be as qc,nu64 as Uc,nu64be as Gc,offset as di,s16 as zc,s16be as Xc,s24 as Yc,s24be as Hc,s32 as pi,s32be as Qc,s40 as Zc,s40be as jc,s48 as $c,s48be as Jc,s8 as el,seq as fi,struct as tl,Structure as yi,u16 as bi,u16be as nl,u24 as ol,u24be as il,u32 as gi,u32be as rl,u40 as al,u40be as sl,u48 as ul,u48be as cl,u8 as Pi,UInt as Ai,union as ll,Union as ml,unionLayoutDiscriminator as dl,utf8 as pl}from"@solana/buffer-layout";var At=mi,Mn=yi;var Ht=Ai;var Fn=Pi,j=bi;var wt=gi;var ue=pi;var vn=fi;var M=li;var Qt=ci,_n=di;var xe=class extends At{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new Vn(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 Vn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},kt=class extends At{constructor(n){super(8,n);this._lower=Qt(wt(),!1),this._upper=Qt(wt(),!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),c=this._upper.decode(n,i+this._lower.span);return O(O({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function d(o){return new Ht(1,o)}function X(o){return new Ht(4,o)}function t(o){return new xe(8,!1,o)}function N(o){return new xe(16,!1,o)}function Dn(o){return new xe(1,!0,o)}function ve(o){return new xe(8,!0,o)}function Wn(o){return new xe(16,!0,o)}var et=class extends At{constructor(n,i,a,c){super(n.span,c);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 et(M(32),e=>new wi(e),e=>e.toBuffer(),o)}function ae(o){return new et(Fn(),ki,Ti,o)}function ki(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ti(o){return o?1:0}function qn(o,e){let n=wt("length"),i=p([n,f(o,_n(n,-n.span),"values")]);return new et(i,({values:a})=>a,a=>({values:a}),e)}var Zt=class extends Mn{decode(e,n){return super.decode(e,n)}};function p(o,e,n){return new Zt(o,e,n)}function f(o,e,n){let i,a=typeof e=="number"?e:En(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let m=Reflect.get(c,"count");i=En(m)?m.toNumber():m,Reflect.set(c,"count",i)}return Reflect.get(c,l)},set(c,l,m){return l==="count"&&(i=m),Reflect.set(c,l,m)}});return vn(o,a,n)}var Tt=p([r("mint"),r("owner"),t("amount"),X("delegateOption"),r("delegate"),d("state"),X("isNativeOption"),t("isNative"),t("delegatedAmount"),X("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as jg,SystemProgram as $g}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as eP}from"@solana/spl-token";import{PublicKey as pm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ym}from"@solana/spl-token";import{PublicKey as K}from"@solana/web3.js";var Gn=new K("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),zn=new K("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Xn=new K("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),jt=new K("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Am=new K("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ii=new K("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Yn=new K("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Hn=new K("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),wm=new K("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Bi=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qn=new K("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),xi=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Si=new K("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Zn=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),km=new K("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ki=new K("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),$t=new K("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ci=new K("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Tm=new K("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ri=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Li=new K("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Oi=new K("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),hm=new K("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Im=new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Bm=new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),xm=new K("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Sm=new K("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new K("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new K("Ray1111111111111111111111111111111111111111"),AMM_V4:new K("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new K("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new K("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new K("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new K("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new K("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new K("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new K("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new K("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new K("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:K.default,Router:new K("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new K("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new K("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new K("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new K("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new K("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new K("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new K("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new K("Ray1111111111111111111111111111111111111111")};import lP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ky,TOKEN_2022_PROGRAM_ID as Cy,TOKEN_PROGRAM_ID as Ry}from"@solana/spl-token";import{PublicKey as Oy}from"@solana/web3.js";import My from"bn.js";import vy from"decimal.js";import{TOKEN_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as zm}from"@solana/web3.js";var Ni=p([X("mintAuthorityOption"),r("mintAuthority"),t("supply"),d("decimals"),d("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Zf,TOKEN_2022_PROGRAM_ID as jf,TOKEN_PROGRAM_ID as $f}from"@solana/spl-token";import{Keypair as ty,PublicKey as ny,SystemProgram as iy,TransactionInstruction as ry}from"@solana/web3.js";import sy from"bn.js";import D from"bn.js";var Ve=new D(1).shln(64);var Mi=new D(1).shln(128),Jt=new D(1).shln(64).subn(1),Fi=new D(1).shln(128).subn(1);var Ee=new D("4295048016"),De=new D("79226673521066979257578248091"),vi=new D("59543866431248"),_i=new D("184467440737095516"),Vi=new D("15793534762490258745");var en=60,od=new D("18446743708227953217"),Ei=[{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 tt=3,jn=100;var $n=10,Jn=100,ht=14;var Z=new D(0),We=new D(1),id=new D(-1);var rd=new D("18446744073700000000");var Di=p([M(8),d("bump"),j("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),j("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(t(),3)]),Wi=p([X("blockTimestamp"),ve("tickCumulative"),f(t(),4)]),eo=p([M(8),ae("initialized"),t("recentEpoch"),j("observationIndex"),r("poolId"),f(Wi,jn,"observations"),f(t(),4)]),qi=p([j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),t("lastUpdateTimestamp"),f(d(),46)]),Ui=p([d("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),N("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),N("growthGlobalX64")]),tn=p([M(8),d("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),j("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),ue("tickCurrent"),X(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(N(),4),d("status"),d("feeOn"),M(6),f(Ui,tt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),qi.replicate("dynamicFeeInfo"),f(t(),46)]),Gi=p([N("growthInsideLastX64"),t("rewardAmountOwed")]),zi=p([M(8),d("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(Gi,tt,"rewardInfos"),t("recentEpoch"),f(t(),7)]),cd=p([M(8),d("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(N(),tt,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),Xi=p([ue("tick"),Wn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),f(N(),tt,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),N("unfilledRatioX64"),f(X(),3)]),to=p([M(8),r("poolId"),ue("startTickIndex"),f(Xi,en,"ticks"),d("initializedTickCount"),t("recentEpoch"),f(d(),107)]),Yi=p([M(8),d("bump"),f(r(),$n,"operationOwners"),f(r(),Jn,"whitelistMints")]),Hi=p([M(8),r("poolId"),r("owner"),ue("tick"),ae("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),N("unfilledRatioX64"),f(t(),4)]),no=p([M(8),r("poolId"),M(8*8*ht,"positiveTickArrayBitmap"),M(8*8*ht,"negativeTickArrayBitmap")]),ld=p([M(8),j("index"),j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(t(),8)]),Qi=p([M(8),r("wallet"),d("nonceIndex"),t("orderNonce"),f(t(),4)]),md=p([t(),d("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(t(),8)]),Zi=p([M(8),d("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),f(t(),8)]);import fd from"bn.js";var Bd=Buffer.from("amm_config","utf8"),ji=Buffer.from("pool","utf8"),$i=Buffer.from("pool_vault","utf8"),xd=Buffer.from("pool_reward_vault","utf8"),Sd=Buffer.from("position","utf8"),Kd=Buffer.from("tick_array","utf8"),Cd=Buffer.from("operation","utf8"),Rd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ld=Buffer.from("observation","utf8"),Od=Buffer.from("support_mint","utf8"),Nd=Buffer.from("dynamic_fee_config","utf8");var Md=Buffer.from("locked_position","utf8");import{sha256 as pr}from"js-sha256";import Ji from"bn.js";import Vd from"decimal.js";var Dd=new Ji(1).shln(256).subn(1);import ip from"bn.js";import Yd from"bn.js";import Qd from"decimal.js";import cp from"bn.js";import mp from"decimal.js";import{PublicKey as jp}from"@solana/web3.js";import Jp from"bn.js";import{TOKEN_2022_PROGRAM_ID as uf,TOKEN_PROGRAM_ID as cf}from"@solana/spl-token";import pf from"decimal.js";import Dp from"bn.js";import Sp from"bn.js";import If from"bn.js";function ee(o){let e=`global:${o}`;return Buffer.from(pr.digest(e)).slice(0,8)}eo.span;var yy=E("Raydium_Clmm"),by={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as an}from"@solana/web3.js";var Pr=p([d("instruction")]),Ar=p([d("instruction")]),wr=p([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),N("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),f(t(),15,"padding")]),kr=p([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),N("p