UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 75.6 kB
var po=Object.defineProperty,fo=Object.defineProperties;var yo=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var un=Object.prototype.hasOwnProperty,cn=Object.prototype.propertyIsEnumerable;var sn=(r,t,n)=>t in r?po(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,L=(r,t)=>{for(var n in t||(t={}))un.call(t,n)&&sn(r,n,t[n]);if(at)for(var n of at(t))cn.call(t,n)&&sn(r,n,t[n]);return r},D=(r,t)=>fo(r,yo(t));var le=(r,t)=>{var n={};for(var i in r)un.call(r,i)&&t.indexOf(i)<0&&(n[i]=r[i]);if(r!=null&&at)for(var i of at(r))t.indexOf(i)<0&&cn.call(r,i)&&(n[i]=r[i]);return n};import{PublicKey as Po}from"@solana/web3.js";import{get as ln,set as bo}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}},mn={},go={};function _(r){let t=ln(mn,r);if(!t){let n=ln(go,r);t=new Ct({name:r,logLevel:n}),bo(mn,r,t)}return t}import{MINT_SIZE as Sa,TOKEN_PROGRAM_ID as Ka,getTransferFeeConfig as xa,unpackMint as Ca}from"@solana/spl-token";var Rt=_("Raydium_accountInfo_util");async function be(r,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:m=100}=L({batchRequest:!1},n),p=Lt(t,m),f=new Array(p.length).fill([]);if(i){let g=p.map(K=>{let C=r._buildArgs([K.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),h=Lt(g,10);f=(await(await Promise.all(h.map(async K=>await r._rpcBatchRequest(K)))).flat()).map(K=>(K.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${K.error.message}`),K.result.value.map(C=>{if(C){let{data:S,executable:M,lamports:P,owner:T,rentEpoch:B}=C;return S.length!==2&&S[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:P,owner:new Po(T),rentEpoch:B}}return null})))}else try{f=await Promise.all(p.map(g=>r.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import Ie from"bn.js";import Zx from"decimal.js";import So from"big.js";import Xa from"bn.js";import Ao from"toformat";var wo=Ao,Ue=wo;import ut from"big.js";import To from"bn.js";import ho from"decimal.js-light";import Ge from"bn.js";var dn=9007199254740991;function ne(r){let t=_("Raydium_parseBigNumberish");if(r instanceof Ge)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new Ge(r);t.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&t.logWithError(`BigNumberish number underflow: ${r}`),(r>=dn||r<=-dn)&&t.logWithError(`BigNumberish number overflow: ${r}`),new Ge(String(r))):typeof r=="bigint"?new Ge(r.toString()):(t.error(`invalid BigNumberish value: ${r}`),new Ge(0))}var st=_("module/fraction"),Ot=Ue(ut),ze=Ue(ho),Io={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},Bo={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},U=class{constructor(t,n=new To(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:Io[i]});let u=new ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.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=Bo[i]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var ts=_("Raydium_amount"),ns=Ue(So);import{PublicKey as xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pn}from"@solana/spl-token";var ct={chainId:101,address:xo.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"}},me={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 fn,SYSVAR_RENT_PUBKEY as Co}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ro}from"@solana/spl-token";function Ke({pubkey:r,isSigner:t=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:t}}var Lo=[Ke({pubkey:Ro,isWritable:!1}),Ke({pubkey:fn.programId,isWritable:!1}),Ke({pubkey:Co,isWritable:!1})];function yn({publicKey:r,transformSol:t}){let n=bn(r.toString());if(n instanceof z)return t&&n.equals(we)?ge:n;if(t&&n.toString()===we.toBase58())return ge;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 bn(r){try{return new z(r)}catch{return r}}var Nt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new z("SysvarRent111111111111111111111111111111111"),ls=new z("SysvarC1ock11111111111111111111111111111111"),lt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Oo=new z("Sysvar1nstructions1111111111111111111111111"),No=fn.programId,ms=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ds=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ps=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),fs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ys=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),bs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),gs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ps=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),As=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ws=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ks=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new z("So11111111111111111111111111111111111111112"),we=z.default;var Ft=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:m=!1,isToken2022:p=!1}){if(t===we.toBase58()||t instanceof Mt&&we.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new Mt(me.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Mt.default:yn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ft;J.WSOL=new Ft(D(L({},me),{mint:me.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 Mo from"bn.js";var Ns=new U(new Mo(100));var Es=_("Raydium_price");import{merge as jK}from"lodash";import Qs from"axios";var gn={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"},Fo=D(L({},gn),{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 gu=_("Raydium_Api");import{PublicKey as vl,SystemProgram as Vl}from"@solana/web3.js";import{AccountLayout as ql,createAssociatedTokenAccountIdempotentInstruction as Ul,TOKEN_PROGRAM_ID as Gl,TOKEN_2022_PROGRAM_ID as zl}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as qt,SystemProgram as Wo,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import qo from"axios";import{PublicKey as Vt,AddressLookupTableAccount as Re}from"@solana/web3.js";async function _t({connection:r,address:t,cluster:n="mainnet"}){let i=await be(r,[...new Set(t.map(m=>m.toString()))].map(m=>new Vt(m))),u={};for(let m=0;m<t.length;m++){let p=i[m],f=t[m];if(!p)continue;let g=new Re({key:f,state:Re.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Ce[f.toString()]=g:xe[f.toString()]=g}return u}var xe={},Et=async r=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xe[t])return xe;let n=new Vt(t),i=await r.getAccountInfo(n);return i&&(xe[t]=new Re({key:n,state:Re.deserialize(i.data)})),xe},Ce={},Dt=async r=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new Vt(t),i=await r.getAccountInfo(n);return i&&(Ce[t]=new Re({key:n,state:Re.deserialize(i.data)})),Ce};var Z={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 Pn,Keypair as wn,PublicKey as vo,Transaction as kn,TransactionMessage as Vo,VersionedTransaction as Tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _o}from"@solana/spl-token";var An=_("Raydium_txUtil"),hn=1644;function dt(r){let t=[],n=[];return r.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(Z.SetComputeUnitPrice)),r.units&&(t.push(Pn.setComputeUnitLimit({units:r.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(r,t){var i,u;let n=t!=null?t:"confirmed";return(u=await((i=r.getLatestBlockhash)==null?void 0:i.call(r,{commitment:n})))==null?void 0:u.blockhash}async function pt(r,t){return r.getSignatureStatuses([t]),new Promise((n,i)=>{let u=setTimeout(i,6e4);r.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}i(Object.assign(m.err,{txId:t}))},"confirmed")})}function Wt(r,t){r.length<1&&An.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function de(r,t){let[n,i]=vo.findProgramAddressSync(r,t);return{publicKey:n,nonce:i}}function Ye({instructions:r,payer:t,signers:n}){return Wt(r,[t,...n])}function Qe({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=wn.generate().publicKey.toString()}){let m=new Vo({payerKey:t,recentBlockhash:i,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(m).serialize()).toString("base64").length<hn}catch{return!1}}var Eo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Do=r=>{let t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Tn&&(t=Eo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(r){let t=[];return r.forEach(n=>{n instanceof kn&&(n.recentBlockhash||(n.recentBlockhash=_o.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(Do(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 qo.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(Wo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.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:u=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Oe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(D(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new Ze;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(u=>u.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 u=>{var b;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},h=m!=null?m:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=h,this.signers.length&&n.sign(...this.signers),ke([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await qt(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let K=await this.signAllTransactions([n]);if(this.signers.length)for(let C of K)try{C.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(K[0].serialize(),{skipPreflight:p}),signedTx:K[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var h;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:u}=this.build(i),m=n.filter(b=>b.transaction.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(h=this.owner)!=null&&h.signer&&f.forEach(b=>{b.some(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async b=>{var B;let{sequentially:K,onTxUpdate:C,skipTxCount:S=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await Le(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(K){let I=[],F=0;for(let v of p){if(++F,F<=S)continue;let y=await qt(this.connection,v,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});I.push(y)}return{txIds:I,signedTxs:p}}return{txIds:await await Promise.all(p.map(async I=>(I.recentBlockhash=T,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:P})))),signedTxs:p}}if(this.signAllTransactions){let I=p.map((v,y)=>(v.recentBlockhash=T,f[y].length&&v.sign(...f[y]),v));ke(I);let F=await this.signAllTransactions(I);if(K){let v=0,y=[],A=async()=>{if(!F[v])return;let w=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:P});y.push({txId:w,status:"sent",signedTx:F[v]}),C==null||C([...y]),v++;let x=!1,R=null,V=null,re=q=>{R!==null&&clearInterval(R),V!==null&&this.connection.removeSignatureListener(V);let W=y.findIndex($=>$.txId===w);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=q.err?"error":"success"}C==null||C([...y]),q.err||A()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(x){clearInterval(R);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(R),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){x=!0,clearInterval(R),console.error("getTransaction timeout:",W,w)}},ft)),V=this.connection.onSignature(w,q=>{if(x){this.connection.removeSignatureListener(V);return}x=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:y.map(w=>w.txId),signedTxs:F}}else{let v=[];for(let y=0;y<F.length;y+=1){let A=await this.connection.sendRawTransaction(F[y].serialize(),{skipPreflight:P});v.push(A)}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 P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:m}=M,p=le(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=L(L({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),h=[];for(let T of g)f[T]===void 0&&h.push(new Oe(T));let b=await _t({connection:this.connection,address:h});for(let[T,B]of Object.entries(b))f[T]=B;let K=u?Oe.default.toBase58():m!=null?m:await Le(this.connection,this.blockhashCommitment),C=new He({payerKey:this.feePayer,recentBlockhash:K,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new je(C);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:B=!0,sendAndConfirm:I,notSendToRpc:F}=T||{};if(ke([S]),(v=this.owner)!=null&&v.isKeyPair){let y=await this.connection.sendTransaction(S,{skipPreflight:B});return I&&await pt(this.connection,y),{txId:y,signedTx:S}}if(this.signAllTransactions){let y=await this.signAllTransactions([S]);if(this.signers.length)for(let A of y)try{A.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(y[0],{skipPreflight:B}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var h;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:u}=await this.buildV0(i),m=n.filter(b=>b.builder.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(h=this.owner)!=null&&h.signer&&f.forEach(b=>{b.some(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,K)=>{b.sign(f[K])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:i,execute:async b=>{var P;let{sequentially:K,onTxUpdate:C,recentBlockHash:S,skipPreflight:M=!0}=b||{};if(S&&p.forEach(T=>T.message.recentBlockhash=S),ke(p),(P=this.owner)!=null&&P.isKeyPair){if(K){let T=[];for(let B of p){let I=await this.connection.sendTransaction(B,{skipPreflight:M});await pt(this.connection,I),T.push(I)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p);if(K){let B=0,I=[],F=async()=>{if(!T[B])return;let v=await this.connection.sendTransaction(T[B],{skipPreflight:M});I.push({txId:v,status:"sent",signedTx:T[B]}),C==null||C([...I]),B++;let y=!1,A=null,w=null,x=R=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let V=I.findIndex(re=>re.txId===v);if(V>-1){if(I[V].status==="error"||I[V].status==="success")return;I[V].status=R.err?"error":"success"}C==null||C([...I]),R.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var R;if(y){clearInterval(A);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(y=!0,clearInterval(A),x({err:((R=V.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){y=!0,clearInterval(A),console.error("getTransaction timeout:",V,v)}},ft)),w=this.connection.onSignature(v,R=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,x(R)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let B=[];for(let I=0;I<T.length;I+=1){let F=await this.connection.sendTransaction(T[I],{skipPreflight:M});B.push(F)}return{txIds:B,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var C;let K=t||{},{splitIns:n=[],computeBudgetConfig:i}=K,u=le(K,["splitIns","computeBudgetConfig"]),m=i?dt(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,M)=>D(L({},S),{[M.publicKey.toBase58()]:M}),{}),f=[],g=[],h=[],b=0;if(this.allInstructions.forEach(S=>{let M=[...h,S],P=i?[...m.instructions,...M]:M,B=[...new Set(M.map(I=>I.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(I=>new Oe(I));if(S!==n[b]&&h.length<12&&(Ye({instructions:P,payer:this.feePayer,signers:B})||Ye({instructions:M,payer:this.feePayer,signers:B})))h.push(S);else{if(h.length===0)throw Error("item ins too big");b+=S===n[b]?1:0,Ye({instructions:i?[...m.instructions,...h]:[...h],payer:this.feePayer,signers:B})?f.push(new Ze().add(...m.instructions,...h)):f.push(new Ze().add(...h)),g.push(Array.from(new Set(h.map(I=>I.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(I=>p[I]).filter(I=>I!==void 0)),h=[S]}}),h.length>0){let M=[...new Set(h.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>p[P]).filter(P=>P!==void 0);Ye({instructions:i?[...m.instructions,...h]:[...h],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?f.push(new Ze().add(...m.instructions,...h)):f.push(new Ze().add(...h)),g.push(M)}return f.forEach(S=>S.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&g.forEach(S=>{S.some(M=>M.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async S=>{var v;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:B,skipPreflight:I=!0}=S||{},F=B!=null?B:await Le(this.connection,this.blockhashCommitment);if(f.forEach(async(y,A)=>{y.recentBlockhash=F,g[A].length&&y.sign(...g[A])}),ke(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let y=0,A=[];for(let w of f){if(++y,y<=T){A.push("tx skipped");continue}let x=await qt(this.connection,w,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});A.push(x)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:I}))),signedTxs:f}}if(this.signAllTransactions){let y=await this.signAllTransactions(f.slice(T,f.length)),A=[...f.slice(0,T),...y];if(M){let w=0,x=[],R=async()=>{if(!A[w])return;w<T&&(x.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...x]),w++,R());let V=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:I});x.push({txId:V,status:"sent",signedTx:A[w]}),P==null||P([...x]),w++;let re=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(fe=>fe.txId===V);if(te>-1){if(x[te].status==="error"||x[te].status==="success")return;x[te].status=G.err?"error":"success"}P==null||P([...x]),G.err||R()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(re=!0,clearInterval(q),$({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){re=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},ft)),W=this.connection.onSignature(V,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await R(),{txIds:x.map(V=>V.txId),signedTxs:A}}else{let w=[];for(let x=0;x<A.length;x+=1){let R=await this.connection.sendRawTransaction(A[x].serialize(),{skipPreflight:I});w.push(R)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=F,f=le(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=L(L({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),u),h=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of h)g[y]===void 0&&b.push(new Oe(y));let K=await _t({connection:this.connection,address:b});for(let[y,A]of Object.entries(K))g[y]=A;let C=n?dt(n):{instructions:[],instructionTypes:[]},S=await Le(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,A)=>D(L({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],B=[],I=0;if(this.allInstructions.forEach(y=>{let A=[...B,y],w=n?[...C.instructions,...A]:A;if(y!==i[I]&&B.length<p&&(Qe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Qe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))B.push(y);else{if(B.length===0)throw Error("item ins too big");I+=y===i[I]?1:0;let x={};for(let R of[...new Set(h)])g[R]!==void 0&&(x[R]=g[R]);if(n&&Qe({instructions:[...C.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let R=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new je(R))}else{let R=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new je(R))}T.push(Array.from(new Set(B.map(R=>R.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(R=>M[R]).filter(R=>R!==void 0)),B=[y]}}),B.length>0){let A=[...new Set(B.map(w=>w.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&Qe({instructions:[...C.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new je(w))}else{let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new je(w))}T.push(A)}return(v=this.owner)!=null&&v.signer&&T.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),P.forEach((y,A)=>{y.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var re;let{sequentially:A,onTxUpdate:w,skipTxCount:x=0,recentBlockHash:R,skipPreflight:V=!0}=y||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),R&&(q.message.recentBlockhash=R)}),ke(P),(re=this.owner)!=null&&re.isKeyPair){if(A){let q=0,W=[];for(let $ of P){if(++q,q<=x){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:V});await pt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(x,P.length)),W=[...P.slice(0,x),...q];if(A){let $=0,G=[],te=async()=>{if(!W[$])return;if($<x){G.push({txId:"",status:"success",signedTx:W[$]}),w==null||w([...G]),$++,te();return}let fe=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:fe,status:"sent",signedTx:W[$]}),w==null||w([...G]),$++;let We=!1,Se=null,rt=null,an=Ae=>{Se!==null&&clearInterval(Se),rt!==null&&this.connection.removeSignatureListener(rt);let ye=G.findIndex(mo=>mo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Ae.err?"error":"success"}w==null||w([...G]),Ae.err||te()};this.loopMultiTxStatus&&(Se=setInterval(async()=>{var Ae;if(We){clearInterval(Se);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(We=!0,clearInterval(Se),an({err:((Ae=ye.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){We=!0,clearInterval(Se),console.error("getTransaction timeout:",ye,fe)}},ft)),rt=this.connection.onSignature(fe,Ae=>{if(We){this.connection.removeSignatureListener(rt);return}We=!0,an(Ae)},"confirmed"),this.connection.getSignatureStatus(fe)};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:V});$.push(te)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Ut=(...r)=>r.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=_(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 pl,SystemProgram as yl}from"@solana/web3.js";import Pl from"bn.js";import{createCloseAccountInstruction as Tl,createInitializeAccountInstruction as hl,createTransferInstruction as Il,TOKEN_PROGRAM_ID as Bl}from"@solana/spl-token";import{Keypair as el,PublicKey as tl}from"@solana/web3.js";import il from"bn.js";import{TOKEN_PROGRAM_ID as sl}from"@solana/spl-token";import{PublicKey as ei}from"@solana/web3.js";import xn,{isBN as Cn}from"bn.js";import{bits as Uo,BitStructure as rc,blob as Go,Blob as ac,cstr as sc,f32 as uc,f32be as cc,f64 as lc,f64be as mc,greedy as dc,Layout as zo,ns64 as pc,ns64be as fc,nu64 as yc,nu64be as bc,offset as Xo,s16 as gc,s16be as Pc,s24 as Ac,s24be as wc,s32 as Yo,s32be as kc,s40 as Tc,s40be as hc,s48 as Ic,s48be as Bc,s8 as Sc,seq as Qo,struct as Kc,Structure as Zo,u16 as Ho,u16be as xc,u24 as Cc,u24be as Rc,u32 as jo,u32be as Lc,u40 as Oc,u40be as Nc,u48 as Mc,u48be as Fc,u8 as $o,UInt as Jo,union as vc,Union as Vc,unionLayoutDiscriminator as _c,utf8 as Ec}from"@solana/buffer-layout";var bt=zo,In=Zo;var Gt=Jo;var Bn=$o,Y=Ho;var gt=jo;var se=Yo;var Sn=Qo;var N=Go;var zt=Uo,Kn=Xo;var he=class extends bt{constructor(n,i,u){super(n,u);this.blob=N(n),this.signed=i}decode(n,i=0){let u=new xn(this.blob.decode(n,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,i,u=0){return typeof n=="number"&&(n=new xn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,u)}},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 u=this._lower.decode(n,i),m=this._upper.decode(n,i+this._lower.span);return L(L({},u),m)}encode(n,i,u=0){return this._lower.encode(n,i,u)+this._upper.encode(n,i,u+this._lower.span)}};function c(r){return new Gt(1,r)}function X(r){return new Gt(4,r)}function e(r){return new he(8,!1,r)}function O(r){return new he(16,!1,r)}function Rn(r){return new he(1,!0,r)}function Ne(r){return new he(8,!0,r)}function Ln(r){return new he(16,!0,r)}var $e=class extends bt{constructor(n,i,u,m){super(n.span,m);this.layout=n,this.decoder=i,this.encoder=u}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,u){return this.layout.encode(this.encoder(n),i,u)}getSpan(n,i){return this.layout.getSpan(n,i)}};function o(r){return new $e(N(32),t=>new ei(t),t=>t.toBuffer(),r)}function ae(r){return new $e(Bn(),ti,ni,r)}function ti(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ni(r){return r?1:0}function On(r,t){let n=gt("length"),i=l([n,d(r,Kn(n,-n.span),"values")]);return new $e(i,({values:u})=>u,u=>({values:u}),t)}var Xt=class extends In{decode(t,n){return super.decode(t,n)}};function l(r,t,n){return new Xt(r,t,n)}function d(r,t,n){let i,u=typeof t=="number"?t:Cn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=Cn(f)?f.toNumber():f,Reflect.set(m,"count",i)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(i=f),Reflect.set(m,p,f)}});return Sn(r,u,n)}var At=l([o("mint"),o("owner"),e("amount"),X("delegateOption"),o("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as cp,SystemProgram as lp}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as dp}from"@solana/spl-token";import{PublicKey as $l}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as em}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Mn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Yt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),im=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ii=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),rm=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ri=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ai=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),si=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),am=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ui=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Qt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ci=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),sm=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),li=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),mi=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),di=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),um=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),cm=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),lm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),mm=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),dm=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import Tp from"decimal.js";import{PublicKey as Zt}from"@solana/web3.js";var pi=l([c("instruction")]),fi=l([c("instruction")]),yi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),d(e(),15,"padding")]),bi=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),gi=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),Pi=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),d(yi,5,"rewardInfos"),o("creator"),o(),d(e(),32,"padding")]),Ai=new Proxy(bi,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return D(L({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(r,t,n)}}),wi=new Proxy(gi,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return D(L({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(r,t,n)}}),Wn=new Proxy(Pi,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return D(L({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var p;return D(L({},m),{rewardType:((p=Object.entries(Je).find(f=>String(f[1])===m.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(r,t,n)}}),ki=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Ti=l([c("instruction"),e("nonce"),d(ki,5,"rewardTimeInfo")]),hi=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),Ii=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Am=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),1,"rewardDebts")]),qn=l([e("state"),o("id"),o("owner"),e("deposited"),d(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),wm=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),2,"rewardDebts")]),Bi=l([e("state"),o("id"),o("owner"),e("deposited"),d(O(),2,"rewardDebts"),d(e(),17)]),Si=l([e(),e("state"),o("id"),o("owner"),e("deposited"),d(O(),5,"rewardDebts"),d(e(),16)]),Ki=l([c("instruction"),e("amount")]),xi=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Rn("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),Ci=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),d(c(),32,"reserved1"),d(xi,4,"votingMints"),Ne("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),Ri=l([Ne("startTime"),Ne("endTime"),c("kind"),d(c(),15,"reserved")]),Li=l([d(Ri,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),Oi=l([N(8),o("voterAuthority"),o("registrar"),d(Li,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),d(c(),94,"reserved")]);import{NATIVE_MINT as Cm}from"@solana/spl-token";var Rm=_("Raydium_farm_config"),Ni=new Zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Mi=new Zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Lm=new Zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var Je={"Standard SPL":0,"Option tokens":1},Un={[Mn.toString()]:3,[Fn.toString()]:4,[vn.toString()]:5,[Yt.toString()]:6,[Pe.FARM_PROGRAM_ID_V3.toString()]:3,[Pe.FARM_PROGRAM_ID_V4.toString()]:4,[Pe.FARM_PROGRAM_ID_V5.toString()]:5,[Pe.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Id,SystemProgram as Bd,SYSVAR_CLOCK_PUBKEY as Sd,SYSVAR_RENT_PUBKEY as Kd,TransactionInstruction as xd}from"@solana/web3.js";import Rd from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Od,createAssociatedTokenAccountIdempotentInstruction as Nd,TOKEN_PROGRAM_ID as Md}from"@solana/spl-token";import ed from"bn.js";import{PublicKey as zm}from"@solana/web3.js";import Ym from"bn.js";var pd=_("Raydium.farm.util");var zd=_("Raydium_farm_instruction"),Xd={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 Np from"bn.js";import{PublicKey as IA}from"@solana/web3.js";import{AccountLayout as KA,MintLayout as xA,NATIVE_MINT as CA,TOKEN_PROGRAM_ID as LA}from"@solana/spl-token";import Tt from"bn.js";function tt(r,t){if(r.isZero())return new Tt(0);let n=r.div(t);return n.isZero()?new Tt(1):r.mod(t).gt(new Tt(0))?n.add(new Tt(1)):n}import{ASSOCIATED_TOKEN_PROGRAM_ID as Wb,TOKEN_2022_PROGRAM_ID as qb,TOKEN_PROGRAM_ID as Ub}from"@solana/spl-token";import{Keypair as Xb,PublicKey as Yb,SystemProgram as Zb,TransactionInstruction as Hb}from"@solana/web3.js";import $b from"bn.js";import E from"bn.js";var ue=new E(1).shln(64);var qi=new E(1).shln(128),ht=new E(1).shln(64).subn(1),Ui=new E(1).shln(128).subn(1);var ve=new E("4295048016"),Ve=new E("79226673521066979257578248091"),Gi=new E("59543866431248"),zi=new E("184467440737095516"),Xi=new E("15793534762490258745");var jt=60,zp=new E("18446743708227953217"),Yi=[{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 nt=3,zn=100;var Xn=10,Yn=100,It=14;var H=new E(0),_e=new E(1),Xp=new E(-1);var Yp=new E("18446744073700000000");var Qi=l([N(8),c("bump"),Y("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("tickSpacing"),X("fundFeeRate"),d(X(),1),o("fundOwner"),d(e(),3)]),Zi=l([X("blockTimestamp"),Ne("tickCumulative"),d(e(),4)]),Qn=l([N(8),ae("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),d(Zi,zn,"observations"),d(e(),4)]),Hi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),ji=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),O("growthGlobalX64")]),$t=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Y("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),se("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),N(6),d(ji,nt,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Hi.replicate("dynamicFeeInfo"),d(e(),46)]),$i=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Ji=l([N(8),c("bump"),o("nftMint"),o("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d($i,nt,"rewardInfos"),e("recentEpoch"),d(e(),7)]),jp=l([N(8),c("bump"),o("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),nt,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),er=l([se("tick"),Ln("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),nt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(X(),3)]),Zn=l([N(8),o("poolId"),se("startTickIndex"),d(er,jt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),tr=l([N(8),c("bump"),d(o(),Xn,"operationOwners"),d(o(),Yn,"whitelistMints")]),nr=l([N(8),o("poolId"),o("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),Hn=l([N(8),o("poolId"),N(8*8*It,"positiveTickArrayBitmap"),N(8*8*It,"negativeTickArrayBitmap")]),$p=l([N(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),or=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),Jp=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),ir=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import nf from"bn.js";var ff=Buffer.from("amm_config","utf8"),ar=Buffer.from("pool","utf8"),sr=Buffer.from("pool_vault","utf8"),yf=Buffer.from("pool_reward_vault","utf8"),bf=Buffer.from("position","utf8"),gf=Buffer.from("tick_array","utf8"),Pf=Buffer.from("operation","utf8"),Af=Buffer.from("pool_tick_array_bitmap_extension","utf8"),wf=Buffer.from("observation","utf8"),kf=Buffer.from("support_mint","utf8"),Tf=Buffer.from("dynamic_fee_config","utf8"),hf=Buffer.from("permission","utf8");var If=Buffer.from("locked_position","utf8");import{sha256 as Tr}from"js-sha256";import ur from"bn.js";import xf from"decimal.js";var Rf=new ur(1).shln(256).subn(1);import Qf from"bn.js";import Vf from"bn.js";import Ef from"decimal.js";import Jf from"bn.js";import ty from"decimal.js";import{PublicKey as Wy}from"@solana/web3.js";import Uy from"bn.js";import{TOKEN_2022_PROGRAM_ID as jy,TOKEN_PROGRAM_ID as $y}from"@solana/spl-token";import nb from"decimal.js";import Ry from"bn.js";import gy from"bn.js";import pb from"bn.js";function j(r){let t=`global:${r}`;return Buffer.from(Tr.digest(t)).slice(0,8)}Qn.span;var ag=_("Raydium_Clmm"),sg={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")};var hr=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{TOKEN_PROGRAM_ID as pg}from"@solana/spl-token";import{PublicKey as gg}from"@solana/web3.js";import to from"bn.js";var Ir=new to(25),Br=new to(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as vg,TOKEN_PROGRAM_ID as Vg}from"@solana/spl-token";import{PublicKey as Eg,SystemProgram as Dg,SYSVAR_RENT_PUBKEY as Wg,TransactionInstruction as qg}from"@solana/web3.js";import Hg from"bn.js";var Sr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Kr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),Og=l([c("instruction"),c("nonce")]),xr=l([c("instruction"),c("nonce"),e("startTime")]),no=l([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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),e("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("withdrawQueue"),o("lpVault"),o("owner"),e("lpReserve"),d(e(),3,"padding")]),Ng=l([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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("modelDataAccount"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("owner"),d(e(),64,"padding")]),Cr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Rr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Lr=l([e("fee")]);var Jg=_("Raydium_liquidity_instruction");var Or=5e4,Nr=l([e("x"),e("y"),e("price")]),oP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(Nr,Or,"DataElement")]);import{PublicKey as yP}from"@solana/web3.js";import gP from"decimal.js";import{TOKEN_PROGRAM_ID as AP}from"@solana/spl-token";import{PublicKey as sP}from"@solana/web3.js";var lP=_("Raydium_liquidity_serum");import jA from"bn.js";import JA from"decimal.js";import{TOKEN_PROGRAM_ID as jP}from"@solana/spl-token";import{PublicKey as JP}from"@solana/web3.js";import tA from"bn.js";import{SystemProgram as _P,SYSVAR_RENT_PUBKEY as EP,Transaction as DP,TransactionInstruction as WP}from"@solana/web3.js";import{createInitializeAccountInstruction as UP,TOKEN_PROGRAM_ID as GP}from"@solana/spl-token";function Mr(r="accountFlags"){let t=new Pt(r);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var Fr=l([N(5),Mr("accountFlags"),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as Ik}from"@solana/web3.js";import{AccountLayout as Sk,NATIVE_MINT as Kk,TOKEN_2022_PROGRAM_ID as xk,TOKEN_PROGRAM_ID as Ck,createAssociatedTokenAccountIdempotentInstruction as Rk}from"@solana/spl-token";import hw from"bn.js";import qr from"bn.js";var cw=new qr(0);import yw from"bn.js";import Ur from"bn.js";var Kt=new Ur(1e6);import _k from"bn.js";import Dk from"decimal.js";import{PublicKey as Ww,TransactionInstruction as qw,Keypair as Gw,SystemProgram as zw}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Yw,TOKEN_2022_PROGRAM_ID as Qw,TOKEN_PROGRAM_ID as Zw}from"@solana/spl-token";var xw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Cw=Buffer.from("amm_config","utf8"),Rw=Buffer.from("pool","utf8"),Lw=Buffer.from("pool_lp_mint","utf8"),Ow=Buffer.from("pool_vault","utf8"),Nw=Buffer.from("observation","utf8"),Mw=Buffer.from("permission","utf8"),Fw=Buffer.from("support_mint","utf8");var vw=Buffer.from("locked_liquidity","utf8");var nk=_("Raydium_cpmm"),ok={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 Xr=l([N(8),c("bump"),ae("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),d(e(),15)]),oo=l([N(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),ae("enableCreatorFee"),d(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),d(e(),28)]),ak=l([N(8),o("configId"),d(e(),30)]);import{PublicKey as wS,SystemProgram as kS}from"@solana/web3.js";import{createTransferInstruction as hS,TOKEN_PROGRAM_ID as IS,TOKEN_2022_PROGRAM_ID as BS,createAssociatedTokenAccountIdempotentInstruction as SS,createSyncNativeInstruction as xS,createTransferCheckedInstruction as CS}from"@solana/spl-token";import ma from"bn.js";import OS from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as HT,TOKEN_2022_PROGRAM_ID as jT,TOKEN_PROGRAM_ID as $T}from"@solana/spl-token";import{SystemProgram as nh,TransactionInstruction as oh}from"@solana/web3.js";import Jr from"bn.js";var Zr=l([e(),e("epoch"),c("curveType"),Y("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),o("mintB"),o("protocolFeeOwner"),o("migrateFeeOwner"),o("migrateToAmmWallet"),o("migrateToCpmmWallet"),d(e(),16)]),Hr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),jr=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),Hr.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),d(c(),54)]),LT=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),so=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),$r=l([e("epoch"),c("index"),o("configId"),so.replicate("bondingCurveParam"),d(e(),50)]),uo=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),d(c(),64,"name"),d(c(),256,"web"),d(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),d(c(),107),On($r,"platformCurve")]);var vT=Buffer.from("vault_auth_seed","utf8"),VT=Buffer.from("global_config","utf8"),_T=Buffer.from("pool_vesting","utf8"),ET=Buffer.from("platform_config","utf8"),DT=Buffer.from("platform_fee_vault_auth_seed","utf8"),WT=Buffer.from("creator_fee_vault_auth_seed","utf8"),qT=Buffer.from("platform_global_access","utf8"),UT=Buffer.from("platform_allow_config","utf8");var sh={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 uh=new Jr("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as dh,TOKEN_PROGRAM_ID as ph}from"@solana/spl-token";import gh from"bn.js";import Ah from"decimal.js";var De=class{static getPoolInitPriceByPool({poolInfo:t,decimalA:n,decimalB:i}){throw Error()}static getPoolInitPriceByInit({a:t,b:n,decimalA:i,decimalB:u}){throw Error()}static getPoolPrice({poolInfo:t,decimalA:n,decimalB:i}){throw Error()}static getPoolEndPrice({supply:t,totalSell:n,totalLockedAmount:i,totalFundRaising:u,migrateFee:m,decimalA:p,decimalB:f}){throw Error()}static getPoolEndPriceReal({poolInfo:t,decimalA:n,decimalB:i}){throw Error()}static getInitParam({supply:t,totalFundRaising:n,totalSell:i,totalLockedAmount:u,migrateFee:m}){throw Error()}static buyExactIn({poolInfo:t,amount:n}){throw Error()}static buyExactOut({poolInfo:t,amount:n}){throw Error()}static sellExactIn({poolInfo:t,amount:n}){throw Error()}static sellExactOut({poolInfo:t,amount:n}){throw Error()}};import Vh from"bn.js";import Eh from"decimal.js";import Bh from"bn.js";import Kh from"decimal.js";import co from"bn.js";import on from"decimal.js";var it=class{static _multipler(t){return new on(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new on(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:t,decimalA:n,decimalB:i}){let u=t.mul(this._multipler(i)).div(this._multipler(n));return new co(u.mul(this._Q64).toFixed(0))}};it._Q64=new on(new co(1).shln(64).toString());import{NATIVE_MINT as HI,TOKEN_2022_PROGRAM_ID as jI,TOKEN_PROGRAM_ID as $I,createAssociatedTokenAccountIdempotentInstruction as eB,createSyncNativeInstruction as tB,getTransferFeeConfig as nB,unpackMint as oB}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as aa,SystemProgram as aB}from"@solana/web3.js";import pB from"decimal.js";var fB={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new aa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},yB=new Q(1e4);var sa={[Vn.toBase58()]:3};var ua=l([N(5),N(8),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as _B}from"@solana/web3.js";var UB=_("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as $B,TOKEN_2022_PROGRAM_ID as JB,TOKEN_PROGRAM_ID as eS}from"@solana/spl-token";import{PublicKey as nS,SystemProgram as oS,TransactionInstruction as iS}from"@solana/web3.js";import aS from"bn.js";var uK=new ma(0);import{PublicKey as da,Transaction as rn,TransactionInstruction as pa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fa}from"@solana/spl-token";import lo from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return de([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,i,u){return de([ee.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new lo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:u,chainTime:m}){if(i.length===0)return[];let p=i.map(b=>ee.getPdaPoolId(n,b).publicKey),f=[];for(let b=0;b<ee.VERSION_PROJECT.length;b++)f.push(...p.map(K=>ee.getPdaOwnerId(n,K,u,b).publicKey));let g=await be(t,[...p,...f]),h=[];for(let b=0;b<g.length;b++){let K=Math.floor(b/i.length),C=b%i.length,S=p[C],M=f[b],P=g[C],T=g[i.length+b];if(!(P&&T)||P.data.length!==ee.POOL_LAYOUT.span||T.data.length!==ee.OWNER_LAYOUT.span)continue;let B=ee.POOL_LAYOUT.decode(P.data),I=ee.OWNER_LAYOUT.decode(T.data),F=B.openTime.toNumber(),v=B.endTime.toNumber(),y=I.tokenInfo.map(x=>x.debtAmount.gt(new lo(0))).filter(x=>!x).length!==3,A=m>F&&m<v&&B.status===1,w=y&&A;h.push({programId:n,poolId:S,ammId:B.ammId,ownerAccountId:M,snapshotLpAmount:I.lpAmount,project:ee.VERSION_PROJECT[K],openTime:F,endTime:v,canClaim:w,canClaimErrorType:y?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:B.tokenInfo.map((x,R)=>({mintAddress:x.mintAddress,mintVault:x.mintVault,mintDecimals:x.mintDecimals,perLpLoss:x.perLpLoss,debtAmount:I.tokenInfo[R].debtAmount.add(I.tokenInfo[R].claimedAmount)}))})}return h}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,p=[];for(let h of t.tokenInfo){let{account:b,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({mint:h.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:h.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!h.mintAddress.equals(J.WSOL.mint),associatedOnly:h.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});K&&u.addInstruction(K),p.push(b)}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,ownerPda:t.ownerAccountId,claimAddress:p}})]});let{transaction:f,signers:g}=u.build();return[{transaction:f,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:i}){let u=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,p={};for(let b of t){let K=[];for(let C of b.tokenInfo){let{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:C.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:C.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!C.mintAddress.equals(J.WSOL.mint),associatedOnly:C.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),S&&(p[C.mintAddress.toString()]=S,K.push(S))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:m,ownerPda:b.ownerAccountId,claimAddress:K}})]})}let{transaction:f,signers:g}=u.build(),h=u.allInstructions;return Wt(h,[m,...g.map(b=>b.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new rn().add(...h.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new rn().add(...h.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new rn().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let u=l([]),m=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(g=>({pubkey:g,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:g})=>({pubkey:g,isSigner:!1,isWritable:!0})),{pubkey:fa,isSigner:!1,isWritable:!1}],p=Buffer.alloc(u.span);u.encode({},p);let f=Buffer.from([10,66,208,184,161,6,191,98,...p]);return new pa({keys:m,programId:t,data:f})}},ce=ee;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),d(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),10,"padding")]),ce.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),d(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new da(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 BK}from"@solana/web3.js";import{getTransferFeeConfig as KK,MintLayout as xK,TOKEN_2022_PROGRAM_ID as CK,TOKEN_PROGRAM_ID as RK,unpackMint as LK}from"@solana/spl-token";var rC=new Ie(2),aC=new Ie(3),sC=new Ie(5),Ko=new Ie(10),uC=new Ie(100),cC=new Ie(1e3),lC=new Ie(1e4);function Lt(r,t=1,n=[]){let i=[...r];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}import{createAssociatedTokenAccountIdempotentInstruction as qC,TOKEN_2022_PROGRAM_ID as UC,TOKEN_PROGRAM_ID as GC}from"@solana/spl-token";import{PublicKey as XC}from"@solana/web3.js";import QC from"bn.js";import HC from"decimal.js";import ie from"bn.js";import Be from"decimal.js";var nn=class extends De{static getPoolInitPriceByPool({poolInfo:t,decimalA:n,decimalB:i}){return new Be(0)}static getPoolInitPriceByInit({a:t,b:n,decimalA:i,decimalB:u}){return new Be(0)}static getPoolPrice({poolInfo:t,decimalA:n,decimalB:i}){return new Be(t.virtualA.mul(t.realA).toString()).div(it._Q64).mul(10**(n-i))}static getPoolEndPrice({supply:t,totalSell:n,totalLockedAmount:i,totalFundRaising:u,migrateFee:m,decimalA:p,decimalB:f}){return new Be(u.sub(m).toString()).div(t.sub(n).sub(i).toString()).mul(10**(p-f))}static getPoolEndPriceReal({poolInfo:t,decimalA:n,decimalB:i}){let u=t.totalSellA.sub(t.realA),m=t.totalFundRaisingB.sub(t.realB);return new Be(t.virtualB.add(t.realB).add(m).toString()).div(t.virtualA.sub(t.realA).add(u).toString()).mul(10**(n-i))}static getInitParam({supply:t,totalFundRaising:n,totalSell:i,totalLockedAmount:u,migrateFee:m}){let p=t.sub(u);if(p.lte(new ie(0)))throw Error("supplyMinusLocked need gt 0");let f=n.mul(new ie(3)).sub(m),h=n.mul(new ie(2)).mul(p).div(f),b=h.mul(h),K=n.mul(new ie(2)).mul(ue).div(b);if(!K.gt(new ie(0)))throw Error("a need gt 0");if(!ht.gt(K))throw Error("a need lt u64 max");if(K.lt(new ie(0))||h.lt(new ie(0)))throw Error("invalid input 0");return{a:K,b:new ie(0),c:h}}static buyExactIn({poolInfo:t,amount:n}){let i=t.realB.add(n),u=new ie(2).mul(i).mul(ue).div(t.virtualA);return new ie(new Be(u.toString()).sqrt().toFixed(0)).sub(t.realA)}static buyExactOut({poolInfo:t,amount:n}){let i=t.realA.add(n),u=i.mul(i);return tt(t.virtualA.mul(u),new ie(2).mul(ue)).sub(t.realB)}static sellExactIn({poolInfo:t,amount:n}){let i=t.realA.sub(n),u=i.mul(i),m=tt(t.virtualA.mul(u),new ie(2).mul(ue));return t.realB.sub(m)}static sellExactOut({poolInfo:t,amount:n}){let i=t.realB.sub(n),u=new ie(2).mul(i).mul(ue).div(t.virtualA),m=new ie(new Be(u.toString()).sqrt().toFixed(0));return t.realA.sub(m)}};export{nn as LinearPriceCurve};
//# sourceMappingURL=linearPriceCurve.mjs.map