@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 77.3 kB
JavaScript
var fo=Object.defineProperty,yo=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?fo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,O=(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)=>yo(o,bo(t));var ue=(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 fn,{isBN as yn}from"bn.js";import{bits as go,BitStructure as Fa,blob as Po,Blob as va,cstr as _a,f32 as Va,f32be as Ea,f64 as Da,f64be as Wa,greedy as qa,Layout as Ao,ns64 as Ua,ns64be as Ga,nu64 as za,nu64be as Xa,offset as wo,s16 as Ya,s16be as Ha,s24 as Qa,s24be as Za,s32 as ko,s32be as $a,s40 as ja,s40be as Ja,s48 as es,s48be as ts,s8 as ns,seq as To,struct as os,Structure as ho,u16 as Io,u16be as is,u24 as rs,u24be as as,u32 as Bo,u32be as ss,u40 as us,u40be as cs,u48 as ls,u48be as ms,u8 as So,UInt as Ko,union as ds,Union as ps,unionLayoutDiscriminator as fs,utf8 as ys}from"@solana/buffer-layout";var it=Ao,ln=ho;var Bt=Ko;var mn=So,Y=Io;var rt=Bo;var ae=ko;var dn=To;var M=Po;var St=go,pn=wo;var Pe=class extends it{constructor(n,r,s){super(n,s);this.blob=M(n),this.signed=r}decode(n,r=0){let s=new fn(this.blob.decode(n,r),10,"le");return this.signed?s.fromTwos(this.span*8).clone():s}encode(n,r,s=0){return typeof n=="number"&&(n=new fn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,s)}},at=class extends it{constructor(n){super(8,n);this._lower=St(rt(),!1),this._upper=St(rt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let s=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return O(O({},s),m)}encode(n,r,s=0){return this._lower.encode(n,r,s)+this._upper.encode(n,r,s+this._lower.span)}};function d(o){return new Bt(1,o)}function z(o){return new Bt(4,o)}function e(o){return new Pe(8,!1,o)}function L(o){return new Pe(16,!1,o)}function bn(o){return new Pe(1,!0,o)}function Se(o){return new Pe(8,!0,o)}function gn(o){return new Pe(16,!0,o)}var We=class extends it{constructor(n,r,s,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=s}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,s){return this.layout.encode(this.encoder(n),r,s)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new We(M(32),t=>new xo(t),t=>t.toBuffer(),o)}function re(o){return new We(mn(),Co,Ro,o)}function Co(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ro(o){return o?1:0}function xt(o,t){let n=rt("length"),r=p([n,b(o,pn(n,-n.span),"values")]);return new We(r,({values:s})=>s,s=>({values:s}),t)}var Kt=class extends ln{decode(t,n){return super.decode(t,n)}};function p(o,t,n){return new Kt(o,t,n)}function b(o,t,n){let r,s=typeof t=="number"?t:yn(t)?t.toNumber():new Proxy(t,{get(m,a){if(!r){let u=Reflect.get(m,"count");r=yn(u)?u.toNumber():u,Reflect.set(m,"count",r)}return Reflect.get(m,a)},set(m,a,u){return a==="count"&&(r=u),Reflect.set(m,a,u)}});return dn(o,s,n)}import{PublicKey as No}from"@solana/web3.js";import{get as Pn,set as Lo}from"lodash";var Ct=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(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}},An={},Oo={};function E(o){let t=Pn(An,o);if(!t){let n=Pn(Oo,o);t=new Ct({name:o,logLevel:n}),Lo(An,o,t)}return t}import{MINT_SIZE as Ms,TOKEN_PROGRAM_ID as Fs,getTransferFeeConfig as vs,unpackMint as _s}from"@solana/spl-token";var Rt=E("Raydium_accountInfo_util");async function fe(o,t,n){let{batchRequest:r,commitment:s="confirmed",chunkCount:m=100}=O({batchRequest:!1},n),a=Lt(t,m),u=new Array(a.length).fill([]);if(r){let y=a.map(w=>{let T=o._buildArgs([w.map(A=>A.toBase58())],s,"base64");return{methodName:"getMultipleAccounts",args:T}}),g=Lt(y,10);u=(await(await Promise.all(g.map(async w=>await o._rpcBatchRequest(w)))).flat()).map(w=>(w.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${w.error.message}`),w.result.value.map(T=>{if(T){let{data:A,executable:x,lamports:k,owner:S,rentEpoch:C}=T;return A.length!==2&&A[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(A[0],"base64"),executable:x,lamports:k,owner:new No(S),rentEpoch:C}}return null})))}else try{u=await Promise.all(a.map(y=>o.getMultipleAccountsInfo(y,s)))}catch(y){y instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return u.flat()}import Te from"bn.js";import CR from"decimal.js";import Wo from"big.js";import eu from"bn.js";import Mo from"toformat";var Fo=Mo,Ue=Fo;import ut from"big.js";import _o from"bn.js";import Vo from"decimal.js-light";import Ge from"bn.js";var wn=9007199254740991;function ne(o){let t=E("Raydium_parseBigNumberish");if(o instanceof Ge)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ge(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=wn||o<=-wn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ge(String(o))):typeof o=="bigint"?new Ge(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ge(0))}var st=E("module/fraction"),Ot=Ue(ut),ze=Ue(Vo),Eo={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},Do={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},U=class{constructor(t,n=new _o(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<=0&&st.logWithError(`${t} is not positive.`),ze.set({precision:t+1,rounding:Eo[r]});let s=new ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return s.toFormat(s.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<0&&st.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=Do[r]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var cu=E("Raydium_amount"),lu=Ue(Wo);import{PublicKey as Uo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kn}from"@solana/spl-token";var ct={chainId:101,address:Uo.default.toBase58(),programId:kn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ce={chainId:101,address:"So11111111111111111111111111111111111111112",programId:kn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Mt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Tn,SYSVAR_RENT_PUBKEY as Go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as zo}from"@solana/spl-token";function Ke({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Xo=[Ke({pubkey:zo,isWritable:!1}),Ke({pubkey:Tn.programId,isWritable:!1}),Ke({pubkey:Go,isWritable:!1})];function hn({publicKey:o,transformSol:t}){let n=In(o.toString());if(n instanceof X)return t&&n.equals(Ae)?ye:n;if(t&&n.toString()===Ae.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 In(o){try{return new X(o)}catch{return o}}var Nt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new X("SysvarRent111111111111111111111111111111111"),Pu=new X("SysvarC1ock11111111111111111111111111111111"),lt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Yo=new X("Sysvar1nstructions1111111111111111111111111"),Ho=Tn.programId,Au=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),wu=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ku=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Tu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),hu=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Iu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Bu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Su=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ku=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),xu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Cu=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new X("So11111111111111111111111111111111111111112"),Ae=X.default;var Ft=class{constructor({mint:t,decimals:n,symbol:r,name:s,skipMint:m=!1,isToken2022:a=!1}){if(t===Ae.toBase58()||t instanceof Mt&&Ae.equals(t)){this.decimals=ce.decimals,this.symbol=ce.symbol,this.name=ce.name,this.mint=new Mt(ce.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=s||t.toString().substring(0,6),this.mint=m?Mt.default:hn({publicKey:t}),this.isToken2022=a}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ft;J.WSOL=new Ft(V(O({},ce),{mint:ce.address}));var vt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},mt=vt;mt.SOL=new vt(ct);import Qo from"bn.js";var Wu=new U(new Qo(100));var Yu=E("Raydium_price");import{merge as LC}from"lodash";import nc from"axios";var Bn={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(O({},Bn),{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 Bc=E("Raydium_Api");import{PublicKey as Jl,SystemProgram as em}from"@solana/web3.js";import{AccountLayout as rm,createAssociatedTokenAccountIdempotentInstruction as am,TOKEN_PROGRAM_ID as sm,TOKEN_2022_PROGRAM_ID as um}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as qt,SystemProgram as ni,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as $e}from"@solana/web3.js";import oi from"axios";import{PublicKey as _t,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Vt({connection:o,address:t,cluster:n="mainnet"}){let r=await fe(o,[...new Set(t.map(m=>m.toString()))].map(m=>new _t(m))),s={};for(let m=0;m<t.length;m++){let a=r[m],u=t[m];if(!a)continue;let y=new Re({key:u,state:Re.deserialize(a.data)});s[u.toString()]=y,n==="devnet"?Ce[u.toString()]=y:xe[u.toString()]=y}return s}var xe={},Et=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xe[t])return xe;let n=new _t(t),r=await o.getAccountInfo(n);return r&&(xe[t]=new Re({key:n,state:Re.deserialize(r.data)})),xe},Ce={},Dt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new _t(t),r=await o.getAccountInfo(n);return r&&(Ce[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ce};var Q={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Sn,Keypair as xn,PublicKey as $o,Transaction as Cn,TransactionMessage as jo,VersionedTransaction as Rn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jo}from"@solana/spl-token";var Kn=E("Raydium_txUtil"),Ln=1644;function dt(o){let t=[],n=[];return o.microLamports&&(t.push(Sn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Q.SetComputeUnitPrice)),o.units&&(t.push(Sn.setComputeUnitLimit({units:o.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(o,t){var r,s;let n=t!=null?t:"confirmed";return(s=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:s.blockhash}async function pt(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let s=setTimeout(r,6e4);o.onSignature(t,m=>{if(clearTimeout(s),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Wt(o,t){o.length<1&&Kn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Kn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Cn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Ln}catch{return!1}}function le(o,t){let[n,r]=$o.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Ye({instructions:o,payer:t,signers:n}){return Wt(o,[t,...n])}function He({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=xn.generate().publicKey.toString()}){let m=new jo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Rn(m).serialize()).toString("base64").length<Ln}catch{return!1}}var ei=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ti=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Rn&&(t=ei(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function we(o){let t=[];return o.forEach(n=>{n instanceof Cn&&(n.recentBlockhash||(n.recentBlockhash=Jo.toBase58()),n.feePayer||(n.feePayer=xn.generate().publicKey)),t.push(ti(n))}),console.log("simulate tx string:",t),t}var ft=2e3,yt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await oi.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}=dt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ni.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let 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:s=[],endInstructionTypes:m=[],lookupTableAddress:a=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...s),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...a.filter(u=>u!==Oe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(V(O({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(s=>s.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 s=>{var f;let{recentBlockHash:m,skipPreflight:a=!0,sendAndConfirm:u,notSendToRpc:y}=s||{},g=m!=null?m:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=g,this.signers.length&&n.sign(...this.signers),we([n]),(f=this.owner)!=null&&f.isKeyPair)return{txId:u?await qt(this.connection,n,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:a}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:a}),signedTx:n};if(this.signAllTransactions){let w=await this.signAllTransactions([n]);if(this.signers.length)for(let T of w)try{T.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(w[0].serialize(),{skipPreflight:a}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var g;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:s}=this.build(r),m=n.filter(f=>f.transaction.instructions.length>0),a=[s,...m.map(f=>f.transaction)],u=[this.signers,...m.map(f=>f.signers)],y=[...this.instructionTypes,...m.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&u.forEach(f=>{f.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:a,signers:u,instructionTypes:y,execute:async f=>{var C;let{sequentially:w,onTxUpdate:T,skipTxCount:A=0,recentBlockHash:x,skipPreflight:k=!0}=f||{},S=x!=null?x:await Le(this.connection,this.blockhashCommitment);if((C=this.owner)!=null&&C.isKeyPair){if(w){let K=[],F=0;for(let v of a){if(++F,F<=A)continue;let P=await qt(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});K.push(P)}return{txIds:K,signedTxs:a}}return{txIds:await await Promise.all(a.map(async K=>(K.recentBlockhash=S,await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:k})))),signedTxs:a}}if(this.signAllTransactions){let K=a.map((v,P)=>(v.recentBlockhash=S,u[P].length&&v.sign(...u[P]),v));we(K);let F=await this.signAllTransactions(K);if(w){let v=0,P=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:k});P.push({txId:I,status:"sent",signedTx:F[v]}),T==null||T([...P]),v++;let R=!1,N=null,_=null,ie=q=>{N!==null&&clearInterval(N),_!==null&&this.connection.removeSignatureListener(_);let W=P.findIndex(j=>j.txId===I);if(W>-1){if(P[W].status==="error"||P[W].status==="success")return;P[W].status=q.err?"error":"success"}T==null||T([...P]),q.err||h()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var q;if(R){clearInterval(N);return}try{let W=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(R=!0,clearInterval(N),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",I))}catch(W){R=!0,clearInterval(N),console.error("getTransaction timeout:",W,I)}},ft)),_=this.connection.onSignature(I,q=>{if(R){this.connection.removeSignatureListener(_);return}R=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:P.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let P=0;P<F.length;P+=1){let h=await this.connection.sendRawTransaction(F[P].serialize(),{skipPreflight:k});v.push(h)}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 k;let x=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:s,recentBlockhash:m}=x,a=ue(x,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=O(O({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),n),y=Array.from(new Set([...r,...this.lookupTableAddress])),g=[];for(let S of y)u[S]===void 0&&g.push(new Oe(S));let f=await Vt({connection:this.connection,address:g});for(let[S,C]of Object.entries(f))u[S]=C;let w=s?Oe.default.toBase58():m!=null?m:await Le(this.connection,this.blockhashCommitment),T=new Ze({payerKey:this.feePayer,recentBlockhash:w,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((k=this.owner)==null?void 0:k.signer)&&!this.signers.some(S=>S.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let A=new $e(T);return A.sign(this.signers),{builder:this,transaction:A,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async S=>{var v;let{skipPreflight:C=!0,sendAndConfirm:K,notSendToRpc:F}=S||{};if(we([A]),(v=this.owner)!=null&&v.isKeyPair){let P=await this.connection.sendTransaction(A,{skipPreflight:C});return K&&await pt(this.connection,P),{txId:P,signedTx:A}}if(this.signAllTransactions){let P=await this.signAllTransactions([A]);if(this.signers.length)for(let h of P)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(P[0],{skipPreflight:C}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async buildV0MultiTx(t){var g;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:s}=await this.buildV0(r),m=n.filter(f=>f.builder.instructions.length>0),a=[s,...m.map(f=>f.transaction)],u=[this.signers,...m.map(f=>f.signers)],y=[...this.instructionTypes,...m.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&u.forEach(f=>{f.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),a.forEach(async(f,w)=>{f.sign(u[w])}),{builder:this,transactions:a,signers:u,instructionTypes:y,buildProps:r,execute:async f=>{var k;let{sequentially:w,onTxUpdate:T,recentBlockHash:A,skipPreflight:x=!0}=f||{};if(A&&a.forEach(S=>S.message.recentBlockhash=A),we(a),(k=this.owner)!=null&&k.isKeyPair){if(w){let S=[];for(let C of a){let K=await this.connection.sendTransaction(C,{skipPreflight:x});await pt(this.connection,K),S.push(K)}return{txIds:S,signedTxs:a}}return{txIds:await Promise.all(a.map(async S=>await this.connection.sendTransaction(S,{skipPreflight:x}))),signedTxs:a}}if(this.signAllTransactions){let S=await this.signAllTransactions(a);if(w){let C=0,K=[],F=async()=>{if(!S[C])return;let v=await this.connection.sendTransaction(S[C],{skipPreflight:x});K.push({txId:v,status:"sent",signedTx:S[C]}),T==null||T([...K]),C++;let P=!1,h=null,I=null,R=N=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let _=K.findIndex(ie=>ie.txId===v);if(_>-1){if(K[_].status==="error"||K[_].status==="success")return;K[_].status=N.err?"error":"success"}T==null||T([...K]),N.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var N;if(P){clearInterval(h);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(P=!0,clearInterval(h),R({err:((N=_.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){P=!0,clearInterval(h),console.error("getTransaction timeout:",_,v)}},ft)),I=this.connection.onSignature(v,N=>{if(P){this.connection.removeSignatureListener(I);return}P=!0,R(N)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:S}}else{let C=[];for(let K=0;K<S.length;K+=1){let F=await this.connection.sendTransaction(S[K],{skipPreflight:x});C.push(F)}return{txIds:C,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var T;let w=t||{},{splitIns:n=[],computeBudgetConfig:r}=w,s=ue(w,["splitIns","computeBudgetConfig"]),m=r?dt(r):{instructions:[],instructionTypes:[]},a=this.signers.reduce((A,x)=>V(O({},A),{[x.publicKey.toBase58()]:x}),{}),u=[],y=[],g=[],f=0;if(this.allInstructions.forEach(A=>{let x=[...g,A],k=r?[...m.instructions,...x]:x,C=[...new Set(x.map(K=>K.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(K=>new Oe(K));if(A!==n[f]&&g.length<12&&(Ye({instructions:k,payer:this.feePayer,signers:C})||Ye({instructions:x,payer:this.feePayer,signers:C})))g.push(A);else{if(g.length===0)throw Error("item ins too big");f+=A===n[f]?1:0,Ye({instructions:r?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:C})?u.push(new Qe().add(...m.instructions,...g)):u.push(new Qe().add(...g)),y.push(Array.from(new Set(g.map(K=>K.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(K=>a[K]).filter(K=>K!==void 0)),g=[A]}}),g.length>0){let x=[...new Set(g.map(k=>k.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(k=>a[k]).filter(k=>k!==void 0);Ye({instructions:r?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:x.map(k=>k.publicKey)})?u.push(new Qe().add(...m.instructions,...g)):u.push(new Qe().add(...g)),y.push(x)}return u.forEach(A=>A.feePayer=this.feePayer),(T=this.owner)!=null&&T.signer&&y.forEach(A=>{A.some(x=>x.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),{builder:this,transactions:u,signers:y,instructionTypes:this.instructionTypes,execute:async A=>{var v;let{sequentially:x,onTxUpdate:k,skipTxCount:S=0,recentBlockHash:C,skipPreflight:K=!0}=A||{},F=C!=null?C:await Le(this.connection,this.blockhashCommitment);if(u.forEach(async(P,h)=>{P.recentBlockhash=F,y[h].length&&P.sign(...y[h])}),we(u),(v=this.owner)!=null&&v.isKeyPair){if(x){let P=0,h=[];for(let I of u){if(++P,P<=S){h.push("tx skipped");continue}let R=await qt(this.connection,I,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});h.push(R)}return{txIds:h,signedTxs:u}}return{txIds:await Promise.all(u.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:K}))),signedTxs:u}}if(this.signAllTransactions){let P=await this.signAllTransactions(u.slice(S,u.length)),h=[...u.slice(0,S),...P];if(x){let I=0,R=[],N=async()=>{if(!h[I])return;I<S&&(R.push({txId:"",status:"success",signedTx:h[I]}),k==null||k([...R]),I++,N());let _=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:K});R.push({txId:_,status:"sent",signedTx:h[I]}),k==null||k([...R]),I++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=R.findIndex(de=>de.txId===_);if(te>-1){if(R[te].status==="error"||R[te].status==="success")return;R[te].status=G.err?"error":"success"}k==null||k([...R]),G.err||N()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});te&&(ie=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},ft)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await N(),{txIds:R.map(_=>_.txId),signedTxs:h}}else{let I=[];for(let R=0;R<h.length;R+=1){let N=await this.connection.sendRawTransaction(h[R].serialize(),{skipPreflight:K});I.push(N)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:s={},lookupTableAddress:m=[],insCountLimit:a=12}=F,u=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=O(O({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),s),g=Array.from(new Set([...this.lookupTableAddress,...m])),f=[];for(let P of g)y[P]===void 0&&f.push(new Oe(P));let w=await Vt({connection:this.connection,address:f});for(let[P,h]of Object.entries(w))y[P]=h;let T=n?dt(n):{instructions:[],instructionTypes:[]},A=await Le(this.connection,this.blockhashCommitment),x=this.signers.reduce((P,h)=>V(O({},P),{[h.publicKey.toBase58()]:h}),{}),k=[],S=[],C=[],K=0;if(this.allInstructions.forEach(P=>{let h=[...C,P],I=n?[...T.instructions,...h]:h;if(P!==r[K]&&C.length<a&&(He({instructions:I,payer:this.feePayer,lookupTableAddressAccount:y})||He({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})))C.push(P);else{if(C.length===0)throw Error("item ins too big");K+=P===r[K]?1:0;let R={};for(let N of[...new Set(g)])y[N]!==void 0&&(R[N]=y[N]);if(n&&He({instructions:[...T.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:A})){let N=new Ze({payerKey:this.feePayer,recentBlockhash:A,instructions:[...T.instructions,...C]}).compileToV0Message(Object.values(y));k.push(new $e(N))}else{let N=new Ze({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(y));k.push(new $e(N))}S.push(Array.from(new Set(C.map(N=>N.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(N=>x[N]).filter(N=>N!==void 0)),C=[P]}}),C.length>0){let h=[...new Set(C.map(I=>I.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(I=>x[I]).filter(I=>I!==void 0);if(n&&He({instructions:[...T.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:A})){let I=new Ze({payerKey:this.feePayer,recentBlockhash:A,instructions:[...T.instructions,...C]}).compileToV0Message(Object.values(y));k.push(new $e(I))}else{let I=new Ze({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(y));k.push(new $e(I))}S.push(h)}return(v=this.owner)!=null&&v.signer&&S.forEach(P=>{P.some(h=>h.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),k.forEach((P,h)=>{P.sign(S[h])}),{builder:this,transactions:k,buildProps:t,signers:S,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:h,onTxUpdate:I,skipTxCount:R=0,recentBlockHash:N,skipPreflight:_=!0}=P||{};if(k.map(async(q,W)=>{S[W].length&&q.sign(S[W]),N&&(q.message.recentBlockhash=N)}),we(k),(ie=this.owner)!=null&&ie.isKeyPair){if(h){let q=0,W=[];for(let j of k){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await pt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:k}}return{txIds:await Promise.all(k.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:k}}if(this.signAllTransactions){let q=await this.signAllTransactions(k.slice(R,k.length)),W=[...k.slice(0,R),...q];if(h){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<R){G.push({txId:"",status:"success",signedTx:W[j]}),I==null||I([...G]),j++,te();return}let de=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:de,status:"sent",signedTx:W[j]}),I==null||I([...G]),j++;let De=!1,Be=null,nt=null,an=ge=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let pe=G.findIndex(po=>po.txId===de);if(pe>-1){if(G[pe].status==="error"||G[pe].status==="success")return;G[pe].status=ge.err?"error":"success"}I==null||I([...G]),ge.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var ge;if(De){clearInterval(Be);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:1});pe&&(De=!0,clearInterval(Be),an({err:((ge=pe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){De=!0,clearInterval(Be),console.error("getTransaction timeout:",pe,de)}},ft)),nt=this.connection.onSignature(de,ge=>{if(De){this.connection.removeSignatureListener(nt);return}De=!0,an(ge)},"confirmed"),this.connection.getSignatureStatus(de)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:_});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var Ut=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new yt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Ut(t))}logInfo(...t){this.logger.info(Ut(t))}logAndCreateError(...t){let n=Ut(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Rl,SystemProgram as Ol}from"@solana/web3.js";import Fl from"bn.js";import{createCloseAccountInstruction as El,createInitializeAccountInstruction as Dl,createTransferInstruction as Wl,TOKEN_PROGRAM_ID as ql}from"@solana/spl-token";import{Keypair as gl,PublicKey as Pl}from"@solana/web3.js";import kl from"bn.js";import{TOKEN_PROGRAM_ID as Il}from"@solana/spl-token";var bt=p([i("mint"),i("owner"),e("amount"),z("delegateOption"),i("delegate"),d("state"),z("isNativeOption"),e("isNative"),e("delegatedAmount"),z("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as Jg,SystemProgram as eP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as nP}from"@solana/spl-token";import{PublicKey as ym}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gm}from"@solana/spl-token";import{PublicKey as B}from"@solana/web3.js";var Nn=new B("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Mn=new B("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Fn=new B("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Gt=new B("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),km=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ri=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vn=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Tm=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ai=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Vn=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),si=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ui=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zt=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),hm=new B("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ci=new B("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xt=new B("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),li=new B("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Im=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),mi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),pi=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Bm=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Sm=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Km=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),xm=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Cm=new B("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={OPEN_BOOK_PROGRAM:new B("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new B("Ray1111111111111111111111111111111111111111"),AMM_V4:new B("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new B("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new B("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new B("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new B("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new B("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new B("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new B("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:B.default,Router:new B("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new B("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new B("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new B("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new B("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new B("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new B("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new B("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new B("Ray1111111111111111111111111111111111111111")};import dP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as My,TOKEN_2022_PROGRAM_ID as Fy,TOKEN_PROGRAM_ID as vy}from"@solana/spl-token";import{PublicKey as Vy}from"@solana/web3.js";import Dy from"bn.js";import qy from"decimal.js";import{TOKEN_PROGRAM_ID as Um}from"@solana/spl-token";import{PublicKey as Ym}from"@solana/web3.js";var fi=p([z("mintAuthorityOption"),i("mintAuthority"),e("supply"),d("decimals"),d("isInitialized"),z("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ty,TOKEN_2022_PROGRAM_ID as ny,TOKEN_PROGRAM_ID as oy}from"@solana/spl-token";import{Keypair as ay,PublicKey as sy,SystemProgram as cy,TransactionInstruction as ly}from"@solana/web3.js";import dy from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var yi=new D(1).shln(128),Yt=new D(1).shln(64).subn(1),bi=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),gi=new D("59543866431248"),Pi=new D("184467440737095516"),Ai=new D("15793534762490258745");var Ht=60,rd=new D("18446743708227953217"),wi=[{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,En=100;var Dn=10,Wn=100,Pt=14;var Z=new D(0),_e=new D(1),ad=new D(-1);var sd=new D("18446744073700000000");var ki=p([M(8),d("bump"),Y("index"),i("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Y("tickSpacing"),z("fundFeeRate"),b(z(),1),i("fundOwner"),b(e(),3)]),Ti=p([z("blockTimestamp"),Se("tickCumulative"),b(e(),4)]),qn=p([M(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),i("poolId"),b(Ti,En,"observations"),b(e(),4)]),hi=p([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),b(d(),46)]),Ii=p([d("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),L("growthGlobalX64")]),Qt=p([M(8),d("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),Y("tickSpacing"),L("liquidity"),L("sqrtPriceX64"),ae("tickCurrent"),z(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),b(L(),4),d("status"),d("feeOn"),M(6),b(Ii,je,"rewardInfos"),M(8*16,"tickArrayBitmap"),b(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),hi.replicate("dynamicFeeInfo"),b(e(),46)]),Bi=p([L("growthInsideLastX64"),e("rewardAmountOwed")]),Si=p([M(8),d("bump"),i("nftMint"),i("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(Bi,je,"rewardInfos"),e("recentEpoch"),b(e(),7)]),md=p([M(8),d("bump"),i("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(L(),je,"rewardGrowthInside"),e("recentEpoch"),b(e(),7)]),Ki=p([ae("tick"),gn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),b(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),b(z(),3)]),Un=p([M(8),i("poolId"),ae("startTickIndex"),b(Ki,Ht,"ticks"),d("initializedTickCount"),e("recentEpoch"),b(d(),107)]),xi=p([M(8),d("bump"),b(i(),Dn,"operationOwners"),b(i(),Wn,"whitelistMints")]),Ci=p([M(8),i("poolId"),i("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),b(e(),4)]),Gn=p([M(8),i("poolId"),M(8*8*Pt,"positiveTickArrayBitmap"),M(8*8*Pt,"negativeTickArrayBitmap")]),dd=p([M(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),b(e(),8)]),Ri=p([M(8),i("wallet"),d("nonceIndex"),e("orderNonce"),b(e(),4)]),pd=p([e(),d("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),b(e(),8)]),Li=p([M(8),d("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),b(e(),8)]);import bd from"bn.js";var Kd=Buffer.from("amm_config","utf8"),Ni=Buffer.from("pool","utf8"),Mi=Buffer.from("pool_vault","utf8"),xd=Buffer.from("pool_reward_vault","utf8"),Cd=Buffer.from("position","utf8"),Rd=Buffer.from("tick_array","utf8"),Ld=Buffer.from("operation","utf8"),Od=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Nd=Buffer.from("observation","utf8"),Md=Buffer.from("support_mint","utf8"),Fd=Buffer.from("dynamic_fee_config","utf8"),vd=Buffer.from("permission","utf8");var _d=Buffer.from("locked_position","utf8");import{sha256 as Qi}from"js-sha256";import Fi from"bn.js";import Wd from"decimal.js";var Ud=new Fi(1).shln(256).subn(1);import sp from"bn.js";import Zd from"bn.js";import jd from"decimal.js";import dp from"bn.js";import fp from"decimal.js";import{PublicKey as ef}from"@solana/web3.js";import nf from"bn.js";import{TOKEN_2022_PROGRAM_ID as mf,TOKEN_PROGRAM_ID as df}from"@solana/spl-token";import bf from"decimal.js";import Up from"bn.js";import Rp from"bn.js";import Kf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(Qi.digest(t)).slice(0,8)}qn.span;var ky=E("Raydium_Clmm"),Ty={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as Jt}from"@solana/web3.js";var Ji=p([d("instruction")]),er=p([d("instruction")]),tr=p([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),i("rewardVault"),i("rewardMint"),i("rewardSender"),e("rewardType"),b(e(),15,"padding")]),nr=p([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),or=p([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),d("option"),i("rewardVaultB"),M(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),ir=p([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),b(tr,5,"rewardInfos"),i("creator"),i(),b(e(),32,"padding")]),rr=new Proxy(nr,{get(o,t,n){return t==="decode"?(...r)=>{let s=o.decode(...r);return V(O({},s),{version:3,rewardInfos:[{rewardVault:s.rewardVault,totalReward:s.totalReward,perSlotReward:s.perSlotReward,perShareReward:s.perShareReward}]})}:Reflect.get(o,t,n)}}),ar=new Proxy(or,{get(o,t,n){return t==="decode"?(...r)=>{let s=o.decode(...r);return V(O({},s),{version:5,rewardInfos:[{rewardVault:s.rewardVaultA,totalReward:s.totalRewardA,perSlotReward:s.perSlotRewardA,perShareReward:s.perShareRewardA},{rewardVault:s.rewardVaultB,totalReward:s.totalRewardB,perSlotReward:s.perSlotRewardB,perShareReward:s.perShareRewardB}]})}:Reflect.get(o,t,n)}}),$n=new Proxy(ir,{get(o,t,n){return t==="decode"?(...r)=>{let s=o.decode(...r);return V(O({},s),{version:6,rewardInfos:s.rewardInfos.map(m=>{var a;return V(O({},m),{rewardType:((a=Object.entries(tt).find(u=>String(u[1])===m.rewardType.toString()))!=null?a:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),sr=p([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),ur=p([d("instruction"),e("nonce"),b(sr,5,"rewardTimeInfo")]),cr=p([d("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),lr=p([d("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),gb=p([e("state"),i("id"),i("owner"),e("deposited"),b(e(),1,"rewardDebts")]),jn=p([e("state"),i("id"),i("owner"),e("deposited"),b(L(),1,"rewardDebts"),e(""),e("voteLockedBalance"),b(e(),15)]),Pb=p([e("state"),i("id"),i("owner"),e("deposited"),b(e(),2,"rewardDebts")]),mr=p([e("state"),i("id"),i("owner"),e("deposited"),b(L(),2,"rewardDebts"),b(e(),17)]),dr=p([e(),e("state"),i("id"),i("owner"),e("deposited"),b(L(),5,"rewardDebts"),b(e(),16)]),pr=p([d("instruction"),e("amount")]),fr=p([i("mint"),i("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),bn("digitShift"),b(d(),7,"reserved1"),b(e(),7,"reserved2")]),yr=p([M(8),i("governanceProgramId"),i("realm"),i("realmGoverningTokenMint"),i("realmAuthority"),b(d(),32,"reserved1"),b(fr,4,"votingMints"),Se("timeOffset"),d("bump"),b(d(),7,"reserved2"),b(e(),11,"reserved3")]),br=p([Se("startTime"),Se("endTime"),d("kind"),b(d(),15,"reserved")]),gr=p([b(br,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),d("votingMintConfigIdx"),b(d(),29,"reserved")]),Pr=p([M(8),i("voterAuthority"),i("registrar"),b(gr,32,"deposits"),d("voterBump"),d("voterWweightRecordBump"),b(d(),94,"reserved")]);import{NATIVE_MINT as Kb}from"@solana/spl-token";var xb=E("Raydium_farm_config"),Ar=new Jt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),wr=new Jt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Cb=new Jt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var tt={"Standard SPL":0,"Option tokens":1},Jn={[Nn.toString()]:3,[Mn.toString()]:4,[Fn.toString()]:5,[Gt.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 fg,SystemProgram as yg,SYSVAR_CLOCK_PUBKEY as bg,SYSVAR_RENT_PUBKEY as gg,TransactionInstruction as Pg}from"@solana/web3.js";import wg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Tg,createAssociatedTokenAccountIdempotentInstruction as hg,TOKEN_PROGRAM_ID as Ig}from"@solana/spl-token";import Gb from"bn.js";import{PublicKey as Fb}from"@solana/web3.js";import _b from"bn.js";var og=E("Raydium.farm.util");var Fg=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 hP from"bn.js";import{PublicKey as hw}from"@solana/web3.js";import{AccountLayout as Sw,MintLayout as Kw,NATIVE_MINT as xw,TOKEN_PROGRAM_ID as Rw}from"@solana/spl-token";import SP from"bn.js";import to from"bn.js";var xr=new to(25),Cr=new to(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as HP,TOKEN_PROGRAM_ID as QP}from"@solana/spl-token";import{PublicKey as $P,SystemProgram as jP,SYSVAR_RENT_PUBKEY as JP,TransactionInstruction as eA}from"@solana/web3.js";import uA from"bn.js";var Rr=p([d("instruction"),e("amountIn"),e("minAmountOut")]),Lr=p([d("instruction"),e("maxAmountIn"),e("amountOut")]),GP=p([d("instruction"),d("nonce")]),Or=p([d("instruction"),d("nonce"),e("startTime")]),no=p([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"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),e("swapBase2QuoteFee"),L("swapQuoteInAmount"),L("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"),b(e(),3,"padding")]),zP=p([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"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),L("swapQuoteInAmount"),L("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"),b(e(),64,"padding")]),Nr=p([d("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Mr=p([d("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Fr=p([e("fee")]);var mA=E("Raydium_liquidity_instruction");import{PublicKey as hA}from"@solana/web3.js";import BA from"decimal.js";import{TOKEN_PROGRAM_ID as KA}from"@solana/spl-token";import{PublicKey as yA}from"@solana/web3.js";var PA=E("Raydium_liquidity_serum");import Zw from"bn.js";import jw from"decimal.js";import{TOKEN_PROGRAM_ID as ew}from"@solana/spl-token";import{PublicKey as nw}from"@solana/web3.js";import iw from"bn.js";import{SystemProgram as WA,SYSVAR_RENT_PUBKEY as qA,Transaction as UA,TransactionInstruction as GA}from"@solana/web3.js";import{createInitializeAccountInstruction as XA,TOKEN_PROGRAM_ID as YA}from"@solana/spl-token";function vr(o="accountFlags"){let t=new at(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 _r=p([M(5),vr("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"),M(7)]);import{PublicKey as ST}from"@solana/web3.js";import{AccountLayout as xT,NATIVE_MINT as CT,TOKEN_2022_PROGRAM_ID as RT,TOKEN_PROGRAM_ID as LT,createAssociatedTokenAccountIdempotentInstruction as OT}from"@solana/spl-token";import Tk from"bn.js";import Yr from"bn.js";var uk=new Yr(0);import fk from"bn.js";import Hr from"bn.js";var kt=new Hr(1e6);import DT from"bn.js";import qT from"decimal.js";import{PublicKey as qk,TransactionInstruction as Uk,Keypair as zk,SystemProgram as Xk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Hk,TOKEN_2022_PROGRAM_ID as Qk,TOKEN_PROGRAM_ID as Zk}from"@solana/spl-token";var Kk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),xk=Buffer.from("amm_config","utf8"),Ck=Buffer.from("pool","utf8"),Rk=Buffer.from("pool_lp_mint","utf8"),Lk=Buffer.from("pool_vault","utf8"),Ok=Buffer.from("observation","utf8"),Nk=Buffer.from("permission","utf8"),Mk=Buffer.from("support_mint","utf8"),Fk=Buffer.from("creator_fee_share","utf8");var vk=Buffer.from("locked_liquidity","utf8");var oT=E("Raydium_cpmm"),iT={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 $r=p([M(8),d("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),i("protocolOwner"),i("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),b(e(),14)]),oo=p([M(8),i("configId"),i("poolCreator"),i("vaultA"),i("vaultB"),i("mintLp"),i("mintA"),i("mintB"),i("mintProgramA"),i("mintProgramB"),i("observationId"),d("bump"),d("status"),d("lpDecimals"),d("mintDecimalA"),d("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),d("feeOn"),re("enableCreatorFee"),b(d(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),b(e(),28)]),sT=p([M(8),i("configId"),b(e(),30)]),uT=p([M(8),d("bump"),i("creator"),i("ammConfig"),e("shareRate"),b(e(),8)]);import{PublicKey as ex,SystemProgram as tx}from"@solana/web3.js";import{createTransferInstruction as ox,TOKEN_PROGRAM_ID as ix,TOKEN_2022_PROGRAM_ID as rx,createAssociatedTokenAccountIdempotentInstruction as ax,createSyncNativeInstruction as ux,createTransferCheckedInstruction as cx}from"@solana/spl-token";import Pa from"bn.js";import dx from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Zh,TOKEN_2022_PROGRAM_ID as $h,TOKEN_PROGRAM_ID as jh}from"@solana/spl-token";import{SystemProgram as nI,TransactionInstruction as oI}from"@solana/web3.js";import ea from"bn.js";var Fh=Buffer.from("vault_auth_seed","utf8"),vh=Buffer.from("global_config","utf8"),_h=Buffer.from("pool_vesting","utf8"),Vh=Buffer.from("platform_config","utf8"),Eh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Dh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Wh=Buffer.from("platform_global_access","utf8"),qh=Buffer.from("platform_allow_config","utf8"),Uh=Buffer.from("platform_curve_rule","utf8");var aI={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 sI=new ea("18446744073709551615");var ta=p([e(),e("epoch"),d("curveType"),Y("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"),b(e(),16)]),na=p([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),oa=p([e(),e("epoch"),d("bump"),d("status"),d("mintDecimalsA"),d("mintDecimalsB"),d("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),na.replicate("vestingSchedule"),i("configId"),i("platformId"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("creator"),d("mintProgramFlag"),d("cpmmCreatorFeeOn"),e("platformVestingShare"),b(d(),54)]),mI=p([e(),e("epoch"),i("poolId"),i("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),b(e(),8)]),ia=p([d("migrateType"),d("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),dI=p([e("epoch"),d("index"),i("configId"),ia.replicate("bondingCurveParam"),b(e(),50)]),ro=p([e(),e("epoch"),i("platformClaimFeeWallet"),i("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),b(d(),64,"name"),b(d(),256,"web"),b(d(),256,"img"),i("cpConfigId"),e("creatorFeeRate"),i("transferFeeExtensionAuth"),i("platformVestingWallet"),e("platformVestingScale"),i("platformCpCreator"),d("restrictGlobalConfig"),d("restrictCurveParam"),i("curveRuleManager"),b(d(),78)]),ra=p([d("field"),d("op"),L("value")]),aa=p([Y("groupId"),e("epoch"),xt(ra,"constraints")]),sa=p([e(),d("bump"),d("version"),i("platformId"),i("configId"),e("epoch"),b(e(),8),xt(aa,"groups")]);import{TOKEN_2022_PROGRAM_ID as yI,TOKEN_PROGRAM_ID as bI}from"@solana/spl-token";import ua from"bn.js";var xI=new ua(1e6);import OI from"bn.js";import MI from"decimal.js";import dB from"bn.js";import fB from"decimal.js";import DI from"bn.js";import qI from"decimal.js";import jI from"bn.js";import eB from"decimal.js";import uo from"bn.js";import nn from"decimal.js";var It=class{static _multipler(t){return new nn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new nn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(r))}static getPriceX64({price:t,decimalA:n,decimalB:r}){let s=t.mul(this._multipler(r)).div(this._multipler(n));return new uo(s.mul(this._Q64).toFixed(0))}};It._Q64=new nn(new uo(1).shln(64).toString());import{NATIVE_MINT as CS,TOKEN_2022_PROGRAM_ID as RS,TOKEN_PROGRAM_ID as LS,createAssociatedTokenAccountIdempotentInstruction as NS,createSyncNativeInstruction as MS,getTransferFeeConfig as FS,unpackMint as vS}from"@solana/spl-token";import H from"bn.js";import{PublicKey as ya,SystemProgram as ES}from"@solana/web3.js";import XS from"decimal.js";var YS={initPriceX64:new H("515752397214619"),supply:new H(1e15),totalSellA:new H(7931e11),totalFundRaisingB:new H(85e9),totalFundRaisingBUSD:new H(125e8),totalLockedAmount:new H("0"),cliffPeriod:new H("0"),unlockPeriod:new H("0"),decimals:6,virtualA:new H("1073471847374405"),virtualB:new H("30050573465"),realA:new H(0),realB:new H(0),protocolFee:new H(0),platformId:new ya("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},HS=new H(1e4);var ba={[vn.toBase58()]:3};var ga=p([M(5),M(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"),M(7)]);import{PublicKey as PK}from"@solana/web3.js";var hK=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as OK,TOKEN_2022_PROGRAM_ID as NK,TOKEN_PROGRAM_ID as MK}from"@solana/spl-token";import{PublicKey as vK,SystemProgram as _K,TransactionInstruction as VK}from"@solana/web3.js";import DK from"bn.js";var qx=new Pa(0);import{PublicKey as Aa,Transaction as on,TransactionInstruction as wa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ka}from"@solana/spl-token";import co from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return le([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,s){return le([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new co(s).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:s,chainTime:m}){if(r.length===0)return[];let a=r.map(f=>ee.getPdaPoolId(n,f).publicKey),u=[];for(let f=0;f<ee.VERSION_PROJECT.length;f++)u.push(...a.map(w=>ee.getPdaOwnerId(n,w,s,f).publicKey));let y=await fe(t,[...a,...u]),g=[];for(let f=0;f<y.length;f++){let w=Math.floor(f/r.length),T=f%r.length,A=a[T],x=u[f],k=y[T],S=y[r.length+f];if(!(k&&S)||k.data.length!==ee.POOL_LAYOUT.span||S.data.length!==ee.OWNER_LAYOUT.span)continue;let C=ee.POOL_LAYOUT.decode(k.data),K=ee.OWNER_LAYOUT.decode(S.data),F=C.openTime.toNumber(),v=C.endTime.toNumber(),P=K.tokenInfo.map(R=>R.debtAmount.gt(new co(0))).filter(R=>!R).length!==3,h=m>F&&m<v&&C.status===1,I=P&&h;g.push({programId:n,poolId:A,ammId:C.ammId,ownerAccountId:x,snapshotLpAmount:K.lpAmount,project:ee.VERSION_PROJECT[w],openTime:F,endTime:v,canClaim:I,canClaimErrorType:P?h?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:C.tokenInfo.map((R,N)=>({mintAddress:R.mintAddress,mintVault:R.mintVault,mintDecimals:R.mintDecimals,perLpLoss:R.perLpLoss,debtAmount:K.tokenInfo[N].debtAmount.add(K.tokenInfo[N].claimedAmount)}))})}return g}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let s=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,a=[];for(let g of t.tokenInfo){let{account:f,instructionParams:w}=await this.scope.account.getOrCreateTokenAccount({mint:g.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:g.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!g.mintAddress.equals(J.WSOL.mint),associatedOnly:g.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});w&&s.addInstruction(w),a.push(f)}s.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,ownerPda:t.ownerAccountId,claimAddress:a}})]});let{transaction:u,signers:y}=s.build();return[{transaction:u,signer:y}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let s=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,a={};for(let f of t){let w=[];for(let T of f.tokenInfo){let{account:A,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({mint:T.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:T.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!T.mintAddress.equals(J.WSOL.mint),associatedOnly:T.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});x&&s.addInstruction(x),A&&(a[T.mintAddress.toString()]=A,w.push(A))}s.addInstruction({instructions:[ee.makeClaimInstruction({programId:f.programId,poolInfo:f,ownerInfo:{wallet:m,ownerPda:f.ownerAccountId,claimAddress:w}})]})}let{transaction:u,signers:y}=s.build(),g=s.allInstructions;return Wt(g,[m,...y.map(f=>f.publicKey)])?[{transaction:u,signer:y}]:[{transaction:new on().add(...g.slice(0,s.AllTxData.instructions.length-1)),signer:y},{transaction:new on().add(...g.slice(s.AllTxData.instructions.length-1)),signer:[]},{transaction:new on().add(...s.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let s=p([]),m=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:ka,isSigner:!1,isWritable:!1}],a=Buffer.alloc(s.span);s.encode({},a);let u=Buffer.from([10,66,208,184,161,6,191,98,...a]);return new wa({keys:m,programId:t,data:u})}},se=ee;se.CLAIMED_NUM=3,se.POOL_LAYOUT=p([M(8),d("bump"),d("status"),e("openTime"),e("endTime"),i("ammId"),b(p([d("mintDecimals"),i("mintAddress"),i("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),b(e(),10,"padding")]),se.OWNER_LAYOUT=p([M(8),d("bump"),d("version"),i("poolId"),i("owner"),e("lpAmount"),b(p([i("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),b(e(),4,"padding")]),se.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Aa(t)),se.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},se.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as rC}from"@solana/web3.js";import{getTransferFeeConfig as sC,MintLayout as uC,TOKEN_2022_PROGRAM_ID as cC,TOKEN_PROGRAM_ID as lC,unpackMint as mC}from"@solana/spl-token";var ER=new Te(2),DR=new Te(3),WR=new Te(5),qo=new Te(10),qR=new Te(100),UR=new Te(1e3),GR=new Te(1e4);function Lt(o,t=1,n=[]){let r=[...o];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}var Ie=5e4,Ta=p([e("x"),e("y"),e("price")]),ha=p([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),b(Ta,Ie,"DataElement")]);function Ia(o,t){return[0,Ie-2]}function Ba(o){return[0,Ie-2]}function Sa(o){return[0,Ie-2]}function Ka(o,t,n){let[r,s]=Ia(t,n),m=r,a=s,u=0,y=t*o.multiplier/n;for(;m<=a;){if(u=Math.floor((a+m)/2),u===0||u>=Ie-2)return[u,u,!1];let g=o.DataElement[u].x*o.multiplier/o.DataElement[u].y,f=o.DataElement[u-1].x*o.multiplier/o.DataElement[u-1].y,w=o.DataElement[u+1].x*o.multiplier/o.DataElement[u+1].y;if(y===g)return[u,u,!0];if(y===f)return[u-1,u-1,!0];if(y===w)return[u+1,u+1,!0];if(y<f)a=u-1;else{if(y>f&&y<g)return[u-1,u,!0];if(y>g&&y<w)return[u,u+1,!0];m=u+1}}return[u,u,!1]}function rn(o,t,n){let[r,s,m]=Ka(o,t,n);if(!m)return 0;if(r===s){let a=o.DataElement[r].x;return t*o.multiplier/a}else{let a=o.DataElement[r].x,u=o.DataElement[r].y,y=o.DataElement[s].x,g=o.DataElement[s].y,f=n*(y*u-a*g),w=a*f,T=(y-a)*(t*u-a*n)*g,A=w+T;return t*o.multiplier*f/A}}function he(o,t,n){return t*o.multiplier/n}function lo(o,t,n){return t*n/o.multiplier}function xa(o,t){let[n,r]=Ba(t),s=n,m=r,a=0,u=t;for(;s<m;){if(a=Math.floor((m+s)/2),a<=0||a>Ie-2)return[a,a,!1];let y=o.DataElement[a].x,g=o.DataElement[a-1].x,f=o.DataElement[a+1].x;if(u===y)return[a,a,!0];if(u===g)return[a-1,a-1,!0];if(u===f)return[a+1,a+1,!0];if(u<g)m=a-1;else{if(u>g&&u<y)return[a-1,a,!0];if(u>y&&u<f)return[a,a+1,!0];s=a+1}}return[a,a,!1]}function Ca(o,t){let[n,r]=Sa(t),s=n,m=r,a=0,u=t;for(;s<=m;){if(a=Math.floor((m+s)/2),a<=0||a>=Ie-2)return[a,a,!1];let y=o.DataElement[a].y,g=o.DataElement[a-1].y,f=o.DataElement[a+1].y;if(u===y)return[a,a,!0];if(u===g)return[a-1,a-1,!0];if(u===f)return[a+1,a+1,!0];if(u<f)s=a+1;else{if(u<g&&u>y)return[a-1,a,!0];if(u<y&&u>f)return[a,a+1,!0];m=a-1}}return[a,a,!1]}function mo(o,t,n,r){let s=r?t+n:t-n,[m,a,u]=xa(o,s);if(!u)return[0,0,!1,u];if(m===a)return[o.DataElement[a].price,o.DataElement[a].y,!1,u];{let y=o.DataElement[m].x,g=o.DataElement[a].x,f=o.DataElement[m].price,w=o.DataElement[a].price,T=o.DataElement[m].y,A=o.DataElement[a].y;if(t>=y&&t<=g)return r?[w,A,!0,u]:[f,T,!0,u];{let x,k;return r?(x=f+(w-f)*(t-y)/(g-y),k=T-(s-y)*o.multiplier/w):(x=f+(w-f)*(t-y)/(g-y),k=A+(g-s)*o.multiplier/f),[x,k,!1,u]}}}function Ra(o,t,n,r){let s=r?t-n:t+n,[m,a,u]=Ca(o,s);if(!u)return[0,0,!1,u];if(m===a)return[o.DataElement[a].price,o.DataElement[a].x,!1,u];{let y=o.DataElement[m].x,g=o.DataElement[a].x,f=o.DataElement[m].price,w=o.DataElement[a].price,T=o.DataElement[m].y,A=o.DataElement[a].y;if(t>=A&&t<=T)return r?[w,g,!0,u]:[f,y,!0,u];{let x,k;return r?(x=f+(w-f)*(T-t)/(T-A),k=y+w*(T-s)/o.multiplier):(x=f+(w-f)*(T-t)/(T-A),k=g-f*(s-A)/o.multiplier),[x,k,!1,u]}}}function La(o,t){let n=mo(o,t,0,!1);return n[3]?n[0]:0}function Gr(o,t,n,r){let s=rn(o,t,n),m=he(o,t,s),a=he(o,n,s),u=he(o,r,s),y=!0,[g,f,w,T]=mo(o,m,u,y);if(!T)return 0;if(w)return r*o.multiplier/g;{let A=a-f;return lo(o,A,s)}}function zr(o,t,n,r){let s=rn(o,t,n),m=he(o,t,s),a=he(o,n,s),u=he(o,r,s),y=!1,[g,f,w,T]=Ra(o,a,u,y);if(!T)return 0;if(w)return r*g/o.multiplier;{let A=m-f;return lo(o,A,s)}}function Oa(o){let t=ha.decode(o);return{accountType:t.accountType.toNumber(),status:t.status.toNumber(),multiplier:t.multiplier.toNumber(),validDataCount:t.validDataCount.toNumber(),DataElement:t.DataElement.map(n=>({x:n.x.toNumber(),y:n.y.toNumber(),price:n.price.toNumber()}))}}function Xr(o,t,n,r){let s=La(o,he(o,t,rn(o,t,n)))/o.multiplier;return r?s:1/s}var tn=class{constructor({connection:t,modelDataPubKey:n=zt}){this._layoutData={accountType:0,status:0,multiplier:0,validDataCount:0,DataElement:[]};this.connection=t,this.modelDataPubKey=n}get stableModelData(){return this._layoutData}async initStableModelLayout(){if(this._layoutData.validDataCount===0&&this.connection){let t=await this.connection.getAccountInfo(this.modelDataPubKey);t&&(this._layoutData=Oa(t==null?void 0:t.data))}}};export{Ta as DataElement,tn as StableLayout,Oa as formatLayout,zr as getDxByDyBaseIn,Gr as getDyByDxBaseIn,Xr as getStablePrice,ha as modelDataInfoLayout};
//# sourceMappingURL=stable.mjs.map