UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 76.2 kB
var mo=Object.defineProperty,po=Object.defineProperties;var fo=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var cn=Object.prototype.hasOwnProperty,ln=Object.prototype.propertyIsEnumerable;var un=(r,t,n)=>t in r?mo(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,R=(r,t)=>{for(var n in t||(t={}))cn.call(t,n)&&un(r,n,t[n]);if(at)for(var n of at(t))ln.call(t,n)&&un(r,n,t[n]);return r},V=(r,t)=>po(r,fo(t));var le=(r,t)=>{var n={};for(var i in r)cn.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&&ln.call(r,i)&&(n[i]=r[i]);return n};import{PublicKey as go}from"@solana/web3.js";import{get as mn,set as yo}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}},dn={},bo={};function E(r){let t=mn(dn,r);if(!t){let n=mn(bo,r);t=new Ct({name:r,logLevel:n}),yo(dn,r,t)}return t}import{MINT_SIZE as Ca,TOKEN_PROGRAM_ID as Ra,getTransferFeeConfig as La,unpackMint as Oa}from"@solana/spl-token";var Rt=E("Raydium_accountInfo_util");async function be(r,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:m=100}=R({batchRequest:!1},n),p=Lt(t,m),f=new Array(p.length).fill([]);if(i){let g=p.map(K=>{let L=r._buildArgs([K.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:L}}),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(L=>{if(L){let{data:S,executable:M,lamports:P,owner:T,rentEpoch:B}=L;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 go(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 hC from"decimal.js";import Bo from"big.js";import Qa from"bn.js";import Po from"toformat";var Ao=Po,Ue=Ao;import ut from"big.js";import ko from"bn.js";import To from"decimal.js-light";import Ge from"bn.js";var pn=9007199254740991;function ne(r){let t=E("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>=pn||r<=-pn)&&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=E("module/fraction"),Ot=Ue(ut),ze=Ue(To),ho={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},Io={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},U=class{constructor(t,n=new ko(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:ho[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=Io[i]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var is=E("Raydium_amount"),rs=Ue(Bo);import{PublicKey as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fn}from"@solana/spl-token";var ct={chainId:101,address:Ko.default.toBase58(),programId:fn.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:fn.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 yn,SYSVAR_RENT_PUBKEY as xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Co}from"@solana/spl-token";function Ke({pubkey:r,isSigner:t=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:t}}var Ro=[Ke({pubkey:Co,isWritable:!1}),Ke({pubkey:yn.programId,isWritable:!1}),Ke({pubkey:xo,isWritable:!1})];function bn({publicKey:r,transformSol:t}){let n=gn(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 gn(r){try{return new z(r)}catch{return r}}var Nt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new z("SysvarRent111111111111111111111111111111111"),ps=new z("SysvarC1ock11111111111111111111111111111111"),lt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Lo=new z("Sysvar1nstructions1111111111111111111111111"),Oo=yn.programId,fs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ys=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),bs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),gs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ps=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),As=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ws=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ks=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ts=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),hs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Is=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:bn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ft;J.WSOL=new Ft(V(R({},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 No from"bn.js";var vs=new U(new No(100));var qs=E("Raydium_price");import{merge as Bx}from"lodash";import $s from"axios";var Pn={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"},Mo=V(R({},Pn),{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 wu=E("Raydium_Api");import{PublicKey as El,SystemProgram as Dl}from"@solana/web3.js";import{AccountLayout as zl,createAssociatedTokenAccountIdempotentInstruction as Xl,TOKEN_PROGRAM_ID as Yl,TOKEN_2022_PROGRAM_ID as Hl}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as qt,SystemProgram as Do,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as $e}from"@solana/web3.js";import Wo from"axios";import{PublicKey as _t,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Vt({connection:r,address:t,cluster:n="mainnet"}){let i=await be(r,[...new Set(t.map(m=>m.toString()))].map(m=>new _t(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 _t(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 _t(t),i=await r.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 An,Keypair as kn,PublicKey as Fo,Transaction as Tn,TransactionMessage as vo,VersionedTransaction as hn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _o}from"@solana/spl-token";var wn=E("Raydium_txUtil"),In=1644;function dt(r){let t=[],n=[];return r.microLamports&&(t.push(An.setComputeUnitPrice({microLamports:r.microLamports})),n.push(Q.SetComputeUnitPrice)),r.units&&(t.push(An.setComputeUnitLimit({units:r.units})),n.push(Q.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&&wn.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&wn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Tn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<In}catch{return!1}}function de(r,t){let[n,i]=Fo.findProgramAddressSync(r,t);return{publicKey:n,nonce:i}}function Ye({instructions:r,payer:t,signers:n}){return Wt(r,[t,...n])}function He({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=kn.generate().publicKey.toString()}){let m=new vo({payerKey:t,recentBlockhash:i,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new hn(m).serialize()).toString("base64").length<In}catch{return!1}}var Vo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Eo=r=>{let t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof hn&&(t=Vo(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 Tn&&(n.recentBlockhash||(n.recentBlockhash=_o.toBase58()),n.feePayer||(n.feePayer=kn.generate().publicKey)),t.push(Eo(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 Wo.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(Do.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: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(V(R({},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(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(L=>L.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 L of K)try{L.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:L,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]}),L==null||L([...y]),v++;let x=!1,O=null,_=null,re=q=>{O!==null&&clearInterval(O),_!==null&&this.connection.removeSignatureListener(_);let W=y.findIndex(j=>j.txId===w);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=q.err?"error":"success"}L==null||L([...y]),q.err||A()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(x){clearInterval(O);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(x=!0,clearInterval(O),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){x=!0,clearInterval(O),console.error("getTransaction timeout:",W,w)}},ft)),_=this.connection.onSignature(w,q=>{if(x){this.connection.removeSignatureListener(_);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=R(R({},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 Vt({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),L=new Ze({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 $e(L);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:L,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]}),L==null||L([...I]),B++;let y=!1,A=null,w=null,x=O=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let _=I.findIndex(re=>re.txId===v);if(_>-1){if(I[_].status==="error"||I[_].status==="success")return;I[_].status=O.err?"error":"success"}L==null||L([...I]),O.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var O;if(y){clearInterval(A);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(y=!0,clearInterval(A),x({err:((O=_.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){y=!0,clearInterval(A),console.error("getTransaction timeout:",_,v)}},ft)),w=this.connection.onSignature(v,O=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,x(O)},"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 L;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)=>V(R({},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 Qe().add(...m.instructions,...h)):f.push(new Qe().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 Qe().add(...m.instructions,...h)):f.push(new Qe().add(...h)),g.push(M)}return f.forEach(S=>S.feePayer=this.feePayer),(L=this.owner)!=null&&L.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(O=>O.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=[],O=async()=>{if(!A[w])return;w<T&&(x.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...x]),w++,O());let _=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:I});x.push({txId:_,status:"sent",signedTx:A[w]}),P==null||P([...x]),w++;let re=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(fe=>fe.txId===_);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||O()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});te&&(re=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){re=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},ft)),W=this.connection.onSignature(_,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await O(),{txIds:x.map(_=>_.txId),signedTxs:A}}else{let w=[];for(let x=0;x<A.length;x+=1){let O=await this.connection.sendRawTransaction(A[x].serialize(),{skipPreflight:I});w.push(O)}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=R(R({},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 Vt({connection:this.connection,address:b});for(let[y,A]of Object.entries(K))g[y]=A;let L=n?dt(n):{instructions:[],instructionTypes:[]},S=await Le(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,A)=>V(R({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],B=[],I=0;if(this.allInstructions.forEach(y=>{let A=[...B,y],w=n?[...L.instructions,...A]:A;if(y!==i[I]&&B.length<p&&(He({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||He({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 O of[...new Set(h)])g[O]!==void 0&&(x[O]=g[O]);if(n&&He({instructions:[...L.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let O=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...L.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new $e(O))}else{let O=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new $e(O))}T.push(Array.from(new Set(B.map(O=>O.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(O=>M[O]).filter(O=>O!==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&&He({instructions:[...L.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...L.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new $e(w))}else{let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new $e(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:O,skipPreflight:_=!0}=y||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),O&&(q.message.recentBlockhash=O)}),ke(P),(re=this.owner)!=null&&re.isKeyPair){if(A){let q=0,W=[];for(let j of P){if(++q,q<=x){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:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(x,P.length)),W=[...P.slice(0,x),...q];if(A){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<x){G.push({txId:"",status:"success",signedTx:W[j]}),w==null||w([...G]),j++,te();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[j]}),w==null||w([...G]),j++;let We=!1,Se=null,rt=null,sn=Ae=>{Se!==null&&clearInterval(Se),rt!==null&&this.connection.removeSignatureListener(rt);let ye=G.findIndex(lo=>lo.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:1});ye&&(We=!0,clearInterval(Se),sn({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,sn(Ae)},"confirmed"),this.connection.getSignatureStatus(fe)};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: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=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 bl,SystemProgram as Pl}from"@solana/web3.js";import kl from"bn.js";import{createCloseAccountInstruction as Bl,createInitializeAccountInstruction as Sl,createTransferInstruction as Kl,TOKEN_PROGRAM_ID as xl}from"@solana/spl-token";import{Keypair as ol,PublicKey as il}from"@solana/web3.js";import sl from"bn.js";import{TOKEN_PROGRAM_ID as ll}from"@solana/spl-token";import{PublicKey as Jo}from"@solana/web3.js";import Cn,{isBN as Rn}from"bn.js";import{bits as qo,BitStructure as uc,blob as Uo,Blob as cc,cstr as lc,f32 as mc,f32be as dc,f64 as pc,f64be as fc,greedy as yc,Layout as Go,ns64 as bc,ns64be as gc,nu64 as Pc,nu64be as Ac,offset as zo,s16 as wc,s16be as kc,s24 as Tc,s24be as hc,s32 as Xo,s32be as Ic,s40 as Bc,s40be as Sc,s48 as Kc,s48be as xc,s8 as Cc,seq as Yo,struct as Rc,Structure as Ho,u16 as Qo,u16be as Lc,u24 as Oc,u24be as Nc,u32 as Zo,u32be as Mc,u40 as Fc,u40be as vc,u48 as _c,u48be as Vc,u8 as $o,UInt as jo,union as Ec,Union as Dc,unionLayoutDiscriminator as Wc,utf8 as qc}from"@solana/buffer-layout";var bt=Go,Bn=Ho;var Gt=jo;var Sn=$o,Y=Qo;var gt=Zo;var se=Xo;var Kn=Yo;var N=Uo;var zt=qo,xn=zo;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 Cn(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 Cn(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 R(R({},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 C(r){return new he(16,!1,r)}function Ln(r){return new he(1,!0,r)}function Ne(r){return new he(8,!0,r)}function On(r){return new he(16,!0,r)}var je=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 je(N(32),t=>new Jo(t),t=>t.toBuffer(),r)}function ae(r){return new je(Sn(),ei,ti,r)}function ei(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ti(r){return r?1:0}function Yt(r,t){let n=gt("length"),i=l([n,d(r,xn(n,-n.span),"values")]);return new je(i,({values:u})=>u,u=>({values:u}),t)}var Xt=class extends Bn{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:Rn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=Rn(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 Kn(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 dp,SystemProgram as pp}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as yp}from"@solana/spl-token";import{PublicKey as tm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as om}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"),Ht=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),sm=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),oi=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),_n=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Vn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),um=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ii=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ri=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ai=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),cm=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),si=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Qt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ui=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),lm=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ci=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),li=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),mi=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),mm=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),dm=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),pm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),fm=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ym=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 Bp from"decimal.js";import{PublicKey as Zt}from"@solana/web3.js";var di=l([c("instruction")]),pi=l([c("instruction")]),fi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),C("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),d(e(),15,"padding")]),yi=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),C("perShareReward"),e("lastSlot"),e("perSlotReward")]),bi=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),C("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),C("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),gi=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),C("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),d(fi,5,"rewardInfos"),o("creator"),o(),d(e(),32,"padding")]),Pi=new Proxy(yi,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return V(R({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(r,t,n)}}),Ai=new Proxy(bi,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return V(R({},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(gi,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return V(R({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var p;return V(R({},m),{rewardType:((p=Object.entries(Je).find(f=>String(f[1])===m.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(r,t,n)}}),wi=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),ki=l([c("instruction"),e("nonce"),d(wi,5,"rewardTimeInfo")]),Ti=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),hi=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Tm=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),1,"rewardDebts")]),qn=l([e("state"),o("id"),o("owner"),e("deposited"),d(C(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),hm=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),2,"rewardDebts")]),Ii=l([e("state"),o("id"),o("owner"),e("deposited"),d(C(),2,"rewardDebts"),d(e(),17)]),Bi=l([e(),e("state"),o("id"),o("owner"),e("deposited"),d(C(),5,"rewardDebts"),d(e(),16)]),Si=l([c("instruction"),e("amount")]),Ki=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Ln("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),xi=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),d(c(),32,"reserved1"),d(Ki,4,"votingMints"),Ne("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),Ci=l([Ne("startTime"),Ne("endTime"),c("kind"),d(c(),15,"reserved")]),Ri=l([d(Ci,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),Li=l([N(8),o("voterAuthority"),o("registrar"),d(Ri,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),d(c(),94,"reserved")]);import{NATIVE_MINT as Om}from"@solana/spl-token";var Nm=E("Raydium_farm_config"),Oi=new Zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ni=new Zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Mm=new Zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var Je={"Standard SPL":0,"Option tokens":1},Un={[Mn.toString()]:3,[Fn.toString()]:4,[vn.toString()]:5,[Ht.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 Kd,SystemProgram as xd,SYSVAR_CLOCK_PUBKEY as Cd,SYSVAR_RENT_PUBKEY as Rd,TransactionInstruction as Ld}from"@solana/web3.js";import Nd from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Fd,createAssociatedTokenAccountIdempotentInstruction as vd,TOKEN_PROGRAM_ID as _d}from"@solana/spl-token";import od from"bn.js";import{PublicKey as Hm}from"@solana/web3.js";import Zm from"bn.js";var bd=E("Raydium.farm.util");var Hd=E("Raydium_farm_instruction"),Qd={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 vp from"bn.js";import{PublicKey as xA}from"@solana/web3.js";import{AccountLayout as LA,MintLayout as OA,NATIVE_MINT as NA,TOKEN_PROGRAM_ID as FA}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 Gb,TOKEN_2022_PROGRAM_ID as zb,TOKEN_PROGRAM_ID as Xb}from"@solana/spl-token";import{Keypair as Qb,PublicKey as Zb,SystemProgram as jb,TransactionInstruction as Jb}from"@solana/web3.js";import tg from"bn.js";import D from"bn.js";var ue=new D(1).shln(64);var Wi=new D(1).shln(128),ht=new D(1).shln(64).subn(1),qi=new D(1).shln(128).subn(1);var ve=new D("4295048016"),_e=new D("79226673521066979257578248091"),Ui=new D("59543866431248"),Gi=new D("184467440737095516"),zi=new D("15793534762490258745");var jt=60,Hp=new D("18446743708227953217"),Xi=[{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 nt=3,zn=100;var Xn=10,Yn=100,It=14;var Z=new D(0),Ve=new D(1),Qp=new D(-1);var Zp=new D("18446744073700000000");var Yi=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)]),Hi=l([X("blockTimestamp"),Ne("tickCumulative"),d(e(),4)]),Hn=l([N(8),ae("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),d(Hi,zn,"observations"),d(e(),4)]),Qi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Zi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),C("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),C("growthGlobalX64")]),Jt=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"),C("liquidity"),C("sqrtPriceX64"),se("tickCurrent"),X(),C("feeGrowthGlobalX64A"),C("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(C(),4),c("status"),c("feeOn"),N(6),d(Zi,nt,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Qi.replicate("dynamicFeeInfo"),d(e(),46)]),$i=l([C("growthInsideLastX64"),e("rewardAmountOwed")]),ji=l([N(8),c("bump"),o("nftMint"),o("poolId"),se("tickLower"),se("tickUpper"),C("liquidity"),C("feeGrowthInsideLastX64A"),C("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d($i,nt,"rewardInfos"),e("recentEpoch"),d(e(),7)]),ef=l([N(8),c("bump"),o("poolId"),se("tickLower"),se("tickUpper"),C("liquidity"),C("feeGrowthInsideLastX64A"),C("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(C(),nt,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ji=l([se("tick"),On("liquidityNet"),C("liquidityGross"),C("feeGrowthOutsideX64A"),C("feeGrowthOutsideX64B"),d(C(),nt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),C("unfilledRatioX64"),d(X(),3)]),Qn=l([N(8),o("poolId"),se("startTickIndex"),d(Ji,jt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),er=l([N(8),c("bump"),d(o(),Xn,"operationOwners"),d(o(),Yn,"whitelistMints")]),tr=l([N(8),o("poolId"),o("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),C("unfilledRatioX64"),d(e(),4)]),Zn=l([N(8),o("poolId"),N(8*8*It,"positiveTickArrayBitmap"),N(8*8*It,"negativeTickArrayBitmap")]),tf=l([N(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),nr=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),nf=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),or=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import af from"bn.js";var gf=Buffer.from("amm_config","utf8"),rr=Buffer.from("pool","utf8"),ar=Buffer.from("pool_vault","utf8"),Pf=Buffer.from("pool_reward_vault","utf8"),Af=Buffer.from("position","utf8"),wf=Buffer.from("tick_array","utf8"),kf=Buffer.from("operation","utf8"),Tf=Buffer.from("pool_tick_array_bitmap_extension","utf8"),hf=Buffer.from("observation","utf8"),If=Buffer.from("support_mint","utf8"),Bf=Buffer.from("dynamic_fee_config","utf8"),Sf=Buffer.from("permission","utf8");var Kf=Buffer.from("locked_position","utf8");import{sha256 as kr}from"js-sha256";import sr from"bn.js";import Lf from"decimal.js";var Nf=new sr(1).shln(256).subn(1);import $f from"bn.js";import Df from"bn.js";import qf from"decimal.js";import ny from"bn.js";import iy from"decimal.js";import{PublicKey as Gy}from"@solana/web3.js";import Xy from"bn.js";import{TOKEN_2022_PROGRAM_ID as eb,TOKEN_PROGRAM_ID as tb}from"@solana/spl-token";import rb from"decimal.js";import Ny from"bn.js";import wy from"bn.js";import bb from"bn.js";function $(r){let t=`global:${r}`;return Buffer.from(kr.digest(t)).slice(0,8)}Hn.span;var lg=E("Raydium_Clmm"),mg={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")};var Tr=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{TOKEN_PROGRAM_ID as gg}from"@solana/spl-token";import{PublicKey as kg}from"@solana/web3.js";import to from"bn.js";var hr=new to(25),Ir=new to(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as Dg,TOKEN_PROGRAM_ID as Wg}from"@solana/spl-token";import{PublicKey as Ug,SystemProgram as Gg,SYSVAR_RENT_PUBKEY as zg,TransactionInstruction as Xg}from"@solana/web3.js";import eP from"bn.js";var Br=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Sr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),vg=l([c("instruction"),c("nonce")]),Kr=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"),C("swapBaseInAmount"),C("swapQuoteOutAmount"),e("swapBase2QuoteFee"),C("swapQuoteInAmount"),C("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")]),_g=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"),C("swapBaseInAmount"),C("swapQuoteOutAmount"),C("swapQuoteInAmount"),C("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")]),xr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Cr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Rr=l([e("fee")]);var oP=E("Raydium_liquidity_instruction");var Lr=5e4,Or=l([e("x"),e("y"),e("price")]),sP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(Or,Lr,"DataElement")]);import{PublicKey as AP}from"@solana/web3.js";import kP from"decimal.js";import{TOKEN_PROGRAM_ID as hP}from"@solana/spl-token";import{PublicKey as mP}from"@solana/web3.js";var fP=E("Raydium_liquidity_serum");import tw from"bn.js";import ow from"decimal.js";import{TOKEN_PROGRAM_ID as tA}from"@solana/spl-token";import{PublicKey as oA}from"@solana/web3.js";import rA from"bn.js";import{SystemProgram as qP,SYSVAR_RENT_PUBKEY as UP,Transaction as GP,TransactionInstruction as zP}from"@solana/web3.js";import{createInitializeAccountInstruction as YP,TOKEN_PROGRAM_ID as HP}from"@solana/spl-token";function Nr(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 Mr=l([N(5),Nr("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 Lk}from"@solana/web3.js";import{AccountLayout as Nk,NATIVE_MINT as Mk,TOKEN_2022_PROGRAM_ID as Fk,TOKEN_PROGRAM_ID as vk,createAssociatedTokenAccountIdempotentInstruction as _k}from"@solana/spl-token";import Kw from"bn.js";import Wr from"bn.js";var pw=new Wr(0);import Aw from"bn.js";import qr from"bn.js";var Kt=new qr(1e6);import zk from"bn.js";import Yk from"decimal.js";import{PublicKey as Yw,TransactionInstruction as Hw,Keypair as Zw,SystemProgram as $w}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Jw,TOKEN_2022_PROGRAM_ID as ek,TOKEN_PROGRAM_ID as tk}from"@solana/spl-token";var Ow=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Nw=Buffer.from("amm_config","utf8"),Mw=Buffer.from("pool","utf8"),Fw=Buffer.from("pool_lp_mint","utf8"),vw=Buffer.from("pool_vault","utf8"),_w=Buffer.from("observation","utf8"),Vw=Buffer.from("permission","utf8"),Ew=Buffer.from("support_mint","utf8"),Dw=Buffer.from("creator_fee_share","utf8");var Ww=Buffer.from("locked_liquidity","utf8");var uk=E("Raydium_cpmm"),ck={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 zr=l([N(8),c("bump"),ae("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),d(e(),14)]),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)]),dk=l([N(8),o("configId"),d(e(),30)]),pk=l([N(8),c("bump"),o("creator"),o("ammConfig"),e("shareRate"),d(e(),8)]);import{PublicKey as HS,SystemProgram as QS}from"@solana/web3.js";import{createTransferInstruction as $S,TOKEN_PROGRAM_ID as jS,TOKEN_2022_PROGRAM_ID as JS,createAssociatedTokenAccountIdempotentInstruction as eK,createSyncNativeInstruction as nK,createTransferCheckedInstruction as oK}from"@solana/spl-token";import fa from"bn.js";import aK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as th,TOKEN_2022_PROGRAM_ID as nh,TOKEN_PROGRAM_ID as oh}from"@solana/spl-token";import{SystemProgram as sh,TransactionInstruction as uh}from"@solana/web3.js";import Hr from"bn.js";var DT=Buffer.from("vault_auth_seed","utf8"),WT=Buffer.from("global_config","utf8"),qT=Buffer.from("pool_vesting","utf8"),UT=Buffer.from("platform_config","utf8"),GT=Buffer.from("platform_fee_vault_auth_seed","utf8"),zT=Buffer.from("creator_fee_vault_auth_seed","utf8"),XT=Buffer.from("platform_global_access","utf8"),YT=Buffer.from("platform_allow_config","utf8"),HT=Buffer.from("platform_curve_rule","utf8");var mh={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 dh=new Hr("18446744073709551615");var Qr=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)]),Zr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),$r=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"),Zr.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)]),bh=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),jr=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),gh=l([e("epoch"),c("index"),o("configId"),jr.replicate("bondingCurveParam"),d(e(),50)]),so=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"),c("restrictCurveParam"),o("curveRuleManager"),d(c(),78)]),Jr=l([c("field"),c("op"),C("value")]),ea=l([Y("groupId"),e("epoch"),Yt(Jr,"constraints")]),ta=l([e(),c("bump"),c("version"),o("platformId"),o("configId"),e("epoch"),d(e(),8),Yt(ea,"groups")]);import{TOKEN_2022_PROGRAM_ID as wh,TOKEN_PROGRAM_ID as kh}from"@solana/spl-token";import na from"bn.js";var Nh=new na(1e6);import _h from"bn.js";import Eh 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 oI from"bn.js";import rI from"decimal.js";import zh from"bn.js";import Yh from"decimal.js";import uo 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 u=t.mul(this._multipler(i)).div(this._multipler(n));return new uo(u.mul(this._Q64).toFixed(0))}};it._Q64=new rn(new uo(1).shln(64).toString());import{NATIVE_MINT as hB,TOKEN_2022_PROGRAM_ID as IB,TOKEN_PROGRAM_ID as BB,createAssociatedTokenAccountIdempotentInstruction as KB,createSyncNativeInstruction as xB,getTransferFeeConfig as CB,unpackMint as RB}from"@solana/spl-token";import H from"bn.js";import{PublicKey as ca,SystemProgram as NB}from"@solana/web3.js";import DB from"decimal.js";var WB={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 ca("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},qB=new H(1e4);var la={[_n.toBase58()]:3};var ma=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 dS}from"@solana/web3.js";var gS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as SS,TOKEN_2022_PROGRAM_ID as KS,TOKEN_PROGRAM_ID as xS}from"@solana/spl-token";import{PublicKey as RS,SystemProgram as LS,TransactionInstruction as OS}from"@solana/web3.js";import MS from"bn.js";var vK=new fa(0);import{PublicKey as ya,Transaction as an,TransactionInstruction as ba}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ga}from"@solana/spl-token";import co 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 co(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),L=b%i.length,S=p[L],M=f[b],P=g[L],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 co(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,O)=>({mintAddress:x.mintAddress,mintVault:x.mintVault,mintDecimals:x.mintDecimals,perLpLoss:x.perLpLoss,debtAmount:I.tokenInfo[O].debtAmount.add(I.tokenInfo[O].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 L of b.tokenInfo){let{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:L.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:L.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!L.mintAddress.equals(J.WSOL.mint),associatedOnly:L.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),S&&(p[L.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 an().add(...h.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new an().add(...h.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new an().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:ga,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 ba({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 ya(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 JK}from"@solana/web3.js";import{getTransferFeeConfig as tx,MintLayout as nx,TOKEN_2022_PROGRAM_ID as ox,TOKEN_PROGRAM_ID as ix,unpackMint as rx}from"@solana/spl-token";var NC=new Ie(2),MC=new Ie(3),FC=new Ie(5),So=new Ie(10),vC=new Ie(100),_C=new Ie(1e3),VC=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 bR,TOKEN_2022_PROGRAM_ID as gR,TOKEN_PROGRAM_ID as PR}from"@solana/spl-token";import{PublicKey as wR}from"@solana/web3.js";import TR from"bn.js";import IR from"decimal.js";import ie from"bn.js";import Be from"decimal.js";var on=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{on as LinearPriceCurve};
//# sourceMappingURL=linearPriceCurve.mjs.map