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 Wa,PublicKey as qa}from"@solana/web3.js";import OR 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 ns,TOKEN_PROGRAM_ID as os,getTransferFeeConfig as is,unpackMint as rs}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 NC from"decimal.js";import Xo from"big.js";import Ts 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 Ls=E("Raydium_amount"),Os=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"),Ds=new Y("SysvarC1ock11111111111111111111111111111111"),pt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$o=new Y("Sysvar1nstructions1111111111111111111111111"),Jo=In.programId,Ws=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qs=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Us=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gs=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),zs=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xs=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ys=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Hs=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Qs=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Zs=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),js=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 cu=new z(new ei(100));var yu=E("Raydium_price");import{merge as FK}from"lodash";import Iu 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 Yu=E("Raydium_Api");import{PublicKey as jl,SystemProgram as $l}from"@solana/web3.js";import{AccountLayout as om,createAssociatedTokenAccountIdempotentInstruction as im,TOKEN_PROGRAM_ID as rm,TOKEN_2022_PROGRAM_ID as am}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 Cl,SystemProgram as Ll}from"@solana/web3.js";import Ml from"bn.js";import{createCloseAccountInstruction as Vl,createInitializeAccountInstruction as El,createTransferInstruction as Dl,TOKEN_PROGRAM_ID as Wl}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 Mc,blob as li,Blob as Fc,cstr as vc,f32 as _c,f32be as Vc,f64 as Ec,f64be as Dc,greedy as Wc,Layout as mi,ns64 as qc,ns64be as Uc,nu64 as Gc,nu64be as zc,offset as di,s16 as Xc,s16be as Yc,s24 as Hc,s24be as Qc,s32 as pi,s32be as Zc,s40 as jc,s40be as $c,s48 as Jc,s48be as el,s8 as tl,seq as fi,struct as nl,Structure as yi,u16 as bi,u16be as ol,u24 as il,u24be as rl,u32 as gi,u32be as al,u40 as sl,u40be as ul,u48 as cl,u48be as ll,u8 as Pi,UInt as Ai,union as ml,Union as dl,unionLayoutDiscriminator as pl,utf8 as fl}from"@solana/buffer-layout";var At=mi,Mn=yi;var Ht=Ai;var Fn=Pi,Z=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 tP,SystemProgram as nP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as iP}from"@solana/spl-token";import{PublicKey as fm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bm}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"),wm=new K("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ii=new K("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Yn=new K("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Hn=new K("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),km=new K("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Bi=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qn=new K("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),xi=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Si=new K("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Zn=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Tm=new K("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ki=new K("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),$t=new K("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ci=new K("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),hm=new K("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ri=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Li=new K("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Oi=new K("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Im=new K("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Bm=new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),xm=new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Sm=new K("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Km=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 fP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Oy,TOKEN_2022_PROGRAM_ID as Ny,TOKEN_PROGRAM_ID as My}from"@solana/spl-token";import{PublicKey as vy}from"@solana/web3.js";import Vy from"bn.js";import Dy from"decimal.js";import{TOKEN_PROGRAM_ID as qm}from"@solana/spl-token";import{PublicKey as Xm}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 ey,TOKEN_2022_PROGRAM_ID as ty,TOKEN_PROGRAM_ID as ny}from"@solana/spl-token";import{Keypair as ry,PublicKey as ay,SystemProgram as uy,TransactionInstruction as cy}from"@solana/web3.js";import my 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,id=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 j=new D(0),We=new D(1),rd=new D(-1);var ad=new D("18446744073700000000");var Di=p([M(8),d("bump"),Z("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Z("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"),Z("observationIndex"),r("poolId"),f(Wi,jn,"observations"),f(t(),4)]),qi=p([Z("filterPeriod"),Z("decayPeriod"),Z("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"),Z("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)]),ld=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")]),md=p([M(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(t(),8)]),Qi=p([M(8),r("wallet"),d("nonceIndex"),t("orderNonce"),f(t(),4)]),dd=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 yd from"bn.js";var xd=Buffer.from("amm_config","utf8"),$i=Buffer.from("pool","utf8"),Ji=Buffer.from("pool_vault","utf8"),Sd=Buffer.from("pool_reward_vault","utf8"),Kd=Buffer.from("position","utf8"),Cd=Buffer.from("tick_array","utf8"),Rd=Buffer.from("operation","utf8"),Ld=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Od=Buffer.from("observation","utf8"),Nd=Buffer.from("support_mint","utf8"),Md=Buffer.from("dynamic_fee_config","utf8"),Fd=Buffer.from("permission","utf8");var vd=Buffer.from("locked_position","utf8");import{sha256 as fr}from"js-sha256";import er from"bn.js";import Dd from"decimal.js";var qd=new er(1).shln(256).subn(1);import ap from"bn.js";import Qd from"bn.js";import jd from"decimal.js";import mp from"bn.js";import pp from"decimal.js";import{PublicKey as Jp}from"@solana/web3.js";import tf from"bn.js";import{TOKEN_2022_PROGRAM_ID as lf,TOKEN_PROGRAM_ID as mf}from"@solana/spl-token";import yf from"decimal.js";import qp from"bn.js";import Cp from"bn.js";import xf from"bn.js";function ee(o){let e=`global:${o}`;return Buffer.from(fr.digest(e)).slice(0,8)}eo.span;var Ay=E("Raydium_Clmm"),wy={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),createPermissionedPool:ee("create_permissioned_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as an}from"@solana/web3.js";var Ar=p([d("instruction")]),wr=p([d("instruction")]),kr=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")]),Tr=p(