@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 75.7 kB
JavaScript
var ho=Object.defineProperty,Io=Object.defineProperties;var Bo=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var un=Object.prototype.hasOwnProperty,cn=Object.prototype.propertyIsEnumerable;var sn=(o,t,n)=>t in o?ho(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,C=(o,t)=>{for(var n in t||(t={}))un.call(t,n)&&sn(o,n,t[n]);if(ot)for(var n of ot(t))cn.call(t,n)&&sn(o,n,t[n]);return o},V=(o,t)=>Io(o,Bo(t));var ce=(o,t)=>{var n={};for(var r in o)un.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&ot)for(var r of ot(o))t.indexOf(r)<0&&cn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as xo}from"@solana/web3.js";import{get as ln,set as So}from"lodash";var It=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},mn={},Ko={};function E(o){let t=ln(mn,o);if(!t){let n=ln(Ko,o);t=new It({name:o,logLevel:n}),So(mn,o,t)}return t}import{MINT_SIZE as $a,TOKEN_PROGRAM_ID as ja,getTransferFeeConfig as Ja,unpackMint as es}from"@solana/spl-token";var Bt=E("Raydium_accountInfo_util");async function fe(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=C({batchRequest:!1},n),y=St(t,d),f=new Array(y.length).fill([]);if(r){let g=y.map(O=>{let R=o._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),x=St(g,10);f=(await(await Promise.all(x.map(async O=>await o._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&Bt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(R=>{if(R){let{data:B,executable:M,lamports:P,owner:T,rentEpoch:I}=R;return B.length!==2&&B[1]!=="base64"&&Bt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:P,owner:new xo(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(y.map(g=>o.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Bt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import Te from"bn.js";import CC from"decimal.js";import vo from"big.js";import gs from"bn.js";import Co from"toformat";var Ro=Co,We=Ro;import rt from"big.js";import Oo from"bn.js";import No from"decimal.js-light";import qe from"bn.js";var dn=9007199254740991;function oe(o){let t=E("Raydium_parseBigNumberish");if(o instanceof qe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new qe(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=dn||o<=-dn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new qe(String(o))):typeof o=="bigint"?new qe(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new qe(0))}var it=E("module/fraction"),Kt=We(rt),Ue=We(No),Mo={[0]:Ue.ROUND_DOWN,[1]:Ue.ROUND_HALF_UP,[2]:Ue.ROUND_UP},Fo={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},G=class{constructor(t,n=new Oo(1)){this.numerator=oe(t),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new G(this.denominator,this.numerator)}add(t){let n=t instanceof G?t:new G(oe(t));return this.denominator.eq(n.denominator)?new G(this.numerator.add(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof G?t:new G(oe(t));return this.denominator.eq(n.denominator)?new G(this.numerator.sub(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof G?t:new G(oe(t));return new G(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof G?t:new G(oe(t));return new G(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<=0&&it.logWithError(`${t} is not positive.`),Ue.set({precision:t+1,rounding:Mo[r]});let u=new Ue(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Kt.DP=t,Kt.RM=Fo[r]||1,new Kt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ss=E("Raydium_amount"),Ks=We(vo);import{PublicKey as Vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pn}from"@solana/spl-token";var at={chainId:101,address:Vo.default.toBase58(),programId:pn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:pn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Ct}from"@solana/web3.js";import{PublicKey as X,SystemProgram as fn,SYSVAR_RENT_PUBKEY as Eo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Do}from"@solana/spl-token";function Ie({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Wo=[Ie({pubkey:Do,isWritable:!1}),Ie({pubkey:fn.programId,isWritable:!1}),Ie({pubkey:Eo,isWritable:!1})];function yn({publicKey:o,transformSol:t}){let n=bn(o.toString());if(n instanceof X)return t&&n.equals(Pe)?ye:n;if(t&&n.toString()===Pe.toBase58())return ye;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function bn(o){try{return new X(o)}catch{return o}}var xt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ge=new X("SysvarRent111111111111111111111111111111111"),Fs=new X("SysvarC1ock11111111111111111111111111111111"),Be=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),qo=new X("Sysvar1nstructions1111111111111111111111111"),Uo=fn.programId,vs=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),_s=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Vs=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Es=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ds=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ws=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),qs=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Us=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Gs=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),zs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xs=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new X("So11111111111111111111111111111111111111112"),Pe=X.default;var Rt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===Pe.toBase58()||t instanceof Ct&&Pe.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Ct(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?Ct.default:yn({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Rt;ee.WSOL=new Rt(V(C({},le),{mint:le.address}));var Lt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},st=Lt;st.SOL=new Lt(at);import Go from"bn.js";var iu=new G(new Go(100));var lu=E("Raydium_price");import{merge as Lx}from"lodash";import Au 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"},zo=V(C({},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 qu=E("Raydium_Api");import{PublicKey as sm,SystemProgram as um}from"@solana/web3.js";import{AccountLayout as pm,createAssociatedTokenAccountIdempotentInstruction as fm,TOKEN_PROGRAM_ID as ym,TOKEN_2022_PROGRAM_ID as bm}from"@solana/spl-token";import{PublicKey as Re,sendAndConfirmTransaction as _t,SystemProgram as $o,Transaction as Ye,TransactionMessage as He,VersionedTransaction as Qe}from"@solana/web3.js";import jo from"axios";import{PublicKey as Ot,AddressLookupTableAccount as xe}from"@solana/web3.js";async function Nt({connection:o,address:t,cluster:n="mainnet"}){let r=await fe(o,[...new Set(t.map(d=>d.toString()))].map(d=>new Ot(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],f=t[d];if(!y)continue;let g=new xe({key:f,state:xe.deserialize(y.data)});u[f.toString()]=g,n==="devnet"?Ke[f.toString()]=g:Se[f.toString()]=g}return u}var Se={},Mt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Se[t])return Se;let n=new Ot(t),r=await o.getAccountInfo(n);return r&&(Se[t]=new xe({key:n,state:xe.deserialize(r.data)})),Se},Ke={},Ft=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ke[t])return Ke;let n=new Ot(t),r=await o.getAccountInfo(n);return r&&(Ke[t]=new xe({key:n,state:xe.deserialize(r.data)})),Ke};var Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Pn,Keypair as wn,PublicKey as Xo,Transaction as kn,TransactionMessage as Yo,VersionedTransaction as Tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ho}from"@solana/spl-token";var An=E("Raydium_txUtil"),hn=1644;function ut(o){let t=[],n=[];return o.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(t.push(Pn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ce(o,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:u.blockhash}async function ct(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);o.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}r(Object.assign(d.err,{txId:t}))},"confirmed")})}function vt(o,t){o.length<1&&An.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function q(o,t){let[n,r]=Xo.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function ze({instructions:o,payer:t,signers:n}){return vt(o,[t,...n])}function Xe({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=wn.generate().publicKey.toString()}){let d=new Yo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(d).serialize()).toString("base64").length<hn}catch{return!1}}var Qo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Zo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Tn&&(t=Qo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ae(o){let t=[];return o.forEach(n=>{n instanceof kn&&(n.recentBlockhash||(n.recentBlockhash=Ho.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(Zo(n))}),console.log("simulate tx string:",t),t}var lt=2e3,mt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await jo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=ut(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push($o.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Re(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...y.filter(f=>f!==Re.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(V(C({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ye;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:d,skipPreflight:y=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},x=d!=null?d:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=x,this.signers.length&&n.sign(...this.signers),Ae([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await _t(this.connection,n,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:y}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let R of O)try{R.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:y}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var x;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(b=>b.transaction.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:y,signers:f,instructionTypes:g,execute:async b=>{var I;let{sequentially:O,onTxUpdate:R,skipTxCount:B=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await Ce(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of y){if(++F,F<=B)continue;let p=await _t(this.connection,v,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(p)}return{txIds:h,signedTxs:y}}return{txIds:await await Promise.all(y.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:y}}if(this.signAllTransactions){let h=y.map((v,p)=>(v.recentBlockhash=T,f[p].length&&v.sign(...f[p]),v));Ae(h);let F=await this.signAllTransactions(h);if(O){let v=0,p=[],A=async()=>{if(!F[v])return;let w=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:P});p.push({txId:w,status:"sent",signedTx:F[v]}),R==null||R([...p]),v++;let S=!1,L=null,_=null,re=U=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=p.findIndex(J=>J.txId===w);if(W>-1){if(p[W].status==="error"||p[W].status==="success")return;p[W].status=U.err?"error":"success"}R==null||R([...p]),U.err||A()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(S){clearInterval(L);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(S=!0,clearInterval(L),re({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){S=!0,clearInterval(L),console.error("getTransaction timeout:",W,w)}},lt)),_=this.connection.onSignature(w,U=>{if(S){this.connection.removeSignatureListener(_);return}S=!0,re(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:p.map(w=>w.txId),signedTxs:F}}else{let v=[];for(let p=0;p<F.length;p+=1){let A=await this.connection.sendRawTransaction(F[p].serialize(),{skipPreflight:P});v.push(A)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=M,y=ce(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await Ft(this.connection):await Mt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),x=[];for(let T of g)f[T]===void 0&&x.push(new Re(T));let b=await Nt({connection:this.connection,address:x});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?Re.default.toBase58():d!=null?d:await Ce(this.connection,this.blockhashCommitment),R=new He({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new Qe(R);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:F}=T||{};if(Ae([B]),(v=this.owner)!=null&&v.isKeyPair){let p=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await ct(this.connection,p),{txId:p,signedTx:B}}if(this.signAllTransactions){let p=await this.signAllTransactions([B]);if(this.signers.length)for(let A of p)try{A.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(p[0],{skipPreflight:I}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}async buildV0MultiTx(t){var x;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(b=>b.builder.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),y.forEach(async(b,O)=>{b.sign(f[O])}),{builder:this,transactions:y,signers:f,instructionTypes:g,buildProps:r,execute:async b=>{var P;let{sequentially:O,onTxUpdate:R,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&y.forEach(T=>T.message.recentBlockhash=B),Ae(y),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let I of y){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await ct(this.connection,h),T.push(h)}return{txIds:T,signedTxs:y}}return{txIds:await Promise.all(y.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:y}}if(this.signAllTransactions){let T=await this.signAllTransactions(y);if(O){let I=0,h=[],F=async()=>{if(!T[I])return;let v=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[I]}),R==null||R([...h]),I++;let p=!1,A=null,w=null,S=L=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let _=h.findIndex(re=>re.txId===v);if(_>-1){if(h[_].status==="error"||h[_].status==="success")return;h[_].status=L.err?"error":"success"}R==null||R([...h]),L.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var L;if(p){clearInterval(A);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(p=!0,clearInterval(A),S({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){p=!0,clearInterval(A),console.error("getTransaction timeout:",_,v)}},lt)),w=this.connection.onSignature(v,L=>{if(p){this.connection.removeSignatureListener(w);return}p=!0,S(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let F=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(F)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var R;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ce(O,["splitIns","computeBudgetConfig"]),d=r?ut(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((B,M)=>V(C({},B),{[M.publicKey.toBase58()]:M}),{}),f=[],g=[],x=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...x,B],P=r?[...d.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Re(h));if(B!==n[b]&&x.length<12&&(ze({instructions:P,payer:this.feePayer,signers:I})||ze({instructions:M,payer:this.feePayer,signers:I})))x.push(B);else{if(x.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,ze({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:I})?f.push(new Ye().add(...d.instructions,...x)):f.push(new Ye().add(...x)),g.push(Array.from(new Set(x.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>y[h]).filter(h=>h!==void 0)),x=[B]}}),x.length>0){let M=[...new Set(x.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>y[P]).filter(P=>P!==void 0);ze({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?f.push(new Ye().add(...d.instructions,...x)):f.push(new Ye().add(...x)),g.push(M)}return f.forEach(B=>B.feePayer=this.feePayer),(R=this.owner)!=null&&R.signer&&g.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=B||{},F=I!=null?I:await Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(p,A)=>{p.recentBlockhash=F,g[A].length&&p.sign(...g[A])}),Ae(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let p=0,A=[];for(let w of f){if(++p,p<=T){A.push("tx skipped");continue}let S=await _t(this.connection,w,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(S)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let p=await this.signAllTransactions(f.slice(T,f.length)),A=[...f.slice(0,T),...p];if(M){let w=0,S=[],L=async()=>{if(!A[w])return;w<T&&(S.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...S]),w++,L());let _=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});S.push({txId:_,status:"sent",signedTx:A[w]}),P==null||P([...S]),w++;let re=!1,U=null,W=null,J=z=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=S.findIndex(de=>de.txId===_);if(ne>-1){if(S[ne].status==="error"||S[ne].status==="success")return;S[ne].status=z.err?"error":"success"}P==null||P([...S]),z.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var z;if(re){clearInterval(U);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});ne&&(re=!0,clearInterval(U),J({err:((z=ne.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){re=!0,clearInterval(U),console.error("getTransaction timeout:",ne,_)}},lt)),W=this.connection.onSignature(_,z=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,J(z)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:S.map(_=>_.txId),signedTxs:A}}else{let w=[];for(let S=0;S<A.length;S+=1){let L=await this.connection.sendRawTransaction(A[S].serialize(),{skipPreflight:h});w.push(L)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:y=12}=F,f=ce(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=C(C({},this.cluster==="devnet"?await Ft(this.connection):await Mt(this.connection)),u),x=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let p of x)g[p]===void 0&&b.push(new Re(p));let O=await Nt({connection:this.connection,address:b});for(let[p,A]of Object.entries(O))g[p]=A;let R=n?ut(n):{instructions:[],instructionTypes:[]},B=await Ce(this.connection,this.blockhashCommitment),M=this.signers.reduce((p,A)=>V(C({},p),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(p=>{let A=[...I,p],w=n?[...R.instructions,...A]:A;if(p!==r[h]&&I.length<y&&(Xe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Xe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(p);else{if(I.length===0)throw Error("item ins too big");h+=p===r[h]?1:0;let S={};for(let L of[...new Set(x)])g[L]!==void 0&&(S[L]=g[L]);if(n&&Xe({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let L=new He({payerKey:this.feePayer,recentBlockhash:B,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new Qe(L))}else{let L=new He({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new Qe(L))}T.push(Array.from(new Set(I.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),I=[p]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&Xe({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let w=new He({payerKey:this.feePayer,recentBlockhash:B,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new Qe(w))}else{let w=new He({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new Qe(w))}T.push(A)}return(v=this.owner)!=null&&v.signer&&T.forEach(p=>{p.some(A=>A.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),P.forEach((p,A)=>{p.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async p=>{var re;let{sequentially:A,onTxUpdate:w,skipTxCount:S=0,recentBlockHash:L,skipPreflight:_=!0}=p||{};if(P.map(async(U,W)=>{T[W].length&&U.sign(T[W]),L&&(U.message.recentBlockhash=L)}),Ae(P),(re=this.owner)!=null&&re.isKeyPair){if(A){let U=0,W=[];for(let J of P){if(++U,U<=S){console.log("skip tx: ",U),W.push("tx skipped");continue}let z=await this.connection.sendTransaction(J,{skipPreflight:_});await ct(this.connection,z),W.push(z)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:_}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(S,P.length)),W=[...P.slice(0,S),...U];if(A){let J=0,z=[],ne=async()=>{if(!W[J])return;if(J<S){z.push({txId:"",status:"success",signedTx:W[J]}),w==null||w([...z]),J++,ne();return}let de=await this.connection.sendTransaction(W[J],{skipPreflight:_});z.push({txId:de,status:"sent",signedTx:W[J]}),w==null||w([...z]),J++;let Ee=!1,he=null,nt=null,an=ge=>{he!==null&&clearInterval(he),nt!==null&&this.connection.removeSignatureListener(nt);let pe=z.findIndex(To=>To.txId===de);if(pe>-1){if(z[pe].status==="error"||z[pe].status==="success")return;z[pe].status=ge.err?"error":"success"}w==null||w([...z]),ge.err||ne()};this.loopMultiTxStatus&&(he=setInterval(async()=>{var ge;if(Ee){clearInterval(he);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:1});pe&&(Ee=!0,clearInterval(he),an({err:((ge=pe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){Ee=!0,clearInterval(he),console.error("getTransaction timeout:",pe,de)}},lt)),nt=this.connection.onSignature(de,ge=>{if(Ee){this.connection.removeSignatureListener(nt);return}Ee=!0,an(ge)},"confirmed"),this.connection.getSignatureStatus(de)};return ne(),{txIds:[],signedTxs:W}}else{let J=[];for(let z=0;z<W.length;z+=1){let ne=await this.connection.sendTransaction(W[z],{skipPreflight:_});J.push(ne)}return{txIds:J,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Vt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new mt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Vt(t))}logInfo(...t){this.logger.info(Vt(t))}logAndCreateError(...t){let n=Vt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Vl,SystemProgram as Dl}from"@solana/web3.js";import Ul from"bn.js";import{createCloseAccountInstruction as Yl,createInitializeAccountInstruction as Hl,createTransferInstruction as Ql,TOKEN_PROGRAM_ID as Zl}from"@solana/spl-token";import{Keypair as Bl,PublicKey as Sl}from"@solana/web3.js";import Cl from"bn.js";import{TOKEN_PROGRAM_ID as Ol}from"@solana/spl-token";import{PublicKey as li}from"@solana/web3.js";import xn,{isBN as Cn}from"bn.js";import{bits as Jo,BitStructure as Rc,blob as ei,Blob as Lc,cstr as Oc,f32 as Nc,f32be as Mc,f64 as Fc,f64be as vc,greedy as _c,Layout as ti,ns64 as Vc,ns64be as Ec,nu64 as Dc,nu64be as Wc,offset as ni,s16 as qc,s16be as Uc,s24 as Gc,s24be as zc,s32 as oi,s32be as Xc,s40 as Yc,s40be as Hc,s48 as Qc,s48be as Zc,s8 as $c,seq as ii,struct as jc,Structure as ri,u16 as ai,u16be as Jc,u24 as el,u24be as tl,u32 as si,u32be as nl,u40 as ol,u40be as il,u48 as rl,u48be as al,u8 as ui,UInt as ci,union as sl,Union as ul,unionLayoutDiscriminator as cl,utf8 as ll}from"@solana/buffer-layout";var dt=ti,In=ri;var Et=ci;var Bn=ui,H=ai;var pt=si;var se=oi;var Sn=ii;var N=ei;var Dt=Jo,Kn=ni;var ke=class extends dt{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new xn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new xn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},ft=class extends dt{constructor(n){super(8,n);this._lower=Dt(pt(),!1),this._upper=Dt(pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),d=this._upper.decode(n,r+this._lower.span);return C(C({},u),d)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(o){return new Et(1,o)}function Y(o){return new Et(4,o)}function e(o){return new ke(8,!1,o)}function K(o){return new ke(16,!1,o)}function Rn(o){return new ke(1,!0,o)}function Le(o){return new ke(8,!0,o)}function Ln(o){return new ke(16,!0,o)}var Ze=class extends dt{constructor(n,r,u,d){super(n.span,d);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new Ze(N(32),t=>new li(t),t=>t.toBuffer(),o)}function ae(o){return new Ze(Bn(),mi,di,o)}function mi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function di(o){return o?1:0}function qt(o,t){let n=pt("length"),r=l([n,m(o,Kn(n,-n.span),"values")]);return new Ze(r,({values:u})=>u,u=>({values:u}),t)}var Wt=class extends In{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Wt(o,t,n)}function m(o,t,n){let r,u=typeof t=="number"?t:Cn(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let f=Reflect.get(d,"count");r=Cn(f)?f.toNumber():f,Reflect.set(d,"count",r)}return Reflect.get(d,y)},set(d,y,f){return y==="count"&&(r=f),Reflect.set(d,y,f)}});return Sn(o,u,n)}var yt=l([i("mint"),i("owner"),e("amount"),Y("delegateOption"),i("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as Mp,SystemProgram as Fp}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as _p}from"@solana/spl-token";import{PublicKey as hm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bm}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Nn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Mn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Fn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ut=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Cm=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),fi=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Rm=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),yi=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Vn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),bi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),En=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Lm=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Pi=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Gt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ai=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Om=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),wi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ki=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ti=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Nm=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Mm=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Fm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),vm=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),_m=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={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 Yp from"decimal.js";import{PublicKey as zt}from"@solana/web3.js";var hi=l([c("instruction")]),Ii=l([c("instruction")]),Bi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),K("accRewardPerShare"),i("rewardVault"),i("rewardMint"),i("rewardSender"),e("rewardType"),m(e(),15,"padding")]),Si=l([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),K("perShareReward"),e("lastSlot"),e("perSlotReward")]),Ki=l([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),K("perShareRewardA"),e("perSlotRewardA"),c("option"),i("rewardVaultB"),N(7),e("totalRewardB"),K("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),xi=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),K("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),m(Bi,5,"rewardInfos"),i("creator"),i(),m(e(),32,"padding")]),Ci=new Proxy(Si,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return V(C({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(o,t,n)}}),Ri=new Proxy(Ki,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return V(C({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(o,t,n)}}),Dn=new Proxy(xi,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return V(C({},u),{version:6,rewardInfos:u.rewardInfos.map(d=>{var y;return V(C({},d),{rewardType:((y=Object.entries($e).find(f=>String(f[1])===d.rewardType.toString()))!=null?y:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),Li=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Oi=l([c("instruction"),e("nonce"),m(Li,5,"rewardTimeInfo")]),Ni=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),Mi=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Gm=l([e("state"),i("id"),i("owner"),e("deposited"),m(e(),1,"rewardDebts")]),Wn=l([e("state"),i("id"),i("owner"),e("deposited"),m(K(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),zm=l([e("state"),i("id"),i("owner"),e("deposited"),m(e(),2,"rewardDebts")]),Fi=l([e("state"),i("id"),i("owner"),e("deposited"),m(K(),2,"rewardDebts"),m(e(),17)]),vi=l([e(),e("state"),i("id"),i("owner"),e("deposited"),m(K(),5,"rewardDebts"),m(e(),16)]),_i=l([c("instruction"),e("amount")]),Vi=l([i("mint"),i("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Rn("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),Ei=l([N(8),i("governanceProgramId"),i("realm"),i("realmGoverningTokenMint"),i("realmAuthority"),m(c(),32,"reserved1"),m(Vi,4,"votingMints"),Le("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),Di=l([Le("startTime"),Le("endTime"),c("kind"),m(c(),15,"reserved")]),Wi=l([m(Di,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),qi=l([N(8),i("voterAuthority"),i("registrar"),m(Wi,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),m(c(),94,"reserved")]);import{NATIVE_MINT as ed}from"@solana/spl-token";var td=E("Raydium_farm_config"),Ui=new zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Gi=new zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var nd=new zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var $e={"Standard SPL":0,"Option tokens":1},qn={[Nn.toString()]:3,[Mn.toString()]:4,[Fn.toString()]:5,[Ut.toString()]:6,[be.FARM_PROGRAM_ID_V3.toString()]:3,[be.FARM_PROGRAM_ID_V4.toString()]:4,[be.FARM_PROGRAM_ID_V5.toString()]:5,[be.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Qd,SystemProgram as Zd,SYSVAR_CLOCK_PUBKEY as $d,SYSVAR_RENT_PUBKEY as jd,TransactionInstruction as Jd}from"@solana/web3.js";import tp from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as op,createAssociatedTokenAccountIdempotentInstruction as ip,TOKEN_PROGRAM_ID as rp}from"@solana/spl-token";import Bd from"bn.js";import{PublicKey as bd}from"@solana/web3.js";import Pd from"bn.js";var Vd=E("Raydium.farm.util");var bp=E("Raydium_farm_instruction"),gp={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 rf from"bn.js";import{PublicKey as hA}from"@solana/web3.js";import{AccountLayout as SA,MintLayout as KA,NATIVE_MINT as xA,TOKEN_PROGRAM_ID as RA}from"@solana/spl-token";import uf from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Eb,TOKEN_2022_PROGRAM_ID as Db,TOKEN_PROGRAM_ID as Wb}from"@solana/spl-token";import{Keypair as Gb,PublicKey as zb,SystemProgram as Yb,TransactionInstruction as Hb}from"@solana/web3.js";import Zb from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var ji=new D(1).shln(128),Yt=new D(1).shln(64).subn(1),Ji=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),er=new D("59543866431248"),tr=new D("184467440737095516"),nr=new D("15793534762490258745");var Ht=60,Pf=new D("18446743708227953217"),or=[{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 Je=3,Gn=100;var zn=10,Xn=100,Pt=14;var $=new D(0),_e=new D(1),Af=new D(-1);var wf=new D("18446744073700000000");var ir=l([N(8),c("bump"),H("index"),i("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),m(Y(),1),i("fundOwner"),m(e(),3)]),rr=l([Y("blockTimestamp"),Le("tickCumulative"),m(e(),4)]),Yn=l([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),i("poolId"),m(rr,Gn,"observations"),m(e(),4)]),ar=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),sr=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),K("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),K("growthGlobalX64")]),Qt=l([N(8),c("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),K("liquidity"),K("sqrtPriceX64"),se("tickCurrent"),Y(),K("feeGrowthGlobalX64A"),K("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(K(),4),c("status"),c("feeOn"),N(6),m(sr,Je,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),ar.replicate("dynamicFeeInfo"),m(e(),46)]),ur=l([K("growthInsideLastX64"),e("rewardAmountOwed")]),cr=l([N(8),c("bump"),i("nftMint"),i("poolId"),se("tickLower"),se("tickUpper"),K("liquidity"),K("feeGrowthInsideLastX64A"),K("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(ur,Je,"rewardInfos"),e("recentEpoch"),m(e(),7)]),If=l([N(8),c("bump"),i("poolId"),se("tickLower"),se("tickUpper"),K("liquidity"),K("feeGrowthInsideLastX64A"),K("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(K(),Je,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),lr=l([se("tick"),Ln("liquidityNet"),K("liquidityGross"),K("feeGrowthOutsideX64A"),K("feeGrowthOutsideX64B"),m(K(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),K("unfilledRatioX64"),m(Y(),3)]),Hn=l([N(8),i("poolId"),se("startTickIndex"),m(lr,Ht,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),mr=l([N(8),c("bump"),m(i(),zn,"operationOwners"),m(i(),Xn,"whitelistMints")]),dr=l([N(8),i("poolId"),i("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),K("unfilledRatioX64"),m(e(),4)]),Qn=l([N(8),i("poolId"),N(8*8*Pt,"positiveTickArrayBitmap"),N(8*8*Pt,"negativeTickArrayBitmap")]),Bf=l([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),m(e(),8)]),pr=l([N(8),i("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Sf=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),m(e(),8)]),fr=l([N(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),m(e(),8)]);import{sha256 as Br}from"js-sha256";import yr from"bn.js";import Rf from"decimal.js";var Of=new yr(1).shln(256).subn(1);import Zf from"bn.js";import Ef from"bn.js";import Wf from"decimal.js";import ty from"bn.js";import oy from"decimal.js";import{PublicKey as Uy}from"@solana/web3.js";import zy from"bn.js";import{TOKEN_2022_PROGRAM_ID as Jy,TOKEN_PROGRAM_ID as eb}from"@solana/spl-token";import ib from"decimal.js";import Oy from"bn.js";import Ay from"bn.js";import yb from"bn.js";import Ir from"bn.js";function $t(o){let t=Buffer.alloc(2);return t.writeUInt16LE(o),t}function jt(o){let t=Buffer.alloc(2);return t.writeUInt16BE(o),t}function Jt(o){let t=Buffer.alloc(4);return t.writeInt32LE(o),t}function Jn(o){let t=Buffer.alloc(4);return t.writeInt32BE(o),t}function eo(o){return(typeof o=="number"||typeof o=="bigint")&&(o=new Ir(o.toString())),o.toArrayLike(Buffer,"be",8)}function to(o){let t=new ArrayBuffer(1);return new DataView(t).setUint8(0,o),new Uint8Array(t)}function j(o){let t=`global:${o}`;return Buffer.from(Br.digest(t)).slice(0,8)}Yn.span;var rg=E("Raydium_Clmm"),ag={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};var Or=l([Y("mintAuthorityOption"),i("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),i("freezeAuthority")]);import{TOKEN_PROGRAM_ID as dg}from"@solana/spl-token";import{PublicKey as bg}from"@solana/web3.js";import so from"bn.js";var Nr=new so(25),Mr=new so(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as Fg,TOKEN_PROGRAM_ID as vg}from"@solana/spl-token";import{PublicKey as Vg,SystemProgram as Eg,SYSVAR_RENT_PUBKEY as Dg,TransactionInstruction as Wg}from"@solana/web3.js";import Qg from"bn.js";var Fr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),vr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),Lg=l([c("instruction"),c("nonce")]),_r=l([c("instruction"),c("nonce"),e("startTime")]),uo=l([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),K("swapBaseInAmount"),K("swapQuoteOutAmount"),e("swapBase2QuoteFee"),K("swapQuoteInAmount"),K("swapBaseOutAmount"),e("swapQuote2BaseFee"),i("baseVault"),i("quoteVault"),i("baseMint"),i("quoteMint"),i("lpMint"),i("openOrders"),i("marketId"),i("marketProgramId"),i("targetOrders"),i("withdrawQueue"),i("lpVault"),i("owner"),e("lpReserve"),m(e(),3,"padding")]),Og=l([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),K("swapBaseInAmount"),K("swapQuoteOutAmount"),K("swapQuoteInAmount"),K("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),i("baseVault"),i("quoteVault"),i("baseMint"),i("quoteMint"),i("lpMint"),i("modelDataAccount"),i("openOrders"),i("marketId"),i("marketProgramId"),i("targetOrders"),i("owner"),m(e(),64,"padding")]),Vr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Er=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Dr=l([e("fee")]);var jg=E("Raydium_liquidity_instruction");var Wr=5e4,qr=l([e("x"),e("y"),e("price")]),nP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),m(qr,Wr,"DataElement")]);import{PublicKey as fP}from"@solana/web3.js";import bP from"decimal.js";import{TOKEN_PROGRAM_ID as PP}from"@solana/spl-token";import{PublicKey as aP}from"@solana/web3.js";var cP=E("Raydium_liquidity_serum");import ZA from"bn.js";import jA from"decimal.js";import{TOKEN_PROGRAM_ID as ZP}from"@solana/spl-token";import{PublicKey as jP}from"@solana/web3.js";import eA from"bn.js";import{SystemProgram as _P,SYSVAR_RENT_PUBKEY as VP,Transaction as EP,TransactionInstruction as DP}from"@solana/web3.js";import{createInitializeAccountInstruction as qP,TOKEN_PROGRAM_ID as UP}from"@solana/spl-token";function Ur(o="accountFlags"){let t=new ft(o);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var Gr=l([N(5),Ur("accountFlags"),i("ownAddress"),e("vaultSignerNonce"),i("baseMint"),i("quoteMint"),i("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),i("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),i("requestQueue"),i("eventQueue"),i("bids"),i("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as Sk}from"@solana/web3.js";import{AccountLayout as xk,NATIVE_MINT as Ck,TOKEN_2022_PROGRAM_ID as Rk,TOKEN_PROGRAM_ID as Lk,createAssociatedTokenAccountIdempotentInstruction as Ok}from"@solana/spl-token";import Tw from"bn.js";import $r from"bn.js";var uw=new $r(0);import fw from"bn.js";import jr from"bn.js";var wt=new jr(1e6);import Dk from"bn.js";import qk from"decimal.js";import{PublicKey as qw,TransactionInstruction as Uw,Keypair as zw,SystemProgram as Xw}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Hw,TOKEN_2022_PROGRAM_ID as Qw,TOKEN_PROGRAM_ID as Zw}from"@solana/spl-token";var Kw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),xw=Buffer.from("amm_config","utf8"),Cw=Buffer.from("pool","utf8"),Rw=Buffer.from("pool_lp_mint","utf8"),Lw=Buffer.from("pool_vault","utf8"),Ow=Buffer.from("observation","utf8"),Nw=Buffer.from("permission","utf8"),Mw=Buffer.from("support_mint","utf8"),Fw=Buffer.from("creator_fee_share","utf8");var vw=Buffer.from("locked_liquidity","utf8");var ok=E("Raydium_cpmm"),ik={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 ta=l([N(8),c("bump"),ae("disableCreatePool"),H("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),i("protocolOwner"),i("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),m(e(),14)]),co=l([N(8),i("configId"),i("poolCreator"),i("vaultA"),i("vaultB"),i("mintLp"),i("mintA"),i("mintB"),i("mintProgramA"),i("mintProgramB"),i("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),ae("enableCreatorFee"),m(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),m(e(),28)]),sk=l([N(8),i("configId"),m(e(),30)]),uk=l([N(8),c("bump"),i("creator"),i("ammConfig"),e("shareRate"),m(e(),8)]);import{PublicKey as eK,SystemProgram as tK}from"@solana/web3.js";import{createTransferInstruction as oK,TOKEN_PROGRAM_ID as iK,TOKEN_2022_PROGRAM_ID as rK,createAssociatedTokenAccountIdempotentInstruction as aK,createSyncNativeInstruction as uK,createTransferCheckedInstruction as cK}from"@solana/spl-token";import Ia from"bn.js";import dK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as ZT,TOKEN_2022_PROGRAM_ID as $T,TOKEN_PROGRAM_ID as jT}from"@solana/spl-token";import{SystemProgram as nh,TransactionInstruction as oh}from"@solana/web3.js";import ia from"bn.js";var FT=Buffer.from("vault_auth_seed","utf8"),vT=Buffer.from("global_config","utf8"),_T=Buffer.from("pool_vesting","utf8"),VT=Buffer.from("platform_config","utf8"),ET=Buffer.from("platform_fee_vault_auth_seed","utf8"),DT=Buffer.from("creator_fee_vault_auth_seed","utf8"),WT=Buffer.from("platform_global_access","utf8"),qT=Buffer.from("platform_allow_config","utf8"),UT=Buffer.from("platform_curve_rule","utf8");var ah={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var sh=new ia("18446744073709551615");var ra=l([e(),e("epoch"),c("curveType"),H("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),i("mintB"),i("protocolFeeOwner"),i("migrateFeeOwner"),i("migrateToAmmWallet"),i("migrateToCpmmWallet"),m(e(),16)]),aa=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),sa=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),aa.replicate("vestingSchedule"),i("configId"),i("platformId"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),m(c(),54)]),mh=l([e(),e("epoch"),i("poolId"),i("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),m(e(),8)]),ua=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),dh=l([e("epoch"),c("index"),i("configId"),ua.replicate("bondingCurveParam"),m(e(),50)]),yo=l([e(),e("epoch"),i("platformClaimFeeWallet"),i("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),m(c(),64,"name"),m(c(),256,"web"),m(c(),256,"img"),i("cpConfigId"),e("creatorFeeRate"),i("transferFeeExtensionAuth"),i("platformVestingWallet"),e("platformVestingScale"),i("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),i("curveRuleManager"),m(c(),78)]),ca=l([c("field"),c("op"),K("value")]),la=l([H("groupId"),e("epoch"),qt(ca,"constraints")]),ma=l([e(),c("bump"),c("version"),i("platformId"),i("configId"),e("epoch"),m(e(),8),qt(la,"groups")]);import{TOKEN_2022_PROGRAM_ID as yh,TOKEN_PROGRAM_ID as bh}from"@solana/spl-token";import da from"bn.js";var xh=new da(1e6);import Oh from"bn.js";import Mh from"decimal.js";import dI from"bn.js";import fI from"decimal.js";import Dh from"bn.js";import qh from"decimal.js";import jh from"bn.js";import eI from"decimal.js";import Po from"bn.js";import on from"decimal.js";var ht=class{static _multipler(t){return new on(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new on(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(r))}static getPriceX64({price:t,decimalA:n,decimalB:r}){let u=t.mul(this._multipler(r)).div(this._multipler(n));return new Po(u.mul(this._Q64).toFixed(0))}};ht._Q64=new on(new Po(1).shln(64).toString());import{NATIVE_MINT as CB,TOKEN_2022_PROGRAM_ID as RB,TOKEN_PROGRAM_ID as LB,createAssociatedTokenAccountIdempotentInstruction as NB,createSyncNativeInstruction as MB,getTransferFeeConfig as FB,unpackMint as vB}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as Aa,SystemProgram as EB}from"@solana/web3.js";import XB from"decimal.js";var YB={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new Aa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},HB=new Q(1e4);var wa={[vn.toBase58()]:3};var ka=l([N(5),N(8),i("ownAddress"),e("vaultSignerNonce"),i("baseMint"),i("quoteMint"),i("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),i("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),i("requestQueue"),i("eventQueue"),i("bids"),i("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as PS}from"@solana/web3.js";var hS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as OS,TOKEN_2022_PROGRAM_ID as NS,TOKEN_PROGRAM_ID as MS}from"@solana/spl-token";import{PublicKey as vS,SystemProgram as _S,TransactionInstruction as VS}from"@solana/web3.js";import DS from"bn.js";var qK=new Ia(0);import{PublicKey as Ba,Transaction as rn,TransactionInstruction as Sa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ka}from"@solana/spl-token";import Ao from"bn.js";var te=class extends ie{static getPdaPoolId(t,n){return q([te.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return q([te.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new Ao(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:d}){if(r.length===0)return[];let y=r.map(b=>te.getPdaPoolId(n,b).publicKey),f=[];for(let b=0;b<te.VERSION_PROJECT.length;b++)f.push(...y.map(O=>te.getPdaOwnerId(n,O,u,b).publicKey));let g=await fe(t,[...y,...f]),x=[];for(let b=0;b<g.length;b++){let O=Math.floor(b/r.length),R=b%r.length,B=y[R],M=f[b],P=g[R],T=g[r.length+b];if(!(P&&T)||P.data.length!==te.POOL_LAYOUT.span||T.data.length!==te.OWNER_LAYOUT.span)continue;let I=te.POOL_LAYOUT.decode(P.data),h=te.OWNER_LAYOUT.decode(T.data),F=I.openTime.toNumber(),v=I.endTime.toNumber(),p=h.tokenInfo.map(S=>S.debtAmount.gt(new Ao(0))).filter(S=>!S).length!==3,A=d>F&&d<v&&I.status===1,w=p&&A;x.push({programId:n,poolId:B,ammId:I.ammId,ownerAccountId:M,snapshotLpAmount:h.lpAmount,project:te.VERSION_PROJECT[O],openTime:F,endTime:v,canClaim:w,canClaimErrorType:p?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((S,L)=>({mintAddress:S.mintAddress,mintVault:S.mintVault,mintDecimals:S.mintDecimals,perLpLoss:S.perLpLoss,debtAmount:h.tokenInfo[L].debtAmount.add(h.tokenInfo[L].claimedAmount)}))})}return x}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,y=[];for(let x of t.tokenInfo){let{account:b,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({mint:x.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:x.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!x.mintAddress.equals(ee.WSOL.mint),associatedOnly:x.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});O&&u.addInstruction(O),y.push(b)}u.addInstruction({instructions:[te.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:d,ownerPda:t.ownerAccountId,claimAddress:y}})]});let{transaction:f,signers:g}=u.build();return[{transaction:f,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,y={};for(let b of t){let O=[];for(let R of b.tokenInfo){let{account:B,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:R.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:R.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!R.mintAddress.equals(ee.WSOL.mint),associatedOnly:R.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),B&&(y[R.mintAddress.toString()]=B,O.push(B))}u.addInstruction({instructions:[te.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:d,ownerPda:b.ownerAccountId,claimAddress:O}})]})}let{transaction:f,signers:g}=u.build(),x=u.allInstructions;return vt(x,[d,...g.map(b=>b.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new rn().add(...x.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new rn().add(...x.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new rn().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=l([]),d=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(g=>({pubkey:g,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:g})=>({pubkey:g,isSigner:!1,isWritable:!0})),{pubkey:Ka,isSigner:!1,isWritable:!1}],y=Buffer.alloc(u.span);u.encode({},y);let f=Buffer.from([10,66,208,184,161,6,191,98,...y]);return new Sa({keys:d,programId:t,data:f})}},ue=te;ue.CLAIMED_NUM=3,ue.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),i("ammId"),m(l([c("mintDecimals"),i("mintAddress"),i("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),m(e(),10,"padding")]),ue.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),i("poolId"),i("owner"),e("lpAmount"),m(l([i("mintAddress"),e("debtAmount"),e("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),m(e(),4,"padding")]),ue.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Ba(t)),ue.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ue.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as rx}from"@solana/web3.js";import{getTransferFeeConfig as sx,MintLayout as ux,TOKEN_2022_PROGRAM_ID as cx,TOKEN_PROGRAM_ID as lx,unpackMint as mx}from"@solana/spl-token";var EC=new Te(2),DC=new Te(3),WC=new Te(5),_o=new Te(10),qC=new Te(100),UC=new Te(1e3),GC=new Te(1e4);function St(o,t=1,n=[]){let r=[...o];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{createAssociatedTokenAccountIdempotentInstruction as AR,TOKEN_2022_PROGRAM_ID as wR,TOKEN_PROGRAM_ID as kR}from"@solana/spl-token";import{PublicKey as hR}from"@solana/web3.js";import BR from"bn.js";import KR from"decimal.js";var Oa=Buffer.from("amm_config","utf8"),nn=Buffer.from("pool","utf8"),fo=Buffer.from("pool_vault","utf8"),Na=Buffer.from("pool_reward_vault","utf8"),wo=Buffer.from("position","utf8"),Ma=Buffer.from("tick_array","utf8"),Fa=Buffer.from("operation","utf8"),va=Buffer.from("pool_tick_array_bitmap_extension","utf8"),_a=Buffer.from("observation","utf8"),Va=Buffer.from("support_mint","utf8"),Ea=Buffer.from("dynamic_fee_config","utf8"),Da=Buffer.from("permission","utf8");function tL(o,t){return q([Oa,jt(t)],o)}function Sr(o,t,n,r){return q([nn,t.toBuffer(),n.toBuffer(),r.toBuffer()],o)}function Kr(o,t){return q([Da,t.toBuffer()],o)}function xr(o,t,n,r,u){return q([nn,t.toBuffer(),n.toBuffer(),r.toBuffer(),$t(u)],o)}function no(o,t,n){return q([fo,t.toBuffer(),n.toBuffer()],o)}function Cr(o,t,n){return q([Na,t.toBuffer(),n.toBuffer()],o)}function kt(o,t,n){return q([Ma,t.toBuffer(),Jn(n)],o)}function oo(o,t,n,r){return q([wo,t.toBuffer(),Jt(n),Jt(r)],o)}function io(o,t){return q([wo,t.toBuffer()],o)}function en(o){return q([Buffer.from("metadata","utf8"),Be.toBuffer(),o.toBuffer()],Be)}function ro(o){return q([Fa],o)}function tt(o,t){return q([va,t.toBuffer()],o)}function Rr(o,t){return q([_a,t.toBuffer()],o)}function Ca(o,t){return q([Va,t.toBuffer()],o)}function Ra(o,t,n,r){return q([t.toBuffer(),n.toBuffer(),eo(r)],o)}function nL(o,t){return q([Ea,jt(t)],o)}function La(o,t,n){return q([t.toBuffer(),to(n)],o)}var ko=Buffer.from("locked_position","utf8");function Lr(o,t){return q([ko,t.toBuffer()],o)}function ao(o,t){return q([ko,t.toBuffer()],o)}export{Oa as AMM_CONFIG_SEED,Ea as DYNAMIC_FEE_CONFIG_SEED,Fa as OPERATION_SEED,Da as PERMISSION_SEED,ko as POOL_LOCK_ID_SEED,_a as POOL_OBSERVATION_SEED,Na as POOL_REWARD_VAULT_SEED,nn as POOL_SEED,va as POOL_TICK_ARRAY_BITMAP_SEED,fo as POOL_VAULT_SEED,wo as POSITION_SEED,Va as SUPPORT_MINT_SEED,Ma as TICK_ARRAY_SEED,tL as getPdaAmmConfigId,nL as getPdaDynamicFeeConfigAddress,tt as getPdaExBitmapAccount,Ra as getPdaLimitOrderAddress,La as getPdaLimitOrderNonceAddress,ao as getPdaLockClPositionIdV2,Lr as getPdaLockPositionId,en as getPdaMetadataKey,Ca as getPdaMintExAccount,Rr as getPdaObservationAccount,ro as getPdaOperationAccount,Kr as getPdaPermission,xr as getPdaPermissionedPoolId,io as getPdaPersonalPositionAddress,Sr as getPdaPoolId,Cr as getPdaPoolRewardVaultId,no as getPdaPoolVaultId,oo as getPdaProtocolPositionAddress,kt as getPdaTickArrayAddress};
//# sourceMappingURL=pda.mjs.map