UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 78 kB
var Io=Object.defineProperty,Bo=Object.defineProperties;var xo=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var dn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable;var mn=(o,e,n)=>e in o?Io(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,L=(o,e)=>{for(var n in e||(e={}))dn.call(e,n)&&mn(o,n,e[n]);if(at)for(var n of at(e))pn.call(e,n)&&mn(o,n,e[n]);return o},D=(o,e)=>Bo(o,xo(e));var me=(o,e)=>{var n={};for(var i in o)dn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&at)for(var i of at(o))e.indexOf(i)<0&&pn.call(o,i)&&(n[i]=o[i]);return n};import{Keypair as Fa,PublicKey as To}from"@solana/web3.js";import va from"bn.js";import{PublicKey as Co}from"@solana/web3.js";import{get as fn,set as So}from"lodash";var Ct=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(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}},yn={},Ko={};function V(o){let e=fn(yn,o);if(!e){let n=fn(Ko,o);e=new Ct({name:o,logLevel:n}),So(yn,o,e)}return e}import{MINT_SIZE as Qa,TOKEN_PROGRAM_ID as Za,getTransferFeeConfig as ja,unpackMint as $a}from"@solana/spl-token";var Rt=V("Raydium_accountInfo_util");async function ye(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=L({batchRequest:!1},n),l=Lt(e,c),m=new Array(l.length).fill([]);if(i){let y=l.map(g=>{let S=o._buildArgs([g.map(k=>k.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:S}}),A=Lt(y,10);m=(await(await Promise.all(A.map(async g=>await o._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(S=>{if(S){let{data:k,executable:N,lamports:w,owner:B,rentEpoch:K}=S;return k.length!==2&&k[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(k[0],"base64"),executable:N,lamports:w,owner:new Co(B),rentEpoch:K}}return null})))}else try{m=await Promise.all(l.map(y=>o.getMultipleAccountsInfo(y,a)))}catch(y){y instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return m.flat()}import Be from"bn.js";import qC from"decimal.js";import _o from"big.js";import ys from"bn.js";import Ro from"toformat";var Lo=Ro,Ue=Lo;import ut from"big.js";import No from"bn.js";import Mo from"decimal.js-light";import Ge from"bn.js";var bn=9007199254740991;function ne(o){let e=V("Raydium_parseBigNumberish");if(o instanceof Ge)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ge(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=bn||o<=-bn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Ge(String(o))):typeof o=="bigint"?new Ge(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Ge(0))}var st=V("module/fraction"),Ot=Ue(ut),ze=Ue(Mo),Fo={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},vo={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},U=class{constructor(e,n=new No(1)){this.numerator=ne(e),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(e){let n=e instanceof U?e:new U(ne(e));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof U?e:new U(ne(e));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof U?e:new U(ne(e));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof U?e:new U(ne(e));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||st.logWithError(`${e} is not an integer.`),e<=0&&st.logWithError(`${e} is not positive.`),ze.set({precision:e+1,rounding:Fo[i]});let a=new ze(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)||st.logWithError(`${e} is not an integer.`),e<0&&st.logWithError(`${e} is negative.`),Ot.DP=e,Ot.RM=vo[i]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Is=V("Raydium_amount"),Bs=Ue(_o);import{PublicKey as Eo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gn}from"@solana/spl-token";var ct={chainId:101,address:Eo.default.toBase58(),programId:gn.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:gn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Mt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as Pn,SYSVAR_RENT_PUBKEY as Do}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Wo}from"@solana/spl-token";function Se({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var qo=[Se({pubkey:Wo,isWritable:!1}),Se({pubkey:Pn.programId,isWritable:!1}),Se({pubkey:Do,isWritable:!1})];function An({publicKey:o,transformSol:e}){let n=wn(o.toString());if(n instanceof z)return e&&n.equals(ke)?be:n;if(e&&n.toString()===ke.toBase58())return be;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function wn(o){try{return new z(o)}catch{return o}}var Nt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new z("SysvarRent111111111111111111111111111111111"),Ns=new z("SysvarC1ock11111111111111111111111111111111"),lt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Uo=new z("Sysvar1nstructions1111111111111111111111111"),Go=Pn.programId,Ms=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Fs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),vs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),_s=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Vs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Es=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ds=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ws=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),qs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Us=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Gs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),ke=z.default;var Ft=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===ke.toBase58()||e instanceof Mt&&ke.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Mt(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?Mt.default:An({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},J=Ft;J.WSOL=new Ft(D(L({},de),{mint:de.address}));var vt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},mt=vt;mt.SOL=new vt(ct);import zo from"bn.js";var nu=new U(new zo(100));var uu=V("Raydium_price");import{merge as GK}from"lodash";import gu from"axios";var kn={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"},Xo=D(L({},kn),{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 Du=V("Raydium_Api");import{PublicKey as zl,SystemProgram as Xl}from"@solana/web3.js";import{AccountLayout as jl,createAssociatedTokenAccountIdempotentInstruction as $l,TOKEN_PROGRAM_ID as Jl,TOKEN_2022_PROGRAM_ID as em}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as qt,SystemProgram as $o,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as je}from"@solana/web3.js";import Jo from"axios";import{PublicKey as _t,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Vt({connection:o,address:e,cluster:n="mainnet"}){let i=await ye(o,[...new Set(e.map(c=>c.toString()))].map(c=>new _t(c))),a={};for(let c=0;c<e.length;c++){let l=i[c],m=e[c];if(!l)continue;let y=new Re({key:m,state:Re.deserialize(l.data)});a[m.toString()]=y,n==="devnet"?Ce[m.toString()]=y:Ke[m.toString()]=y}return a}var Ke={},Et=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[e])return Ke;let n=new _t(e),i=await o.getAccountInfo(n);return i&&(Ke[e]=new Re({key:n,state:Re.deserialize(i.data)})),Ke},Ce={},Dt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[e])return Ce;let n=new _t(e),i=await o.getAccountInfo(n);return i&&(Ce[e]=new Re({key:n,state:Re.deserialize(i.data)})),Ce};var Q={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Tn,Keypair as In,PublicKey as Yo,Transaction as Bn,TransactionMessage as Ho,VersionedTransaction as xn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qo}from"@solana/spl-token";var hn=V("Raydium_txUtil"),Sn=1644;function dt(o){let e=[],n=[];return o.microLamports&&(e.push(Tn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Q.SetComputeUnitPrice)),o.units&&(e.push(Tn.setComputeUnitLimit({units:o.units})),n.push(Q.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Le(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function pt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function Wt(o,e){o.length<1&&hn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&hn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Bn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Sn}catch{return!1}}function se(o,e){let[n,i]=Yo.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function Ye({instructions:o,payer:e,signers:n}){return Wt(o,[e,...n])}function He({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=In.generate().publicKey.toString()}){let c=new Ho({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new xn(c).serialize()).toString("base64").length<Sn}catch{return!1}}var Zo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),jo=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof xn&&(e=Zo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Te(o){let e=[];return o.forEach(n=>{n instanceof Bn&&(n.recentBlockhash||(n.recentBlockhash=Qo.toBase58()),n.feePayer||(n.feePayer=In.generate().publicKey)),e.push(jo(n))}),console.log("simulate tx string:",e),e}var ft=2e3,yt=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 Jo.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}=dt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push($o.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Q.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!==Oe.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(D(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new Qe;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||{},A=c!=null?c:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Te([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:m?await qt(this.connection,n,this.signers.find(S=>S.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 S of g)try{S.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 A;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(A=this.owner)!=null&&A.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 K;let{sequentially:g,onTxUpdate:S,skipTxCount:k=0,recentBlockHash:N,skipPreflight:w=!0}=b||{},B=N!=null?N:await Le(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(g){let x=[],F=0;for(let v of l){if(++F,F<=k)continue;let P=await qt(this.connection,v,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});x.push(P)}return{txIds:x,signedTxs:l}}return{txIds:await await Promise.all(l.map(async x=>(x.recentBlockhash=B,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:w})))),signedTxs:l}}if(this.signAllTransactions){let x=l.map((v,P)=>(v.recentBlockhash=B,m[P].length&&v.sign(...m[P]),v));Te(x);let F=await this.signAllTransactions(x);if(g){let v=0,P=[],T=async()=>{if(!F[v])return;let h=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:w});P.push({txId:h,status:"sent",signedTx:F[v]}),S==null||S([...P]),v++;let C=!1,R=null,_=null,ie=q=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let W=P.findIndex($=>$.txId===h);if(W>-1){if(P[W].status==="error"||P[W].status==="success")return;P[W].status=q.err?"error":"success"}S==null||S([...P]),q.err||T()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(C){clearInterval(R);return}try{let W=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(R),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",h))}catch(W){C=!0,clearInterval(R),console.error("getTransaction timeout:",W,h)}},ft)),_=this.connection.onSignature(h,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(h)};return await T(),{txIds:P.map(h=>h.txId),signedTxs:F}}else{let v=[];for(let P=0;P<F.length;P+=1){let T=await this.connection.sendRawTransaction(F[P].serialize(),{skipPreflight:w});v.push(T)}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 N=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=N,l=me(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=L(L({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),A=[];for(let B of y)m[B]===void 0&&A.push(new Oe(B));let b=await Vt({connection:this.connection,address:A});for(let[B,K]of Object.entries(b))m[B]=K;let g=a?Oe.default.toBase58():c!=null?c:await Le(this.connection,this.blockhashCommitment),S=new Ze({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(B=>B.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let k=new je(S);return k.sign(this.signers),{builder:this,transaction:k,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async B=>{var v;let{skipPreflight:K=!0,sendAndConfirm:x,notSendToRpc:F}=B||{};if(Te([k]),(v=this.owner)!=null&&v.isKeyPair){let P=await this.connection.sendTransaction(k,{skipPreflight:K});return x&&await pt(this.connection,P),{txId:P,signedTx:k}}if(this.signAllTransactions){let P=await this.signAllTransactions([k]);if(this.signers.length)for(let T of P)try{T.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(P[0],{skipPreflight:K}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var A;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(A=this.owner)!=null&&A.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:S,recentBlockHash:k,skipPreflight:N=!0}=b||{};if(k&&l.forEach(B=>B.message.recentBlockhash=k),Te(l),(w=this.owner)!=null&&w.isKeyPair){if(g){let B=[];for(let K of l){let x=await this.connection.sendTransaction(K,{skipPreflight:N});await pt(this.connection,x),B.push(x)}return{txIds:B,signedTxs:l}}return{txIds:await Promise.all(l.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:N}))),signedTxs:l}}if(this.signAllTransactions){let B=await this.signAllTransactions(l);if(g){let K=0,x=[],F=async()=>{if(!B[K])return;let v=await this.connection.sendTransaction(B[K],{skipPreflight:N});x.push({txId:v,status:"sent",signedTx:B[K]}),S==null||S([...x]),K++;let P=!1,T=null,h=null,C=R=>{T!==null&&clearInterval(T),h!==null&&this.connection.removeSignatureListener(h);let _=x.findIndex(ie=>ie.txId===v);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=R.err?"error":"success"}S==null||S([...x]),R.err||F()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var R;if(P){clearInterval(T);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(P=!0,clearInterval(T),C({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){P=!0,clearInterval(T),console.error("getTransaction timeout:",_,v)}},ft)),h=this.connection.onSignature(v,R=>{if(P){this.connection.removeSignatureListener(h);return}P=!0,C(R)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:B}}else{let K=[];for(let x=0;x<B.length;x+=1){let F=await this.connection.sendTransaction(B[x],{skipPreflight:N});K.push(F)}return{txIds:K,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var S;let g=e||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=me(g,["splitIns","computeBudgetConfig"]),c=i?dt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((k,N)=>D(L({},k),{[N.publicKey.toBase58()]:N}),{}),m=[],y=[],A=[],b=0;if(this.allInstructions.forEach(k=>{let N=[...A,k],w=i?[...c.instructions,...N]:N,K=[...new Set(N.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new Oe(x));if(k!==n[b]&&A.length<12&&(Ye({instructions:w,payer:this.feePayer,signers:K})||Ye({instructions:N,payer:this.feePayer,signers:K})))A.push(k);else{if(A.length===0)throw Error("item ins too big");b+=k===n[b]?1:0,Ye({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:K})?m.push(new Qe().add(...c.instructions,...A)):m.push(new Qe().add(...A)),y.push(Array.from(new Set(A.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>l[x]).filter(x=>x!==void 0)),A=[k]}}),A.length>0){let N=[...new Set(A.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>l[w]).filter(w=>w!==void 0);Ye({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:N.map(w=>w.publicKey)})?m.push(new Qe().add(...c.instructions,...A)):m.push(new Qe().add(...A)),y.push(N)}return m.forEach(k=>k.feePayer=this.feePayer),(S=this.owner)!=null&&S.signer&&y.forEach(k=>{k.some(N=>N.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),{builder:this,transactions:m,signers:y,instructionTypes:this.instructionTypes,execute:async k=>{var v;let{sequentially:N,onTxUpdate:w,skipTxCount:B=0,recentBlockHash:K,skipPreflight:x=!0}=k||{},F=K!=null?K:await Le(this.connection,this.blockhashCommitment);if(m.forEach(async(P,T)=>{P.recentBlockhash=F,y[T].length&&P.sign(...y[T])}),Te(m),(v=this.owner)!=null&&v.isKeyPair){if(N){let P=0,T=[];for(let h of m){if(++P,P<=B){T.push("tx skipped");continue}let C=await qt(this.connection,h,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});T.push(C)}return{txIds:T,signedTxs:m}}return{txIds:await Promise.all(m.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:x}))),signedTxs:m}}if(this.signAllTransactions){let P=await this.signAllTransactions(m.slice(B,m.length)),T=[...m.slice(0,B),...P];if(N){let h=0,C=[],R=async()=>{if(!T[h])return;h<B&&(C.push({txId:"",status:"success",signedTx:T[h]}),w==null||w([...C]),h++,R());let _=await this.connection.sendRawTransaction(T[h].serialize(),{skipPreflight:x});C.push({txId:_,status:"sent",signedTx:T[h]}),w==null||w([...C]),h++;let ie=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=C.findIndex(pe=>pe.txId===_);if(te>-1){if(C[te].status==="error"||C[te].status==="success")return;C[te].status=G.err?"error":"success"}w==null||w([...C]),G.err||R()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(ie=!0,clearInterval(q),$({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},ft)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:C.map(_=>_.txId),signedTxs:T}}else{let h=[];for(let C=0;C<T.length;C+=1){let R=await this.connection.sendRawTransaction(T[C].serialize(),{skipPreflight:x});h.push(R)}return{txIds:h,signedTxs:T}}}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=L(L({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),a),A=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let P of A)y[P]===void 0&&b.push(new Oe(P));let g=await Vt({connection:this.connection,address:b});for(let[P,T]of Object.entries(g))y[P]=T;let S=n?dt(n):{instructions:[],instructionTypes:[]},k=await Le(this.connection,this.blockhashCommitment),N=this.signers.reduce((P,T)=>D(L({},P),{[T.publicKey.toBase58()]:T}),{}),w=[],B=[],K=[],x=0;if(this.allInstructions.forEach(P=>{let T=[...K,P],h=n?[...S.instructions,...T]:T;if(P!==i[x]&&K.length<l&&(He({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})||He({instructions:T,payer:this.feePayer,lookupTableAddressAccount:y})))K.push(P);else{if(K.length===0)throw Error("item ins too big");x+=P===i[x]?1:0;let C={};for(let R of[...new Set(A)])y[R]!==void 0&&(C[R]=y[R]);if(n&&He({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:k})){let R=new Ze({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new je(R))}else{let R=new Ze({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new je(R))}B.push(Array.from(new Set(K.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>N[R]).filter(R=>R!==void 0)),K=[P]}}),K.length>0){let T=[...new Set(K.map(h=>h.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(h=>N[h]).filter(h=>h!==void 0);if(n&&He({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:k})){let h=new Ze({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new je(h))}else{let h=new Ze({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new je(h))}B.push(T)}return(v=this.owner)!=null&&v.signer&&B.forEach(P=>{P.some(T=>T.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),w.forEach((P,T)=>{P.sign(B[T])}),{builder:this,transactions:w,buildProps:e,signers:B,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:T,onTxUpdate:h,skipTxCount:C=0,recentBlockHash:R,skipPreflight:_=!0}=P||{};if(w.map(async(q,W)=>{B[W].length&&q.sign(B[W]),R&&(q.message.recentBlockhash=R)}),Te(w),(ie=this.owner)!=null&&ie.isKeyPair){if(T){let q=0,W=[];for(let $ of w){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:_});await pt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:w}}return{txIds:await Promise.all(w.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let q=await this.signAllTransactions(w.slice(C,w.length)),W=[...w.slice(0,C),...q];if(T){let $=0,G=[],te=async()=>{if(!W[$])return;if($<C){G.push({txId:"",status:"success",signedTx:W[$]}),h==null||h([...G]),$++,te();return}let pe=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[$]}),h==null||h([...G]),$++;let We=!1,xe=null,rt=null,ln=we=>{xe!==null&&clearInterval(xe),rt!==null&&this.connection.removeSignatureListener(rt);let fe=G.findIndex(ho=>ho.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=we.err?"error":"success"}h==null||h([...G]),we.err||te()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var we;if(We){clearInterval(xe);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(We=!0,clearInterval(xe),ln({err:((we=fe.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){We=!0,clearInterval(xe),console.error("getTransaction timeout:",fe,pe)}},ft)),rt=this.connection.onSignature(pe,we=>{if(We){this.connection.removeSignatureListener(rt);return}We=!0,ln(we)},"confirmed"),this.connection.getSignatureStatus(pe)};return te(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:_});$.push(te)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var Ut=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),oe=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=V(n)}createTxBuilder(e){return this.scope.checkOwner(),new yt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Ut(e))}logInfo(...e){this.logger.info(Ut(e))}logAndCreateError(...e){let n=Ut(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as hl,SystemProgram as Bl}from"@solana/web3.js";import Kl from"bn.js";import{createCloseAccountInstruction as Ol,createInitializeAccountInstruction as Nl,createTransferInstruction as Ml,TOKEN_PROGRAM_ID as Fl}from"@solana/spl-token";import{PublicKey as mi}from"@solana/web3.js";import On,{isBN as Nn}from"bn.js";import{bits as ei,BitStructure as Kc,blob as ti,Blob as Cc,cstr as Rc,f32 as Lc,f32be as Oc,f64 as Nc,f64be as Mc,greedy as Fc,Layout as ni,ns64 as vc,ns64be as _c,nu64 as Vc,nu64be as Ec,offset as oi,s16 as Dc,s16be as Wc,s24 as qc,s24be as Uc,s32 as ii,s32be as Gc,s40 as zc,s40be as Xc,s48 as Yc,s48be as Hc,s8 as Qc,seq as ri,struct as Zc,Structure as ai,u16 as si,u16be as jc,u24 as $c,u24be as Jc,u32 as ui,u32be as el,u40 as tl,u40be as nl,u48 as ol,u48be as il,u8 as ci,UInt as li,union as rl,Union as al,unionLayoutDiscriminator as sl,utf8 as ul}from"@solana/buffer-layout";var bt=ni,Kn=ai;var Gt=li;var Cn=ci,Y=si;var gt=ui;var ue=ii;var Rn=ri;var M=ti;var zt=ei,Ln=oi;var Ie=class extends bt{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new On(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 On(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},Pt=class extends bt{constructor(n){super(8,n);this._lower=zt(gt(),!1),this._upper=zt(gt(),!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 L(L({},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 Gt(1,o)}function X(o){return new Gt(4,o)}function t(o){return new Ie(8,!1,o)}function O(o){return new Ie(16,!1,o)}function Mn(o){return new Ie(1,!0,o)}function Ne(o){return new Ie(8,!0,o)}function Fn(o){return new Ie(16,!0,o)}var $e=class extends bt{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 $e(M(32),e=>new mi(e),e=>e.toBuffer(),o)}function re(o){return new $e(Cn(),di,pi,o)}function di(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function pi(o){return o?1:0}function vn(o,e){let n=gt("length"),i=p([n,f(o,Ln(n,-n.span),"values")]);return new $e(i,({values:a})=>a,a=>({values:a}),e)}var Xt=class extends Kn{decode(e,n){return super.decode(e,n)}};function p(o,e,n){return new Xt(o,e,n)}function f(o,e,n){let i,a=typeof e=="number"?e:Nn(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let m=Reflect.get(c,"count");i=Nn(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 Rn(o,a,n)}var Je=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 Xg,SystemProgram as Yg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Qg}from"@solana/spl-token";import{PublicKey as bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gi}from"@solana/spl-token";function ae(o,e,n){return se([o.toBuffer(),(n!=null?n:gi).toBuffer(),e.toBuffer()],new bi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as I}from"@solana/web3.js";var Vn=new I("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),En=new I("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Dn=new I("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Yt=new I("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),mm=new I("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Pi=new I("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Wn=new I("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),qn=new I("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),dm=new I("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ai=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Un=new I("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),wi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ki=new I("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Gn=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),pm=new I("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ti=new I("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ht=new I("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),hi=new I("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),fm=new I("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ii=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Bi=new I("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),xi=new I("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ym=new I("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),bm=new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),gm=new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Pm=new I("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Am=new I("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ge={OPEN_BOOK_PROGRAM:new I("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new I("Ray1111111111111111111111111111111111111111"),AMM_V4:new I("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new I("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new I("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new I("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new I("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new I("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new I("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new I("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new I("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new I("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:I.default,Router:new I("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new I("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new I("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new I("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new I("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new I("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new I("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new I("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new I("Ray1111111111111111111111111111111111111111")};import rP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as hy,TOKEN_2022_PROGRAM_ID as Iy,TOKEN_PROGRAM_ID as By}from"@solana/spl-token";import{PublicKey as Sy}from"@solana/web3.js";import Cy from"bn.js";import Ly from"decimal.js";import{TOKEN_PROGRAM_ID as Nm}from"@solana/spl-token";import{PublicKey as _m}from"@solana/web3.js";var Si=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 Xf,TOKEN_PROGRAM_ID as Yf}from"@solana/spl-token";import{Keypair as Zf,PublicKey as jf,SystemProgram as Jf,TransactionInstruction as ey}from"@solana/web3.js";import ny from"bn.js";import E from"bn.js";var Fe=new E(1).shln(64);var Ki=new E(1).shln(128),Qt=new E(1).shln(64).subn(1),Ci=new E(1).shln(128).subn(1);var ve=new E("4295048016"),_e=new E("79226673521066979257578248091"),Ri=new E("59543866431248"),Li=new E("184467440737095516"),Oi=new E("15793534762490258745");var Zt=60,Qm=new E("18446743708227953217"),Ni=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var tt=3,zn=100;var Xn=10,Yn=100,At=14;var Z=new E(0),Ve=new E(1),Zm=new E(-1);var jm=new E("18446744073700000000");var Mi=p([M(8),d("bump"),Y("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(t(),3)]),Fi=p([X("blockTimestamp"),Ne("tickCumulative"),f(t(),4)]),Hn=p([M(8),re("initialized"),t("recentEpoch"),Y("observationIndex"),r("poolId"),f(Fi,zn,"observations"),f(t(),4)]),vi=p([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),t("lastUpdateTimestamp"),f(d(),46)]),_i=p([d("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),O("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),jt=p([M(8),d("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),Y("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(O(),4),d("status"),d("feeOn"),M(6),f(_i,tt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),vi.replicate("dynamicFeeInfo"),f(t(),46)]),Vi=p([O("growthInsideLastX64"),t("rewardAmountOwed")]),Ei=p([M(8),d("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(Vi,tt,"rewardInfos"),t("recentEpoch"),f(t(),7)]),td=p([M(8),d("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(O(),tt,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),Di=p([ue("tick"),Fn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),tt,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(X(),3)]),Qn=p([M(8),r("poolId"),ue("startTickIndex"),f(Di,Zt,"ticks"),d("initializedTickCount"),t("recentEpoch"),f(d(),107)]),Wi=p([M(8),d("bump"),f(r(),Xn,"operationOwners"),f(r(),Yn,"whitelistMints")]),qi=p([M(8),r("poolId"),r("owner"),ue("tick"),re("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),O("unfilledRatioX64"),f(t(),4)]),Zn=p([M(8),r("poolId"),M(8*8*At,"positiveTickArrayBitmap"),M(8*8*At,"negativeTickArrayBitmap")]),nd=p([M(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(t(),8)]),Ui=p([M(8),r("wallet"),d("nonceIndex"),t("orderNonce"),f(t(),4)]),od=p([t(),d("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(t(),8)]),Gi=p([M(8),d("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),f(t(),8)]);import ad from"bn.js";var gd=Buffer.from("amm_config","utf8"),Xi=Buffer.from("pool","utf8"),Yi=Buffer.from("pool_vault","utf8"),Pd=Buffer.from("pool_reward_vault","utf8"),Ad=Buffer.from("position","utf8"),wd=Buffer.from("tick_array","utf8"),kd=Buffer.from("operation","utf8"),Td=Buffer.from("pool_tick_array_bitmap_extension","utf8"),hd=Buffer.from("observation","utf8"),Id=Buffer.from("support_mint","utf8"),Bd=Buffer.from("dynamic_fee_config","utf8"),xd=Buffer.from("permission","utf8");var Sd=Buffer.from("locked_position","utf8");import{sha256 as ur}from"js-sha256";import Hi from"bn.js";import Ld from"decimal.js";var Nd=new Hi(1).shln(256).subn(1);import jd from"bn.js";import Dd from"bn.js";import qd from"decimal.js";import np from"bn.js";import ip from"decimal.js";import{PublicKey as Gp}from"@solana/web3.js";import Xp from"bn.js";import{TOKEN_2022_PROGRAM_ID as ef,TOKEN_PROGRAM_ID as tf}from"@solana/spl-token";import af from"decimal.js";import Np from"bn.js";import wp from"bn.js";import gf from"bn.js";function j(o){let e=`global:${o}`;return Buffer.from(ur.digest(e)).slice(0,8)}Hn.span;var ly=V("Raydium_Clmm"),my={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as tn}from"@solana/web3.js";var pr=p([d("instruction")]),fr=p([d("instruction")]),yr=p([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),O("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),f(t(