UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

3 lines 78.4 kB
var Bo=Object.defineProperty,xo=Object.defineProperties;var So=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var dn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable;var mn=(o,e,n)=>e in o?Bo(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)=>xo(o,So(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 ho}from"@solana/web3.js";import va from"bn.js";import{PublicKey as Ro}from"@solana/web3.js";import{get as fn,set as Ko}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={},Co={};function V(o){let e=fn(yn,o);if(!e){let n=fn(Co,o);e=new Ct({name:o,logLevel:n}),Ko(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 Ro(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 aR from"decimal.js";import Vo from"big.js";import ys from"bn.js";import Lo from"toformat";var Oo=Lo,Ue=Oo;import ut from"big.js";import Mo from"bn.js";import Fo 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(Fo),vo={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},_o={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},U=class{constructor(e,n=new Mo(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:vo[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=_o[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(Vo);import{PublicKey as Do}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gn}from"@solana/spl-token";var ct={chainId:101,address:Do.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 Wo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";function Se({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var Uo=[Se({pubkey:qo,isWritable:!1}),Se({pubkey:Pn.programId,isWritable:!1}),Se({pubkey:Wo,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"),Go=new z("Sysvar1nstructions1111111111111111111111111"),zo=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 Xo from"bn.js";var nu=new U(new Xo(100));var uu=V("Raydium_price");import{merge as uC}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"},Yo=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 Jo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as je}from"@solana/web3.js";import ei 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 Ho,Transaction as Bn,TransactionMessage as Qo,VersionedTransaction as xn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zo}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]=Ho.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 Qo({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 jo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),$o=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof xn&&(e=jo(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=Zo.toBase58()),n.feePayer||(n.feePayer=In.generate().publicKey)),e.push($o(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 ei.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(Jo.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(Io=>Io.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 di}from"@solana/web3.js";import On,{isBN as Nn}from"bn.js";import{bits as ti,BitStructure as Kc,blob as ni,Blob as Cc,cstr as Rc,f32 as Lc,f32be as Oc,f64 as Nc,f64be as Mc,greedy as Fc,Layout as oi,ns64 as vc,ns64be as _c,nu64 as Vc,nu64be as Ec,offset as ii,s16 as Dc,s16be as Wc,s24 as qc,s24be as Uc,s32 as ri,s32be as Gc,s40 as zc,s40be as Xc,s48 as Yc,s48be as Hc,s8 as Qc,seq as ai,struct as Zc,Structure as si,u16 as ui,u16be as jc,u24 as $c,u24be as Jc,u32 as ci,u32be as el,u40 as tl,u40be as nl,u48 as ol,u48be as il,u8 as li,UInt as mi,union as rl,Union as al,unionLayoutDiscriminator as sl,utf8 as ul}from"@solana/buffer-layout";var bt=oi,Kn=si;var Gt=mi;var Cn=li,Y=ui;var gt=ci;var ue=ri;var Rn=ai;var M=ni;var zt=ti,Ln=ii;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 di(e),e=>e.toBuffer(),o)}function re(o){return new $e(Cn(),pi,fi,o)}function pi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function fi(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 gi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pi}from"@solana/spl-token";function ae(o,e,n){return se([o.toBuffer(),(n!=null?n:Pi).toBuffer(),e.toBuffer()],new gi("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"),Ai=new I("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Wn=new I("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),qn=new I("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),dm=new I("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),wi=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Un=new I("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ki=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ti=new I("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Gn=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),pm=new I("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),hi=new I("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ht=new I("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ii=new I("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),fm=new I("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Bi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),xi=new I("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Si=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 Ki=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 Ci=new E(1).shln(128),Qt=new E(1).shln(64).subn(1),Ri=new E(1).shln(128).subn(1);var ve=new E("4295048016"),_e=new E("79226673521066979257578248091"),Li=new E("59543866431248"),Oi=new E("184467440737095516"),Ni=new E("15793534762490258745");var Zt=60,Qm=new E("18446743708227953217"),Mi=[{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 Fi=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)]),vi=p([X("blockTimestamp"),Ne("tickCumulative"),f(t(),4)]),Hn=p([M(8),re("initialized"),t("recentEpoch"),Y("observationIndex"),r("poolId"),f(vi,zn,"observations"),f(t(),4)]),_i=p([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),t("lastUpdateTimestamp"),f(d(),46)]),Vi=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(Vi,tt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),_i.replicate("dynamicFeeInfo"),f(t(),46)]),Ei=p([O("growthInsideLastX64"),t("rewardAmountOwed")]),Di=p([M(8),d("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(Ei,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)]),Wi=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(Wi,Zt,"ticks"),d("initializedTickCount"),t("recentEpoch"),f(d(),107)]),qi=p([M(8),d("bump"),f(r(),Xn,"operationOwners"),f(r(),Yn,"whitelistMints")]),Ui=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)]),Gi=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)]),zi=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"),Yi=Buffer.from("pool","utf8"),Hi=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 cr}from"js-sha256";import Qi from"bn.js";import Ld from"decimal.js";var Nd=new Qi(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(cr.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(),15,"padding")]),br=p([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),O("perShareReward"),t("lastSlot"),t("perSlotReward")]),gr=p([t("state"),t("nonce"),r("lpVault"),r("rewardVaultA"),t("totalRewardA"),O("perShareRewardA"),t("perSlotRewardA"),d("option"),r("rewardVaultB"),M(7),t("totalRewardB"),O("perShareRewardB"),t("perSlotRewardB"),t("lastSlot"),r()]),Pr=p([t(),t("state"),t("nonce"),t("validRewardTokenNum"),O("rewardMultiplier"),t("rewardPeriodMax"),t("rewardPeriodMin"),t("rewardPeriodExtend"),r("lpMint"),r("lpVault"),f(yr,5,"rewardInfos"),r("creator"),r(),f(t(),32,"padding")]),Ar=new Proxy(br,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(L({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,e,n)}}),wr=new Proxy(gr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(L({},a),{version:5,rewardInfos:[{rewardVault:a.rewardVaultA,totalReward:a.totalRewardA,perSlotReward:a.perSlotRewardA,perShareReward:a.perShareRewardA},{rewardVault:a.rewardVaultB,totalReward:a.totalRewardB,perSlotReward:a.perSlotRewardB,perShareReward:a.perShareRewardB}]})}:Reflect.get(o,e,n)}}),oo=new Proxy(Pr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(L({},a),{version:6,rewardInfos:a.rewardInfos.map(c=>{var l;return D(L({},c),{rewardType:((l=Object.entries(it).find(m=>String(m[1])===c.rewardType.toString()))!=null?l:["Standard SPL"])[0]})})})}:Reflect.get(o,e,n)}}),kr=p([t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Tr=p([d("instruction"),t("nonce"),f(kr,5,"rewardTimeInfo")]),hr=p([d("instruction"),t("rewardReopenTime"),t("rewardEndTime"),t("rewardPerSecond")]),Ir=p([d("instruction"),t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),lb=p([t("state"),r("id"),r("owner"),t("deposited"),f(t(),1,"rewardDebts")]),io=p([t("state"),r("id"),r("owner"),t("deposited"),f(O(),1,"rewardDebts"),t(""),t("voteLockedBalance"),f(t(),15)]),mb=p([t("state"),r("id"),r("owner"),t("deposited"),f(t(),2,"rewardDebts")]),Br=p([t("state"),r("id"),r("owner"),t("deposited"),f(O(),2,"rewardDebts"),f(t(),17)]),xr=p([t(),t("state"),r("id"),r("owner"),t("deposited"),f(O(),5,"rewardDebts"),f(t(),16)]),Sr=p([d("instruction"),t("amount")]),Kr=p([r("mint"),r("grantAuthority"),t("baselineVoteWeightScaledFactor"),t("maxExtraLockupVoteWeightScaledFactor"),t("lockupSaturationSecs"),Mn("digitShift"),f(d(),7,"reserved1"),f(t(),7,"reserved2")]),Cr=p([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),f(d(),32,"reserved1"),f(Kr,4,"votingMints"),Ne("timeOffset"),d("bump"),f(d(),7,"reserved2"),f(t(),11,"reserved3")]),Rr=p([Ne("startTime"),Ne("endTime"),d("kind"),f(d(),15,"reserved")]),Lr=p([f(Rr,1,"lockup"),t("amountDeposited_native"),t("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),d("votingMintConfigIdx"),f(d(),29,"reserved")]),Or=p([M(8),r("voterAuthority"),r("registrar"),f(Lr,32,"deposits"),d("voterBump"),d("voterWweightRecordBump"),f(d(),94,"reserved")]);import{NATIVE_MINT as wb}from"@solana/spl-token";var kb=V("Raydium_farm_config"),Nr=new tn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Mr=new tn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Tb=new tn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var it={"Standard SPL":0,"Option tokens":1},ro={[Vn.toString()]:3,[En.toString()]:4,[Dn.toString()]:5,[Yt.toString()]:6,[ge.FARM_PROGRAM_ID_V3.toString()]:3,[ge.FARM_PROGRAM_ID_V4.toString()]:4,[ge.FARM_PROGRAM_ID_V5.toString()]:5,[ge.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as sg,SystemProgram as ug,SYSVAR_CLOCK_PUBKEY as cg,SYSVAR_RENT_PUBKEY as lg,TransactionInstruction as mg}from"@solana/web3.js";import pg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as yg,createAssociatedTokenAccountIdempotentInstruction as bg,TOKEN_PROGRAM_ID as gg}from"@solana/spl-token";import _b from"bn.js";import{PublicKey as Kb}from"@solana/web3.js";import Rb from"bn.js";var Zb=V("Raydium.farm.util");var Kg=V("Raydium_farm_instruction"),Cg={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import bP from"bn.js";import{PublicKey as Iw}from"@solana/web3.js";import{AccountLayout as Sw,MintLayout as Kw,NATIVE_MINT as Cw,TOKEN_PROGRAM_ID as Lw}from"@solana/spl-token";import AP from"bn.js";import so from"bn.js";var qr=new so(25),Ur=new so(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as WP,TOKEN_PROGRAM_ID as qP}from"@solana/spl-token";import{PublicKey as GP,SystemProgram as zP,SYSVAR_RENT_PUBKEY as XP,TransactionInstruction as YP}from"@solana/web3.js";import tA from"bn.js";var Gr=p([d("instruction"),t("amountIn"),t("minAmountOut")]),zr=p([d("instruction"),t("maxAmountIn"),t("amountOut")]),_P=p([d("instruction"),d("nonce")]),Xr=p([d("instruction"),d("nonce"),t("startTime")]),uo=p([t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalValue"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),t("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),t("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),t("lpReserve"),f(t(),3,"padding")]),VP=p([t("accountType"),t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalsValue"),t("abortTradeFactor"),t("priceTickMultiplier"),t("priceTick"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),t("swapQuote2BaseFee"),t("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),f(t(),64,"padding")]),Yr=p([d("instruction"),t("baseAmountIn"),t("quoteAmountIn"),t("fixedSide"),t("otherAmountMin")]),Hr=p([d("instruction"),t("lpAmount"),t("baseAmountMin"),t("quoteAmountMin")]);var Qr=p([t("fee")]);var iA=V("Raydium_liquidity_instruction");var Zr=5e4,jr=p([t("x"),t("y"),t("price")]),uA=p([t("accountType"),t("status"),t("multiplier"),t("validDataCount"),f(jr,Zr,"DataElement")]);import{PublicKey as wA}from"@solana/web3.js";import TA from"decimal.js";import{TOKEN_PROGRAM_ID as IA}from"@solana/spl-token";import{PublicKey as dA}from"@solana/web3.js";var yA=V("Raydium_liquidity_serum");import jw from"bn.js";import Jw from"decimal.js";import{TOKEN_PROGRAM_ID as jA}from"@solana/spl-token";import{PublicKey as JA}from"@solana/web3.js";import tw from"bn.js";import{SystemProgram as VA,SYSVAR_RENT_PUBKEY as EA,Transaction as DA,TransactionInstruction as WA}from"@solana/web3.js";import{createInitializeAccountInstruction as UA,TOKEN_PROGRAM_ID as GA}from"@solana/spl-token";function $r(o="accountFlags"){let e=new Pt(o);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var Jr=p([M(5),$r("accountFlags"),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),M(7)]);import{PublicKey as IT}from"@solana/web3.js";import{AccountLayout as xT,NATIVE_MINT as ST,TOKEN_2022_PROGRAM_ID as KT,TOKEN_PROGRAM_ID as CT,createAssociatedTokenAccountIdempotentInstruction as RT}from"@solana/spl-token";import hk from"bn.js";import aa from"bn.js";var ck=new aa(0);import yk from"bn.js";import sa from"bn.js";var Tt=new sa(1e6);import VT from"bn.js";import DT from"decimal.js";import{PublicKey as Wk,TransactionInstruction as qk,Keypair as Gk,SystemProgram as zk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Yk,TOKEN_2022_PROGRAM_ID as Hk,TOKEN_PROGRAM_ID as Qk}from"@solana/spl-token";var Kk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Ck=Buffer.from("amm_config","utf8"),Rk=Buffer.from("pool","utf8"),Lk=Buffer.from("pool_lp_mint","utf8"),Ok=Buffer.from("pool_vault","utf8"),Nk=Buffer.from("observation","utf8"),Mk=Buffer.from("permission","utf8"),Fk=Buffer.from("support_mint","utf8");var vk=Buffer.from("locked_liquidity","utf8");var nT=V("Raydium_cpmm"),oT={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};var la=p([M(8),d("bump"),re("disableCreatePool"),Y("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),f(t(),15)]),co=p([M(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),d("bump"),d("status"),d("lpDecimals"),d("mintDecimalA"),d("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),d("feeOn"),re("enableCreatorFee"),f(d(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),f(t(),28)]),aT=p([M(8),r("configId"),f(t(),30)]);import{PublicKey as LS,SystemProgram as OS}from"@solana/web3.js";import{createTransferInstruction as MS,TOKEN_PROGRAM_ID as FS,TOKEN_2022_PROGRAM_ID as vS,createAssociatedTokenAccountIdempotentInstruction as _S,createSyncNativeInstruction as ES,createTransferCheckedInstruction as DS}from"@solana/spl-token";import Sa from"bn.js";import US from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Zh,TOKEN_2022_PROGRAM_ID as jh,TOKEN_PROGRAM_ID as $h}from"@solana/spl-token";import{SystemProgram as nI,TransactionInstruction as oI}from"@solana/web3.js";import ga from"bn.js";var pa=p([t(),t("epoch"),d("curveType"),Y("index"),t("migrateFee"),t("tradeFeeRate"),t("maxShareFeeRate"),t("minSupplyA"),t("maxLockRate"),t("minSellRateA"),t("minMigrateRateA"),t("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),f(t(),16)]),fa=p([t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod"),t("startTime"),t("totalAllocatedShare")]),ya=p([t(),t("epoch"),d("bump"),d("status"),d("mintDecimalsA"),d("mintDecimalsB"),d("migrateType"),t("supply"),t("totalSellA"),t("virtualA"),t("virtualB"),t("realA"),t("realB"),t("totalFundRaisingB"),t("protocolFee"),t("platformFee"),t("migrateFee"),fa.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),d("mintProgramFlag"),d("cpmmCreatorFeeOn"),t("platformVestingShare"),f(d(),54)]),Lh=p([t(),t("epoch"),r("poolId"),r("beneficiary"),t("claimedAmount"),t("tokenShareAmount"),f(t(),8)]),mo=p([d("migrateType"),d("migrateCpmmFeeOn"),t("supply"),t("totalSellA"),t("totalFundRaisingB"),t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod")]),ba=p([t("epoch"),d("index"),r("configId"),mo.replicate("bondingCurveParam"),f(t(),50)]),po=p([t(),t("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),t("platformScale"),t("creatorScale"),t("burnScale"),t("feeRate"),f(d(),64,"name"),f(d(),256,"web"),f(d(),256,"img"),r("cpConfigId"),t("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),t("platformVestingScale"),r("platformCpCreator"),d("restrictGlobalConfig"),f(d(),107),vn(ba,"platformCurve")]);var vh=Buffer.from("vault_auth_seed","utf8"),_h=Buffer.from("global_config","utf8"),Vh=Buffer.from("pool_vesting","utf8"),Eh=Buffer.from("platform_config","utf8"),Dh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Wh=Buffer.from("creator_fee_vault_auth_seed","utf8"),qh=Buffer.from("platform_global_access","utf8"),Uh=Buffer.from("platform_allow_config","utf8");var sI={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var uI=new ga("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as dI,TOKEN_PROGRAM_ID as pI}from"@solana/spl-token";import gI from"bn.js";import AI from"decimal.js";import jI from"bn.js";import JI from"decimal.js";import BI from"bn.js";import SI from"decimal.js";import _I from"bn.js";import EI from"decimal.js";import bo from"bn.js";import on from"decimal.js";var Bt=class{static _multipler(e){return new on(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new on(e.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:n,decimalB:i}){let a=e.mul(this._multipler(i)).div(this._multipler(n));return new bo(a.mul(this._Q64).toFixed(0))}};Bt._Q64=new on(new bo(1).shln(64).toString());import{NATIVE_MINT as sx,TOKEN_2022_PROGRAM_ID as ux,TOKEN_PROGRAM_ID as cx,createAssociatedTokenAccountIdempotentInstruction as mx,createSyncNativeInstruction as dx,getTransferFeeConfig as px,unpackMint as fx}from"@solana/spl-token";import H from"bn.js";import{PublicKey as Ia,SystemProgram as gx}from"@solana/web3.js";import Ix from"decimal.js";var Bx={initPriceX64:new H("515752397214619"),supply:new H(1e15),totalSellA:new H(7931e11),totalFundRaisingB:new H(85e9),totalFundRaisingBUSD:new H(125e8),totalLockedAmount:new H("0"),cliffPeriod:new H("0"),unlockPeriod:new H("0"),decimals:6,virtualA:new H("1073471847374405"),virtualB:new H("30050573465"),realA:new H(0),realB:new H(0),protocolFee:new H(0),platformId:new Ia("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},xx=new H(1e4);var Ba={[Wn.toBase58()]:3};var xa=p([M(5),M(8),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),M(7)]);import{PublicKey as Qx}from"@solana/web3.js";var eS=V("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as cS,TOKEN_2022_PROGRAM_ID as lS,TOKEN_PROGRAM_ID as mS}from"@solana/spl-token";import{PublicKey as pS,SystemProgram as fS,TransactionInstruction as yS}from"@solana/web3.js";import gS from"bn.js";var AK=new Sa(0);import{PublicKey as Ka,Transaction as rn,TransactionInstruction as Ca}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ra}from"@solana/spl-token";import go from"bn.js";var ee=class extends oe{static getPdaPoolId(e,n){return se([ee.SEED_CONFIG.pool.id,n.toBuffer()],e)}static getPdaOwnerId(e,n,i,a){return se([ee.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new go(a).toArray())],e)}static async getAllInfo({connection:e,programId:n,poolIds:i,wallet:a,chainTime:c}){if(i.length===0)return[];let l=i.map(b=>ee.getPdaPoolId(n,b).publicKey),m=[];for(let b=0;b<ee.VERSION_PROJECT.length;b++)m.push(...l.map(g=>ee.getPdaOwnerId(n,g,a,b).publicKey));let y=await ye(e,[...l,...m]),A=[];for(let b=0;b<y.length;b++){let g=Math.floor(b/i.length),S=b%i.length,k=l[S],N=m[b],w=y[S],B=y[i.length+b];if(!(w&&B)||w.data.length!==ee.POOL_LAYOUT.span||B.data.length!==ee.OWNER_LAYOUT.span)continue;let K=ee.POOL_LAYOUT.decode(w.data),x=ee.OWNER_LAYOUT.decode(B.data),F=K.openTime.toNumber(),v=K.endTime.toNumber(),P=x.tokenInfo.map(C=>C.debtAmount.gt(new go(0))).filter(C=>!C).length!==3,T=c>F&&c<v&&K.status===1,h=P&&T;A.push({programId:n,poolId:k,ammId:K.ammId,ownerAccountId:N,snapshotLpAmount:x.lpAmount,project:ee.VERSION_PROJECT[g],openTime:F,endTime:v,canClaim:h,canClaimErrorType:P?T?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((C,R)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:x.tokenInfo[R].debtAmount.add(x.tokenInfo[R].claimedAmount)}))})}return A}async makeClaimTransaction({poolInfo:e,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,l=[];for(let A of e.tokenInfo){let{account:b,instructionParams:g}=await this.scope.account.getOrCreateTokenAccount({mint:A.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:A.mintAddress.equals(J.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!A.mintAddress.equals(J.WSOL.mint),associatedOnly:A.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});g&&a.addInstruction(g),l.push(b)}a.addInstruction({instructions:[ee.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:c,ownerPda:e.ownerAccountId,claimAddress:l}})]});let{transaction:m,signers:y}=a.build();return[{transaction:m,signer:y}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,l={};for(let b of e){let g=[];for(let S of b.tokenInfo){let{account:k,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:S.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:S.mintAddress.equals(J.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!S.mintAddress.equals(J.WSOL.mint),associatedOnly:S.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});N&&a.addInstruction(N),k&&(l[S.mintAddress.toString()]=k,g.push(k))}a.addInstruction({instructions:[ee.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:c,ownerPda:b.ownerAccountId,claimAddress:g}})]})}let{transaction:m,signers:y}=a.build(),A=a.allInstructions;return Wt(A,[c,...y.map(b=>b.publicKey)])?[{transaction:m,signer:y}]:[{transaction:new rn().add(...A.slice(0,a.AllTxData.instructions.length-1)),signer:y},{transaction:new rn().add(...A.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new rn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:n,ownerInfo:i}){let a=p([]),c=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:Ra,isSigner:!1,isWritable:!1}],l=Buffer.alloc(a.span);a.encode({},l);let m=Buffer.from([10,66,208,184,161,6,191,98,...l]);return new Ca({keys:c,programId:e,data:m})}},ce=ee;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=p([M(8),d("bump"),d("status"),t("openTime"),t("endTime"),r("ammId"),f(p([d("mintDecimals"),r("mintAddress"),r("mintVault"),t("perLpLoss"),t("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),f(t(),10,"padding")]),ce.OWNER_LAYOUT=p([M(8),d("bump"),d("version"),r("poolId"),r("owner"),t("lpAmount"),f(p([r("mintAddress"),t("debtAmount"),t("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),f(t(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new Ka(e)),ce.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ce.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as vK}from"@solana/web3.js";import{getTransferFeeConfig as VK,MintLayout as EK,TOKEN_2022_PROGRAM_ID as DK,TOKEN_PROGRAM_ID as WK,unpackMint as qK}from"@solana/spl-token";var bR=new Be(2),gR=new Be(3),PR=new Be(5),Eo=new Be(10),AR=new Be(100),wR=new Be(1e3),kR=new Be(1e4);function Lt(o,e=1,n=[]){let i=[...o];if(e<=0)return n;for(;i.length;)n.push(i.splice(0,e));return n}import{TOKEN_PROGRAM_ID as _a}from"@solana/spl-token";function La(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function an(o,...e){if(!La(o))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(o.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${o.length}`)}function sn(o,e=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(e&&o.finished)throw new Error("Hash#digest() has already been called")}function Po(o,e){an(o);let n=e.outputLen;if(o.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var St=o=>new DataView(o.buffer,o.byteOffset,o.byteLength),le=(o,e)=>o<<32-e|o>>>e;var zR=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Oa(o){if(typeof o!="string")throw new Error(`utf8ToBytes expected string, got ${typeof o}`);return new Uint8Array(new TextEncoder().encode(o))}function un(o){return typeof o=="string"&&(o=Oa(o)),an(o),o}var xt=class{clone(){return this._cloneInto()}},XR={}.toString;function Ao(o){let e=i=>o().update(un(i)).digest(),n=o();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>o(),e}function Na(o,e,n,i){if(typeof o.setBigUint64=="function")return o.setBigUint64(e,n,i);let a=BigInt(32),c=BigInt(4294967295),l=Number(n>>a&c),m=Number(n&c),y=i?4:0,A=i?0:4;o.setUint32(e+y,l,i),o.setUint32(e+A,m,i)}var wo=(o,e,n)=>o&e^~o&n,ko=(o,e,n)=>o&e^o&n^e&n,Kt=class extends xt{constructor(e,n,i,a){super(),this.blockLen=e,this.outputLen=n,this.padOffset=i,this.isLE=a,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=St(this.buffer)}update(e){sn(this);let{view:n,buffer:i,blockLen:a}=this;e=un(e);let c=e.length;for(let l=0;l<c;){let m=Math.min(a-this.pos,c-l);if(m===a){let y=St(e);for(;a<=c-l;l+=a)this.process(y,l);continue}i.set(e.subarray(l,l+m),this.pos),this.pos+=m,l+=m,this.pos===a&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){sn(this),Po(e,this),this.finished=!0;let{buffer:n,view:i,blockLen:a,isLE:c}=this,{pos:l}=this;n[l++]=128,this.buffer.subarray(l).fill(0),this.padOffset>a-l&&(this.process(i,0),l=0);for(let g=l;g<a;g++)n[g]=0;Na(i,a-8,BigInt(this.length*8),c),this.process(i,0);let m=St(e),y=this.outputLen;if(y%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let A=y/4,b=this.get();if(A>b.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<A;g++)m.setUint32(4*g,b[g],c)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let i=e.slice(0,n);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:i,length:a,finished:c,destroyed:l,pos:m}=this;return e.length=a,e.pos=m,e.finished=c,e.destroyed=l,a%n&&e.buffer.set(i),e}};var Ma=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Pe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ae=new Uint32Array(64),cn=class extends Kt{constructor(){super(64,32,8,!1),this.A=Pe[0]|0,this.B=Pe[1]|0,this.C=Pe[2]|0,this.D=Pe[3]|0,this.E=Pe[4]|0,this.F=Pe[5]|0,this.G=Pe[6]|0,this.H=Pe[7]|0}get(){let{A:e,B:n,C:i,D:a,E:c,F:l,G:m,H:y}=this;return[e,n,i,a,c,l,m,y]}set(e,n,i,a,c,l,m,y){this.A=e|0,this.B=n|0,this.C=i|0,this.D=a|0,this.E=c|0,this.F=l|0,this.G=m|0,this.H=y|0}process(e,n){for(let g=0;g<16;g++,n+=4)Ae[g]=e.getUint32(n,!1);for(let g=16;g<64;g++){let S=Ae[g-15],k=Ae[g-2],N=le(S,7)^le(S,18)^S>>>3,w=le(k,17)^le(k,19)^k>>>10;Ae[g]=w+Ae[g-7]+N+Ae[g-16]|0}let{A:i,B:a,C:c,D:l,E:m,F:y,G:A,H:b}=this;for(let g=0;g<64;g++){let S=le(m,6)^le(m,11)^le(m,25),k=b+S+wo(m,y,A)+Ma[g]+Ae[g]|0,w=(le(i,2)^le(i,13)^le(i,22))+ko(i,a,c)|0;b=A,A=y,y=m,m=l+k|0,l=c,c=a,a=i,i=k+w|0}i=i+this.A|0,a=a+this.B|0,c=c+this.C|0,l=l+this.D|0,m=m+this.E|0,y=y+this.F|0,A=A+this.G|0,b=b+this.H|0,this.set(i,a,c,l,m,y,A,b)}roundClean(){Ae.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var To=Ao(()=>new cn);function bi({owner:o,solAccountResp:e,tokenAccountResp:n}){let i=[],a=[];for(let{pubkey:c,account:l}of n.value){let m=Je.decode(l.data),{mint:y,amount:A}=m;i.push({publicKey:c,mint:y,amount:A,isAssociated:ae(o,y,l.owner).publicKey.equals(c),isNative:!1,programId:l.owner}),a.push({pubkey:c,accountInfo:m,programId:l.owner})}return e&&i.push({mint:ho.default,amount:new va(String(e.lamports)),isNative:!0,programId:e.owner}),{tokenAccounts:i,tokenAccountRawInfos:a}}function et({fromPublicKey:o,programId:e=_a,assignSeed:n}){let i=n?btoa(n).slice(0,32):Fa.generate().publicKey.toBase58().slice(0,32);return{publicKey:Va(o,i,e),seed:i}}function Va(o,e,n){let i=Buffer.concat([o.toBuffer(),Buffer.from(e),n.toBuffer()]),a=To(i);return new ho(a)}export{et as generatePubKey,bi as parseTokenAccountResp};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=util.mjs.map