UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 107 kB
var Qo=Object.defineProperty,Zo=Object.defineProperties;var Ho=Object.getOwnPropertyDescriptors;var It=Object.getOwnPropertySymbols;var Fn=Object.prototype.hasOwnProperty,vn=Object.prototype.propertyIsEnumerable;var Mn=(i,e,t)=>e in i?Qo(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,N=(i,e)=>{for(var t in e||(e={}))Fn.call(e,t)&&Mn(i,t,e[t]);if(It)for(var t of It(e))vn.call(e,t)&&Mn(i,t,e[t]);return i},v=(i,e)=>Zo(i,Ho(e));var ge=(i,e)=>{var t={};for(var o in i)Fn.call(i,o)&&e.indexOf(o)<0&&(t[o]=i[o]);if(i!=null&&It)for(var o of It(i))e.indexOf(o)<0&&vn.call(i,o)&&(t[o]=i[o]);return t};import{PublicKey as Jo}from"@solana/web3.js";import{get as Vn,set as jo}from"lodash";var jt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},_n={},$o={};function D(i){let e=Vn(_n,i);if(!e){let t=Vn($o,i);e=new jt({name:i,logLevel:t}),jo(_n,i,e)}return e}import{MINT_SIZE as Ns,TOKEN_PROGRAM_ID as Ms,getTransferFeeConfig as Fs,unpackMint as vs}from"@solana/spl-token";var $t=D("Raydium_accountInfo_util");async function he(i,e,t){let{batchRequest:o,commitment:r="confirmed",chunkCount:a=100}=N({batchRequest:!1},t),s=Jt(e,a),c=new Array(s.length).fill([]);if(o){let y=s.map(k=>{let I=i._buildArgs([k.map(h=>h.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:I}}),g=Jt(y,10);c=(await(await Promise.all(g.map(async k=>await i._rpcBatchRequest(k)))).flat()).map(k=>(k.error&&$t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${k.error.message}`),k.result.value.map(I=>{if(I){let{data:h,executable:S,lamports:T,owner:P,rentEpoch:A}=I;return h.length!==2&&h[1]!=="base64"&&$t.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(h[0],"base64"),executable:S,lamports:T,owner:new Jo(P),rentEpoch:A}}return null})))}else try{c=await Promise.all(s.map(y=>i.getMultipleAccountsInfo(y,r)))}catch(y){y instanceof Error&&$t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return c.flat()}import Ce from"bn.js";import vC from"decimal.js";import si from"big.js";import Js from"bn.js";import ei from"toformat";var ti=ei,rt=ti;import St from"big.js";import oi from"bn.js";import ii from"decimal.js-light";import at from"bn.js";var En=9007199254740991;function ce(i){let e=D("Raydium_parseBigNumberish");if(i instanceof at)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new at(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=En||i<=-En)&&e.logWithError(`BigNumberish number overflow: ${i}`),new at(String(i))):typeof i=="bigint"?new at(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new at(0))}var Bt=D("module/fraction"),en=rt(St),st=rt(ii),ri={[0]:st.ROUND_DOWN,[1]:st.ROUND_HALF_UP,[2]:st.ROUND_UP},ai={[0]:St.roundDown,[1]:St.roundHalfUp,[2]:St.roundUp},z=class{constructor(e,t=new oi(1)){this.numerator=ce(e),this.denominator=ce(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new z(this.denominator,this.numerator)}add(e){let t=e instanceof z?e:new z(ce(e));return this.denominator.eq(t.denominator)?new z(this.numerator.add(t.numerator),this.denominator):new z(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof z?e:new z(ce(e));return this.denominator.eq(t.denominator)?new z(this.numerator.sub(t.numerator),this.denominator):new z(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof z?e:new z(ce(e));return new z(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof z?e:new z(ce(e));return new z(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},o=1){Number.isInteger(e)||Bt.logWithError(`${e} is not an integer.`),e<=0&&Bt.logWithError(`${e} is not positive.`),st.set({precision:e+1,rounding:ri[o]});let r=new st(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},o=1){return Number.isInteger(e)||Bt.logWithError(`${e} is not an integer.`),e<0&&Bt.logWithError(`${e} is negative.`),en.DP=e,en.RM=ai[o]||1,new en(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var uu=D("Raydium_amount"),cu=rt(si);import{PublicKey as ci}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Dn}from"@solana/spl-token";var Kt={chainId:101,address:ci.default.toBase58(),programId:Dn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Pe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Dn.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 nn}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as Wn,SYSVAR_RENT_PUBKEY as li}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mi}from"@solana/spl-token";function De({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var di=[De({pubkey:mi,isWritable:!1}),De({pubkey:Wn.programId,isWritable:!1}),De({pubkey:li,isWritable:!1})];function qn({publicKey:i,transformSol:e}){let t=Un(i.toString());if(t instanceof Y)return e&&t.equals(Le)?Ie:t;if(e&&t.toString()===Le.toBase58())return Ie;if(typeof t=="string"){if(t===Y.default.toBase58())return Y.default;try{return new Y(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Un(i){try{return new Y(i)}catch{return i}}var tn=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oe=new Y("SysvarRent111111111111111111111111111111111"),gu=new Y("SysvarC1ock11111111111111111111111111111111"),We=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),pi=new Y("Sysvar1nstructions1111111111111111111111111"),fi=Wn.programId,Pu=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Au=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),wu=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ku=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Tu=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),hu=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Iu=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Bu=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Su=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ku=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),xu=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ie=new Y("So11111111111111111111111111111111111111112"),Le=Y.default;var on=class{constructor({mint:e,decimals:t,symbol:o,name:r,skipMint:a=!1,isToken2022:s=!1}){if(e===Le.toBase58()||e instanceof nn&&Le.equals(e)){this.decimals=Pe.decimals,this.symbol=Pe.symbol,this.name=Pe.name,this.mint=new nn(Pe.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=a?nn.default:qn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ie=on;ie.WSOL=new on(v(N({},Pe),{mint:Pe.address}));var rn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},xt=rn;xt.SOL=new rn(Kt);import yi from"bn.js";var Du=new z(new yi(100));var Xu=D("Raydium_price");import{merge as _x}from"lodash";import tc 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"},bi=v(N({},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 Ic=D("Raydium_Api");import{PublicKey as Um,SystemProgram as Gm}from"@solana/web3.js";import{AccountLayout as Zm,createAssociatedTokenAccountIdempotentInstruction as Hm,TOKEN_PROGRAM_ID as jm,TOKEN_2022_PROGRAM_ID as $m}from"@solana/spl-token";import{PublicKey as Xe,sendAndConfirmTransaction as mn,SystemProgram as Ti,Transaction as lt,TransactionMessage as mt,VersionedTransaction as dt}from"@solana/web3.js";import hi from"axios";import{PublicKey as an,AddressLookupTableAccount as Ge}from"@solana/web3.js";async function sn({connection:i,address:e,cluster:t="mainnet"}){let o=await he(i,[...new Set(e.map(a=>a.toString()))].map(a=>new an(a))),r={};for(let a=0;a<e.length;a++){let s=o[a],c=e[a];if(!s)continue;let y=new Ge({key:c,state:Ge.deserialize(s.data)});r[c.toString()]=y,t==="devnet"?Ue[c.toString()]=y:qe[c.toString()]=y}return r}var qe={},un=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qe[e])return qe;let t=new an(e),o=await i.getAccountInfo(t);return o&&(qe[e]=new Ge({key:t,state:Ge.deserialize(o.data)})),qe},Ue={},cn=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ue[e])return Ue;let t=new an(e),o=await i.getAccountInfo(t);return o&&(Ue[e]=new Ge({key:t,state:Ge.deserialize(o.data)})),Ue};var ee={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 zn,Keypair as Yn,PublicKey as gi,Transaction as Qn,TransactionMessage as Pi,VersionedTransaction as Zn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ai}from"@solana/spl-token";var Xn=D("Raydium_txUtil"),Hn=1644;function Ct(i){let e=[],t=[];return i.microLamports&&(e.push(zn.setComputeUnitPrice({microLamports:i.microLamports})),t.push(ee.SetComputeUnitPrice)),i.units&&(e.push(zn.setComputeUnitLimit({units:i.units})),t.push(ee.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function ze(i,e){var o,r;let t=e!=null?e:"confirmed";return(r=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:t})))==null?void 0:r.blockhash}async function Rt(i,e){return i.getSignatureStatuses([e]),new Promise((t,o)=>{let r=setTimeout(o,6e4);i.onSignature(e,a=>{if(clearTimeout(r),!a.err){t("");return}o(Object.assign(a.err,{txId:e}))},"confirmed")})}function ln(i,e){i.length<1&&Xn.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&Xn.logWithError(`no signers provided:, ${e.toString()}`);let t=new Qn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Hn}catch{return!1}}function Q(i,e){let[t,o]=gi.findProgramAddressSync(i,e);return{publicKey:t,nonce:o}}function ut({instructions:i,payer:e,signers:t}){return ln(i,[e,...t])}function ct({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=Yn.generate().publicKey.toString()}){let a=new Pi({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Zn(a).serialize()).toString("base64").length<Hn}catch{return!1}}var wi=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),ki=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Zn&&(e=wi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ne(i){let e=[];return i.forEach(t=>{t instanceof Qn&&(t.recentBlockhash||(t.recentBlockhash=Ai.toBase58()),t.feePayer||(t.feePayer=Yn.generate().publicKey)),e.push(ki(t))}),console.log("simulate tx string:",e),e}var Lt=2e3,Ot=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var o;let e=(await hi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(o=e==null?void 0:e[15])!=null?o:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:o}=Ct(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ti.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Xe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(ee.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let o=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:o=[],instructionTypes:r=[],endInstructionTypes:a=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...r),this.endInstructionTypes.push(...a),this.lookupTableAddress.push(...s.filter(c=>c!==Xe.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:o}){return e===0?await this.buildV0(v(N({},t||{}),{lookupTableAddress:o})):this.build(t)}build(e){var o;let t=new lt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(r=>r.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var f;let{recentBlockHash:a,skipPreflight:s=!0,sendAndConfirm:c,notSendToRpc:y}=r||{},g=a!=null?a:await ze(this.connection,this.blockhashCommitment);if(t.recentBlockhash=g,this.signers.length&&t.sign(...this.signers),Ne([t]),(f=this.owner)!=null&&f.isKeyPair)return{txId:c?await mn(this.connection,t,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let k=await this.signAllTransactions([t]);if(this.signers.length)for(let I of k)try{I.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(k[0].serialize(),{skipPreflight:s}),signedTx:k[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var g;let{extraPreBuildData:t=[],extInfo:o}=e,{transaction:r}=this.build(o),a=t.filter(f=>f.transaction.instructions.length>0),s=[r,...a.map(f=>f.transaction)],c=[this.signers,...a.map(f=>f.signers)],y=[...this.instructionTypes,...a.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&c.forEach(f=>{f.some(k=>k.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:c,instructionTypes:y,execute:async f=>{var A;let{sequentially:k,onTxUpdate:I,skipTxCount:h=0,recentBlockHash:S,skipPreflight:T=!0}=f||{},P=S!=null?S:await ze(this.connection,this.blockhashCommitment);if((A=this.owner)!=null&&A.isKeyPair){if(k){let w=[],x=0;for(let R of s){if(++x,x<=h)continue;let b=await mn(this.connection,R,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:T});w.push(b)}return{txIds:w,signedTxs:s}}return{txIds:await await Promise.all(s.map(async w=>(w.recentBlockhash=P,await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:T})))),signedTxs:s}}if(this.signAllTransactions){let w=s.map((R,b)=>(R.recentBlockhash=P,c[b].length&&R.sign(...c[b]),R));Ne(w);let x=await this.signAllTransactions(w);if(k){let R=0,b=[],B=async()=>{if(!x[R])return;let C=await this.connection.sendRawTransaction(x[R].serialize(),{skipPreflight:T});b.push({txId:C,status:"sent",signedTx:x[R]}),I==null||I([...b]),R++;let L=!1,O=null,F=null,U=q=>{O!==null&&clearInterval(O),F!==null&&this.connection.removeSignatureListener(F);let E=b.findIndex(G=>G.txId===C);if(E>-1){if(b[E].status==="error"||b[E].status==="success")return;b[E].status=q.err?"error":"success"}I==null||I([...b]),q.err||B()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(L){clearInterval(O);return}try{let E=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(L=!0,clearInterval(O),U({err:((q=E.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",C))}catch(E){L=!0,clearInterval(O),console.error("getTransaction timeout:",E,C)}},Lt)),F=this.connection.onSignature(C,q=>{if(L){this.connection.removeSignatureListener(F);return}L=!0,U(q)},"confirmed"),this.connection.getSignatureStatus(C)};return await B(),{txIds:b.map(C=>C.txId),signedTxs:x}}else{let R=[];for(let b=0;b<x.length;b+=1){let B=await this.connection.sendRawTransaction(x[b].serialize(),{skipPreflight:T});R.push(B)}return{txIds:R,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:o}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})}async buildV0(e){var T;let S=e||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:r,recentBlockhash:a}=S,s=ge(S,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),c=N(N({},this.cluster==="devnet"?await cn(this.connection):await un(this.connection)),t),y=Array.from(new Set([...o,...this.lookupTableAddress])),g=[];for(let P of y)c[P]===void 0&&g.push(new Xe(P));let f=await sn({connection:this.connection,address:g});for(let[P,A]of Object.entries(f))c[P]=A;let k=r?Xe.default.toBase58():a!=null?a:await ze(this.connection,this.blockhashCommitment),I=new mt({payerKey:this.feePayer,recentBlockhash:k,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(c));((T=this.owner)==null?void 0:T.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let h=new dt(I);return h.sign(this.signers),{builder:this,transaction:h,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var R;let{skipPreflight:A=!0,sendAndConfirm:w,notSendToRpc:x}=P||{};if(Ne([h]),(R=this.owner)!=null&&R.isKeyPair){let b=await this.connection.sendTransaction(h,{skipPreflight:A});return w&&await Rt(this.connection,b),{txId:b,signedTx:h}}if(this.signAllTransactions){let b=await this.signAllTransactions([h]);if(this.signers.length)for(let B of b)try{B.sign(this.signers)}catch{}return{txId:x?"":await this.connection.sendTransaction(b[0],{skipPreflight:A}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:t=[],buildProps:o}=e,{transaction:r}=await this.buildV0(o),a=t.filter(f=>f.builder.instructions.length>0),s=[r,...a.map(f=>f.transaction)],c=[this.signers,...a.map(f=>f.signers)],y=[...this.instructionTypes,...a.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&c.forEach(f=>{f.some(k=>k.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(f,k)=>{f.sign(c[k])}),{builder:this,transactions:s,signers:c,instructionTypes:y,buildProps:o,execute:async f=>{var T;let{sequentially:k,onTxUpdate:I,recentBlockHash:h,skipPreflight:S=!0}=f||{};if(h&&s.forEach(P=>P.message.recentBlockhash=h),Ne(s),(T=this.owner)!=null&&T.isKeyPair){if(k){let P=[];for(let A of s){let w=await this.connection.sendTransaction(A,{skipPreflight:S});await Rt(this.connection,w),P.push(w)}return{txIds:P,signedTxs:s}}return{txIds:await Promise.all(s.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:S}))),signedTxs:s}}if(this.signAllTransactions){let P=await this.signAllTransactions(s);if(k){let A=0,w=[],x=async()=>{if(!P[A])return;let R=await this.connection.sendTransaction(P[A],{skipPreflight:S});w.push({txId:R,status:"sent",signedTx:P[A]}),I==null||I([...w]),A++;let b=!1,B=null,C=null,L=O=>{B!==null&&clearInterval(B),C!==null&&this.connection.removeSignatureListener(C);let F=w.findIndex(U=>U.txId===R);if(F>-1){if(w[F].status==="error"||w[F].status==="success")return;w[F].status=O.err?"error":"success"}I==null||I([...w]),O.err||x()};this.loopMultiTxStatus&&(B=setInterval(async()=>{var O;if(b){clearInterval(B);return}try{let F=await this.connection.getTransaction(R,{commitment:"confirmed",maxSupportedTransactionVersion:0});F&&(b=!0,clearInterval(B),L({err:((O=F.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",R))}catch(F){b=!0,clearInterval(B),console.error("getTransaction timeout:",F,R)}},Lt)),C=this.connection.onSignature(R,O=>{if(b){this.connection.removeSignatureListener(C);return}b=!0,L(O)},"confirmed"),this.connection.getSignatureStatus(R)};return x(),{txIds:[],signedTxs:P}}else{let A=[];for(let w=0;w<P.length;w+=1){let x=await this.connection.sendTransaction(P[w],{skipPreflight:S});A.push(x)}return{txIds:A,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var I;let k=e||{},{splitIns:t=[],computeBudgetConfig:o}=k,r=ge(k,["splitIns","computeBudgetConfig"]),a=o?Ct(o):{instructions:[],instructionTypes:[]},s=this.signers.reduce((h,S)=>v(N({},h),{[S.publicKey.toBase58()]:S}),{}),c=[],y=[],g=[],f=0;if(this.allInstructions.forEach(h=>{let S=[...g,h],T=o?[...a.instructions,...S]:S,A=[...new Set(S.map(w=>w.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(w=>new Xe(w));if(h!==t[f]&&g.length<12&&(ut({instructions:T,payer:this.feePayer,signers:A})||ut({instructions:S,payer:this.feePayer,signers:A})))g.push(h);else{if(g.length===0)throw Error("item ins too big");f+=h===t[f]?1:0,ut({instructions:o?[...a.instructions,...g]:[...g],payer:this.feePayer,signers:A})?c.push(new lt().add(...a.instructions,...g)):c.push(new lt().add(...g)),y.push(Array.from(new Set(g.map(w=>w.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat())).map(w=>s[w]).filter(w=>w!==void 0)),g=[h]}}),g.length>0){let S=[...new Set(g.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(T=>s[T]).filter(T=>T!==void 0);ut({instructions:o?[...a.instructions,...g]:[...g],payer:this.feePayer,signers:S.map(T=>T.publicKey)})?c.push(new lt().add(...a.instructions,...g)):c.push(new lt().add(...g)),y.push(S)}return c.forEach(h=>h.feePayer=this.feePayer),(I=this.owner)!=null&&I.signer&&y.forEach(h=>{h.some(S=>S.publicKey.equals(this.owner.publicKey))||h.push(this.owner.signer)}),{builder:this,transactions:c,signers:y,instructionTypes:this.instructionTypes,execute:async h=>{var R;let{sequentially:S,onTxUpdate:T,skipTxCount:P=0,recentBlockHash:A,skipPreflight:w=!0}=h||{},x=A!=null?A:await ze(this.connection,this.blockhashCommitment);if(c.forEach(async(b,B)=>{b.recentBlockhash=x,y[B].length&&b.sign(...y[B])}),Ne(c),(R=this.owner)!=null&&R.isKeyPair){if(S){let b=0,B=[];for(let C of c){if(++b,b<=P){B.push("tx skipped");continue}let L=await mn(this.connection,C,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});B.push(L)}return{txIds:B,signedTxs:c}}return{txIds:await Promise.all(c.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:w}))),signedTxs:c}}if(this.signAllTransactions){let b=await this.signAllTransactions(c.slice(P,c.length)),B=[...c.slice(0,P),...b];if(S){let C=0,L=[],O=async()=>{if(!B[C])return;C<P&&(L.push({txId:"",status:"success",signedTx:B[C]}),T==null||T([...L]),C++,O());let F=await this.connection.sendRawTransaction(B[C].serialize(),{skipPreflight:w});L.push({txId:F,status:"sent",signedTx:B[C]}),T==null||T([...L]),C++;let U=!1,q=null,E=null,G=X=>{q!==null&&clearInterval(q),E!==null&&this.connection.removeSignatureListener(E);let ue=L.findIndex(ke=>ke.txId===F);if(ue>-1){if(L[ue].status==="error"||L[ue].status==="success")return;L[ue].status=X.err?"error":"success"}T==null||T([...L]),X.err||O()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var X;if(U){clearInterval(q);return}try{let ue=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});ue&&(U=!0,clearInterval(q),G({err:((X=ue.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",F))}catch(ue){U=!0,clearInterval(q),console.error("getTransaction timeout:",ue,F)}},Lt)),E=this.connection.onSignature(F,X=>{if(U){this.connection.removeSignatureListener(E);return}U=!0,G(X)},"confirmed"),this.connection.getSignatureStatus(F)};return await O(),{txIds:L.map(F=>F.txId),signedTxs:B}}else{let C=[];for(let L=0;L<B.length;L+=1){let O=await this.connection.sendRawTransaction(B[L].serialize(),{skipPreflight:w});C.push(O)}return{txIds:C,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var R;let x=e||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:r={},lookupTableAddress:a=[],insCountLimit:s=12}=x,c=ge(x,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=N(N({},this.cluster==="devnet"?await cn(this.connection):await un(this.connection)),r),g=Array.from(new Set([...this.lookupTableAddress,...a])),f=[];for(let b of g)y[b]===void 0&&f.push(new Xe(b));let k=await sn({connection:this.connection,address:f});for(let[b,B]of Object.entries(k))y[b]=B;let I=t?Ct(t):{instructions:[],instructionTypes:[]},h=await ze(this.connection,this.blockhashCommitment),S=this.signers.reduce((b,B)=>v(N({},b),{[B.publicKey.toBase58()]:B}),{}),T=[],P=[],A=[],w=0;if(this.allInstructions.forEach(b=>{let B=[...A,b],C=t?[...I.instructions,...B]:B;if(b!==o[w]&&A.length<s&&(ct({instructions:C,payer:this.feePayer,lookupTableAddressAccount:y})||ct({instructions:B,payer:this.feePayer,lookupTableAddressAccount:y})))A.push(b);else{if(A.length===0)throw Error("item ins too big");w+=b===o[w]?1:0;let L={};for(let O of[...new Set(g)])y[O]!==void 0&&(L[O]=y[O]);if(t&&ct({instructions:[...I.instructions,...A],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:h})){let O=new mt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...I.instructions,...A]}).compileToV0Message(Object.values(y));T.push(new dt(O))}else{let O=new mt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...A]}).compileToV0Message(Object.values(y));T.push(new dt(O))}P.push(Array.from(new Set(A.map(O=>O.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(O=>S[O]).filter(O=>O!==void 0)),A=[b]}}),A.length>0){let B=[...new Set(A.map(C=>C.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(C=>S[C]).filter(C=>C!==void 0);if(t&&ct({instructions:[...I.instructions,...A],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:h})){let C=new mt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...I.instructions,...A]}).compileToV0Message(Object.values(y));T.push(new dt(C))}else{let C=new mt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...A]}).compileToV0Message(Object.values(y));T.push(new dt(C))}P.push(B)}return(R=this.owner)!=null&&R.signer&&P.forEach(b=>{b.some(B=>B.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),T.forEach((b,B)=>{b.sign(P[B])}),{builder:this,transactions:T,buildProps:e,signers:P,instructionTypes:this.instructionTypes,execute:async b=>{var U;let{sequentially:B,onTxUpdate:C,skipTxCount:L=0,recentBlockHash:O,skipPreflight:F=!0}=b||{};if(T.map(async(q,E)=>{P[E].length&&q.sign(P[E]),O&&(q.message.recentBlockhash=O)}),Ne(T),(U=this.owner)!=null&&U.isKeyPair){if(B){let q=0,E=[];for(let G of T){if(++q,q<=L){console.log("skip tx: ",q),E.push("tx skipped");continue}let X=await this.connection.sendTransaction(G,{skipPreflight:F});await Rt(this.connection,X),E.push(X)}return{txIds:E,signedTxs:T}}return{txIds:await Promise.all(T.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:F}))),signedTxs:T}}if(this.signAllTransactions){let q=await this.signAllTransactions(T.slice(L,T.length)),E=[...T.slice(0,L),...q];if(B){let G=0,X=[],ue=async()=>{if(!E[G])return;if(G<L){X.push({txId:"",status:"success",signedTx:E[G]}),C==null||C([...X]),G++,ue();return}let ke=await this.connection.sendTransaction(E[G],{skipPreflight:F});X.push({txId:ke,status:"sent",signedTx:E[G]}),C==null||C([...X]),G++;let ot=!1,Ee=null,ht=null,Nn=Re=>{Ee!==null&&clearInterval(Ee),ht!==null&&this.connection.removeSignatureListener(ht);let Te=X.findIndex(Yo=>Yo.txId===ke);if(Te>-1){if(X[Te].status==="error"||X[Te].status==="success")return;X[Te].status=Re.err?"error":"success"}C==null||C([...X]),Re.err||ue()};this.loopMultiTxStatus&&(Ee=setInterval(async()=>{var Re;if(ot){clearInterval(Ee);return}try{let Te=await this.connection.getTransaction(ke,{commitment:"confirmed",maxSupportedTransactionVersion:0});Te&&(ot=!0,clearInterval(Ee),Nn({err:((Re=Te.meta)==null?void 0:Re.err)||null}),console.log("tx status from getTransaction:",ke))}catch(Te){ot=!0,clearInterval(Ee),console.error("getTransaction timeout:",Te,ke)}},Lt)),ht=this.connection.onSignature(ke,Re=>{if(ot){this.connection.removeSignatureListener(ht);return}ot=!0,Nn(Re)},"confirmed"),this.connection.getSignatureStatus(ke)};return ue(),{txIds:[],signedTxs:E}}else{let G=[];for(let X=0;X<E.length;X+=1){let ue=await this.connection.sendTransaction(E[X],{skipPreflight:F});G.push(ue)}return{txIds:G,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}};var dn=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),le=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=D(t)}createTxBuilder(e){return this.scope.checkOwner(),new Ot({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(dn(e))}logInfo(...e){this.logger.info(dn(e))}logAndCreateError(...e){let t=dn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as wm,SystemProgram as Tm}from"@solana/web3.js";import Bm from"bn.js";import{createCloseAccountInstruction as Cm,createInitializeAccountInstruction as Rm,createTransferInstruction as Lm,TOKEN_PROGRAM_ID as Om}from"@solana/spl-token";import{Keypair as sm,PublicKey as um}from"@solana/web3.js";import mm from"bn.js";import{TOKEN_PROGRAM_ID as fm}from"@solana/spl-token";import{PublicKey as Fi}from"@solana/web3.js";import eo,{isBN as to}from"bn.js";import{bits as Ii,BitStructure as dl,blob as Bi,Blob as pl,cstr as fl,f32 as yl,f32be as bl,f64 as gl,f64be as Pl,greedy as Al,Layout as Si,ns64 as wl,ns64be as kl,nu64 as Tl,nu64be as hl,offset as Ki,s16 as Il,s16be as Bl,s24 as Sl,s24be as Kl,s32 as xi,s32be as xl,s40 as Cl,s40be as Rl,s48 as Ll,s48be as Ol,s8 as Nl,seq as Ci,struct as Ml,Structure as Ri,u16 as Li,u16be as Fl,u24 as vl,u24be as Vl,u32 as Oi,u32be as _l,u40 as El,u40be as Dl,u48 as Wl,u48be as ql,u8 as Ni,UInt as Mi,union as Ul,Union as Gl,unionLayoutDiscriminator as zl,utf8 as Xl}from"@solana/buffer-layout";var Nt=Si,jn=Ri;var pn=Mi;var $n=Ni,H=Li;var pt=Oi;var fe=xi;var Jn=Ci;var _=Bi;var fn=Ii,yn=Ki;var Fe=class extends Nt{constructor(t,o,r){super(t,r);this.blob=_(t),this.signed=o}decode(t,o=0){let r=new eo(this.blob.decode(t,o),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,o,r=0){return typeof t=="number"&&(t=new eo(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,r)}},Mt=class extends Nt{constructor(t){super(8,t);this._lower=fn(pt(),!1),this._upper=fn(pt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,o=0){let r=this._lower.decode(t,o),a=this._upper.decode(t,o+this._lower.span);return N(N({},r),a)}encode(t,o,r=0){return this._lower.encode(t,o,r)+this._upper.encode(t,o,r+this._lower.span)}};function d(i){return new pn(1,i)}function Z(i){return new pn(4,i)}function n(i){return new Fe(8,!1,i)}function V(i){return new Fe(16,!1,i)}function no(i){return new Fe(1,!0,i)}function Ye(i){return new Fe(8,!0,i)}function oo(i){return new Fe(16,!0,i)}var ve=class extends Nt{constructor(t,o,r,a){super(t.span,a);this.layout=t,this.decoder=o,this.encoder=r}decode(t,o){return this.decoder(this.layout.decode(t,o))}encode(t,o,r){return this.layout.encode(this.encoder(t),o,r)}getSpan(t,o){return this.layout.getSpan(t,o)}};function u(i){return new ve(_(32),e=>new Fi(e),e=>e.toBuffer(),i)}function pe(i){return new ve($n(),vi,Vi,i)}function vi(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Vi(i){return i?1:0}function io(i,e){let t=pt("length"),o=p([t,K(i,yn(t,-t.span),"values")]);return new ve(o,({values:r})=>r,r=>({values:r}),e)}function _i(i){let e=pt("length"),t=p([e,_(yn(e,-e.span),"data")]);return new ve(t,({data:o})=>o,o=>({data:o}),i)}function oe(i){return new ve(_i(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),i)}var bn=class extends jn{decode(e,t){return super.decode(e,t)}};function p(i,e,t){return new bn(i,e,t)}function K(i,e,t){let o,r=typeof e=="number"?e:to(e)?e.toNumber():new Proxy(e,{get(a,s){if(!o){let c=Reflect.get(a,"count");o=to(c)?c.toNumber():c,Reflect.set(a,"count",o)}return Reflect.get(a,s)},set(a,s,c){return s==="count"&&(o=c),Reflect.set(a,s,c)}});return Jn(i,r,t)}var Ft=p([u("mint"),u("owner"),n("amount"),Z("delegateOption"),u("delegate"),d("state"),Z("isNativeOption"),n("isNative"),n("delegatedAmount"),Z("closeAuthorityOption"),u("closeAuthority")]);import{PublicKey as XP,SystemProgram as YP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as ZP}from"@solana/spl-token";import{PublicKey as rd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sd}from"@solana/spl-token";import{PublicKey as M}from"@solana/web3.js";var ao=new M("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),so=new M("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),uo=new M("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),gn=new M("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),md=new M("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Di=new M("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),co=new M("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),lo=new M("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),dd=new M("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Wi=new M("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),mo=new M("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),qi=new M("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ui=new M("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),po=new M("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),pd=new M("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Gi=new M("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Pn=new M("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),zi=new M("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),fd=new M("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Xi=new M("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Yi=new M("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Qi=new M("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),yd=new M("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),bd=new M("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),gd=new M("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Pd=new M("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ad=new M("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Se={OPEN_BOOK_PROGRAM:new M("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new M("Ray1111111111111111111111111111111111111111"),AMM_V4:new M("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new M("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new M("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new M("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new M("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new M("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new M("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new M("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new M("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new M("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:M.default,Router:new M("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new M("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new M("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new M("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new M("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new M("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new M("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new M("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new M("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new M("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new M("Ray1111111111111111111111111111111111111111")};import rA from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as hb,TOKEN_2022_PROGRAM_ID as Ib,TOKEN_PROGRAM_ID as Bb}from"@solana/spl-token";import{PublicKey as Kb}from"@solana/web3.js";import Cb from"bn.js";import Lb from"decimal.js";import{TOKEN_PROGRAM_ID as Nd}from"@solana/spl-token";import{PublicKey as Vd}from"@solana/web3.js";var Zi=p([Z("mintAuthorityOption"),u("mintAuthority"),n("supply"),d("decimals"),d("isInitialized"),Z("freezeAuthorityOption"),u("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as zy,TOKEN_2022_PROGRAM_ID as Xy,TOKEN_PROGRAM_ID as Yy}from"@solana/spl-token";import{Keypair as Hy,PublicKey as jy,SystemProgram as Jy,TransactionInstruction as eb}from"@solana/web3.js";import nb from"bn.js";import W from"bn.js";var ye=new W(1).shln(64);var Hi=new W(1).shln(128),Vt=new W(1).shln(64).subn(1),ji=new W(1).shln(128).subn(1);var Ze=new W("4295048016"),He=new W("79226673521066979257578248091"),$i=new W("59543866431248"),Ji=new W("184467440737095516"),er=new W("15793534762490258745");var An=60,Zd=new W("18446743708227953217"),tr=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var ft=3,fo=100;var yo=10,bo=100,_t=14;var te=new W(0),je=new W(1),Hd=new W(-1);var jd=new W("18446744073700000000");var nr=p([_(8),d("bump"),H("index"),u("owner"),Z("protocolFeeRate"),Z("tradeFeeRate"),H("tickSpacing"),Z("fundFeeRate"),K(Z(),1),u("fundOwner"),K(n(),3)]),or=p([Z("blockTimestamp"),Ye("tickCumulative"),K(n(),4)]),go=p([_(8),pe("initialized"),n("recentEpoch"),H("observationIndex"),u("poolId"),K(or,fo,"observations"),K(n(),4)]),ir=p([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),fe("tickSpacingIndexReference"),Z("volatilityReference"),Z("volatilityAccumulator"),n("lastUpdateTimestamp"),K(d(),46)]),rr=p([d("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),V("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),u("mint"),u("vault"),u("creator"),V("growthGlobalX64")]),wn=p([_(8),d("bump"),u("configId"),u("creator"),u("mintA"),u("mintB"),u("vaultA"),u("vaultB"),u("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),H("tickSpacing"),V("liquidity"),V("sqrtPriceX64"),fe("tickCurrent"),Z(),V("feeGrowthGlobalX64A"),V("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),K(V(),4),d("status"),d("feeOn"),_(6),K(rr,ft,"rewardInfos"),_(8*16,"tickArrayBitmap"),K(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),ir.replicate("dynamicFeeInfo"),K(n(),46)]),ar=p([V("growthInsideLastX64"),n("rewardAmountOwed")]),sr=p([_(8),d("bump"),u("nftMint"),u("poolId"),fe("tickLower"),fe("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),K(ar,ft,"rewardInfos"),n("recentEpoch"),K(n(),7)]),tp=p([_(8),d("bump"),u("poolId"),fe("tickLower"),fe("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),K(V(),ft,"rewardGrowthInside"),n("recentEpoch"),K(n(),7)]),ur=p([fe("tick"),oo("liquidityNet"),V("liquidityGross"),V("feeGrowthOutsideX64A"),V("feeGrowthOutsideX64B"),K(V(),ft,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),V("unfilledRatioX64"),K(Z(),3)]),Po=p([_(8),u("poolId"),fe("startTickIndex"),K(ur,An,"ticks"),d("initializedTickCount"),n("recentEpoch"),K(d(),107)]),cr=p([_(8),d("bump"),K(u(),yo,"operationOwners"),K(u(),bo,"whitelistMints")]),lr=p([_(8),u("poolId"),u("owner"),fe("tick"),pe("zeroForOne"),n("orderPhase"),n("totalAmount"),n("filledAmount"),n("settleBase"),n("settleOutput"),n("openTime"),V("unfilledRatioX64"),K(n(),4)]),Ao=p([_(8),u("poolId"),_(8*8*_t,"positiveTickArrayBitmap"),_(8*8*_t,"negativeTickArrayBitmap")]),np=p([_(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),K(n(),8)]),mr=p([_(8),u("wallet"),d("nonceIndex"),n("orderNonce"),K(n(),4)]),op=p([n(),d("bump"),u("owner"),u("poolId"),u("positionId"),u("nftAccount"),K(n(),8)]),dr=p([_(8),d("bump"),u("lockOwner"),u("poolId"),u("positionId"),u("nftAccount"),u("lockNftMint"),n("recentEpoch"),K(n(),8)]);import ap from"bn.js";function kn(i){let e=Buffer.alloc(2);return e.writeUInt16LE(i),e}var gp=Buffer.from("amm_config","utf8"),wo=Buffer.from("pool","utf8"),ko=Buffer.from("pool_vault","utf8"),Pp=Buffer.from("pool_reward_vault","utf8"),Ap=Buffer.from("position","utf8"),wp=Buffer.from("tick_array","utf8"),kp=Buffer.from("operation","utf8"),Tp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),hp=Buffer.from("observation","utf8"),Ip=Buffer.from("support_mint","utf8"),Bp=Buffer.from("dynamic_fee_config","utf8"),Sp=Buffer.from("permission","utf8");var Kp=Buffer.from("locked_position","utf8");import{sha256 as Kr}from"js-sha256";import pr from"bn.js";import Lp from"decimal.js";var Np=new pr(1).shln(256).subn(1);import jp from"bn.js";import Dp from"bn.js";import qp from"decimal.js";import nf from"bn.js";import rf from"decimal.js";import{PublicKey as zf}from"@solana/web3.js";import Yf from"bn.js";import{TOKEN_2022_PROGRAM_ID as ty,TOKEN_PROGRAM_ID as ny}from"@solana/spl-token";import ay from"decimal.js";import Mf from"bn.js";import kf from"bn.js";import gy from"bn.js";function ne(i){let e=`global:${i}`;return Buffer.from(Kr.digest(e)).slice(0,8)}go.span;var lb=D("Raydium_Clmm"),mb={createPool:ne("create_pool"),createCustomizablePool:ne("create_customizable_pool"),createPermissionedPool:ne("create_permissioned_pool"),openPositionV2:ne("open_position_v2"),openPositionWithToken22Nft:ne("open_position_with_token22_nft"),closePosition:ne("close_position"),increaseLiquidityV2:ne("increase_liquidity_v2"),decreaseLiquidityV2:ne("decrease_liquidity_v2"),initializeReward:ne("initialize_reward"),setRewardParams:ne("set_reward_params"),updateRewardInfos:ne("update_reward_infos"),collectRemainingRewards:ne("collect_remaining_rewards"),swapV2:ne("swap_v2"),openLimitOrder:ne("open_limit_order"),increaseLimitOrder:ne("increase_limit_order"),decreaseLimitOrder:ne("decrease_limit_order"),settleLimitOrder:ne("settle_limit_order"),closeLimitOrder:ne("close_limit_order")};import{PublicKey as Bn}from"@solana/web3.js";var Lr=p([d("instruction")]),Or=p([d("instruction")]),Nr=p([n("rewardState"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardLastUpdateTime"),n("totalReward"),n("totalRewardEmissioned"),n("rewardClaimed"),n("rewardPerSecond"),V("accRewardPerShare"),u("rewardVault"),u("rewardMint"),u("rewardSender"),n("rewardType"),K(n(),15,"padding")]),Mr=p([n("state"),n("nonce"),u("lpVault"),u("rewardVault"),u(),u(),n(),n(),n("totalReward"),V("perShareReward"),n("lastSlot"),n("perSlotReward")]),Fr=p([n("state"),n("nonce"),u("lpVault"),u("rewardVaultA"),n("totalRewardA"),V("perShareRewardA"),n("perSlotRewardA"),d("option"),u("rewardVaultB"),_(7),n("totalRewardB"),V("perShareRewardB"),n("perSlotRewardB"),n("lastSlot"),u()]),vr=p([n(),n("state"),n("nonce"),n("validRewardTokenNum"),V("rewardMultiplier"),n("rewardPeriodMax"),n("rewardPeriodMin"),n("rewardPeriodExtend"),u("lpMint"),u("lpVault"),K(Nr,5,"rewardInfos"),u("creator"),u(),K(n(),32,"padding")]),Vr=new Proxy(Mr,{get(i,e,t){return e==="decode"?(...o)=>{let r=i.decode(...o);return v(N({},r),{version:3,rewardInfos:[{rewardVault:r.rewardVault,totalReward:r.totalReward,perSlotReward:r.perSlotReward,perShareReward:r.perShareReward}]})}:Reflect.get(i,e,t)}}),_r=new Proxy(Fr,{get(i,e,t){return e==="decode"?(...o)=>{let r=i.decode(...o);return v(N({},r),{version:5,rewardInfos:[{rewardVault:r.rewardVaultA,totalReward:r.totalRewardA,perSlotReward:r.perSlotRewardA,perShareReward:r.perShareRewardA},{rewardVault:r.rewardVaultB,totalReward:r.totalRewardB,perSlotReward:r.perSlotRewardB,perShareReward:r.perShareRewardB}]})}:Reflect.get(i,e,t)}}),xo=new Proxy(vr,{get(i,e,t){return e==="decode"?(...o)=>{let r=i.decode(...o);return v(N({},r),{version:6,rewardInfos:r.rewardInfos.map(a=>{var s;return v(N({},a),{rewardType:((s=Object.entries(gt).find(c=>String(c[1])===a.rewardType.toString()))!=null?s:["Standard SPL"])[0]})})})}:Reflect.get(i,e,t)}}),Er=p([n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),Dr=p([d("instruction"),n("nonce"),K(Er,5,"rewardTimeInfo")]),Wr=p([d("instruction"),n("rewardReopenTime"),n("rewardEndTime"),n("rewardPerSecond")]),qr=p([d("instruction"),n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),lg=p([n("state"),u("id"),u("owner"),n("deposited"),K(n(),1,"rewardDebts")]),Co=p([n("state"),u("id"),u("owner"),n("deposited"),K(V(),1,"rewardDebts"),n(""),n("voteLockedBalance"),K(n(),15)]),mg=p([n("state"),u("id"),u("owner"),n("deposited"),K(n(),2,"rewardDebts")]),Ur=p([n("state"),u("id"),u("owner"),n("deposited"),K(V(),2,"rewardDebts"),K(n(),17)]),Gr=p([n(),n("state"),u("id"),u("owner"),n("deposited"),K(V(),5,"rewardDebts"),K(n(),16)]),zr=p([d("instruction"),n("amount")]),Xr=p([u("mint"),u("grantAuthority"),n("baselineVoteWeightScaledFactor"),n("maxExtraLockupVoteWeightScaledFactor"),n("lockupSaturationSecs"),no("digitShift"),K(d(),7,"reserved1"),K(n(),7,"reserved2")]),Yr=p([_(8),u("governanceProgramId"),u("realm"),u("realmGoverningTokenMint"),u("realmAuthority"),K(d(),32,"reserved1"),K(Xr,4,"votingMints"),Ye("timeOffset"),d("bump"),K(d(),7,"reserved2"),K(n(),11,"reserved3")]),Qr=p([Ye("startTime"),Ye("endTime"),d("kind"),K(d(),15,"reserved")]),Zr=p([K(Qr,1,"lockup"),n("amountDeposited_native"),n("amountInitiallyLockedNative"),pe("isUsed"),pe("allowClawback"),d("votingMintConfigIdx"),K(d(),29,"reserved")]),Hr=p([_(8),u("voterAuthority"),u("registrar"),K(Zr,32,"deposits"),d("voterBump"),d("voterWweightRecordBump"),K(d(),94,"reserved")]);import{NATIVE_MINT as wg}from"@solana/spl-token";var kg=D("Raydium_farm_config"),jr=new Bn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),$r=new Bn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Tg=new Bn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var gt={"Standard SPL":0,"Option tokens":1},Ro={[ao.toString()]:3,[so.toString()]:4,[uo.toString()]:5,[gn.toString()]:6,[Se.FARM_PROGRAM_ID_V3.toString()]:3,[Se.FARM_PROGRAM_ID_V4.toString()]:4,[Se.FARM_PROGRAM_ID_V5.toString()]:5,[Se.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as sP,SystemProgram as uP,SYSVAR_CLOCK_PUBKEY as cP,SYSVAR_RENT_PUBKEY as lP,TransactionInstruction as mP}from"@solana/web3.js";import pP from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as yP,createAssociatedTokenAccountIdempotentInstruction as bP,TOKEN_PROGRAM_ID as gP}from"@solana/spl-token";import Vg from"bn.js";import{PublicKey as xg}from"@solana/web3.js";import Rg from"bn.js";var Hg=D("Raydium.farm.util");var xP=D("Raydium_farm_instruction"),CP={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 bA from"bn.js";import{PublicKey as Tk}from"@solana/web3.js";import{AccountLayout as Bk,MintLayout as Sk,NATIVE_MINT as Kk,TOKEN_PROGRAM_ID as Ck}from"@solana/spl-token";import re from"bn.js";var Pt=1e4;function Ut(i,e){let{div:t,mod:o}=i.divmod(e);return o.gt(new re(0))?t.add(new re(1)):t}function Ve(i,e){if(i.isZero())return new re(0);let t=i.div(e);return t.isZero()?new re(1):i.mod(e).gt(new re(0))?t.add(new re(1)):t}function At(i,e,t){if(e===void 0)return{amount:i,fee:void 0,expirationTime:void 0};let o=Math.floor(t/432e3),r=o<e.newerTransferFee.epoch?e.olderTransferFee:e.newerTransferFee,a=new re(r.maximumFee.toString()),s=o<e.newerTransferFee.epoch?(Number(e.newerTransferFee.epoch)*432e3-t)*400/1e3:void 0,c=Ut(i.mul(new re(r.transferFeeBasisPoints)),new re(Pt)),y=c.gt(a)?a:c;return{amount:i,fee:y,expirationTime:s}}function et(i,e,t){if(e===void 0)return{amount:i,fee:void 0,expirationTime:void 0};let o=Math.floor(t/432e3),r=o<e.newerTransferFee.epoch?e.olderTransferFee:e.newerTransferFee,a=new re(r.maximumFee.toString()),s=o<e.newerTransferFee.epoch?(Number(e.newerTransferFee.epoch)*432e3-t)*400/1e3:void 0;if(r.transferFeeBasisPoints===Pt){let c=new re(r.maximumFee.toString());return{amount:i.add(c),fee:c,expirationTime:s}}else{let c=Ut(i.mul(new re(Pt)),new re(Pt-r.transferFeeBasisPoints)),y=new re(r.maximumFee.toString()),g=c.sub(i).gt(y)?i.add(y):c,f=Ut(g.mul(new re(r.transferFeeBasisPoints)),new re(Pt)),k=f.gt(a)?a:f;return{amount:g,fee:k,expirationTime:s}}}import Oo from"bn.js";var aa=new Oo(25),sa=new Oo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as DA,TOKEN_PROGRAM_ID as WA}from"@solana/spl-token";import{PublicKey as UA,SystemProgram as GA,SYSVAR_RENT_PUBKEY as zA,TransactionInstruction as XA}from"@solana/web3.js";import ew from"bn.js";var ua=p([d("instruction"),n("amountIn"),n("minAmountOut")]),ca=p([d("instruction"),n("maxAmountIn"),n("amountOut")]),vA=p([d("instruction"),d("nonce")]),la=p([d("instruction"),d("nonce"),n("startTime")]),No=p([n("status"),n("nonce"),n("maxOrder"),n("depth"),n("baseDecimal"),n("quoteDecimal"),n("state"),n("resetFlag"),n("minSize"),n("volMaxCutRatio"),n("amountWaveRatio"),n("baseLotSize"),n("quoteLotSize"),n("minPriceMultiplier"),n("maxPriceMultiplier"),n("systemDecimalValue"),n("minSeparateNumerator"),n("minSeparateDenominator"),n("tradeFeeNumerator"),n("tradeFeeDenominator"),n("pnlNumerator"),n("pnlDenominator"),n("swapFeeNumerator"),n("swapFeeDenominator"),n("baseNeedTakePnl"),n("quoteNeedTakePnl"),n("quoteTotalPnl"),n("baseTotalPnl"),n("poolOpenTime"),n("punishPcAmount"),n("punishCoinAmount"),n("orderbookToInitTime"),V("swapBaseInAmount"),V("swapQuoteOutAmount"),n("swapBase2QuoteFee"),V("swapQuoteInAmount"),V("swapBaseOutAmount"),n("swapQuote2BaseFee"),u("baseVault"),u("quoteVault"),u("baseMint"),u("quoteMint"),u("lpMint"),u("openOrders"),u("marketId"),u("marketProgramId"),u("targetOrders"),u("withdrawQueue"),u("lpVault"),u("owner"),n("lpReserve"),K(n(),3,"padding")]),VA=p([n("accountType"),n("status"),n("nonce"),n("maxOrder"),n("depth"),n("baseDecimal"),n("quoteDecimal"),n("state"),n("resetFlag"),n("minSize"),n("volMaxCutRatio"),n("amountWaveRatio"),n("baseLotSize"),n("quoteLotSize"),n("minPriceMultiplier"),n("maxPriceMultiplier"),n("systemDecimalsValue"),n("abortTradeFactor"),n("priceTickMultiplier"),n("priceTick"),n("minSeparateNumerator"),n("minSeparateDenominator"),n("tradeFeeNumerator"),n("tradeFeeDenominator"),n("pnlNumerator"),n("pnlDenominator"),n("swapFeeNumerator"),n("swapFeeDenominator"),n("baseNeedTakePnl"),n("quoteNeedTakePnl"),n("quoteTotalPnl"),n("baseTotalPnl"),n("poolOpenTime"),n("punishPcAmount"),n("punishCoinAmount"),n("orderbookToInitTime"),V("swapBaseInAmount"),V("swapQuoteOutAmount"),V("swapQuoteInAmount"),V("swapBaseOutAmount"),n("swapQuote2BaseFee"),n("swapBase2QuoteFee"),u("baseVault"),u("quoteVault"),u("baseMint"),u("quoteMint"),u("lpMint"),u("modelDataAccount"),u("openOrders"),u("marketId"),u("marketProgramId"),u("targetOrders"),u("owner"),K(n(),64,"padding")]),ma=p([d("instruction"),n("baseAmountIn"),n("quoteAmountIn"),n("fixedSide"),n("otherAmountMin")]),da=p([d("instruction"),n("lpAmount"),n("baseAmountMin"),n("quoteAmountMin")]);var pa=p([n("fee")]);var ow=D("Raydium_liquidity_instruction");var fa=5e4,ya=p([n("x"),n("y"),n("price")]),sw=p([n("accountType"),n("status"),n("multiplier"),n("validDataCount"),K(ya,fa,"DataElement")]);import{PublicKey as Aw}from"@solana/web3.js";import kw from"decimal.js";import{TOKEN_PROGRAM_ID as hw}from"@solana/spl-token";import{PublicKey as mw}from"@solana/web3.js";var fw=D("Raydium_liquidity_serum");import Zk from"bn.js";import jk from"decimal.js";import{TOKEN_PROGRAM_ID as Hw}from"@solana/spl-token";import{PublicKey as $w}from"@solana/web3.js";import ek from"bn.js";import{SystemProgram as Vw,SYSVAR_RENT_PUBKEY as _w,Transaction as Ew,TransactionInstruction as Dw}from"@solana/web3.js";import{createInitializeAccountInstruction as qw,TOKEN_PROGRAM_ID as Uw}from"@solana/spl-token";function ba(i="accountFlags"){let e=new Mt(i);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var ga=p([_(5),ba("accountFlags"),u("ownAddress"),n("vaultSignerNonce"),u("baseMint"),u("quoteMint"),u("baseVault"),n("baseDepositsTotal"),n("baseFeesAccrued"),u("quoteVault"),n("quoteDepositsTotal"),n("quoteFeesAccrued"),n("quoteDustThreshold"),u("requestQueue"),u("eventQueue"),u("bids"),u("asks"),n("baseLotSize"),n("quoteLotSize"),n("feeRateBps"),n("referrerRebatesAccrued"),_(7)]);import{PublicKey as Th}from"@solana/web3.js";import{AccountLayout as Ih,NATIVE_MINT as Bh,TOKEN_2022_PROGRAM_ID as Sh,TOKEN_PROGRAM_ID as Kh,createAssociatedTokenAccountIdempotentInstruction as xh}from"@solana/spl-token";import kT from"bn.js";import Ia from"bn.js";var sT=new Ia(0);import pT from"bn.js";import Ba from"bn.js";var we=new Ba(1e6);import vh from"bn.js";import _h from"decimal.js";import{PublicKey as ET,TransactionInstruction as DT,Keypair as qT,SystemProgram as UT}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as zT,TOKEN_2022_PROGRAM_ID as XT,TOKEN_PROGRAM_ID as YT}from"@solana/spl-token";var ST=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),KT=Buffer.from("amm_config","utf8"),xT=Buffer.from("pool","utf8"),CT=Buffer.from("pool_lp_mint","utf8"),RT=Buffer.from("pool_vault","utf8"),LT=Buffer.from("observation","utf8"),OT=Buffer.from("permission","utf8"),NT=Buffer.from("support_mint","utf8");var MT=Buffer.from("locked_liquidity","utf8");var eh=D("Raydium_cpmm"),th={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 Ka=p([_(8),d("bump"),pe("disableCreatePool"),H("index"),n("tradeFeeRate"),n("protocolFeeRate"),n("fundFeeRate"),n("createPoolFee"),u("protocolOwner"),u("fundOwner"),n("creatorFeeRate"),K(n(),15)]),Mo=p([_(8),u("configId"),u("poolCreator"),u("vaultA"),u("vaultB"),u("mintLp"),u("mintA"),u("mintB"),u("mintProgramA"),u("mintProgramB"),u("observationId"),d("bump"),d("status"),d("lpDecimals"),d("mintDecimalA"),d("mintDecimalB"),n("lpAmount"),n("protocolFeesMintA"),n("protocolFeesMintB"),n("fundFeesMintA"),n("fundFeesMintB"),n("openTime"),n("epoch"),d("feeOn"),pe("enableCreatorFee"),K(d(),6),n("creatorFeesMintA"),n("creatorFeesMintB"),K(n(),28)]),ih=p([_(8),u("configId"),K(n(),30)]);import{PublicKey as gB,SystemProgram as PB}from"@solana/web3.js";import{createTransferInstruction as wB,TOKEN_PROGRAM_ID as kB,TOKEN_2022_PROGRAM_ID as TB,createAssociatedTokenAccountIdempotentInstruction as hB,createSyncNativeInstruction as BB,createTransferCheckedInstruction as SB}from"@solana/spl-token";import Oa from"bn.js";import CB from"decimal.js";var Ra={[co.toBase58()]:3};var La=p([_(5),_(8),u("ownAddress"),n("vaultSignerNonce"),u("baseMint"),u("quoteMint"),u("baseVault"),n("baseDepositsTotal"),n("baseFeesAccrued"),u("quoteVault"),n("quoteDepositsTotal"),n("quoteFeesAccrued"),n("quoteDustThreshold"),u("requestQueue"),u("eventQueue"),u("bids"),u("asks"),n("baseLotSize"),n("quoteLotSize"),n("feeRateBps"),n("referrerRebatesAccrued"),_(7)]);import{PublicKey as vI}from"@solana/web3.js";var WI=D("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as HI,TOKEN_2022_PROGRAM_ID as jI,TOKEN_PROGRAM_ID as $I}from"@solana/spl-token";import{PublicKey as eB,SystemProgram as tB,TransactionInstruction as nB}from"@solana/web3.js";import iB from"bn.js";var rS=new Oa(0);import{PublicKey as Ma,Transaction as xn,TransactionInstruction as Fa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as va}from"@solana/spl-token";import qo from"bn.js";var ae=class extends le{static getPdaPoolId(e,t){return Q([ae.SEED_CONFIG.pool.id,t.toBuffer()],e)}static getPdaOwnerId(e,t,o,r){return Q([ae.SEED_CONFIG.owner.id,t.toBuffer(),o.toBuffer(),Buffer.from(new qo(r).toArray())],e)}static async getAllInfo({connection:e,programId:t,poolIds:o,wallet:r,chainTime:a}){if(o.length===0)return[];let s=o.map(f=>ae.getPdaPoolId(t,f).publicKey),c=[];for(let f=0;f<ae.VERSION_PROJECT.length;f++)c.push(...s.map(k=>ae.getPdaOwnerId(t,k,r,f).publicKey));let y=await he(e,[...s,...c]),g=[];for(let f=0;f<y.length;f++){let k=Math.floor(f/o.length),I=f%o.length,h=s[I],S=c[f],T=y[I],P=y[o.length+f];if(!(T&&P)||T.data.length!==ae.POOL_LAYOUT.span||P.data.length!==ae.OWNER_LAYOUT.span)continue;let A=ae.POOL_LAYOUT.decode(T.data),w=ae.OWNER_LAYOUT.decode(P.data),x=A.openTime.toNumber(),R=A.endTime.toNumber(),b=w.tokenInfo.map(L=>L.debtAmount.gt(new qo(0))).filter(L=>!L).length!==3,B=a>x&&a<R&&A.status===1,C=b&&B;g.push({programId:t,poolId:h,ammId:A.ammId,ownerAccountId:S,snapshotLpAmount:w.lpAmount,project:ae.VERSION_PROJECT[k],openTime:x,endTime:R,canClaim:C,canClaimErrorType:b?B?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:A.tokenInfo.map((L,O)=>({mintAddress:L.mintAddress,mintVault:L.mintVault,mintDecimals:L.mintDecimals,perLpLoss:L.perLpLoss,debtAmount:w.tokenInfo[O].debtAmount.add(w.tokenInfo[O].claimedAmount)}))})}return g}async makeClaimTransaction({poolInfo:e,ownerInfo:t,feePayer:o}){t.wallet||this.scope.checkOwner();let r=this.createTxBuilder(o),a=t.wallet||this.scope.ownerPubKey,s=[];for(let g of e.tokenInfo){let{account:f,instructionParams:k}=await this.scope.account.getOrCreateTokenAccount({mint:g.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:g.mintAddress.equals(ie.WSOL.mint),createInfo:{payer:a,amount:0},skipCloseAccount:!g.mintAddress.equals(ie.WSOL.mint),associatedOnly:g.mintAddress.equals(ie.WSOL.mint)?!1:t.associatedOnly});k&&r.addInstruction(k),s.push(f)}r.addInstruction({instructions:[ae.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:a,ownerPda:e.ownerAccountId,claimAddress:s}})]});let{transaction:c,signers:y}=r.build();return[{transaction:c,signer:y}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:t,feePayer:o}){let r=this.createTxBuilder(o),a=t.wallet||this.scope.ownerPubKey,s={};for(let f of e){let k=[];for(let I of f.tokenInfo){let{account:h,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({mint:I.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:I.mintAddress.equals(ie.WSOL.mint),createInfo:{payer:a,amount:0},skipCloseAccount:!I.mintAddress.equals(ie.WSOL.mint),associatedOnly:I.mintAddress.equals(ie.WSOL.mint)?!1:t.associatedOnly});S&&r.addInstruction(S),h&&(s[I.mintAddress.toString()]=h,k.push(h))}r.addInstruction({instructions:[ae.makeClaimInstruction({programId:f.programId,poolInfo:f,ownerInfo:{wallet:a,ownerPda:f.ownerAccountId,claimAddress:k}})]})}let{transaction:c,signers:y}=r.build(),g=r.allInstructions;return ln(g,[a,...y.map(f=>f.publicKey)])?[{transaction:c,signer:y}]:[{transaction:new xn().add(...g.slice(0,r.AllTxData.instructions.length-1)),signer:y},{transaction:new xn().add(...g.slice(r.AllTxData.instructions.length-1)),signer:[]},{transaction:new xn().add(...r.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:t,ownerInfo:o}){let r=p([]),a=[{pubkey:o.wallet,isSigner:!0,isWritable:!0},{pubkey:t.poolId,isSigner:!1,isWritable:!0},{pubkey:o.ownerPda,isSigner:!1,isWritable:!0},...o.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...t.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:va,isSigner:!1,isWritable:!1}],s=Buffer.alloc(r.span);r.encode({},s);let c=Buffer.from([10,66,208,184,161,6,191,98,...s]);return new Fa({keys:a,programId:e,data:c})}},be=ae;be.CLAIMED_NUM=3,be.POOL_LAYOUT=p([_(8),d("bump"),d("status"),n("openTime"),n("endTime"),u("ammId"),K(p([d("mintDecimals"),u("mintAddress"),u("mintVault"),n("perLpLoss"),n("totalClaimedAmount")]),ae.CLAIMED_NUM,"tokenInfo"),K(n(),10,"padding")]),be.OWNER_LAYOUT=p([_(8),d("bump"),d("version"),u("poolId"),u("owner"),n("lpAmount"),K(p([u("mintAddress"),n("debtAmount"),n("claimedAmount")]),ae.CLAIMED_NUM,"tokenInfo"),K(n(),4,"padding")]),be.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new Ma(e)),be.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},be.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];var Uo=(t=>(t[t.OnlyTokenB=0]="OnlyTokenB",t[t.BothToken=1]="BothToken",t))(Uo||{});var Va=Buffer.from("vault_auth_seed","utf8"),_a=Buffer.from("global_config","utf8"),Ea=Buffer.from("pool_vesting","utf8"),Da=Buffer.from("platform_config","utf8"),Wa=Buffer.from("platform_fee_vault_auth_seed","utf8"),qa=Buffer.from("creator_fee_vault_auth_seed","utf8"),Ua=Buffer.from("platform_global_access","utf8"),Ga=Buffer.from("platform_allow_config","utf8");function vo(i){return Q([Va],i)}function za(i,e,t,o){return Q([_a,e.toBuffer(),Qa(t),kn(o)],i)}function Xa(i,e,t){return Q([wo,e.toBuffer(),t.toBuffer()],i)}function Ya(i,e,t){return Q([ko,e.toBuffer(),t.toBuffer()],i)}function Ke(i){return Q([Buffer.from("__event_authority","utf8")],i)}function Qa(i){let e=new ArrayBuffer(1);return new DataView(e).setUint8(0,i),new Uint8Array(e)}function Za(i,e){return Q([Da,e.toBuffer()],i)}function Ha(i,e,t){return Q([Ea,e.toBuffer(),t.toBuffer()],i)}function Vo(i,e,t){return Q([e.toBuffer(),t.toBuffer()],i)}function ja(i){return Q([Wa],i)}function _o(i,e,t){return Q([e.toBuffer(),t.toBuffer()],i)}function $a(i){return Q([qa],i)}function IS(i,e,t){return Q([Ua,e.toBuffer(),t.toBuffer()],i)}function Ja(i,e,t){return Q([Ga,e.toBuffer(),t.toBuffer()],i)}import{NATIVE_MINT as qK,TOKEN_2022_PROGRAM_ID as UK,TOKEN_PROGRAM_ID as GK,createAssociatedTokenAccountIdempotentInstruction as XK,createSyncNativeInstruction as YK,getTransferFeeConfig as QK,unpackMint as ZK}from"@solana/spl-token";import j from"bn.js";import{PublicKey as ss,SystemProgram as $K}from"@solana/web3.js";var es=p([n(),n("epoch"),d("curveType"),H("index"),n("migrateFee"),n("tradeFeeRate"),n("maxShareFeeRate"),n("minSupplyA"),n("maxLockRate"),n("minSellRateA"),n("minMigrateRateA"),n("minFundRaisingB"),u("mintB"),u("protocolFeeOwner"),u("migrateFeeOwner"),u("migrateToAmmWallet"),u("migrateToCpmmWallet"),K(n(),16)]),ts=p([n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod"),n("startTime"),n("totalAllocatedShare")]),ns=p([n(),n("epoch"),d("bump"),d("status"),d("mintDecimalsA"),d("mintDecimalsB"),d("migrateType"),n("supply"),n("totalSellA"),n("virtualA"),n("virtualB"),n("realA"),n("realB"),n("totalFundRaisingB"),n("protocolFee"),n("platformFee"),n("migrateFee"),ts.replicate("vestingSchedule"),u("configId"),u("platformId"),u("mintA"),u("mintB"),u("vaultA"),u("vaultB"),u("creator"),d("mintProgramFlag"),d("cpmmCreatorFeeOn"),n("platformVestingShare"),K(d(),54)]),KS=p([n(),n("epoch"),u("poolId"),u("beneficiary"),n("claimedAmount"),n("tokenShareAmount"),K(n(),8)]),Cn=p([d("migrateType"),d("migrateCpmmFeeOn"),n("supply"),n("totalSellA"),n("totalFundRaisingB"),n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod")]),os=p([n("epoch"),d("index"),u("configId"),Cn.replicate("bondingCurveParam"),K(n(),50)]),Eo=p([n(),n("epoch"),u("platformClaimFeeWallet"),u("platformLockNftWallet"),n("platformScale"),n("creatorScale"),n("burnScale"),n("feeRate"),K(d(),64,"name"),K(d(),256,"web"),K(d(),256,"img"),u("cpConfigId"),n("creatorFeeRate"),u("transferFeeExtensionAuth"),u("platformVestingWallet"),n("platformVestingScale"),u("platformCpCreator"),d("restrictGlobalConfig"),K(d(),107),io(os,"platformCurve")]);import de from"bn.js";import Go from"decimal.js";import Gt from"bn.js";import wt from"decimal.js";var xe=class{static getPoolInitPriceByPool({poolInfo:e,decimalA:t,decimalB:o}){throw Error()}static getPoolInitPriceByInit({a:e,b:t,decimalA:o,decimalB:r}){throw Error()}static getPoolPrice({poolInfo:e,decimalA:t,decimalB:o}){throw Error()}static getPoolEndPrice({supply:e,totalSell:t,totalLockedAmount:o,totalFundRaising:r,migrateFee:a,decimalA:s,decimalB:c}){throw Error()}static getPoolEndPriceReal({poolInfo:e,decimalA:t,decimalB:o}){throw Error()}static getInitParam({supply:e,totalFundRaising:t,totalSell:o,totalLockedAmount:r,migrateFee:a}){throw Error()}static buyExactIn({poolInfo:e,amount:t}){throw Error()}static buyExactOut({poolInfo:e,amount:t}){throw Error()}static sellExactIn({poolInfo:e,amount:t}){throw Error()}static sellExactOut({poolInfo:e,amount:t}){throw Error()}};var zt=class extends xe{static getPoolInitPriceByPool({poolInfo:e,decimalA:t,decimalB:o}){return new wt(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(t-o))}static getPoolInitPriceByInit({a:e,b:t,decimalA:o,decimalB:r}){return new wt(t.toString()).div(e.toString()).mul(10**(o-r))}static getPoolPrice({poolInfo:e,decimalA:t,decimalB:o}){return new wt(e.virtualB.add(e.realB).toString()).div(e.virtualA.sub(e.realA).toString()).mul(10**(t-o))}static getPoolEndPrice({supply:e,totalSell:t,totalLockedAmount:o,totalFundRaising:r,migrateFee:a,decimalA:s,decimalB:c}){return new wt(r.sub(a).toString()).div(e.sub(t).sub(o).toString()).mul(10**(s-c))}static getPoolEndPriceReal({poolInfo:e,decimalA:t,decimalB:o}){let r=e.totalSellA.sub(e.realA),a=e.totalFundRaisingB.sub(e.realB);return new wt(e.virtualB.add(e.realB.add(a)).toString()).div(e.virtualA.sub(e.realA.add(r)).toString()).mul(10**(t-o))}static getInitParam({supply:e,totalFundRaising:t,totalSell:o,totalLockedAmount:r,migrateFee:a}){if(e.lte(o))throw Error("supply need gt total sell");let s=e.sub(o).sub(r);if(s.lte(new Gt(0)))throw Error("supplyMinusSellLocked <= 0");let c=t.sub(a);if(c.lte(new Gt(0)))throw Error("tfMinusMf <= 0");let y=c.mul(o).mul(o).div(s),g=c.mul(o).div(s).sub(t),f=y.div(g),k=t.mul(t).div(g);if(f.lt(new Gt(0))||k.lt(new Gt(0)))throw Error("invalid input 0");return{a:f,b:k,c:o}}static buyExactIn({poolInfo:e,amount:t}){return this.getAmountOut({amountIn:t,inputReserve:e.virtualB.add(e.realB),outputReserve:e.virtualA.sub(e.realA)})}static buyExactOut({poolInfo:e,amount:t}){return this.getAmountIn({amountOut:t,inputReserve:e.virtualB.add(e.realB),outputReserve:e.virtualA.sub(e.realA)})}static sellExactIn({poolInfo:e,amount:t}){return this.getAmountOut({amountIn:t,inputReserve:e.virtualA.sub(e.realA),outputReserve:e.virtualB.add(e.realB)})}static sellExactOut({poolInfo:e,amount:t}){return this.getAmountIn({amountOut:t,inputReserve:e.virtualA.sub(e.realA),outputReserve:e.virtualB.add(e.realB)})}static getAmountOut({amountIn:e,inputReserve:t,outputReserve:o}){let r=e.mul(o),a=t.add(e);return r.div(a)}static getAmountIn({amountOut:e,inputReserve:t,outputReserve:o}){let r=t.mul(e),a=o.sub(e);return Ve(r,a)}};import Xt from"bn.js";import kt from"decimal.js";var Yt=class extends xe{static getPoolInitPriceByPool({poolInfo:e,decimalA:t,decimalB:o}){return new kt(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(t-o))}static getPoolInitPriceByInit({a:e,b:t,decimalA:o,decimalB:r}){return new kt(t.toString()).div(e.toString()).mul(10**(o-r))}static getPoolPrice({poolInfo:e,decimalA:t,decimalB:o}){return new kt(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(t-o))}static getPoolEndPrice({supply:e,totalSell:t,totalLockedAmount:o,totalFundRaising:r,migrateFee:a,decimalA:s,decimalB:c}){return new kt(r.sub(a).toString()).div(e.sub(t).sub(o).toString()).mul(10**(s-c))}static getPoolEndPriceReal({poolInfo:e,decimalA:t,decimalB:o}){let r=e.totalSellA.sub(e.realA),a=e.totalFundRaisingB.sub(e.realB);return new kt(e.virtualB.add(e.realB).add(a).toString()).div(e.virtualA.sub(e.realA).add(r).toString()).mul(10**(t-o))}static getInitParam({supply:e,totalFundRaising:t,totalSell:o,totalLockedAmount:r,migrateFee:a}){let s=e.sub(r);if(s.lte(new Xt(0)))throw Error("invalid input 1");let c=new Xt(2).mul(t).sub(a),g=t.mul(s).div(c);if(g.lt(new Xt(0))||t.lt(new Xt(0)))throw Error("invalid input 0");return{a:g,b:t,c:g}}static buyExactIn({poolInfo:e,amount:t}){return this.getAmountOut({amountIn:t,initInput:e.virtualB,initOutput:e.virtualA})}static buyExactOut({poolInfo:e,amount:t}){return this.getAmountIn({amountOut:t,initInput:e.virtualB,initOutput:e.virtualA})}static sellExactIn({poolInfo:e,amount:t}){return this.getAmountOut({amountIn:t,initInput:e.virtualA,initOutput:e.virtualB})}static sellExactOut({poolInfo:e,amount:t}){return this.getAmountIn({amountOut:t,initInput:e.virtualA,initOutput:e.virtualB})}static getAmountOut({amountIn:e,initInput:t,initOutput:o}){return o.mul(e).div(t)}static getAmountIn({amountOut:e,initInput:t,initOutput:o}){let r=t.mul(e);return Ve(r,o)}};import me from"bn.js";import _e from"decimal.js";import nt from"bn.js";import Qt from"decimal.js";var Tt=class{static _multipler(e){return new Qt(10).pow(e)}static getPrice({priceX64:e,decimalA:t,decimalB:o}){return new Qt(e.toString()).div(this._Q64).mul(this._multipler(t)).div(this._multipler(o))}static getPriceX64({price:e,decimalA:t,decimalB:o}){let r=e.mul(this._multipler(o)).div(this._multipler(t));return new nt(r.mul(this._Q64).toFixed(0))}};Tt._Q64=new Qt(new nt(1).shln(64).toString());function GS({supply:i,totalFundRaisingB:e,totalLockedAmount:t,totalSellA:o,migrateType:r,decimalsA:a}){let s=i.sub(o).sub(t),c=new nt(new Qt(s.mul(e).toString()).sqrt().toFixed(0));if(r==="amm"){if(c.gt(new nt(10).pow(new nt(a))))return!0}else if(r==="cpmm"){if(c.gt(new nt(100)))return!0}else throw Error("migrate type error");return!1}var Zt=class extends xe{static getPoolInitPriceByPool({poolInfo:e,decimalA:t,decimalB:o}){return new _e(0)}static getPoolInitPriceByInit({a:e,b:t,decimalA:o,decimalB:r}){return new _e(0)}static getPoolPrice({poolInfo:e,decimalA:t,decimalB:o}){return new _e(e.virtualA.mul(e.realA).toString()).div(Tt._Q64).mul(10**(t-o))}static getPoolEndPrice({supply:e,totalSell:t,totalLockedAmount:o,totalFundRaising:r,migrateFee:a,decimalA:s,decimalB:c}){return new _e(r.sub(a).toString()).div(e.sub(t).sub(o).toString()).mul(10**(s-c))}static getPoolEndPriceReal({poolInfo:e,decimalA:t,decimalB:o}){let r=e.totalSellA.sub(e.realA),a=e.totalFundRaisingB.sub(e.realB);return new _e(e.virtualB.add(e.realB).add(a).toString()).div(e.virtualA.sub(e.realA).add(r).toString()).mul(10**(t-o))}static getInitParam({supply:e,totalFundRaising:t,totalSell:o,totalLockedAmount:r,migrateFee:a}){let s=e.sub(r);if(s.lte(new me(0)))throw Error("supplyMinusLocked need gt 0");let c=t.mul(new me(3)).sub(a),g=t.mul(new me(2)).mul(s).div(c),f=g.mul(g),k=t.mul(new me(2)).mul(ye).div(f);if(!k.gt(new me(0)))throw Error("a need gt 0");if(!Vt.gt(k))throw Error("a need lt u64 max");if(k.lt(new me(0))||g.lt(new me(0)))throw Error("invalid input 0");return{a:k,b:new me(0),c:g}}static buyExactIn({poolInfo:e,amount:t}){let o=e.realB.add(t),r=new me(2).mul(o).mul(ye).div(e.virtualA);return new me(new _e(r.toString()).sqrt().toFixed(0)).sub(e.realA)}static buyExactOut({poolInfo:e,amount:t}){let o=e.realA.add(t),r=o.mul(o);return Ve(e.virtualA.mul(r),new me(2).mul(ye)).sub(e.realB)}static sellExactIn({poolInfo:e,amount:t}){let o=e.realA.sub(t),r=o.mul(o),a=Ve(e.virtualA.mul(r),new me(2).mul(ye));return e.realB.sub(a)}static sellExactOut({poolInfo:e,amount:t}){let o=e.realB.sub(t),r=new me(2).mul(o).mul(ye).div(e.virtualA),a=new me(new _e(r.toString()).sqrt().toFixed(0));return e.realA.sub(a)}};var tt=class{static getPoolCurvePointByPoolInfo({curveType:e,pointCount:t,poolInfo:o}){return this.getPoolCurvePointByInit({curveType:e,pointCount:t,supply:o.supply,totalFundRaising:o.totalFundRaisingB,totalSell:o.totalSellA,totalLockedAmount:o.vestingSchedule.totalLockedAmount,migrateFee:o.migrateFee,decimalA:o.mintDecimalsA,decimalB:o.mintDecimalsB})}static getPoolCurvePointByInit({curveType:e,pointCount:t,supply:o,totalFundRaising:r,totalSell:a,totalLockedAmount:s,migrateFee:c,decimalA:y,decimalB:g}){if(t<3)throw Error("point count < 3");let f=this.getCurve(e),k=f.getInitParam({supply:o,totalFundRaising:r,totalSell:a,totalLockedAmount:s,migrateFee:c}),I=f.getPoolInitPriceByInit(v(N({},k),{decimalA:y,decimalB:g})),h=r.div(new de(t-1)),S=new de(0),T=[{price:I,totalSellSupply:0}],{a:P,b:A}=k,w=S,x=S;for(let R=1;R<t;R++){let b=R!==t-1?h:r.sub(x),B=this.buyExactIn({poolInfo:{virtualA:P,virtualB:A,realA:w,realB:x,totalFundRaisingB:r,totalSellA:a},amountB:b,protocolFeeRate:S,platformFeeRate:S,curveType:e,shareFeeRate:S,creatorFeeRate:S,transferFeeConfigA:void 0,transferFeeConfigB:void 0,slot:0});w=w.add(B.amountA.amount),x=x.add(B.amountB);let C=this.getPrice({poolInfo:{virtualA:P,virtualB:A,realA:w,realB:x},decimalA:y,decimalB:g,curveType:e});T.push({price:C,totalSellSupply:new Go(w.toString()).div(10**y).toNumber()})}return T}static getPoolInitPriceByPool({poolInfo:e,decimalA:t,decimalB:o,curveType:r}){return this.getCurve(r).getPoolInitPriceByPool({poolInfo:e,decimalA:t,decimalB:o})}static getPoolInitPriceByInit({a:e,b:t,decimalA:o,decimalB:r,curveType:a}){return this.getCurve(a).getPoolInitPriceByInit({a:e,b:t,decimalA:o,decimalB:r})}static getPrice({poolInfo:e,curveType:t,decimalA:o,decimalB:r}){return this.getCurve(t).getPoolPrice({poolInfo:e,decimalA:o,decimalB:r})}static getEndPrice({poolInfo:e,curveType:t,decimalA:o,decimalB:r}){return this.getCurve(t).getPoolPrice({poolInfo:e,decimalA:o,decimalB:r})}static getPoolEndPriceReal({poolInfo:e,curveType:t,decimalA:o,decimalB:r}){return this.getCurve(t).getPoolEndPriceReal({poolInfo:e,decimalA:o,decimalB:r})}static checkParam({supply:e,totalFundRaising:t,totalSell:o,totalLockedAmount:r,decimals:a,config:s,migrateType:c}){if(Number(a)!==6)throw Error("decimals = 6");if(e.mul(s.maxLockRate).div(we).lt(r))throw Error("total lock amount gte max lock amount");if(e.lt(s.minSupplyA.mul(new de(10**a))))throw Error("supply lt min supply");let g=e.mul(s.minSellRateA).div(we);if(o.lt(g))throw Error("invalid input");if(t.lt(s.minFundRaisingB))throw Error("total fund raising lt min fund raising");let f=e.sub(o).sub(r),k=e.mul(s.minMigrateRateA).div(we);if(f.lt(k))throw Error("migrate lt min migrate amoount");let I=e.sub(o).sub(r),h=new de(new Go(I.mul(t).toString()).sqrt().toFixed(0));if(c==="amm"){let S=new de(10).pow(new de(a));if(h.lte(S))throw Error("check migrate lp error")}else if(c==="cpmm"){let S=new de(100);if(h.lte(S))throw Error("check migrate lp error")}else throw Error("migrate type error")}static buyExactIn({poolInfo:e,amountB:t,protocolFeeRate:o,platformFeeRate:r,curveType:a,shareFeeRate:s,creatorFeeRate:c,transferFeeConfigA:y,transferFeeConfigB:g,slot:f}){var L;let k=At(t,g,f),I=t.sub((L=k.fee)!=null?L:new de(0)),h=this.totalFeeRate({protocolFeeRate:o,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:c}),S=this.calculateFee({amount:I,feeRate:h}),T=I.sub(S),P=this.getCurve(a),A=P.buyExactIn({poolInfo:e,amount:T}),w=e.totalSellA.sub(e.realA),x,R,b,B;if(A.gt(w)){x=w;let O=P.buyExactOut({poolInfo:e,amount:x}),F=this.calculatePreFee({postFeeAmount:O,feeRate:h});b=F.sub(O);let U=et(F,g,f);R=U.amount,B=U.fee}else x=A,R=t,b=S,B=k.fee;let C=this.splitFee({totalFee:b,protocolFeeRate:o,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:c});return{amountA:At(x,y,f),amountB:R,splitFee:C,transferFeeB:B}}static buyExactOut({poolInfo:e,amountA:t,protocolFeeRate:o,platformFeeRate:r,curveType:a,shareFeeRate:s,creatorFeeRate:c,transferFeeConfigA:y,transferFeeConfigB:g,slot:f}){let k=e.totalSellA.sub(e.realA),I=et(t,y,f),h=I.fee?I.amount.add(I.fee):I.amount;t.gt(k)&&(h=k);let T=this.getCurve(a).buyExactOut({poolInfo:e,amount:h}),P=this.totalFeeRate({protocolFeeRate:o,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:c}),A=this.calculatePreFee({postFeeAmount:T,feeRate:P}),w=A.sub(T),x=et(A,g,f),R=this.splitFee({totalFee:w,protocolFeeRate:o,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:c});return{amountA:I,amountB:x.amount,splitFee:R,transferFeeB:x.fee}}static sellExactIn({poolInfo:e,amountA:t,protocolFeeRate:o,platformFeeRate:r,curveType:a,shareFeeRate:s,creatorFeeRate:c,transferFeeConfigA:y,transferFeeConfigB:g,slot:f}){var x;let k=this.getCurve(a),I=At(t,y,f),h=I.fee?I.amount.sub(I.fee):I.amount,S=k.sellExactIn({poolInfo:e,amount:h}),T=this.calculateFee({amount:S,feeRate:this.totalFeeRate({protocolFeeRate:o,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:c})}),P=this.splitFee({totalFee:T,protocolFeeRate:o,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:c}),A=S.sub(T),w=At(A,g,f);return{amountA:I,amountB:A.sub((x=w.fee)!=null?x:new de(0)),splitFee:P,transferFeeB:w.fee}}static sellExactOut({poolInfo:e,amountB:t,protocolFeeRate:o,platformFeeRate:r,curveType:a,shareFeeRate:s,creatorFeeRate:c,transferFeeConfigA:y,transferFeeConfigB:g,slot:f}){let k=this.totalFeeRate({protocolFeeRate:o,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:c}),I=et(t,g,f),h=I.amount,S=this.calculatePreFee({postFeeAmount:h,feeRate:k});if(e.realB.lt(S))throw Error("Insufficient liquidity");let T=S.sub(h),A=tt.getCurve(a).sellExactOut({poolInfo:e,amount:S});if(A.gt(e.realA))throw Error();let w=this.splitFee({totalFee:T,protocolFeeRate:o,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:c});return{amountA:et(A,y,f),amountB:t,splitFee:w,transferFeeB:I.fee}}static splitFee({totalFee:e,protocolFeeRate:t,platformFeeRate:o,shareFeeRate:r,creatorFeeRate:a}){let s=this.totalFeeRate({protocolFeeRate:t,platformFeeRate:o,shareFeeRate:r,creatorFeeRate:a}),c=s.isZero()?new de(0):e.mul(o).div(s),y=s.isZero()?new de(0):e.mul(r).div(s),g=s.isZero()?new de(0):e.mul(a).div(s),f=e.sub(c).sub(y).sub(g);return{platformFee:c,shareFee:y,protocolFee:f,creatorFee:g}}static calculateFee({amount:e,feeRate:t}){return Kn(e,t,we)}static calculatePreFee({postFeeAmount:e,feeRate:t}){if(t.isZero())return e;let o=e.mul(we),r=we.sub(t);return o.add(r).sub(new de(1)).div(r)}static totalFeeRate({protocolFeeRate:e,platformFeeRate:t,shareFeeRate:o,creatorFeeRate:r}){if(e.add(t).add(o).add(r).gt(new de(1e6)))throw Error("total fee rate gt 1_000_000");return e.add(t).add(o).add(r)}static getCurve(e){switch(e){case 0:return zt;case 1:return Yt;case 2:return Zt}throw Error("find curve error")}};import{TOKEN_2022_PROGRAM_ID as Rn,TOKEN_PROGRAM_ID as is}from"@solana/spl-token";var rs=(t=>(t[t.MintA=0]="MintA",t[t.MintB=1]="MintB",t))(rs||{});function zo(i,e){return i>>e&1?Rn:is}function Na(i){return zo(i,0)}function cK(i){return zo(i,1)}function as({mintAProgram:i,mintBProgram:e}){return(i.equals(Rn)?1<<0:0)|(e.equals(Rn)?1<<1:0)}import rx from"decimal.js";var ax={initPriceX64:new j("515752397214619"),supply:new j(1e15),totalSellA:new j(7931e11),totalFundRaisingB:new j(85e9),totalFundRaisingBUSD:new j(125e8),totalLockedAmount:new j("0"),cliffPeriod:new j("0"),unlockPeriod:new j("0"),decimals:6,virtualA:new j("1073471847374405"),virtualB:new j("30050573465"),realA:new j(0),realB:new j(0),protocolFee:new j(0),platformId:new ss("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new j(0),cliffPeriod:new j(0),unlockPeriod:new j(0),startTime:new j(0),totalAllocatedShare:new j(0)}},sx=new j(1e4),ux=new Set(["USDCoctVLVnvTXBEuP9s8hntucdJokbo17RwHuNXemT","USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB"]);import{PublicKey as dx}from"@solana/web3.js";import{getTransferFeeConfig as fx,MintLayout as yx,TOKEN_2022_PROGRAM_ID as bx,TOKEN_PROGRAM_ID as gx,unpackMint as Px}from"@solana/spl-token";var XC=new Ce(2),YC=new Ce(3),QC=new Ce(5),ui=new Ce(10),ZC=new Ce(100),HC=new Ce(1e3),jC=new Ce(1e4);function Kn(i,e,t){return i.mul(e).add(t).sub(new Ce(1)).div(t)}function Jt(i,e=1,t=[]){let o=[...i];if(e<=0)return t;for(;o.length;)t.push(o.splice(0,e));return t}import{ASSOCIATED_TOKEN_PROGRAM_ID as Ht,TOKEN_2022_PROGRAM_ID as Ts,TOKEN_PROGRAM_ID as On}from"@solana/spl-token";import{SystemProgram as se,TransactionInstruction as $}from"@solana/web3.js";import Be from"bn.js";var J={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])};function xR(i,e,t,o,r,a,s,c,y,g,f,k,I,h,S,T,P,A,w,x){throw new Error("*** launchlab initialize has been deprecated, please use initializeV2 instead! ***")}function us(i,e,t,o,r,a,s,c,y,g,f,k,I,h,S,T,P,A,w,x,R,b,B){let C=p([d("decimals"),oe("name"),oe("symbol"),oe("uri")]),L=p([n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod"),d("cpmmCreatorFeeOn")]),O=p([d("index"),n("supply"),n("totalFundRaisingB"),d("migrateType")]),F=p([d("index"),n("supply"),n("totalSellA"),n("totalFundRaisingB"),d("migrateType")]),U=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!0,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!0},{pubkey:On,isSigner:!1,isWritable:!1},{pubkey:I,isSigner:!1,isWritable:!1},{pubkey:We,isSigner:!1,isWritable:!1},{pubkey:se.programId,isSigner:!1,isWritable:!1},{pubkey:Oe,isSigner:!1,isWritable:!1},{pubkey:Ke(i).publicKey,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1}];B&&U.push({pubkey:B,isSigner:!1,isWritable:!1});let q=Buffer.alloc(Buffer.from(S,"utf-8").length+Buffer.from(T,"utf-8").length+Buffer.from(P,"utf-8").length+4*3+1),E=Buffer.alloc(L.span),G=Buffer.alloc(A.type==="ConstantCurve"?F.span:O.span);return C.encode({decimals:h,name:S,symbol:T,uri:P},q),A.type==="ConstantCurve"?F.encode(v(N({index:0},A),{migrateType:A.migrateType==="amm"?0:1}),G):A.type==="FixedCurve"?O.encode(v(N({index:1},A),{migrateType:A.migrateType==="amm"?0:1}),G):A.type==="LinearCurve"&&O.encode(v(N({index:2},A),{migrateType:A.migrateType==="amm"?0:1}),G),L.encode({totalLockedAmount:w,cliffPeriod:x,unlockPeriod:R,cpmmCreatorFeeOn:b},E),new $({keys:U,programId:i,data:Buffer.from([...J.initializeV2,...q,...G,...E])})}function cs(i,e,t,o,r,a,s,c,y,g,f,k,I,h,S,T,P,A,w,x,R,b,B){let C=p([d("decimals"),oe("name"),oe("symbol"),oe("uri")]),L=p([n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod"),d("cpmmCreatorFeeOn"),d("transferFeeExtensionParamsOption"),p([H("transferFeeBasePoints"),n("maxinumFee")]).replicate("transferFeeExtensionParams")]),O=p([d("index"),n("supply"),n("totalFundRaisingB"),d("migrateType")]),F=p([d("index"),n("supply"),n("totalSellA"),n("totalFundRaisingB"),d("migrateType")]),U=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!0,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:Ts,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:se.programId,isSigner:!1,isWritable:!1},{pubkey:Ke(i).publicKey,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1}];B&&U.push({pubkey:B,isSigner:!1,isWritable:!1});let q=Buffer.alloc(Buffer.from(h,"utf-8").length+Buffer.from(S,"utf-8").length+Buffer.from(T,"utf-8").length+4*3+1),E=Buffer.alloc(L.span),G=Buffer.alloc(P.type==="ConstantCurve"?F.span:O.span);return C.encode({decimals:I,name:h,symbol:S,uri:T},q),P.type==="ConstantCurve"?F.encode(v(N({index:0},P),{migrateType:P.migrateType==="amm"?0:1}),G):P.type==="FixedCurve"?O.encode(v(N({index:1},P),{migrateType:P.migrateType==="amm"?0:1}),G):P.type==="LinearCurve"&&O.encode(v(N({index:2},P),{migrateType:P.migrateType==="amm"?0:1}),G),L.encode({totalLockedAmount:A,cliffPeriod:w,unlockPeriod:x,cpmmCreatorFeeOn:R,transferFeeExtensionParamsOption:b?1:0,transferFeeExtensionParams:b!=null?b:{transferFeeBasePoints:0,maxinumFee:new Be(0)}},E),new $({keys:U,programId:i,data:Buffer.from([...J.initializeWithToken2022,...q,...G,...E])})}function Do(i,e,t,o,r,a,s,c,y,g,f,k,I,h,S,T,P,A,w,x){let R=p([n("amountB"),n("minAmountA"),n("shareFeeRate")]),b=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:I,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:Ke(i).publicKey,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1}];x&&b.push({pubkey:x,isSigner:!1,isWritable:!0}),b.push({pubkey:se.programId,isSigner:!1,isWritable:!1}),b.push({pubkey:S,isSigner:!1,isWritable:!0}),b.push({pubkey:T,isSigner:!1,isWritable:!0});let B=Buffer.alloc(R.span);return R.encode({amountB:P,minAmountA:A,shareFeeRate:w!=null?w:new Be(0)},B),new $({keys:b,programId:i,data:Buffer.from([...J.buyExactIn,...B])})}function ls(i,e,t,o,r,a,s,c,y,g,f,k,I,h,S,T,P,A,w,x){let R=p([n("amountA"),n("maxAmountB"),n("shareFeeRate")]),b=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:I,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:Ke(i).publicKey,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1}];x&&b.push({pubkey:x,isSigner:!1,isWritable:!0}),b.push({pubkey:se.programId,isSigner:!1,isWritable:!1}),b.push({pubkey:S,isSigner:!1,isWritable:!0}),b.push({pubkey:T,isSigner:!1,isWritable:!0});let B=Buffer.alloc(R.span);return R.encode({amountA:P,maxAmountB:A,shareFeeRate:w!=null?w:new Be(0)},B),new $({keys:b,programId:i,data:Buffer.from([...J.buyExactOut,...B])})}function Wo(i,e,t,o,r,a,s,c,y,g,f,k,I,h,S,T,P,A,w,x){let R=p([n("amountA"),n("minAmountB"),n("shareFeeRate")]),b=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:I,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:Ke(i).publicKey,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1}];x&&b.push({pubkey:x,isSigner:!1,isWritable:!0}),b.push({pubkey:se.programId,isSigner:!1,isWritable:!1}),b.push({pubkey:S,isSigner:!1,isWritable:!0}),b.push({pubkey:T,isSigner:!1,isWritable:!0});let B=Buffer.alloc(R.span);return R.encode({amountA:P,minAmountB:A,shareFeeRate:w!=null?w:new Be(0)},B),new $({keys:b,programId:i,data:Buffer.from([...J.sellExactIn,...B])})}function ms(i,e,t,o,r,a,s,c,y,g,f,k,I,h,S,T,P,A,w,x){let R=p([n("amountB"),n("maxAmountA"),n("shareFeeRate")]),b=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:I,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:Ke(i).publicKey,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1}];x&&b.push({pubkey:x,isSigner:!1,isWritable:!0}),b.push({pubkey:se.programId,isSigner:!1,isWritable:!1}),b.push({pubkey:S,isSigner:!1,isWritable:!0}),b.push({pubkey:T,isSigner:!1,isWritable:!0});let B=Buffer.alloc(R.span);return R.encode({amountB:P,maxAmountA:A,shareFeeRate:w!=null?w:new Be(0)},B),new $({keys:b,programId:i,data:Buffer.from([...J.sellExactOut,...B])})}function ds(i,e,t,o,r,a,s,c,y){let g=p([]),f=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:se.programId,isSigner:!1,isWritable:!1},{pubkey:Ht,isSigner:!1,isWritable:!1}],k=Buffer.alloc(g.span);return g.encode({},k),new $({keys:f,programId:i,data:Buffer.from([...J.claimVestedToken,...k])})}function ps(i,e,t,o,r,a){let s=p([n("shareAmount")]),c=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:se.programId,isSigner:!1,isWritable:!1}],y=Buffer.alloc(s.span);return s.encode({shareAmount:a},y),new $({keys:c,programId:i,data:Buffer.from([...J.createVestingAccount,...y])})}function fs(i,e,t,o,r,a,s,c,y){let g=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:se.programId,isSigner:!1,isWritable:!0},{pubkey:Ht,isSigner:!1,isWritable:!0}];return new $({keys:g,programId:i,data:J.claimPlatformFee})}function ys(i,e,t,o,r,a,s,c,y,g,f,k,I,h,S){let T=p([n("platformScale"),n("creatorScale"),n("burnScale"),n("feeRate"),oe("name"),oe("web"),oe("img"),n("creatorFeeRate"),n("platformVestingScale")]),P=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:se.programId,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1}],A=Buffer.alloc(8*6+Buffer.from(k,"utf-8").length+Buffer.from(I,"utf-8").length+Buffer.from(h,"utf-8").length+4*3);return T.encode({platformScale:y.platformScale,creatorScale:y.creatorScale,burnScale:y.burnScale,feeRate:g,name:k,web:I,img:h,creatorFeeRate:f,platformVestingScale:S},A),new $({keys:P,programId:i,data:Buffer.from([...J.createPlatformConfig,...A])})}function bs(i,e,t,o){let r=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0}],a;if(o.type==="updateClaimFeeWallet"){let s=p([d("index"),u("value")]);a=Buffer.alloc(s.span),s.encode({index:0,value:o.value},a)}else if(o.type==="updateLockNftWallet"){let s=p([d("index"),u("value")]);a=Buffer.alloc(s.span),s.encode({index:1,value:o.value},a)}else if(o.type==="migrateCpLockNftScale"){let s=p([d("index"),n("platformScale"),n("creatorScale"),n("burnScale")]);a=Buffer.alloc(s.span),s.encode(N({index:2},o.value),a)}else if(o.type==="updateFeeRate"){let s=p([d("index"),n("value")]);a=Buffer.alloc(s.span),s.encode({index:3,value:o.value},a)}else if(o.type==="updateImg"||o.type==="updateName"||o.type==="updateWeb"){let s=p([d("index"),oe("value")]);a=Buffer.alloc(Buffer.from(o.value,"utf-8").length+4+1*1),o.type==="updateName"?s.encode({index:4,value:o.value},a):o.type==="updateWeb"?s.encode({index:5,value:o.value},a):o.type==="updateImg"&&s.encode({index:6,value:o.value},a)}else if(o.type==="updateCpConfigId"){r.push({pubkey:o.value,isSigner:!1,isWritable:!1});let s=p([d("index")]);a=Buffer.alloc(s.span),s.encode({index:7},a)}else if(o.type==="updateAll"){r.push({pubkey:o.value.cpConfigId,isSigner:!1,isWritable:!1});let s=p([d("index"),u("platformClaimFeeWallet"),u("platformLockNftWallet"),n("platformScale"),n("creatorScale"),n("burnScale"),n("feeRate"),oe("name"),oe("web"),oe("img"),u("transferFeeExtensionAuth"),n("creatorFeeRate"),n("platformVestingScale"),u("platformVestingWallet")]);a=Buffer.alloc(1+32+32+32+8*5+4*3+Buffer.from(o.value.name,"utf-8").length+Buffer.from(o.value.web,"utf-8").length+Buffer.from(o.value.img,"utf-8").length+32+8),s.encode({index:8,platformClaimFeeWallet:o.value.platformClaimFeeWallet,platformLockNftWallet:o.value.platformLockNftWallet,platformVestingWallet:o.value.platformVestingWallet,platformScale:o.value.migrateCpLockNftScale.platformScale,creatorScale:o.value.migrateCpLockNftScale.creatorScale,burnScale:o.value.migrateCpLockNftScale.burnScale,feeRate:o.value.feeRate,name:o.value.name,web:o.value.web,img:o.value.img,transferFeeExtensionAuth:o.value.transferFeeExtensionAuth,creatorFeeRate:o.value.creatorFeeRate,platformVestingScale:o.value.platformVestingScale},a)}else if(o.type==="updateVestingWallet"){let s=p([d("index"),u("value")]);a=Buffer.alloc(s.span),s.encode({index:9,value:o.value},a)}else if(o.type==="updatePlatformVestingScale"){let s=p([d("index"),n("value")]);a=Buffer.alloc(s.span),s.encode({index:10,value:o.value},a)}else if(o.type==="updatePlatformCpCreator"){let s=p([d("index"),u("value")]);a=Buffer.alloc(s.span),s.encode({index:11,value:o.value},a)}else if(o.type==="updateRestrictGlobalConfig"){let s=p([d("index"),n("value")]);a=Buffer.alloc(s.span),s.encode({index:12,value:o.value},a)}else throw Error("updateInfo params type error");return new $({keys:r,programId:i,data:Buffer.from([...J.updatePlaformConfig,...a])})}function gs(i,e,t,o,r,a,s,c){let y=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:se.programId,isSigner:!1,isWritable:!1},{pubkey:Ht,isSigner:!1,isWritable:!1}];return new $({keys:y,programId:i,data:J.claimPlatformFeeFromVault})}function Ps(i,e,t,o,r,a,s){let c=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:se.programId,isSigner:!1,isWritable:!1},{pubkey:Ht,isSigner:!1,isWritable:!1}];return new $({keys:c,programId:i,data:J.claimCreatorFee})}var Xo=255,Ln=new Be("18446744073709551615");function CR(i,e,t,o,r,a){let s=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:se.programId,isSigner:!1,isWritable:!1}],c=Buffer.alloc(1*2+8*6+d().span);return d().encode(r,c),Cn.encode({migrateType:a.migrateType?a.migrateType:Xo,migrateCpmmFeeOn:a.migrateCpmmFeeOn?a.migrateCpmmFeeOn:Xo,supply:a.supply?a.supply:new Be(0),totalSellA:a.totalSellA?a.totalSellA:new Be(0),totalFundRaisingB:a.totalFundRaisingB?a.totalFundRaisingB:new Be(0),totalLockedAmount:a.totalLockedAmount?a.totalLockedAmount:Ln,cliffPeriod:a.cliffPeriod?a.cliffPeriod:Ln,unlockPeriod:a.unlockPeriod?a.unlockPeriod:Ln},c,1),new $({keys:s,programId:i,data:Buffer.from([...J.updatePlatformCurveParam,...c])})}function RR(i,e,t,o){let r=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0}],a=Buffer.alloc(d().span);return d().encode(o,a),new $({keys:r,programId:i,data:Buffer.from([...J.removePlatformCurveParam,...a,1,2])})}function As(i,e,t,o,r,a){let s=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:se.programId,isSigner:!1,isWritable:!1}];return new $({keys:s,programId:i,data:J.createPlatformVestingAccount})}function ws(i,e,t,o,r){let a=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:se.programId,isSigner:!1,isWritable:!1}];return new $({keys:a,programId:i,data:J.createPlatformAllowConfig})}function ks(i,e,t,o,r){let a=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0}];return new $({keys:a,programId:i,data:J.closePlatformAllowConfig})}export{Va as AUTH_SEED,Cn as BondingCurveParam,_a as CONFIG_SEED,qa as CREATOR_FEE_VAULT_AUTH_SEED,Uo as CpmmCreatorFeeOn,tt as Curve,xe as CurveBase,Yt as FixedPriceCurve,zt as LaunchConstantProductCurve,es as LaunchpadConfig,rs as LaunchpadMintProgramBit,ns as LaunchpadPool,ax as LaunchpadPoolInitParam,KS as LaunchpadVesting,Zt as LinearPriceCurve,Tt as MathLaunch,Ga as PLATFORM_ALLOW_CONFIG_SEED,Wa as PLATFORM_FEE_VAULT_AUTH_SEED,Ua as PLATFORM_GLOBAL_ACCESS_SEED,Da as PLATFORM_SEED,Ea as POOL_VESTING_SEED,Eo as PlatformConfig,os as PlatformCurveParam,ts as VestingSchedule,J as anchorDataBuf,Do as buyExactInInstruction,ls as buyExactOutInstruction,GS as checkPoolToAmm,Ps as claimCreatorFee,fs as claimPlatformFee,gs as claimPlatformFeeFromVault,ds as claimVestedToken,ks as closePlatformAllowConfigIns,ws as createPlatformAllowConfigIns,ys as createPlatformConfig,As as createPlatformVestingAccountIns,ps as createVestingAccount,Na as getLaunchpadPoolMintAProgram,cK as getLaunchpadPoolMintBProgram,zo as getLaunchpadPoolMintProgram,Ke as getPdaCpiEvent,$a as getPdaCreatorFeeVaultAuth,_o as getPdaCreatorVault,vo as getPdaLaunchpadAuth,za as getPdaLaunchpadConfigId,Xa as getPdaLaunchpadPoolId,Ya as getPdaLaunchpadVaultId,Ja as getPdaPlatformAllowConfig,IS as getPdaPlatformConfigAccess,ja as getPdaPlatformFeeVaultAuth,Za as getPdaPlatformId,Vo as getPdaPlatformVault,Ha as getPdaVestId,xR as initialize,us as initializeV2,cs as initializeWithToken2022,RR as removePlatformCurveParamInstruction,Wo as sellExactInInstruction,ms as sellExactOut,as as toLaunchpadMintProgramFlag,bs as updatePlatformConfig,CR as updatePlatformCurveParamInstruction,ux as usdMintBSet};
//# sourceMappingURL=index.mjs.map