UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

3 lines 79 kB
var Bo=Object.defineProperty,Io=Object.defineProperties;var xo=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var pn=Object.prototype.hasOwnProperty,fn=Object.prototype.propertyIsEnumerable;var dn=(o,t,n)=>t in o?Bo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,L=(o,t)=>{for(var n in t||(t={}))pn.call(t,n)&&dn(o,n,t[n]);if(at)for(var n of at(t))fn.call(t,n)&&dn(o,n,t[n]);return o},V=(o,t)=>Io(o,xo(t));var me=(o,t)=>{var n={};for(var i in o)pn.call(o,i)&&t.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&at)for(var i of at(o))t.indexOf(i)<0&&fn.call(o,i)&&(n[i]=o[i]);return n};import{Keypair as Va,PublicKey as To}from"@solana/web3.js";import Ea from"bn.js";import{PublicKey as Co}from"@solana/web3.js";import{get as yn,set as So}from"lodash";var Ct=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},bn={},Ko={};function E(o){let t=yn(bn,o);if(!t){let n=yn(Ko,o);t=new Ct({name:o,logLevel:n}),So(bn,o,t)}return t}import{MINT_SIZE as ja,TOKEN_PROGRAM_ID as Ja,getTransferFeeConfig as es,unpackMint as ts}from"@solana/spl-token";var Rt=E("Raydium_accountInfo_util");async function ye(o,t,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=L({batchRequest:!1},n),m=Lt(t,c),p=new Array(m.length).fill([]);if(i){let y=m.map(g=>{let S=o._buildArgs([g.map(k=>k.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:S}}),A=Lt(y,10);p=(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:I,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(I),rentEpoch:K}}return null})))}else try{p=await Promise.all(m.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 p.flat()}import Ie from"bn.js";import RR from"decimal.js";import _o from"big.js";import Ps 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 gn=9007199254740991;function ne(o){let t=E("Raydium_parseBigNumberish");if(o instanceof Ge)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ge(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=gn||o<=-gn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ge(String(o))):typeof o=="bigint"?new Ge(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ge(0))}var st=E("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(t,n=new No(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));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(t){let n=t instanceof U?t:new U(ne(t));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(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<=0&&st.logWithError(`${t} is not positive.`),ze.set({precision:t+1,rounding:Fo[i]});let a=new ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return a.toFormat(a.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<0&&st.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=vo[i]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ss=E("Raydium_amount"),Ks=Ue(_o);import{PublicKey as Eo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pn}from"@solana/spl-token";var ct={chainId:101,address:Eo.default.toBase58(),programId:Pn.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:Pn.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 An,SYSVAR_RENT_PUBKEY as Do}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Wo}from"@solana/spl-token";function Se({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var qo=[Se({pubkey:Wo,isWritable:!1}),Se({pubkey:An.programId,isWritable:!1}),Se({pubkey:Do,isWritable:!1})];function wn({publicKey:o,transformSol:t}){let n=kn(o.toString());if(n instanceof z)return t&&n.equals(ke)?be:n;if(t&&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 kn(o){try{return new z(o)}catch{return o}}var Nt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new z("SysvarRent111111111111111111111111111111111"),vs=new z("SysvarC1ock11111111111111111111111111111111"),lt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Uo=new z("Sysvar1nstructions1111111111111111111111111"),Go=An.programId,_s=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Vs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Es=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ds=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ws=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),qs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Us=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Gs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),zs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Xs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ys=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),ke=z.default;var Ft=class{constructor({mint:t,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:m=!1}){if(t===ke.toBase58()||t instanceof Mt&&ke.equals(t)){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||t.toString().substring(0,6),this.name=a||t.toString().substring(0,6),this.mint=c?Mt.default:wn({publicKey:t}),this.isToken2022=m}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ft;J.WSOL=new Ft(V(L({},de),{mint:de.address}));var vt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},mt=vt;mt.SOL=new vt(ct);import zo from"bn.js";var ru=new U(new zo(100));var mu=E("Raydium_price");import{merge as OC}from"lodash";import wu from"axios";var Tn={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=V(L({},Tn),{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 Uu=E("Raydium_Api");import{PublicKey as Hl,SystemProgram as Ql}from"@solana/web3.js";import{AccountLayout as em,createAssociatedTokenAccountIdempotentInstruction as tm,TOKEN_PROGRAM_ID as nm,TOKEN_2022_PROGRAM_ID as om}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as qt,SystemProgram as jo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as $e}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:t,cluster:n="mainnet"}){let i=await ye(o,[...new Set(t.map(c=>c.toString()))].map(c=>new _t(c))),a={};for(let c=0;c<t.length;c++){let m=i[c],p=t[c];if(!m)continue;let y=new Re({key:p,state:Re.deserialize(m.data)});a[p.toString()]=y,n==="devnet"?Ce[p.toString()]=y:Ke[p.toString()]=y}return a}var Ke={},Et=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new _t(t),i=await o.getAccountInfo(n);return i&&(Ke[t]=new Re({key:n,state:Re.deserialize(i.data)})),Ke},Ce={},Dt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new _t(t),i=await o.getAccountInfo(n);return i&&(Ce[t]=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 hn,Keypair as In,PublicKey as Yo,Transaction as xn,TransactionMessage as Ho,VersionedTransaction as Sn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qo}from"@solana/spl-token";var Bn=E("Raydium_txUtil"),Kn=1644;function dt(o){let t=[],n=[];return o.microLamports&&(t.push(hn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Q.SetComputeUnitPrice)),o.units&&(t.push(hn.setComputeUnitLimit({units:o.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(o,t){var i,a;let n=t!=null?t:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function pt(o,t){return o.getSignatureStatuses([t]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(t,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:t}))},"confirmed")})}function Wt(o,t){o.length<1&&Bn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Bn.logWithError(`no signers provided:, ${t.toString()}`);let n=new xn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Kn}catch{return!1}}function se(o,t){let[n,i]=Yo.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function Ye({instructions:o,payer:t,signers:n}){return Wt(o,[t,...n])}function He({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=In.generate().publicKey.toString()}){let c=new Ho({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Sn(c).serialize()).toString("base64").length<Kn}catch{return!1}}var Zo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),$o=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Sn&&(t=Zo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Te(o){let t=[];return o.forEach(n=>{n instanceof xn&&(n.recentBlockhash||(n.recentBlockhash=Qo.toBase58()),n.feePayer||(n.feePayer=In.generate().publicKey)),t.push($o(n))}),console.log("simulate tx string:",t),t}var ft=2e3,yt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 t=(await Jo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=dt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(jo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:m=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...m.filter(p=>p!==Oe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(V(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){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:m=!0,sendAndConfirm:p,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:p?await qt(this.connection,n,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:m}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:m}),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:m}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var A;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:a}=this.build(i),c=n.filter(b=>b.transaction.instructions.length>0),m=[a,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:m,signers:p,instructionTypes:y,execute:async b=>{var K;let{sequentially:g,onTxUpdate:S,skipTxCount:k=0,recentBlockHash:N,skipPreflight:w=!0}=b||{},I=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 m){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:m}}return{txIds:await await Promise.all(m.map(async x=>(x.recentBlockhash=I,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:w})))),signedTxs:m}}if(this.signAllTransactions){let x=m.map((v,P)=>(v.recentBlockhash=I,p[P].length&&v.sign(...p[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,O=null,_=null,ie=q=>{O!==null&&clearInterval(O),_!==null&&this.connection.removeSignatureListener(_);let W=P.findIndex(j=>j.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&&(O=setInterval(async()=>{var q;if(C){clearInterval(O);return}try{let W=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(C=!0,clearInterval(O),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",h))}catch(W){C=!0,clearInterval(O),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:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var w;let N=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=N,m=me(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=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 I of y)p[I]===void 0&&A.push(new Oe(I));let b=await Vt({connection:this.connection,address:A});for(let[I,K]of Object.entries(b))p[I]=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(p));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let k=new $e(S);return k.sign(this.signers),{builder:this,transaction:k,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var v;let{skipPreflight:K=!0,sendAndConfirm:x,notSendToRpc:F}=I||{};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:m||{}}}async buildV0MultiTx(t){var A;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:a}=await this.buildV0(i),c=n.filter(b=>b.builder.instructions.length>0),m=[a,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),m.forEach(async(b,g)=>{b.sign(p[g])}),{builder:this,transactions:m,signers:p,instructionTypes:y,buildProps:i,execute:async b=>{var w;let{sequentially:g,onTxUpdate:S,recentBlockHash:k,skipPreflight:N=!0}=b||{};if(k&&m.forEach(I=>I.message.recentBlockhash=k),Te(m),(w=this.owner)!=null&&w.isKeyPair){if(g){let I=[];for(let K of m){let x=await this.connection.sendTransaction(K,{skipPreflight:N});await pt(this.connection,x),I.push(x)}return{txIds:I,signedTxs:m}}return{txIds:await Promise.all(m.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:N}))),signedTxs:m}}if(this.signAllTransactions){let I=await this.signAllTransactions(m);if(g){let K=0,x=[],F=async()=>{if(!I[K])return;let v=await this.connection.sendTransaction(I[K],{skipPreflight:N});x.push({txId:v,status:"sent",signedTx:I[K]}),S==null||S([...x]),K++;let P=!1,T=null,h=null,C=O=>{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=O.err?"error":"success"}S==null||S([...x]),O.err||F()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var O;if(P){clearInterval(T);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(P=!0,clearInterval(T),C({err:((O=_.meta)==null?void 0:O.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,O=>{if(P){this.connection.removeSignatureListener(h);return}P=!0,C(O)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:I}}else{let K=[];for(let x=0;x<I.length;x+=1){let F=await this.connection.sendTransaction(I[x],{skipPreflight:N});K.push(F)}return{txIds:K,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var S;let g=t||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=me(g,["splitIns","computeBudgetConfig"]),c=i?dt(i):{instructions:[],instructionTypes:[]},m=this.signers.reduce((k,N)=>V(L({},k),{[N.publicKey.toBase58()]:N}),{}),p=[],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})?p.push(new Qe().add(...c.instructions,...A)):p.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=>m[x]).filter(x=>x!==void 0)),A=[k]}}),A.length>0){let N=[...new Set(A.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(w=>m[w]).filter(w=>w!==void 0);Ye({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:N.map(w=>w.publicKey)})?p.push(new Qe().add(...c.instructions,...A)):p.push(new Qe().add(...A)),y.push(N)}return p.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:p,signers:y,instructionTypes:this.instructionTypes,execute:async k=>{var v;let{sequentially:N,onTxUpdate:w,skipTxCount:I=0,recentBlockHash:K,skipPreflight:x=!0}=k||{},F=K!=null?K:await Le(this.connection,this.blockhashCommitment);if(p.forEach(async(P,T)=>{P.recentBlockhash=F,y[T].length&&P.sign(...y[T])}),Te(p),(v=this.owner)!=null&&v.isKeyPair){if(N){let P=0,T=[];for(let h of p){if(++P,P<=I){T.push("tx skipped");continue}let C=await qt(this.connection,h,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});T.push(C)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:x}))),signedTxs:p}}if(this.signAllTransactions){let P=await this.signAllTransactions(p.slice(I,p.length)),T=[...p.slice(0,I),...P];if(N){let h=0,C=[],O=async()=>{if(!T[h])return;h<I&&(C.push({txId:"",status:"success",signedTx:T[h]}),w==null||w([...C]),h++,O());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,j=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||O()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});te&&(ie=!0,clearInterval(q),j({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,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await O(),{txIds:C.map(_=>_.txId),signedTxs:T}}else{let h=[];for(let C=0;C<T.length;C+=1){let O=await this.connection.sendRawTransaction(T[C].serialize(),{skipPreflight:x});h.push(O)}return{txIds:h,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:m=12}=F,p=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)=>V(L({},P),{[T.publicKey.toBase58()]:T}),{}),w=[],I=[],K=[],x=0;if(this.allInstructions.forEach(P=>{let T=[...K,P],h=n?[...S.instructions,...T]:T;if(P!==i[x]&&K.length<m&&(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 O of[...new Set(A)])y[O]!==void 0&&(C[O]=y[O]);if(n&&He({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:k})){let O=new Ze({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new $e(O))}else{let O=new Ze({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new $e(O))}I.push(Array.from(new Set(K.map(O=>O.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(O=>N[O]).filter(O=>O!==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 $e(h))}else{let h=new Ze({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new $e(h))}I.push(T)}return(v=this.owner)!=null&&v.signer&&I.forEach(P=>{P.some(T=>T.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),w.forEach((P,T)=>{P.sign(I[T])}),{builder:this,transactions:w,buildProps:t,signers:I,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:T,onTxUpdate:h,skipTxCount:C=0,recentBlockHash:O,skipPreflight:_=!0}=P||{};if(w.map(async(q,W)=>{I[W].length&&q.sign(I[W]),O&&(q.message.recentBlockhash=O)}),Te(w),(ie=this.owner)!=null&&ie.isKeyPair){if(T){let q=0,W=[];for(let j of w){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{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 j=0,G=[],te=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),h==null||h([...G]),j++,te();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[j]}),h==null||h([...G]),j++;let We=!1,xe=null,rt=null,mn=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:1});fe&&(We=!0,clearInterval(xe),mn({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,mn(we)},"confirmed"),this.connection.getSignatureStatus(pe)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:_});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Ut=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new yt({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(Ut(t))}logInfo(...t){this.logger.info(Ut(t))}logAndCreateError(...t){let n=Ut(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as xl,SystemProgram as Kl}from"@solana/web3.js";import Ll from"bn.js";import{createCloseAccountInstruction as Fl,createInitializeAccountInstruction as vl,createTransferInstruction as _l,TOKEN_PROGRAM_ID as Vl}from"@solana/spl-token";import{PublicKey as mi}from"@solana/web3.js";import Nn,{isBN as Mn}from"bn.js";import{bits as ei,BitStructure as Lc,blob as ti,Blob as Oc,cstr as Nc,f32 as Mc,f32be as Fc,f64 as vc,f64be as _c,greedy as Vc,Layout as ni,ns64 as Ec,ns64be as Dc,nu64 as Wc,nu64be as qc,offset as oi,s16 as Uc,s16be as Gc,s24 as zc,s24be as Xc,s32 as ii,s32be as Yc,s40 as Hc,s40be as Qc,s48 as Zc,s48be as $c,s8 as jc,seq as ri,struct as Jc,Structure as ai,u16 as si,u16be as el,u24 as tl,u24be as nl,u32 as ui,u32be as ol,u40 as il,u40be as rl,u48 as al,u48be as sl,u8 as ci,UInt as li,union as ul,Union as cl,unionLayoutDiscriminator as ll,utf8 as ml}from"@solana/buffer-layout";var bt=ni,Cn=ai;var Gt=li;var Rn=ci,Y=si;var gt=ui;var ue=ii;var Ln=ri;var M=ti;var zt=ei,On=oi;var Be=class extends bt{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new Nn(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 Nn(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 l(o){return new Gt(1,o)}function X(o){return new Gt(4,o)}function e(o){return new Be(8,!1,o)}function R(o){return new Be(16,!1,o)}function Fn(o){return new Be(1,!0,o)}function Ne(o){return new Be(8,!0,o)}function vn(o){return new Be(16,!0,o)}var je=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 je(M(32),t=>new mi(t),t=>t.toBuffer(),o)}function re(o){return new je(Rn(),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 Yt(o,t){let n=gt("length"),i=d([n,f(o,On(n,-n.span),"values")]);return new je(i,({values:a})=>a,a=>({values:a}),t)}var Xt=class extends Cn{decode(t,n){return super.decode(t,n)}};function d(o,t,n){return new Xt(o,t,n)}function f(o,t,n){let i,a=typeof t=="number"?t:Mn(t)?t.toNumber():new Proxy(t,{get(c,m){if(!i){let p=Reflect.get(c,"count");i=Mn(p)?p.toNumber():p,Reflect.set(c,"count",i)}return Reflect.get(c,m)},set(c,m,p){return m==="count"&&(i=p),Reflect.set(c,m,p)}});return Ln(o,a,n)}var Je=d([r("mint"),r("owner"),e("amount"),X("delegateOption"),r("delegate"),l("state"),X("isNativeOption"),e("isNative"),e("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,t,n){return se([o.toBuffer(),(n!=null?n:gi).toBuffer(),t.toBuffer()],new bi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as B}from"@solana/web3.js";var Vn=new B("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),En=new B("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Dn=new B("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ht=new B("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),fm=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Pi=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Wn=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),qn=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ym=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ai=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Un=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),wi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ki=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Gn=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),bm=new B("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ti=new B("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Qt=new B("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),hi=new B("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),gm=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Bi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),xi=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Pm=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Am=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),wm=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),km=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Tm=new B("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ge={OPEN_BOOK_PROGRAM:new B("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new B("Ray1111111111111111111111111111111111111111"),AMM_V4:new B("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new B("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new B("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new B("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new B("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new B("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new B("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new B("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:B.default,Router:new B("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new B("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new B("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new B("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new B("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new B("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new B("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new B("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new B("Ray1111111111111111111111111111111111111111")};import rP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Sy,TOKEN_2022_PROGRAM_ID as Ky,TOKEN_PROGRAM_ID as Cy}from"@solana/spl-token";import{PublicKey as Ly}from"@solana/web3.js";import Ny from"bn.js";import Fy from"decimal.js";import{TOKEN_PROGRAM_ID as vm}from"@solana/spl-token";import{PublicKey as Dm}from"@solana/web3.js";var Si=d([X("mintAuthorityOption"),r("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Hf,TOKEN_2022_PROGRAM_ID as Qf,TOKEN_PROGRAM_ID as Zf}from"@solana/spl-token";import{Keypair as Jf,PublicKey as ey,SystemProgram as ny,TransactionInstruction as oy}from"@solana/web3.js";import ry from"bn.js";import D from"bn.js";var Fe=new D(1).shln(64);var Ki=new D(1).shln(128),Zt=new D(1).shln(64).subn(1),Ci=new D(1).shln(128).subn(1);var ve=new D("4295048016"),_e=new D("79226673521066979257578248091"),Ri=new D("59543866431248"),Li=new D("184467440737095516"),Oi=new D("15793534762490258745");var $t=60,jm=new D("18446743708227953217"),Ni=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var tt=3,zn=100;var Xn=10,Yn=100,At=14;var Z=new D(0),Ve=new D(1),Jm=new D(-1);var ed=new D("18446744073700000000");var Mi=d([M(8),l("bump"),Y("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(e(),3)]),Fi=d([X("blockTimestamp"),Ne("tickCumulative"),f(e(),4)]),Hn=d([M(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),r("poolId"),f(Fi,zn,"observations"),f(e(),4)]),vi=d([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),f(l(),46)]),_i=d([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),R("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),R("growthGlobalX64")]),jt=d([M(8),l("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),Y("tickSpacing"),R("liquidity"),R("sqrtPriceX64"),ue("tickCurrent"),X(),R("feeGrowthGlobalX64A"),R("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(R(),4),l("status"),l("feeOn"),M(6),f(_i,tt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),vi.replicate("dynamicFeeInfo"),f(e(),46)]),Vi=d([R("growthInsideLastX64"),e("rewardAmountOwed")]),Ei=d([M(8),l("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),R("liquidity"),R("feeGrowthInsideLastX64A"),R("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Vi,tt,"rewardInfos"),e("recentEpoch"),f(e(),7)]),id=d([M(8),l("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),R("liquidity"),R("feeGrowthInsideLastX64A"),R("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(R(),tt,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Di=d([ue("tick"),vn("liquidityNet"),R("liquidityGross"),R("feeGrowthOutsideX64A"),R("feeGrowthOutsideX64B"),f(R(),tt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),R("unfilledRatioX64"),f(X(),3)]),Qn=d([M(8),r("poolId"),ue("startTickIndex"),f(Di,$t,"ticks"),l("initializedTickCount"),e("recentEpoch"),f(l(),107)]),Wi=d([M(8),l("bump"),f(r(),Xn,"operationOwners"),f(r(),Yn,"whitelistMints")]),qi=d([M(8),r("poolId"),r("owner"),ue("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),R("unfilledRatioX64"),f(e(),4)]),Zn=d([M(8),r("poolId"),M(8*8*At,"positiveTickArrayBitmap"),M(8*8*At,"negativeTickArrayBitmap")]),rd=d([M(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(e(),8)]),Ui=d([M(8),r("wallet"),l("nonceIndex"),e("orderNonce"),f(e(),4)]),ad=d([e(),l("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(e(),8)]),Gi=d([M(8),l("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),f(e(),8)]);import cd from"bn.js";var wd=Buffer.from("amm_config","utf8"),Xi=Buffer.from("pool","utf8"),Yi=Buffer.from("pool_vault","utf8"),kd=Buffer.from("pool_reward_vault","utf8"),Td=Buffer.from("position","utf8"),hd=Buffer.from("tick_array","utf8"),Bd=Buffer.from("operation","utf8"),Id=Buffer.from("pool_tick_array_bitmap_extension","utf8"),xd=Buffer.from("observation","utf8"),Sd=Buffer.from("support_mint","utf8"),Kd=Buffer.from("dynamic_fee_config","utf8"),Cd=Buffer.from("permission","utf8");var Rd=Buffer.from("locked_position","utf8");import{sha256 as ur}from"js-sha256";import Hi from"bn.js";import Md from"decimal.js";var vd=new Hi(1).shln(256).subn(1);import ep from"bn.js";import Ud from"bn.js";import zd from"decimal.js";import rp from"bn.js";import sp from"decimal.js";import{PublicKey as Yp}from"@solana/web3.js";import Qp from"bn.js";import{TOKEN_2022_PROGRAM_ID as of,TOKEN_PROGRAM_ID as rf}from"@solana/spl-token";import cf from"decimal.js";import vp from"bn.js";import hp from"bn.js";import wf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(ur.digest(t)).slice(0,8)}Hn.span;var fy=E("Raydium_Clmm"),yy={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as nn}from"@solana/web3.js";var dr=d([l("instruction")]),pr=d([l("instruction")]),fr=d([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),R("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),f(e(),15,"padding")]),yr=d([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),R("perShareReward"),e("lastSlot"),e("perSlotReward")]),br=d([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),R("perShareRewardA"),e("perSlotRewardA"),l("option"),r("rewardVaultB"),M(7),e("totalRewardB"),R("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),gr=d([e(),e("state"),e("nonce"),e("validRewardTokenNum"),R("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),f(fr,5,"rewardInfos"),r("creator"),r(),f(e(),32,"padding")]),Pr=new Proxy(yr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return V(L({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,t,n)}}),Ar=new Proxy(br,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return V(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,t,n)}}),oo=new Proxy(gr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return V(L({},a),{version:6,rewardInfos:a.rewardInfos.map(c=>{var m;return V(L({},c),{rewardType:((m=Object.entries(it).find(p=>String(p[1])===c.rewardType.toString()))!=null?m:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),wr=d([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),kr=d([l("instruction"),e("nonce"),f(wr,5,"rewardTimeInfo")]),Tr=d([l("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),hr=d([l("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),lb=d([e("state"),r("id"),r("owner"),e("deposited"),f(e(),1,"rewardDebts")]),io=d([e("state"),r("id"),r("owner"),e("deposited"),f(R(),1,"rewardDebts"),e(""),e("voteLockedBalance"),f(e(),15)]),mb=d([e("state"),r("id"),r("owner"),e("deposited"),f(e(),2,"rewardDebts")]),Br=d([e("state"),r("id"),r("owner"),e("deposited"),f(R(),2,"rewardDebts"),f(e(),17)]),Ir=d([e(),e("state"),r("id"),r("owner"),e("deposited"),f(R(),5,"rewardDebts"),f(e(),16)]),xr=d([l("instruction"),e("amount")]),Sr=d([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Fn("digitShift"),f(l(),7,"reserved1"),f(e(),7,"reserved2")]),Kr=d([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),f(l(),32,"reserved1"),f(Sr,4,"votingMints"),Ne("timeOffset"),l("bump"),f(l(),7,"reserved2"),f(e(),11,"reserved3")]),Cr=d([Ne("startTime"),Ne("endTime"),l("kind"),f(l(),15,"reserved")]),Rr=d([f(Cr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),l("votingMintConfigIdx"),f(l(),29,"reserved")]),Lr=d([M(8),r("voterAuthority"),r("registrar"),f(Rr,32,"deposits"),l("voterBump"),l("voterWweightRecordBump"),f(l(),94,"reserved")]);import{NATIVE_MINT as wb}from"@solana/spl-token";var kb=E("Raydium_farm_config"),Or=new nn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Nr=new nn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Tb=new nn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var it={"Standard SPL":0,"Option tokens":1},ro={[Vn.toString()]:3,[En.toString()]:4,[Dn.toString()]:5,[Ht.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=E("Raydium.farm.util");var Kg=E("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 Bw}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 Wr=new so(25),qr=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 Ur=d([l("instruction"),e("amountIn"),e("minAmountOut")]),Gr=d([l("instruction"),e("maxAmountIn"),e("amountOut")]),_P=d([l("instruction"),l("nonce")]),zr=d([l("instruction"),l("nonce"),e("startTime")]),uo=d([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),R("swapBaseInAmount"),R("swapQuoteOutAmount"),e("swapBase2QuoteFee"),R("swapQuoteInAmount"),R("swapBaseOutAmount"),e("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"),e("lpReserve"),f(e(),3,"padding")]),VP=d([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),R("swapBaseInAmount"),R("swapQuoteOutAmount"),R("swapQuoteInAmount"),R("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),f(e(),64,"padding")]),Xr=d([l("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Yr=d([l("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Hr=d([e("fee")]);var iA=E("Raydium_liquidity_instruction");var Qr=5e4,Zr=d([e("x"),e("y"),e("price")]),uA=d([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),f(Zr,Qr,"DataElement")]);import{PublicKey as wA}from"@solana/web3.js";import TA from"decimal.js";import{TOKEN_PROGRAM_ID as BA}from"@solana/spl-token";import{PublicKey as dA}from"@solana/web3.js";var yA=E("Raydium_liquidity_serum");import $w from"bn.js";import Jw from"decimal.js";import{TOKEN_PROGRAM_ID as $A}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 t=new Pt(o);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var jr=d([M(5),$r("accountFlags"),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as ST}from"@solana/web3.js";import{AccountLayout as CT,NATIVE_MINT as RT,TOKEN_2022_PROGRAM_ID as LT,TOKEN_PROGRAM_ID as OT,createAssociatedTokenAccountIdempotentInstruction as NT}from"@solana/spl-token";import hk from"bn.js";import ra from"bn.js";var ck=new ra(0);import yk from"bn.js";import aa from"bn.js";var Tt=new aa(1e6);import WT from"bn.js";import UT from"decimal.js";import{PublicKey as Uk,TransactionInstruction as Gk,Keypair as Xk,SystemProgram as Yk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Qk,TOKEN_2022_PROGRAM_ID as Zk,TOKEN_PROGRAM_ID as $k}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"),vk=Buffer.from("creator_fee_share","utf8");var _k=Buffer.from("locked_liquidity","utf8");var iT=E("Raydium_cpmm"),rT={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 ca=d([M(8),l("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),f(e(),14)]),co=d([M(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),l("bump"),l("status"),l("lpDecimals"),l("mintDecimalA"),l("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),l("feeOn"),re("enableCreatorFee"),f(l(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),f(e(),28)]),uT=d([M(8),r("configId"),f(e(),30)]),cT=d([M(8),l("bump"),r("creator"),r("ammConfig"),e("shareRate"),f(e(),8)]);import{PublicKey as tK,SystemProgram as nK}from"@solana/web3.js";import{createTransferInstruction as iK,TOKEN_PROGRAM_ID as rK,TOKEN_2022_PROGRAM_ID as aK,createAssociatedTokenAccountIdempotentInstruction as sK,createSyncNativeInstruction as cK,createTransferCheckedInstruction as lK}from"@solana/spl-token";import Ra from"bn.js";import pK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as $h,TOKEN_2022_PROGRAM_ID as jh,TOKEN_PROGRAM_ID as Jh}from"@solana/spl-token";import{SystemProgram as oB,TransactionInstruction as iB}from"@solana/web3.js";import da from"bn.js";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"),Gh=Buffer.from("platform_curve_rule","utf8");var sB={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]),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]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var uB=new da("18446744073709551615");var pa=d([e(),e("epoch"),l("curveType"),Y("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),f(e(),16)]),fa=d([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),ya=d([e(),e("epoch"),l("bump"),l("status"),l("mintDecimalsA"),l("mintDecimalsB"),l("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),fa.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),l("mintProgramFlag"),l("cpmmCreatorFeeOn"),e("platformVestingShare"),f(l(),54)]),dB=d([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),f(e(),8)]),ba=d([l("migrateType"),l("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),pB=d([e("epoch"),l("index"),r("configId"),ba.replicate("bondingCurveParam"),f(e(),50)]),mo=d([e(),e("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),f(l(),64,"name"),f(l(),256,"web"),f(l(),256,"img"),r("cpConfigId"),e("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),e("platformVestingScale"),r("platformCpCreator"),l("restrictGlobalConfig"),l("restrictCurveParam"),r("curveRuleManager"),f(l(),78)]),ga=d([l("field"),l("op"),R("value")]),Pa=d([Y("groupId"),e("epoch"),Yt(ga,"constraints")]),Aa=d([e(),l("bump"),l("version"),r("platformId"),r("configId"),e("epoch"),f(e(),8),Yt(Pa,"groups")]);import{TOKEN_2022_PROGRAM_ID as bB,TOKEN_PROGRAM_ID as gB}from"@solana/spl-token";import wa from"bn.js";var CB=new wa(1e6);import NB from"bn.js";import FB from"decimal.js";import pI from"bn.js";import yI from"decimal.js";import WB from"bn.js";import UB from"decimal.js";import JB from"bn.js";import tI from"decimal.js";import yo from"bn.js";import rn from"decimal.js";var It=class{static _multipler(t){return new rn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new rn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:t,decimalA:n,decimalB:i}){let a=t.mul(this._multipler(i)).div(this._multipler(n));return new yo(a.mul(this._Q64).toFixed(0))}};It._Q64=new rn(new yo(1).shln(64).toString());import{NATIVE_MINT as Rx,TOKEN_2022_PROGRAM_ID as Lx,TOKEN_PROGRAM_ID as Ox,createAssociatedTokenAccountIdempotentInstruction as Mx,createSyncNativeInstruction as Fx,getTransferFeeConfig as vx,unpackMint as _x}from"@solana/spl-token";import H from"bn.js";import{PublicKey as Sa,SystemProgram as Dx}from"@solana/web3.js";import Yx from"decimal.js";var Hx={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 Sa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},Qx=new H(1e4);var Ka={[Wn.toBase58()]:3};var Ca=d([M(5),M(8),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as AS}from"@solana/web3.js";var BS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as NS,TOKEN_2022_PROGRAM_ID as MS,TOKEN_PROGRAM_ID as FS}from"@solana/spl-token";import{PublicKey as _S,SystemProgram as VS,TransactionInstruction as ES}from"@solana/web3.js";import WS from"bn.js";var UK=new Ra(0);import{PublicKey as La,Transaction as an,TransactionInstruction as Oa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Na}from"@solana/spl-token";import bo from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return se([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,i,a){return se([ee.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new bo(a).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:a,chainTime:c}){if(i.length===0)return[];let m=i.map(b=>ee.getPdaPoolId(n,b).publicKey),p=[];for(let b=0;b<ee.VERSION_PROJECT.length;b++)p.push(...m.map(g=>ee.getPdaOwnerId(n,g,a,b).publicKey));let y=await ye(t,[...m,...p]),A=[];for(let b=0;b<y.length;b++){let g=Math.floor(b/i.length),S=b%i.length,k=m[S],N=p[b],w=y[S],I=y[i.length+b];if(!(w&&I)||w.data.length!==ee.POOL_LAYOUT.span||I.data.length!==ee.OWNER_LAYOUT.span)continue;let K=ee.POOL_LAYOUT.decode(w.data),x=ee.OWNER_LAYOUT.decode(I.data),F=K.openTime.toNumber(),v=K.endTime.toNumber(),P=x.tokenInfo.map(C=>C.debtAmount.gt(new bo(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,O)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:x.tokenInfo[O].debtAmount.add(x.tokenInfo[O].claimedAmount)}))})}return A}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,m=[];for(let A of t.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),m.push(b)}a.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:c,ownerPda:t.ownerAccountId,claimAddress:m}})]});let{transaction:p,signers:y}=a.build();return[{transaction:p,signer:y}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,m={};for(let b of t){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&&(m[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:p,signers:y}=a.build(),A=a.allInstructions;return Wt(A,[c,...y.map(b=>b.publicKey)])?[{transaction:p,signer:y}]:[{transaction:new an().add(...A.slice(0,a.AllTxData.instructions.length-1)),signer:y},{transaction:new an().add(...A.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new an().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let a=d([]),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:Na,isSigner:!1,isWritable:!1}],m=Buffer.alloc(a.span);a.encode({},m);let p=Buffer.from([10,66,208,184,161,6,191,98,...m]);return new Oa({keys:c,programId:t,data:p})}},ce=ee;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=d([M(8),l("bump"),l("status"),e("openTime"),e("endTime"),r("ammId"),f(d([l("mintDecimals"),r("mintAddress"),r("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),f(e(),10,"padding")]),ce.OWNER_LAYOUT=d([M(8),l("bump"),l("version"),r("poolId"),r("owner"),e("lpAmount"),f(d([r("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),f(e(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new La(t)),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 aC}from"@solana/web3.js";import{getTransferFeeConfig as uC,MintLayout as cC,TOKEN_2022_PROGRAM_ID as lC,TOKEN_PROGRAM_ID as mC,unpackMint as dC}from"@solana/spl-token";var DR=new Ie(2),WR=new Ie(3),qR=new Ie(5),Vo=new Ie(10),UR=new Ie(100),GR=new Ie(1e3),zR=new Ie(1e4);function Lt(o,t=1,n=[]){let i=[...o];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}import{TOKEN_PROGRAM_ID as Da}from"@solana/spl-token";function Ma(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function sn(o,...t){if(!Ma(o))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(o.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${o.length}`)}function un(o,t=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(t&&o.finished)throw new Error("Hash#digest() has already been called")}function go(o,t){sn(o);let n=t.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,t)=>o<<32-t|o>>>t;var yL=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Fa(o){if(typeof o!="string")throw new Error(`utf8ToBytes expected string, got ${typeof o}`);return new Uint8Array(new TextEncoder().encode(o))}function cn(o){return typeof o=="string"&&(o=Fa(o)),sn(o),o}var xt=class{clone(){return this._cloneInto()}},bL={}.toString;function Po(o){let t=i=>o().update(cn(i)).digest(),n=o();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>o(),t}function va(o,t,n,i){if(typeof o.setBigUint64=="function")return o.setBigUint64(t,n,i);let a=BigInt(32),c=BigInt(4294967295),m=Number(n>>a&c),p=Number(n&c),y=i?4:0,A=i?0:4;o.setUint32(t+y,m,i),o.setUint32(t+A,p,i)}var Ao=(o,t,n)=>o&t^~o&n,wo=(o,t,n)=>o&t^o&n^t&n,Kt=class extends xt{constructor(t,n,i,a){super(),this.blockLen=t,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(t),this.view=St(this.buffer)}update(t){un(this);let{view:n,buffer:i,blockLen:a}=this;t=cn(t);let c=t.length;for(let m=0;m<c;){let p=Math.min(a-this.pos,c-m);if(p===a){let y=St(t);for(;a<=c-m;m+=a)this.process(y,m);continue}i.set(t.subarray(m,m+p),this.pos),this.pos+=p,m+=p,this.pos===a&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){un(this),go(t,this),this.finished=!0;let{buffer:n,view:i,blockLen:a,isLE:c}=this,{pos:m}=this;n[m++]=128,this.buffer.subarray(m).fill(0),this.padOffset>a-m&&(this.process(i,0),m=0);for(let g=m;g<a;g++)n[g]=0;va(i,a-8,BigInt(this.length*8),c),this.process(i,0);let p=St(t),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++)p.setUint32(4*g,b[g],c)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let i=t.slice(0,n);return this.destroy(),i}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:n,buffer:i,length:a,finished:c,destroyed:m,pos:p}=this;return t.length=a,t.pos=p,t.finished=c,t.destroyed=m,a%n&&t.buffer.set(i),t}};var _a=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),ln=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:t,B:n,C:i,D:a,E:c,F:m,G:p,H:y}=this;return[t,n,i,a,c,m,p,y]}set(t,n,i,a,c,m,p,y){this.A=t|0,this.B=n|0,this.C=i|0,this.D=a|0,this.E=c|0,this.F=m|0,this.G=p|0,this.H=y|0}process(t,n){for(let g=0;g<16;g++,n+=4)Ae[g]=t.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:m,E:p,F:y,G:A,H:b}=this;for(let g=0;g<64;g++){let S=le(p,6)^le(p,11)^le(p,25),k=b+S+Ao(p,y,A)+_a[g]+Ae[g]|0,w=(le(i,2)^le(i,13)^le(i,22))+wo(i,a,c)|0;b=A,A=y,y=p,p=m+k|0,m=c,c=a,a=i,i=k+w|0}i=i+this.A|0,a=a+this.B|0,c=c+this.C|0,m=m+this.D|0,p=p+this.E|0,y=y+this.F|0,A=A+this.G|0,b=b+this.H|0,this.set(i,a,c,m,p,y,A,b)}roundClean(){Ae.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var ko=Po(()=>new ln);function yi({owner:o,solAccountResp:t,tokenAccountResp:n}){let i=[],a=[];for(let{pubkey:c,account:m}of n.value){let p=Je.decode(m.data),{mint:y,amount:A}=p;i.push({publicKey:c,mint:y,amount:A,isAssociated:ae(o,y,m.owner).publicKey.equals(c),isNative:!1,programId:m.owner}),a.push({pubkey:c,accountInfo:p,programId:m.owner})}return t&&i.push({mint:To.default,amount:new Ea(String(t.lamports)),isNative:!0,programId:t.owner}),{tokenAccounts:i,tokenAccountRawInfos:a}}function et({fromPublicKey:o,programId:t=Da,assignSeed:n}){let i=n?btoa(n).slice(0,32):Va.generate().publicKey.toBase58().slice(0,32);return{publicKey:Wa(o,i,t),seed:i}}function Wa(o,t,n){let i=Buffer.concat([o.toBuffer(),Buffer.from(t),n.toBuffer()]),a=ko(i);return new To(a)}export{et as generatePubKey,yi as parseTokenAccountResp};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=util.mjs.map