UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

3 lines 84.1 kB
var Mo=Object.defineProperty,Fo=Object.defineProperties;var vo=Object.getOwnPropertyDescriptors;var ct=Object.getOwnPropertySymbols;var Pn=Object.prototype.hasOwnProperty,An=Object.prototype.propertyIsEnumerable;var gn=(o,e,n)=>e in o?Mo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,O=(o,e)=>{for(var n in e||(e={}))Pn.call(e,n)&&gn(o,n,e[n]);if(ct)for(var n of ct(e))An.call(e,n)&&gn(o,n,e[n]);return o},W=(o,e)=>Fo(o,vo(e));var me=(o,e)=>{var n={};for(var i in o)Pn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&ct)for(var i of ct(o))e.indexOf(i)<0&&An.call(o,i)&&(n[i]=o[i]);return n};var U={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{TOKEN_PROGRAM_ID as Oo}from"@solana/spl-token";import{PublicKey as at}from"@solana/web3.js";import st from"bn.js";import{Keypair as Wa,PublicKey as qa}from"@solana/web3.js";import ZR from"bn.js";import{PublicKey as Eo}from"@solana/web3.js";import{get as wn,set as _o}from"lodash";var Nt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},kn={},Vo={};function E(o){let e=wn(kn,o);if(!e){let n=wn(Vo,o);e=new Nt({name:o,logLevel:n}),_o(kn,o,e)}return e}import{MINT_SIZE as ns,TOKEN_PROGRAM_ID as os,getTransferFeeConfig as is,unpackMint as rs}from"@solana/spl-token";var Mt=E("Raydium_accountInfo_util");async function be(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=O({batchRequest:!1},n),l=Ft(e,c),m=new Array(l.length).fill([]);if(i){let y=l.map(g=>{let B=o._buildArgs([g.map(T=>T.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:B}}),k=Ft(y,10);m=(await(await Promise.all(k.map(async g=>await o._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(B=>{if(B){let{data:T,executable:L,lamports:w,owner:P,rentEpoch:x}=B;return T.length!==2&&T[1]!=="base64"&&Mt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:L,lamports:w,owner:new Eo(P),rentEpoch:x}}return null})))}else try{m=await Promise.all(l.map(y=>o.getMultipleAccountsInfo(y,a)))}catch(y){y instanceof Error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return m.flat()}import Ke from"bn.js";import jC from"decimal.js";import Yo from"big.js";import Ts from"bn.js";import Do from"toformat";var Wo=Do,ze=Wo;import mt from"big.js";import Uo from"bn.js";import Go from"decimal.js-light";import Xe from"bn.js";var Tn=9007199254740991;function ie(o){let e=E("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Tn||o<=-Tn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Xe(0))}var lt=E("module/fraction"),vt=ze(mt),Ye=ze(Go),zo={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},Xo={[0]:mt.roundDown,[1]:mt.roundHalfUp,[2]:mt.roundUp},z=class{constructor(e,n=new Uo(1)){this.numerator=ie(e),this.denominator=ie(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new z(this.denominator,this.numerator)}add(e){let n=e instanceof z?e:new z(ie(e));return this.denominator.eq(n.denominator)?new z(this.numerator.add(n.numerator),this.denominator):new z(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof z?e:new z(ie(e));return this.denominator.eq(n.denominator)?new z(this.numerator.sub(n.numerator),this.denominator):new z(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof z?e:new z(ie(e));return new z(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof z?e:new z(ie(e));return new z(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||lt.logWithError(`${e} is not an integer.`),e<=0&&lt.logWithError(`${e} is not positive.`),Ye.set({precision:e+1,rounding:zo[i]});let a=new Ye(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||lt.logWithError(`${e} is not an integer.`),e<0&&lt.logWithError(`${e} is negative.`),vt.DP=e,vt.RM=Xo[i]||1,new vt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Ls=E("Raydium_amount"),Os=ze(Yo);import{PublicKey as Qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hn}from"@solana/spl-token";var dt={chainId:101,address:Qo.default.toBase58(),programId:hn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:hn.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 Vt}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as In,SYSVAR_RENT_PUBKEY as Zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jo}from"@solana/spl-token";function Re({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var $o=[Re({pubkey:jo,isWritable:!1}),Re({pubkey:In.programId,isWritable:!1}),Re({pubkey:Zo,isWritable:!1})];function Bn({publicKey:o,transformSol:e}){let n=xn(o.toString());if(n instanceof Y)return e&&n.equals(he)?ge:n;if(e&&n.toString()===he.toBase58())return ge;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function xn(o){try{return new Y(o)}catch{return o}}var _t=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),He=new Y("SysvarRent111111111111111111111111111111111"),Ds=new Y("SysvarC1ock11111111111111111111111111111111"),pt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Jo=new Y("Sysvar1nstructions1111111111111111111111111"),ei=In.programId,Ws=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qs=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Us=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gs=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),zs=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xs=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ys=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Hs=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Qs=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Zs=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),js=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new Y("So11111111111111111111111111111111111111112"),he=Y.default;var Et=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===he.toBase58()||e instanceof Vt&&he.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Vt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=c?Vt.default:Bn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},te=Et;te.WSOL=new Et(W(O({},de),{mint:de.address}));var Dt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},ft=Dt;ft.SOL=new Dt(dt);import ti from"bn.js";var cu=new z(new ti(100));var yu=E("Raydium_price");import{merge as JK}from"lodash";import Iu from"axios";var Sn={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"},ni=W(O({},Sn),{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 Yu=E("Raydium_Api");import{PublicKey as jl,SystemProgram as $l}from"@solana/web3.js";import{AccountLayout as om,createAssociatedTokenAccountIdempotentInstruction as im,TOKEN_PROGRAM_ID as rm,TOKEN_2022_PROGRAM_ID as am}from"@solana/spl-token";import{PublicKey as Fe,sendAndConfirmTransaction as Xt,SystemProgram as ui,Transaction as je,TransactionMessage as $e,VersionedTransaction as Je}from"@solana/web3.js";import ci from"axios";import{PublicKey as Wt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function qt({connection:o,address:e,cluster:n="mainnet"}){let i=await be(o,[...new Set(e.map(c=>c.toString()))].map(c=>new Wt(c))),a={};for(let c=0;c<e.length;c++){let l=i[c],m=e[c];if(!l)continue;let y=new Ne({key:m,state:Ne.deserialize(l.data)});a[m.toString()]=y,n==="devnet"?Oe[m.toString()]=y:Le[m.toString()]=y}return a}var Le={},Ut=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[e])return Le;let n=new Wt(e),i=await o.getAccountInfo(n);return i&&(Le[e]=new Ne({key:n,state:Ne.deserialize(i.data)})),Le},Oe={},Gt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[e])return Oe;let n=new Wt(e),i=await o.getAccountInfo(n);return i&&(Oe[e]=new Ne({key:n,state:Ne.deserialize(i.data)})),Oe};import{ComputeBudgetProgram as Kn,Keypair as Rn,PublicKey as oi,Transaction as Ln,TransactionMessage as ii,VersionedTransaction as On}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ri}from"@solana/spl-token";var Cn=E("Raydium_txUtil"),Nn=1644;function yt(o){let e=[],n=[];return o.microLamports&&(e.push(Kn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(U.SetComputeUnitPrice)),o.units&&(e.push(Kn.setComputeUnitLimit({units:o.units})),n.push(U.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Me(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function bt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function zt(o,e){o.length<1&&Cn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Cn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Ln;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Nn}catch{return!1}}function pe(o,e){let[n,i]=oi.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function Qe({instructions:o,payer:e,signers:n}){return zt(o,[e,...n])}function Ze({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=Rn.generate().publicKey.toString()}){let c=new ii({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new On(c).serialize()).toString("base64").length<Nn}catch{return!1}}var ai=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),si=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof On&&(e=ai(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ie(o){let e=[];return o.forEach(n=>{n instanceof Ln&&(n.recentBlockhash||(n.recentBlockhash=ri.toBase58()),n.feePayer||(n.feePayer=Rn.generate().publicKey)),e.push(si(n))}),console.log("simulate tx string:",e),e}var gt=2e3,Pt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await ci.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=e==null?void 0:e[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:i}=yt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(ui.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Fe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(U.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(m=>m!==Fe.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(W(O({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var b;let{recentBlockHash:c,skipPreflight:l=!0,sendAndConfirm:m,notSendToRpc:y}=a||{},k=c!=null?c:await Me(this.connection,this.blockhashCommitment);if(n.recentBlockhash=k,this.signers.length&&n.sign(...this.signers),Ie([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:m?await Xt(this.connection,n,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),signedTx:n};if(this.signAllTransactions){let g=await this.signAllTransactions([n]);if(this.signers.length)for(let B of g)try{B.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:l}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var k;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),c=n.filter(b=>b.transaction.instructions.length>0),l=[a,...c.map(b=>b.transaction)],m=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(k=this.owner)!=null&&k.signer&&m.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:m,instructionTypes:y,execute:async b=>{var x;let{sequentially:g,onTxUpdate:B,skipTxCount:T=0,recentBlockHash:L,skipPreflight:w=!0}=b||{},P=L!=null?L:await Me(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(g){let S=[],F=0;for(let v of l){if(++F,F<=T)continue;let A=await Xt(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});S.push(A)}return{txIds:S,signedTxs:l}}return{txIds:await await Promise.all(l.map(async S=>(S.recentBlockhash=P,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:w})))),signedTxs:l}}if(this.signAllTransactions){let S=l.map((v,A)=>(v.recentBlockhash=P,m[A].length&&v.sign(...m[A]),v));Ie(S);let F=await this.signAllTransactions(S);if(g){let v=0,A=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:w});A.push({txId:I,status:"sent",signedTx:F[v]}),B==null||B([...A]),v++;let C=!1,R=null,_=null,oe=G=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let V=A.findIndex(H=>H.txId===I);if(V>-1){if(A[V].status==="error"||A[V].status==="success")return;A[V].status=G.err?"error":"success"}B==null||B([...A]),G.err||h()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var G;if(C){clearInterval(R);return}try{let V=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(C=!0,clearInterval(R),oe({err:((G=V.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",I))}catch(V){C=!0,clearInterval(R),console.error("getTransaction timeout:",V,I)}},gt)),_=this.connection.onSignature(I,G=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,oe(G)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:A.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let A=0;A<F.length;A+=1){let h=await this.connection.sendRawTransaction(F[A].serialize(),{skipPreflight:w});v.push(h)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var w;let L=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=L,l=me(L,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=O(O({},this.cluster==="devnet"?await Gt(this.connection):await Ut(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),k=[];for(let P of y)m[P]===void 0&&k.push(new Fe(P));let b=await qt({connection:this.connection,address:k});for(let[P,x]of Object.entries(b))m[P]=x;let g=a?Fe.default.toBase58():c!=null?c:await Me(this.connection,this.blockhashCommitment),B=new $e({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new Je(B);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var v;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:F}=P||{};if(Ie([T]),(v=this.owner)!=null&&v.isKeyPair){let A=await this.connection.sendTransaction(T,{skipPreflight:x});return S&&await bt(this.connection,A),{txId:A,signedTx:T}}if(this.signAllTransactions){let A=await this.signAllTransactions([T]);if(this.signers.length)for(let h of A)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(A[0],{skipPreflight:x}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var k;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),c=n.filter(b=>b.builder.instructions.length>0),l=[a,...c.map(b=>b.transaction)],m=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(k=this.owner)!=null&&k.signer&&m.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(b,g)=>{b.sign(m[g])}),{builder:this,transactions:l,signers:m,instructionTypes:y,buildProps:i,execute:async b=>{var w;let{sequentially:g,onTxUpdate:B,recentBlockHash:T,skipPreflight:L=!0}=b||{};if(T&&l.forEach(P=>P.message.recentBlockhash=T),Ie(l),(w=this.owner)!=null&&w.isKeyPair){if(g){let P=[];for(let x of l){let S=await this.connection.sendTransaction(x,{skipPreflight:L});await bt(this.connection,S),P.push(S)}return{txIds:P,signedTxs:l}}return{txIds:await Promise.all(l.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:L}))),signedTxs:l}}if(this.signAllTransactions){let P=await this.signAllTransactions(l);if(g){let x=0,S=[],F=async()=>{if(!P[x])return;let v=await this.connection.sendTransaction(P[x],{skipPreflight:L});S.push({txId:v,status:"sent",signedTx:P[x]}),B==null||B([...S]),x++;let A=!1,h=null,I=null,C=R=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let _=S.findIndex(oe=>oe.txId===v);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=R.err?"error":"success"}B==null||B([...S]),R.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var R;if(A){clearInterval(h);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(A=!0,clearInterval(h),C({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){A=!0,clearInterval(h),console.error("getTransaction timeout:",_,v)}},gt)),I=this.connection.onSignature(v,R=>{if(A){this.connection.removeSignatureListener(I);return}A=!0,C(R)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:P}}else{let x=[];for(let S=0;S<P.length;S+=1){let F=await this.connection.sendTransaction(P[S],{skipPreflight:L});x.push(F)}return{txIds:x,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var B;let g=e||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=me(g,["splitIns","computeBudgetConfig"]),c=i?yt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((T,L)=>W(O({},T),{[L.publicKey.toBase58()]:L}),{}),m=[],y=[],k=[],b=0;if(this.allInstructions.forEach(T=>{let L=[...k,T],w=i?[...c.instructions,...L]:L,x=[...new Set(L.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(S=>new Fe(S));if(T!==n[b]&&k.length<12&&(Qe({instructions:w,payer:this.feePayer,signers:x})||Qe({instructions:L,payer:this.feePayer,signers:x})))k.push(T);else{if(k.length===0)throw Error("item ins too big");b+=T===n[b]?1:0,Qe({instructions:i?[...c.instructions,...k]:[...k],payer:this.feePayer,signers:x})?m.push(new je().add(...c.instructions,...k)):m.push(new je().add(...k)),y.push(Array.from(new Set(k.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(S=>l[S]).filter(S=>S!==void 0)),k=[T]}}),k.length>0){let L=[...new Set(k.map(w=>w.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(w=>l[w]).filter(w=>w!==void 0);Qe({instructions:i?[...c.instructions,...k]:[...k],payer:this.feePayer,signers:L.map(w=>w.publicKey)})?m.push(new je().add(...c.instructions,...k)):m.push(new je().add(...k)),y.push(L)}return m.forEach(T=>T.feePayer=this.feePayer),(B=this.owner)!=null&&B.signer&&y.forEach(T=>{T.some(L=>L.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:m,signers:y,instructionTypes:this.instructionTypes,execute:async T=>{var v;let{sequentially:L,onTxUpdate:w,skipTxCount:P=0,recentBlockHash:x,skipPreflight:S=!0}=T||{},F=x!=null?x:await Me(this.connection,this.blockhashCommitment);if(m.forEach(async(A,h)=>{A.recentBlockhash=F,y[h].length&&A.sign(...y[h])}),Ie(m),(v=this.owner)!=null&&v.isKeyPair){if(L){let A=0,h=[];for(let I of m){if(++A,A<=P){h.push("tx skipped");continue}let C=await Xt(this.connection,I,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});h.push(C)}return{txIds:h,signedTxs:m}}return{txIds:await Promise.all(m.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:S}))),signedTxs:m}}if(this.signAllTransactions){let A=await this.signAllTransactions(m.slice(P,m.length)),h=[...m.slice(0,P),...A];if(L){let I=0,C=[],R=async()=>{if(!h[I])return;I<P&&(C.push({txId:"",status:"success",signedTx:h[I]}),w==null||w([...C]),I++,R());let _=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:S});C.push({txId:_,status:"sent",signedTx:h[I]}),w==null||w([...C]),I++;let oe=!1,G=null,V=null,H=q=>{G!==null&&clearInterval(G),V!==null&&this.connection.removeSignatureListener(V);let Q=C.findIndex(J=>J.txId===_);if(Q>-1){if(C[Q].status==="error"||C[Q].status==="success")return;C[Q].status=q.err?"error":"success"}w==null||w([...C]),q.err||R()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var q;if(oe){clearInterval(G);return}try{let Q=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});Q&&(oe=!0,clearInterval(G),H({err:((q=Q.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",_))}catch(Q){oe=!0,clearInterval(G),console.error("getTransaction timeout:",Q,_)}},gt)),V=this.connection.onSignature(_,q=>{if(oe){this.connection.removeSignatureListener(V);return}oe=!0,H(q)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:C.map(_=>_.txId),signedTxs:h}}else{let I=[];for(let C=0;C<h.length;C+=1){let R=await this.connection.sendRawTransaction(h[C].serialize(),{skipPreflight:S});I.push(R)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:l=12}=F,m=me(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=O(O({},this.cluster==="devnet"?await Gt(this.connection):await Ut(this.connection)),a),k=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let A of k)y[A]===void 0&&b.push(new Fe(A));let g=await qt({connection:this.connection,address:b});for(let[A,h]of Object.entries(g))y[A]=h;let B=n?yt(n):{instructions:[],instructionTypes:[]},T=await Me(this.connection,this.blockhashCommitment),L=this.signers.reduce((A,h)=>W(O({},A),{[h.publicKey.toBase58()]:h}),{}),w=[],P=[],x=[],S=0;if(this.allInstructions.forEach(A=>{let h=[...x,A],I=n?[...B.instructions,...h]:h;if(A!==i[S]&&x.length<l&&(Ze({instructions:I,payer:this.feePayer,lookupTableAddressAccount:y})||Ze({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})))x.push(A);else{if(x.length===0)throw Error("item ins too big");S+=A===i[S]?1:0;let C={};for(let R of[...new Set(k)])y[R]!==void 0&&(C[R]=y[R]);if(n&&Ze({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let R=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new Je(R))}else{let R=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new Je(R))}P.push(Array.from(new Set(x.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>L[R]).filter(R=>R!==void 0)),x=[A]}}),x.length>0){let h=[...new Set(x.map(I=>I.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(I=>L[I]).filter(I=>I!==void 0);if(n&&Ze({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let I=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new Je(I))}else{let I=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new Je(I))}P.push(h)}return(v=this.owner)!=null&&v.signer&&P.forEach(A=>{A.some(h=>h.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),w.forEach((A,h)=>{A.sign(P[h])}),{builder:this,transactions:w,buildProps:e,signers:P,instructionTypes:this.instructionTypes,execute:async A=>{var oe;let{sequentially:h,onTxUpdate:I,skipTxCount:C=0,recentBlockHash:R,skipPreflight:_=!0}=A||{};if(w.map(async(G,V)=>{P[V].length&&G.sign(P[V]),R&&(G.message.recentBlockhash=R)}),Ie(w),(oe=this.owner)!=null&&oe.isKeyPair){if(h){let G=0,V=[];for(let H of w){if(++G,G<=C){console.log("skip tx: ",G),V.push("tx skipped");continue}let q=await this.connection.sendTransaction(H,{skipPreflight:_});await bt(this.connection,q),V.push(q)}return{txIds:V,signedTxs:w}}return{txIds:await Promise.all(w.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let G=await this.signAllTransactions(w.slice(C,w.length)),V=[...w.slice(0,C),...G];if(h){let H=0,q=[],Q=async()=>{if(!V[H])return;if(H<C){q.push({txId:"",status:"success",signedTx:V[H]}),I==null||I([...q]),H++,Q();return}let J=await this.connection.sendTransaction(V[H],{skipPreflight:_});q.push({txId:J,status:"sent",signedTx:V[H]}),I==null||I([...q]),H++;let ke=!1,Ce=null,ut=null,bn=Te=>{Ce!==null&&clearInterval(Ce),ut!==null&&this.connection.removeSignatureListener(ut);let ye=q.findIndex(No=>No.txId===J);if(ye>-1){if(q[ye].status==="error"||q[ye].status==="success")return;q[ye].status=Te.err?"error":"success"}I==null||I([...q]),Te.err||Q()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var Te;if(ke){clearInterval(Ce);return}try{let ye=await this.connection.getTransaction(J,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(ke=!0,clearInterval(Ce),bn({err:((Te=ye.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",J))}catch(ye){ke=!0,clearInterval(Ce),console.error("getTransaction timeout:",ye,J)}},gt)),ut=this.connection.onSignature(J,Te=>{if(ke){this.connection.removeSignatureListener(ut);return}ke=!0,bn(Te)},"confirmed"),this.connection.getSignatureStatus(J)};return Q(),{txIds:[],signedTxs:V}}else{let H=[];for(let q=0;q<V.length;q+=1){let Q=await this.connection.sendTransaction(V[q],{skipPreflight:_});H.push(Q)}return{txIds:H,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var Yt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),re=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=E(n)}createTxBuilder(e){return this.scope.checkOwner(),new Pt({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(Yt(e))}logInfo(...e){this.logger.info(Yt(e))}logAndCreateError(...e){let n=Yt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Cl,SystemProgram as Ll}from"@solana/web3.js";import Ml from"bn.js";import{createCloseAccountInstruction as Vl,createInitializeAccountInstruction as El,createTransferInstruction as Dl,TOKEN_PROGRAM_ID as Wl}from"@solana/spl-token";import{PublicKey as ki}from"@solana/web3.js";import Vn,{isBN as En}from"bn.js";import{bits as li,BitStructure as Mc,blob as mi,Blob as Fc,cstr as vc,f32 as _c,f32be as Vc,f64 as Ec,f64be as Dc,greedy as Wc,Layout as di,ns64 as qc,ns64be as Uc,nu64 as Gc,nu64be as zc,offset as pi,s16 as Xc,s16be as Yc,s24 as Hc,s24be as Qc,s32 as fi,s32be as Zc,s40 as jc,s40be as $c,s48 as Jc,s48be as el,s8 as tl,seq as yi,struct as nl,Structure as bi,u16 as gi,u16be as ol,u24 as il,u24be as rl,u32 as Pi,u32be as al,u40 as sl,u40be as ul,u48 as cl,u48be as ll,u8 as Ai,UInt as wi,union as ml,Union as dl,unionLayoutDiscriminator as pl,utf8 as fl}from"@solana/buffer-layout";var At=di,Mn=bi;var Ht=wi;var Fn=Ai,Z=gi;var wt=Pi;var ue=fi;var vn=yi;var M=mi;var Qt=li,_n=pi;var xe=class extends At{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new Vn(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new Vn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},kt=class extends At{constructor(n){super(8,n);this._lower=Qt(wt(),!1),this._upper=Qt(wt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),c=this._upper.decode(n,i+this._lower.span);return O(O({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function d(o){return new Ht(1,o)}function X(o){return new Ht(4,o)}function t(o){return new xe(8,!1,o)}function N(o){return new xe(16,!1,o)}function Dn(o){return new xe(1,!0,o)}function ve(o){return new xe(8,!0,o)}function Wn(o){return new xe(16,!0,o)}var et=class extends At{constructor(n,i,a,c){super(n.span,c);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new et(M(32),e=>new ki(e),e=>e.toBuffer(),o)}function ae(o){return new et(Fn(),Ti,hi,o)}function Ti(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function hi(o){return o?1:0}function qn(o,e){let n=wt("length"),i=p([n,f(o,_n(n,-n.span),"values")]);return new et(i,({values:a})=>a,a=>({values:a}),e)}var Zt=class extends Mn{decode(e,n){return super.decode(e,n)}};function p(o,e,n){return new Zt(o,e,n)}function f(o,e,n){let i,a=typeof e=="number"?e:En(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let m=Reflect.get(c,"count");i=En(m)?m.toNumber():m,Reflect.set(c,"count",i)}return Reflect.get(c,l)},set(c,l,m){return l==="count"&&(i=m),Reflect.set(c,l,m)}});return vn(o,a,n)}var Tt=p([r("mint"),r("owner"),t("amount"),X("delegateOption"),r("delegate"),d("state"),X("isNativeOption"),t("isNative"),t("delegatedAmount"),X("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as tP,SystemProgram as nP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as iP}from"@solana/spl-token";import{PublicKey as fm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bm}from"@solana/spl-token";import{PublicKey as K}from"@solana/web3.js";var Gn=new K("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),zn=new K("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Xn=new K("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),jt=new K("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),wm=new K("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Bi=new K("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Yn=new K("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Hn=new K("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),km=new K("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),xi=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qn=new K("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Si=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ki=new K("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Zn=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Tm=new K("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ci=new K("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),$t=new K("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ri=new K("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),hm=new K("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Li=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Oi=new K("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ni=new K("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Im=new K("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Bm=new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),xm=new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Sm=new K("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Km=new K("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new K("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new K("Ray1111111111111111111111111111111111111111"),AMM_V4:new K("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new K("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new K("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new K("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new K("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new K("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new K("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new K("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new K("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new K("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:K.default,Router:new K("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new K("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new K("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new K("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new K("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new K("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new K("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new K("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new K("Ray1111111111111111111111111111111111111111")};import fP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Oy,TOKEN_2022_PROGRAM_ID as Ny,TOKEN_PROGRAM_ID as My}from"@solana/spl-token";import{PublicKey as vy}from"@solana/web3.js";import Vy from"bn.js";import Dy from"decimal.js";import{TOKEN_PROGRAM_ID as qm}from"@solana/spl-token";import{PublicKey as Xm}from"@solana/web3.js";var Mi=p([X("mintAuthorityOption"),r("mintAuthority"),t("supply"),d("decimals"),d("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ey,TOKEN_2022_PROGRAM_ID as ty,TOKEN_PROGRAM_ID as ny}from"@solana/spl-token";import{Keypair as ry,PublicKey as ay,SystemProgram as uy,TransactionInstruction as cy}from"@solana/web3.js";import my from"bn.js";import D from"bn.js";var Ve=new D(1).shln(64);var Fi=new D(1).shln(128),Jt=new D(1).shln(64).subn(1),vi=new D(1).shln(128).subn(1);var Ee=new D("4295048016"),De=new D("79226673521066979257578248091"),_i=new D("59543866431248"),Vi=new D("184467440737095516"),Ei=new D("15793534762490258745");var en=60,id=new D("18446743708227953217"),Di=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var tt=3,jn=100;var $n=10,Jn=100,ht=14;var j=new D(0),We=new D(1),rd=new D(-1);var ad=new D("18446744073700000000");var Wi=p([M(8),d("bump"),Z("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Z("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(t(),3)]),qi=p([X("blockTimestamp"),ve("tickCumulative"),f(t(),4)]),eo=p([M(8),ae("initialized"),t("recentEpoch"),Z("observationIndex"),r("poolId"),f(qi,jn,"observations"),f(t(),4)]),Ui=p([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),t("lastUpdateTimestamp"),f(d(),46)]),Gi=p([d("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),N("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),N("growthGlobalX64")]),tn=p([M(8),d("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),Z("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),ue("tickCurrent"),X(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(N(),4),d("status"),d("feeOn"),M(6),f(Gi,tt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Ui.replicate("dynamicFeeInfo"),f(t(),46)]),zi=p([N("growthInsideLastX64"),t("rewardAmountOwed")]),Xi=p([M(8),d("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(zi,tt,"rewardInfos"),t("recentEpoch"),f(t(),7)]),ld=p([M(8),d("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(N(),tt,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),Yi=p([ue("tick"),Wn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),f(N(),tt,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),N("unfilledRatioX64"),f(X(),3)]),to=p([M(8),r("poolId"),ue("startTickIndex"),f(Yi,en,"ticks"),d("initializedTickCount"),t("recentEpoch"),f(d(),107)]),Hi=p([M(8),d("bump"),f(r(),$n,"operationOwners"),f(r(),Jn,"whitelistMints")]),Qi=p([M(8),r("poolId"),r("owner"),ue("tick"),ae("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),N("unfilledRatioX64"),f(t(),4)]),no=p([M(8),r("poolId"),M(8*8*ht,"positiveTickArrayBitmap"),M(8*8*ht,"negativeTickArrayBitmap")]),md=p([M(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(t(),8)]),Zi=p([M(8),r("wallet"),d("nonceIndex"),t("orderNonce"),f(t(),4)]),dd=p([t(),d("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(t(),8)]),ji=p([M(8),d("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),f(t(),8)]);import yd from"bn.js";var xd=Buffer.from("amm_config","utf8"),Ji=Buffer.from("pool","utf8"),er=Buffer.from("pool_vault","utf8"),Sd=Buffer.from("pool_reward_vault","utf8"),Kd=Buffer.from("position","utf8"),Cd=Buffer.from("tick_array","utf8"),Rd=Buffer.from("operation","utf8"),Ld=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Od=Buffer.from("observation","utf8"),Nd=Buffer.from("support_mint","utf8"),Md=Buffer.from("dynamic_fee_config","utf8"),Fd=Buffer.from("permission","utf8");var vd=Buffer.from("locked_position","utf8");import{sha256 as yr}from"js-sha256";import tr from"bn.js";import Dd from"decimal.js";var qd=new tr(1).shln(256).subn(1);import ap from"bn.js";import Qd from"bn.js";import jd from"decimal.js";import mp from"bn.js";import pp from"decimal.js";import{PublicKey as Jp}from"@solana/web3.js";import tf from"bn.js";import{TOKEN_2022_PROGRAM_ID as lf,TOKEN_PROGRAM_ID as mf}from"@solana/spl-token";import yf from"decimal.js";import qp from"bn.js";import Cp from"bn.js";import xf from"bn.js";function ee(o){let e=`global:${o}`;return Buffer.from(yr.digest(e)).slice(0,8)}eo.span;var Ay=E("Raydium_Clmm"),wy={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),createPermissionedPool:ee("create_permissioned_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as an}from"@solana/web3.js";var Ar=p([d("instruction")]),wr=p([d("instruction")]),kr=p([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),N("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),f(t(),15,"padding")]),Tr=p([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),N("perShareReward"),t("lastSlot"),t("perSlotReward")]),hr=p([t("state"),t("nonce"),r("lpVault"),r("rewardVaultA"),t("totalRewardA"),N("perShareRewardA"),t("perSlotRewardA"),d("option"),r("rewardVaultB"),M(7),t("totalRewardB"),N("perShareRewardB"),t("perSlotRewardB"),t("lastSlot"),r()]),Ir=p([t(),t("state"),t("nonce"),t("validRewardTokenNum"),N("rewardMultiplier"),t("rewardPeriodMax"),t("rewardPeriodMin"),t("rewardPeriodExtend"),r("lpMint"),r("lpVault"),f(kr,5,"rewardInfos"),r("creator"),r(),f(t(),32,"padding")]),Br=new Proxy(Tr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return W(O({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,e,n)}}),xr=new Proxy(hr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return W(O({},a),{version:5,rewardInfos:[{rewardVault:a.rewardVaultA,totalReward:a.totalRewardA,perSlotReward:a.perSlotRewardA,perShareReward:a.perShareRewardA},{rewardVault:a.rewardVaultB,totalReward:a.totalRewardB,perSlotReward:a.perSlotRewardB,perShareReward:a.perShareRewardB}]})}:Reflect.get(o,e,n)}}),co=new Proxy(Ir,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return W(O({},a),{version:6,rewardInfos:a.rewardInfos.map(c=>{var l;return W(O({},c),{rewardType:((l=Object.entries(it).find(m=>String(m[1])===c.rewardType.toString()))!=null?l:["Standard SPL"])[0]})})})}:Reflect.get(o,e,n)}}),Sr=p([t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Kr=p([d("instruction"),t("nonce"),f(Sr,5,"rewardTimeInfo")]),Cr=p([d("instruction"),t("rewardReopenTime"),t("rewardEndTime"),t("rewardPerSecond")]),Rr=p([d("instruction"),t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Ab=p([t("state"),r("id"),r("owner"),t("deposited"),f(t(),1,"rewardDebts")]),lo=p([t("state"),r("id"),r("owner"),t("deposited"),f(N(),1,"rewardDebts"),t(""),t("voteLockedBalance"),f(t(),15)]),wb=p([t("state"),r("id"),r("owner"),t("deposited"),f(t(),2,"rewardDebts")]),Lr=p([t("state"),r("id"),r("owner"),t("deposited"),f(N(),2,"rewardDebts"),f(t(),17)]),Or=p([t(),t("state"),r("id"),r("owner"),t("deposited"),f(N(),5,"rewardDebts"),f(t(),16)]),Nr=p([d("instruction"),t("amount")]),Mr=p([r("mint"),r("grantAuthority"),t("baselineVoteWeightScaledFactor"),t("maxExtraLockupVoteWeightScaledFactor"),t("lockupSaturationSecs"),Dn("digitShift"),f(d(),7,"reserved1"),f(t(),7,"reserved2")]),Fr=p([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),f(d(),32,"reserved1"),f(Mr,4,"votingMints"),ve("timeOffset"),d("bump"),f(d(),7,"reserved2"),f(t(),11,"reserved3")]),vr=p([ve("startTime"),ve("endTime"),d("kind"),f(d(),15,"reserved")]),_r=p([f(vr,1,"lockup"),t("amountDeposited_native"),t("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),d("votingMintConfigIdx"),f(d(),29,"reserved")]),Vr=p([M(8),r("voterAuthority"),r("registrar"),f(_r,32,"deposits"),d("voterBump"),d("voterWweightRecordBump"),f(d(),94,"reserved")]);import{NATIVE_MINT as Cb}from"@solana/spl-token";var Rb=E("Raydium_farm_config"),Er=new an("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Dr=new an("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Lb=new an("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var it={"Standard SPL":0,"Option tokens":1},mo={[Gn.toString()]:3,[zn.toString()]:4,[Xn.toString()]:5,[jt.toString()]:6,[Pe.FARM_PROGRAM_ID_V3.toString()]:3,[Pe.FARM_PROGRAM_ID_V4.toString()]:4,[Pe.FARM_PROGRAM_ID_V5.toString()]:5,[Pe.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as bg,SystemProgram as gg,SYSVAR_CLOCK_PUBKEY as Pg,SYSVAR_RENT_PUBKEY as Ag,TransactionInstruction as wg}from"@solana/web3.js";import Tg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ig,createAssociatedTokenAccountIdempotentInstruction as Bg,TOKEN_PROGRAM_ID as xg}from"@solana/spl-token";import Xb from"bn.js";import{PublicKey as _b}from"@solana/web3.js";import Eb from"bn.js";var rg=E("Raydium.farm.util");var _g=E("Raydium_farm_instruction"),Vg={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import BP from"bn.js";import{PublicKey as yw}from"@solana/web3.js";import{AccountLayout as Pw,MintLayout as Aw,NATIVE_MINT as ww,TOKEN_PROGRAM_ID as Tw}from"@solana/spl-token";import KP from"bn.js";import fo from"bn.js";var Hr=new fo(25),Qr=new fo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as ZP,TOKEN_PROGRAM_ID as jP}from"@solana/spl-token";import{PublicKey as JP,SystemProgram as eA,SYSVAR_RENT_PUBKEY as tA,TransactionInstruction as nA}from"@solana/web3.js";import lA from"bn.js";var Zr=p([d("instruction"),t("amountIn"),t("minAmountOut")]),jr=p([d("instruction"),t("maxAmountIn"),t("amountOut")]),XP=p([d("instruction"),d("nonce")]),$r=p([d("instruction"),d("nonce"),t("startTime")]),yo=p([t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalValue"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),t("swapBase2QuoteFee"),N("swapQuoteInAmount"),N("swapBaseOutAmount"),t("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),t("lpReserve"),f(t(),3,"padding")]),YP=p([t("accountType"),t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalsValue"),t("abortTradeFactor"),t("priceTickMultiplier"),t("priceTick"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),N("swapQuoteInAmount"),N("swapBaseOutAmount"),t("swapQuote2BaseFee"),t("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),f(t(),64,"padding")]),Jr=p([d("instruction"),t("baseAmountIn"),t("quoteAmountIn"),t("fixedSide"),t("otherAmountMin")]),ea=p([d("instruction"),t("lpAmount"),t("baseAmountMin"),t("quoteAmountMin")]);var ta=p([t("fee")]);var pA=E("Raydium_liquidity_instruction");var na=5e4,oa=p([t("x"),t("y"),t("price")]),gA=p([t("accountType"),t("status"),t("multiplier"),t("validDataCount"),f(oa,na,"DataElement")]);import{PublicKey as CA}from"@solana/web3.js";import LA from"decimal.js";import{TOKEN_PROGRAM_ID as NA}from"@solana/spl-token";import{PublicKey as kA}from"@solana/web3.js";var IA=E("Raydium_liquidity_serum");import qw from"bn.js";import Gw from"decimal.js";import{SystemProgram as Se,SYSVAR_RENT_PUBKEY as ra,Transaction as bo,TransactionInstruction as aa}from"@solana/web3.js";import{createInitializeAccountInstruction as go,TOKEN_PROGRAM_ID as Po}from"@solana/spl-token";function ia(o="accountFlags"){let e=new kt(o);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var un=p([M(5),ia("accountFlags"),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),M(7)]);function sa({programId:o,marketInfo:e}){let n=p([d("version"),X("instruction"),t("baseLotSize"),t("quoteLotSize"),Z("feeRateBps"),t("vaultSignerNonce"),t("quoteDustThreshold")]),i=[{pubkey:e.id,isSigner:!1,isWritable:!0},{pubkey:e.requestQueue,isSigner:!1,isWritable:!0},{pubkey:e.eventQueue,isSigner:!1,isWritable:!0},{pubkey:e.bids,isSigner:!1,isWritable:!0},{pubkey:e.asks,isSigner:!1,isWritable:!0},{pubkey:e.baseVault,isSigner:!1,isWritable:!0},{pubkey:e.quoteVault,isSigner:!1,isWritable:!0},{pubkey:e.baseMint,isSigner:!1,isWritable:!1},{pubkey:e.quoteMint,isSigner:!1,isWritable:!1},{pubkey:e.authority?e.quoteMint:ra,isSigner:!1,isWritable:!1}].concat(e.authority?{pubkey:e.authority,isSigner:!1,isWritable:!1}:[]).concat(e.authority&&e.pruneAuthority?{pubkey:e.pruneAuthority,isSigner:!1,isWritable:!1}:[]),a=Buffer.alloc(n.span);return n.encode({version:0,instruction:0,baseLotSize:e.baseLotSize,quoteLotSize:e.quoteLotSize,feeRateBps:e.feeRateBps,vaultSignerNonce:e.vaultSignerNonce,quoteDustThreshold:e.quoteDustThreshold},a),new aa({keys:i,programId:o,data:a})}async function cn({connection:o,wallet:e,marketInfo:n}){var l,m,y,k,b,g,B,T;let i=new bo,a=await o.getMinimumBalanceForRentExemption(165);i.add(Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.baseVault.seed,newAccountPubkey:n.baseVault.publicKey,lamports:a,space:165,programId:Po}),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.quoteVault.seed,newAccountPubkey:n.quoteVault.publicKey,lamports:a,space:165,programId:Po}),go(n.baseVault.publicKey,n.baseMint,n.vaultOwner),go(n.quoteVault.publicKey,n.quoteMint,n.vaultOwner),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.id.seed,newAccountPubkey:n.id.publicKey,lamports:await o.getMinimumBalanceForRentExemption(un.span),space:un.span,programId:n.programId}));let c=new bo;return c.add(Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.requestQueue.seed,newAccountPubkey:n.requestQueue.publicKey,lamports:n.lowestFeeMarket?6208320:await o.getMinimumBalanceForRentExemption((l=n.requestQueueSpace)!=null?l:5120+12),space:n.lowestFeeMarket?764:(m=n.requestQueueSpace)!=null?m:5120+12,programId:n.programId}),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.eventQueue.seed,newAccountPubkey:n.eventQueue.publicKey,lamports:n.lowestFeeMarket?79594560:await o.getMinimumBalanceForRentExemption((y=n.eventQueueSpace)!=null?y:262144+12),space:n.lowestFeeMarket?11308:(k=n.eventQueueSpace)!=null?k:262144+12,programId:n.programId}),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.bids.seed,newAccountPubkey:n.bids.publicKey,lamports:n.lowestFeeMarket?101977920:await o.getMinimumBalanceForRentExemption((b=n.orderbookQueueSpace)!=null?b:65536+12),space:n.lowestFeeMarket?14524:(g=n.orderbookQueueSpace)!=null?g:65536+12,programId:n.programId}),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.asks.seed,newAccountPubkey:n.asks.publicKey,lamports:n.lowestFeeMarket?101977920:await o.getMinimumBalanceForRentExemption((B=n.orderbookQueueSpace)!=null?B:65536+12),space:n.lowestFeeMarket?14524:(T=n.orderbookQueueSpace)!=null?T:65536+12,programId:n.programId}),sa({programId:n.programId,marketInfo:{id:n.id.publicKey,requestQueue:n.requestQueue.publicKey,eventQueue:n.eventQueue.publicKey,bids:n.bids.publicKey,asks:n.asks.publicKey,baseVault:n.baseVault.publicKey,quoteVault:n.quoteVault.publicKey,baseMint:n.baseMint,quoteMint:n.quoteMint,baseLotSize:n.baseLotSize,quoteLotSize:n.quoteLotSize,feeRateBps:n.feeRateBps,vaultSignerNonce:n.vaultSignerNonce,quoteDustThreshold:n.quoteDustThreshold}})),[{transaction:i,signer:[],instructionTypes:[U.CreateAccount,U.CreateAccount,U.InitAccount,U.InitAccount]},{transaction:c,signer:[],instructionTypes:[U.CreateAccount,U.CreateAccount,U.CreateAccount,U.CreateAccount,U.CreateAccount,U.InitMarket]}]}import{PublicKey as yT}from"@solana/web3.js";import{AccountLayout as gT,NATIVE_MINT as PT,TOKEN_2022_PROGRAM_ID as AT,TOKEN_PROGRAM_ID as wT,createAssociatedTokenAccountIdempotentInstruction as kT}from"@solana/spl-token";import fk from"bn.js";import da from"bn.js";var ek=new da(0);import ak from"bn.js";import pa from"bn.js";var xt=new pa(1e6);import CT from"bn.js";import LT from"decimal.js";import{PublicKey as Ok,TransactionInstruction as Nk,Keypair as Fk,SystemProgram as vk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Vk,TOKEN_2022_PROGRAM_ID as Ek,TOKEN_PROGRAM_ID as Dk}from"@solana/spl-token";var Ak=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),wk=Buffer.from("amm_config","utf8"),kk=Buffer.from("pool","utf8"),Tk=Buffer.from("pool_lp_mint","utf8"),hk=Buffer.from("pool_vault","utf8"),Ik=Buffer.from("observation","utf8"),Bk=Buffer.from("permission","utf8"),xk=Buffer.from("support_mint","utf8");var Sk=Buffer.from("locked_liquidity","utf8");var Yk=E("Raydium_cpmm"),Hk={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 ba=p([M(8),d("bump"),ae("disableCreatePool"),Z("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),f(t(),15)]),Ao=p([M(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),d("bump"),d("status"),d("lpDecimals"),d("mintDecimalA"),d("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),d("feeOn"),ae("enableCreatorFee"),f(d(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),f(t(),28)]),jk=p([M(8),r("configId"),f(t(),30)]);import{PublicKey as TS,SystemProgram as hS}from"@solana/web3.js";import{createTransferInstruction as BS,TOKEN_PROGRAM_ID as xS,TOKEN_2022_PROGRAM_ID as SS,createAssociatedTokenAccountIdempotentInstruction as KS,createSyncNativeInstruction as RS,createTransferCheckedInstruction as LS}from"@solana/spl-token";import Na from"bn.js";import MS from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Wh,TOKEN_2022_PROGRAM_ID as qh,TOKEN_PROGRAM_ID as Uh}from"@solana/spl-token";import{SystemProgram as Yh,TransactionInstruction as Hh}from"@solana/web3.js";import ha from"bn.js";var Aa=p([t(),t("epoch"),d("curveType"),Z("index"),t("migrateFee"),t("tradeFeeRate"),t("maxShareFeeRate"),t("minSupplyA"),t("maxLockRate"),t("minSellRateA"),t("minMigrateRateA"),t("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),f(t(),16)]),wa=p([t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod"),t("startTime"),t("totalAllocatedShare")]),ka=p([t(),t("epoch"),d("bump"),d("status"),d("mintDecimalsA"),d("mintDecimalsB"),d("migrateType"),t("supply"),t("totalSellA"),t("virtualA"),t("virtualB"),t("realA"),t("realB"),t("totalFundRaisingB"),t("protocolFee"),t("platformFee"),t("migrateFee"),wa.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),d("mintProgramFlag"),d("cpmmCreatorFeeOn"),t("platformVestingShare"),f(d(),54)]),Th=p([t(),t("epoch"),r("poolId"),r("beneficiary"),t("claimedAmount"),t("tokenShareAmount"),f(t(),8)]),ko=p([d("migrateType"),d("migrateCpmmFeeOn"),t("supply"),t("totalSellA"),t("totalFundRaisingB"),t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod")]),Ta=p([t("epoch"),d("index"),r("configId"),ko.replicate("bondingCurveParam"),f(t(),50)]),To=p([t(),t("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),t("platformScale"),t("creatorScale"),t("burnScale"),t("feeRate"),f(d(),64,"name"),f(d(),256,"web"),f(d(),256,"img"),r("cpConfigId"),t("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),t("platformVestingScale"),r("platformCpCreator"),d("restrictGlobalConfig"),f(d(),107),qn(Ta,"platformCurve")]);var Sh=Buffer.from("vault_auth_seed","utf8"),Kh=Buffer.from("global_config","utf8"),Ch=Buffer.from("pool_vesting","utf8"),Rh=Buffer.from("platform_config","utf8"),Lh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Oh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Nh=Buffer.from("platform_global_access","utf8"),Mh=Buffer.from("platform_allow_config","utf8");var $h={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var Jh=new ha("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as oI,TOKEN_PROGRAM_ID as iI}from"@solana/spl-token";import uI from"bn.js";import lI from"decimal.js";import qI from"bn.js";import GI from"decimal.js";import bI from"bn.js";import PI from"decimal.js";import KI from"bn.js";import RI from"decimal.js";import Bo from"bn.js";import ln from"decimal.js";var Ct=class{static _multipler(e){return new ln(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new ln(e.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:n,decimalB:i}){let a=e.mul(this._multipler(i)).div(this._multipler(n));return new Bo(a.mul(this._Q64).toFixed(0))}};Ct._Q64=new ln(new Bo(1).shln(64).toString());import{NATIVE_MINT as $B,TOKEN_2022_PROGRAM_ID as JB,TOKEN_PROGRAM_ID as ex,createAssociatedTokenAccountIdempotentInstruction as nx,createSyncNativeInstruction as ox,getTransferFeeConfig as ix,unpackMint as rx}from"@solana/spl-token";import $ from"bn.js";import{PublicKey as Ra,SystemProgram as ux}from"@solana/web3.js";import yx from"decimal.js";var bx={initPriceX64:new $("515752397214619"),supply:new $(1e15),totalSellA:new $(7931e11),totalFundRaisingB:new $(85e9),totalFundRaisingBUSD:new $(125e8),totalLockedAmount:new $("0"),cliffPeriod:new $("0"),unlockPeriod:new $("0"),decimals:6,virtualA:new $("1073471847374405"),virtualB:new $("30050573465"),realA:new $(0),realB:new $(0),protocolFee:new $(0),platformId:new Ra("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new $(0),cliffPeriod:new $(0),unlockPeriod:new $(0),startTime:new $(0),totalAllocatedShare:new $(0)}},gx=new $(1e4);var La={[Yn.toBase58()]:3};var Oa=p([M(5),M(8),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),M(7)]);import{PublicKey as Dx}from"@solana/web3.js";var zx=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as eS,TOKEN_2022_PROGRAM_ID as tS,TOKEN_PROGRAM_ID as nS}from"@solana/spl-token";import{PublicKey as iS,SystemProgram as rS,TransactionInstruction as aS}from"@solana/web3.js";import uS from"bn.js";var lK=new Na(0);import{PublicKey as Ma,Transaction as mn,TransactionInstruction as Fa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as va}from"@solana/spl-token";import xo from"bn.js";var ne=class extends re{static getPdaPoolId(e,n){return pe([ne.SEED_CONFIG.pool.id,n.toBuffer()],e)}static getPdaOwnerId(e,n,i,a){return pe([ne.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new xo(a).toArray())],e)}static async getAllInfo({connection:e,programId:n,poolIds:i,wallet:a,chainTime:c}){if(i.length===0)return[];let l=i.map(b=>ne.getPdaPoolId(n,b).publicKey),m=[];for(let b=0;b<ne.VERSION_PROJECT.length;b++)m.push(...l.map(g=>ne.getPdaOwnerId(n,g,a,b).publicKey));let y=await be(e,[...l,...m]),k=[];for(let b=0;b<y.length;b++){let g=Math.floor(b/i.length),B=b%i.length,T=l[B],L=m[b],w=y[B],P=y[i.length+b];if(!(w&&P)||w.data.length!==ne.POOL_LAYOUT.span||P.data.length!==ne.OWNER_LAYOUT.span)continue;let x=ne.POOL_LAYOUT.decode(w.data),S=ne.OWNER_LAYOUT.decode(P.data),F=x.openTime.toNumber(),v=x.endTime.toNumber(),A=S.tokenInfo.map(C=>C.debtAmount.gt(new xo(0))).filter(C=>!C).length!==3,h=c>F&&c<v&&x.status===1,I=A&&h;k.push({programId:n,poolId:T,ammId:x.ammId,ownerAccountId:L,snapshotLpAmount:S.lpAmount,project:ne.VERSION_PROJECT[g],openTime:F,endTime:v,canClaim:I,canClaimErrorType:A?h?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:x.tokenInfo.map((C,R)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:S.tokenInfo[R].debtAmount.add(S.tokenInfo[R].claimedAmount)}))})}return k}async makeClaimTransaction({poolInfo:e,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,l=[];for(let k of e.tokenInfo){let{account:b,instructionParams:g}=await this.scope.account.getOrCreateTokenAccount({mint:k.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:k.mintAddress.equals(te.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!k.mintAddress.equals(te.WSOL.mint),associatedOnly:k.mintAddress.equals(te.WSOL.mint)?!1:n.associatedOnly});g&&a.addInstruction(g),l.push(b)}a.addInstruction({instructions:[ne.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:c,ownerPda:e.ownerAccountId,claimAddress:l}})]});let{transaction:m,signers:y}=a.build();return[{transaction:m,signer:y}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,l={};for(let b of e){let g=[];for(let B of b.tokenInfo){let{account:T,instructionParams:L}=await this.scope.account.getOrCreateTokenAccount({mint:B.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:B.mintAddress.equals(te.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!B.mintAddress.equals(te.WSOL.mint),associatedOnly:B.mintAddress.equals(te.WSOL.mint)?!1:n.associatedOnly});L&&a.addInstruction(L),T&&(l[B.mintAddress.toString()]=T,g.push(T))}a.addInstruction({instructions:[ne.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:c,ownerPda:b.ownerAccountId,claimAddress:g}})]})}let{transaction:m,signers:y}=a.build(),k=a.allInstructions;return zt(k,[c,...y.map(b=>b.publicKey)])?[{transaction:m,signer:y}]:[{transaction:new mn().add(...k.slice(0,a.AllTxData.instructions.length-1)),signer:y},{transaction:new mn().add(...k.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new mn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:n,ownerInfo:i}){let a=p([]),c=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:va,isSigner:!1,isWritable:!1}],l=Buffer.alloc(a.span);a.encode({},l);let m=Buffer.from([10,66,208,184,161,6,191,98,...l]);return new Fa({keys:c,programId:e,data:m})}},ce=ne;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=p([M(8),d("bump"),d("status"),t("openTime"),t("endTime"),r("ammId"),f(p([d("mintDecimals"),r("mintAddress"),r("mintVault"),t("perLpLoss"),t("totalClaimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),f(t(),10,"padding")]),ce.OWNER_LAYOUT=p([M(8),d("bump"),d("version"),r("poolId"),r("owner"),t("lpAmount"),f(p([r("mintAddress"),t("debtAmount"),t("claimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),f(t(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new Ma(e)),ce.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ce.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as SK}from"@solana/web3.js";import{getTransferFeeConfig as CK,MintLayout as RK,TOKEN_2022_PROGRAM_ID as LK,TOKEN_PROGRAM_ID as OK,unpackMint as NK}from"@solana/spl-token";var sR=new Ke(2),uR=new Ke(3),cR=new Ke(5),Ho=new Ke(10),lR=new Ke(100),mR=new Ke(1e3),dR=new Ke(1e4);function Ft(o,e=1,n=[]){let i=[...o];if(e<=0)return n;for(;i.length;)n.push(i.splice(0,e));return n}import{TOKEN_PROGRAM_ID as Ua}from"@solana/spl-token";function _a(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function dn(o,...e){if(!_a(o))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(o.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${o.length}`)}function pn(o,e=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(e&&o.finished)throw new Error("Hash#digest() has already been called")}function So(o,e){dn(o);let n=e.outputLen;if(o.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var Lt=o=>new DataView(o.buffer,o.byteOffset,o.byteLength),le=(o,e)=>o<<32-e|o>>>e;var vR=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Va(o){if(typeof o!="string")throw new Error(`utf8ToBytes expected string, got ${typeof o}`);return new Uint8Array(new TextEncoder().encode(o))}function fn(o){return typeof o=="string"&&(o=Va(o)),dn(o),o}var Rt=class{clone(){return this._cloneInto()}},_R={}.toString;function Ko(o){let e=i=>o().update(fn(i)).digest(),n=o();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>o(),e}function Ea(o,e,n,i){if(typeof o.setBigUint64=="function")return o.setBigUint64(e,n,i);let a=BigInt(32),c=BigInt(4294967295),l=Number(n>>a&c),m=Number(n&c),y=i?4:0,k=i?0:4;o.setUint32(e+y,l,i),o.setUint32(e+k,m,i)}var Co=(o,e,n)=>o&e^~o&n,Ro=(o,e,n)=>o&e^o&n^e&n,Ot=class extends Rt{constructor(e,n,i,a){super(),this.blockLen=e,this.outputLen=n,this.padOffset=i,this.isLE=a,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Lt(this.buffer)}update(e){pn(this);let{view:n,buffer:i,blockLen:a}=this;e=fn(e);let c=e.length;for(let l=0;l<c;){let m=Math.min(a-this.pos,c-l);if(m===a){let y=Lt(e);for(;a<=c-l;l+=a)this.process(y,l);continue}i.set(e.subarray(l,l+m),this.pos),this.pos+=m,l+=m,this.pos===a&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){pn(this),So(e,this),this.finished=!0;let{buffer:n,view:i,blockLen:a,isLE:c}=this,{pos:l}=this;n[l++]=128,this.buffer.subarray(l).fill(0),this.padOffset>a-l&&(this.process(i,0),l=0);for(let g=l;g<a;g++)n[g]=0;Ea(i,a-8,BigInt(this.length*8),c),this.process(i,0);let m=Lt(e),y=this.outputLen;if(y%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let k=y/4,b=this.get();if(k>b.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<k;g++)m.setUint32(4*g,b[g],c)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let i=e.slice(0,n);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:i,length:a,finished:c,destroyed:l,pos:m}=this;return e.length=a,e.pos=m,e.finished=c,e.destroyed=l,a%n&&e.buffer.set(i),e}};var Da=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ae=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),we=new Uint32Array(64),yn=class extends Ot{constructor(){super(64,32,8,!1),this.A=Ae[0]|0,this.B=Ae[1]|0,this.C=Ae[2]|0,this.D=Ae[3]|0,this.E=Ae[4]|0,this.F=Ae[5]|0,this.G=Ae[6]|0,this.H=Ae[7]|0}get(){let{A:e,B:n,C:i,D:a,E:c,F:l,G:m,H:y}=this;return[e,n,i,a,c,l,m,y]}set(e,n,i,a,c,l,m,y){this.A=e|0,this.B=n|0,this.C=i|0,this.D=a|0,this.E=c|0,this.F=l|0,this.G=m|0,this.H=y|0}process(e,n){for(let g=0;g<16;g++,n+=4)we[g]=e.getUint32(n,!1);for(let g=16;g<64;g++){let B=we[g-15],T=we[g-2],L=le(B,7)^le(B,18)^B>>>3,w=le(T,17)^le(T,19)^T>>>10;we[g]=w+we[g-7]+L+we[g-16]|0}let{A:i,B:a,C:c,D:l,E:m,F:y,G:k,H:b}=this;for(let g=0;g<64;g++){let B=le(m,6)^le(m,11)^le(m,25),T=b+B+Co(m,y,k)+Da[g]+we[g]|0,w=(le(i,2)^le(i,13)^le(i,22))+Ro(i,a,c)|0;b=k,k=y,y=m,m=l+T|0,l=c,c=a,a=i,i=T+w|0}i=i+this.A|0,a=a+this.B|0,c=c+this.C|0,l=l+this.D|0,m=m+this.E|0,y=y+this.F|0,k=k+this.G|0,b=b+this.H|0,this.set(i,a,c,l,m,y,k,b)}roundClean(){we.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Lo=Ko(()=>new yn);function se({fromPublicKey:o,programId:e=Ua,assignSeed:n}){let i=n?btoa(n).slice(0,32):Wa.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ga(o,i,e),seed:i}}function Ga(o,e,n){let i=Buffer.concat([o.toBuffer(),Buffer.from(e),n.toBuffer()]),a=Lo(i);return new qa(a)}var rt=class extends re{async create({baseInfo:e,quoteInfo:n,lotSize:i,tickSize:a,dexProgramId:c,requestQueueSpace:l,eventQueueSpace:m,orderbookQueueSpace:y,lowestFeeMarket:k,assignSeed:b,txVersion:g,computeBudgetConfig:B,txTipConfig:T,feePayer:L}){let w=this.scope.ownerPubKey,P=b?`${e.mint.toBase58().slice(0,10)}-${n.mint.toBase58().slice(0,10)}-${b}`:void 0,x=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-market`}),S=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-request`}),F=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-event`}),v=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-bids`}),A=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-asks`}),h=se({fromPublicKey:w,programId:Oo,assignSeed:P&&`${P}-baseVault`}),I=se({fromPublicKey:w,programId:Oo,assignSeed:P&&`${P}-quoteVault`}),C=0,R=new st(100);function _(){let J=new st(0);for(;;)try{return{vaultOwner:at.createProgramAddressSync([x.publicKey.toBuffer(),J.toArrayLike(Buffer,"le",8)],c),vaultSignerNonce:J}}catch{if(J.iaddn(1),J.gt(new st(25555)))throw Error("find vault owner error")}}let{vaultOwner:oe,vaultSignerNonce:G}=_(),V=new st(Math.round(10**e.decimals*i)),H=new st(Math.round(i*10**n.decimals*a));if(V.eq(j))throw Error("lot size is too small");if(H.eq(j))throw Error("tick size or lot size is too small");let q=await cn({connection:this.scope.connection,wallet:this.scope.ownerPubKey,marketInfo:{programId:c,id:x,baseMint:e.mint,quoteMint:n.mint,baseVault:h,quoteVault:I,vaultOwner:oe,requestQueue:S,eventQueue:F,bids:v,asks:A,feeRateBps:C,quoteDustThreshold:R,vaultSignerNonce:G,baseLotSize:V,quoteLotSize:H,requestQueueSpace:l,eventQueueSpace:m,orderbookQueueSpace:y,lowestFeeMarket:k}}),Q=this.createTxBuilder(L);Q.addInstruction({instructions:q[0].transaction.instructions,signers:q[0].signer});for await(let J of q.slice(1,q.length))Q.addInstruction({instructions:J.transaction.instructions,signers:J.signer,instructionTypes:J.instructionTypes});return g===0?Q.sizeCheckBuildV0({computeBudgetConfig:B,address:{marketId:x.publicKey,requestQueue:S.publicKey,eventQueue:F.publicKey,bids:v.publicKey,asks:A.publicKey,baseVault:h.publicKey,quoteVault:I.publicKey,baseMint:new at(e.mint),quoteMint:new at(n.mint)}}):Q.sizeCheckBuild({computeBudgetConfig:B,address:{marketId:x.publicKey,requestQueue:S.publicKey,eventQueue:F.publicKey,bids:v.publicKey,asks:A.publicKey,baseVault:h.publicKey,quoteVault:I.publicKey,baseMint:new at(e.mint),quoteMint:new at(n.mint)}})}};export{rt as default};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=createMarket.mjs.map