UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 87 kB
var Mo=Object.defineProperty,Fo=Object.defineProperties;var vo=Object.getOwnPropertyDescriptors;var dt=Object.getOwnPropertySymbols;var hn=Object.prototype.hasOwnProperty,In=Object.prototype.propertyIsEnumerable;var Tn=(o,e,n)=>e in o?Mo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,M=(o,e)=>{for(var n in e||(e={}))hn.call(e,n)&&Tn(o,n,e[n]);if(dt)for(var n of dt(e))In.call(e,n)&&Tn(o,n,e[n]);return o},D=(o,e)=>Fo(o,vo(e));var me=(o,e)=>{var n={};for(var i in o)hn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&dt)for(var i of dt(o))e.indexOf(i)<0&&In.call(o,i)&&(n[i]=o[i]);return n};import{PublicKey as Qo}from"@solana/web3.js";import Cn,{isBN as Rn}from"bn.js";import{bits as Vo,BitStructure as ls,blob as _o,Blob as ms,cstr as ds,f32 as ps,f32be as fs,f64 as ys,f64be as bs,greedy as gs,Layout as Eo,ns64 as Ps,ns64be as As,nu64 as ws,nu64be as ks,offset as Do,s16 as Ts,s16be as hs,s24 as Is,s24be as Bs,s32 as Wo,s32be as Ss,s40 as Ks,s40be as xs,s48 as Cs,s48be as Rs,s8 as Ls,seq as qo,struct as Os,Structure as Uo,u16 as Go,u16be as Ns,u24 as Ms,u24be as Fs,u32 as zo,u32be as vs,u40 as Vs,u40be as _s,u48 as Es,u48be as Ds,u8 as Xo,UInt as Yo,union as Ws,Union as qs,unionLayoutDiscriminator as Us,utf8 as Gs}from"@solana/buffer-layout";var pt=Eo,Bn=Uo;var _t=Yo;var Sn=Xo,Q=Go;var ft=zo;var ce=Wo;var Kn=qo;var v=_o;var Et=Vo,xn=Do;var Ie=class extends pt{constructor(n,i,a){super(n,a);this.blob=v(n),this.signed=i}decode(n,i=0){let a=new Cn(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new Cn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},yt=class extends pt{constructor(n){super(8,n);this._lower=Et(ft(),!1),this._upper=Et(ft(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),c=this._upper.decode(n,i+this._lower.span);return M(M({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function f(o){return new _t(1,o)}function z(o){return new _t(4,o)}function t(o){return new Ie(8,!1,o)}function F(o){return new Ie(16,!1,o)}function Ln(o){return new Ie(1,!0,o)}function Le(o){return new Ie(8,!0,o)}function On(o){return new Ie(16,!0,o)}var Xe=class extends pt{constructor(n,i,a,c){super(n.span,c);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new Xe(v(32),e=>new Qo(e),e=>e.toBuffer(),o)}function ue(o){return new Xe(Sn(),Zo,Ho,o)}function Zo(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ho(o){return o?1:0}function Nn(o,e){let n=ft("length"),i=m([n,w(o,xn(n,-n.span),"values")]);return new Xe(i,({values:a})=>a,a=>({values:a}),e)}var Dt=class extends Bn{decode(e,n){return super.decode(e,n)}};function m(o,e,n){return new Dt(o,e,n)}function w(o,e,n){let i,a=typeof e=="number"?e:Rn(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let d=Reflect.get(c,"count");i=Rn(d)?d.toNumber():d,Reflect.set(c,"count",i)}return Reflect.get(c,l)},set(c,l,d){return l==="count"&&(i=d),Reflect.set(c,l,d)}});return Kn(o,a,n)}var jo=m([v(8),f("bump"),ue("disableCreatePool"),Q("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),w(t(),15)]),Mn=m([v(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),f("bump"),f("status"),f("lpDecimals"),f("mintDecimalA"),f("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),f("feeOn"),ue("enableCreatorFee"),w(f(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),w(t(),28)]),tu=m([v(8),r("configId"),w(t(),30)]);var Fn=(i=>(i[i.BothToken=0]="BothToken",i[i.OnlyTokenA=1]="OnlyTokenA",i[i.OnlyTokenB=2]="OnlyTokenB",i))(Fn||{});import{PublicKey as ct,TransactionInstruction as fe,Keypair as rs,SystemProgram as Vt}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as lt,TOKEN_2022_PROGRAM_ID as wn,TOKEN_PROGRAM_ID as we}from"@solana/spl-token";import{PublicKey as ei}from"@solana/web3.js";import{get as vn,set as $o}from"lodash";var Wt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Vn={},Jo={};function _(o){let e=vn(Vn,o);if(!e){let n=vn(Jo,o);e=new Wt({name:o,logLevel:n}),$o(Vn,o,e)}return e}import{MINT_SIZE as pu,TOKEN_PROGRAM_ID as fu,getTransferFeeConfig as yu,unpackMint as bu}from"@solana/spl-token";var qt=_("Raydium_accountInfo_util");async function Pe(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=M({batchRequest:!1},n),l=Ut(e,c),d=new Array(l.length).fill([]);if(i){let b=l.map(k=>{let T=o._buildArgs([k.map(A=>A.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:T}}),y=Ut(b,10);d=(await(await Promise.all(y.map(async k=>await o._rpcBatchRequest(k)))).flat()).map(k=>(k.error&&qt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${k.error.message}`),k.result.value.map(T=>{if(T){let{data:A,executable:S,lamports:P,owner:g,rentEpoch:h}=T;return A.length!==2&&A[1]!=="base64"&&qt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(A[0],"base64"),executable:S,lamports:P,owner:new ei(g),rentEpoch:h}}return null})))}else try{d=await Promise.all(l.map(b=>o.getMultipleAccountsInfo(b,a)))}catch(b){b instanceof Error&&qt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return d.flat()}import Te from"bn.js";import _C from"decimal.js";import ui from"big.js";import Nu from"bn.js";import ti from"toformat";var ni=ti,Qe=ni;import gt from"big.js";import ii from"bn.js";import ri from"decimal.js-light";import Ze from"bn.js";var _n=9007199254740991;function ie(o){let e=_("Raydium_parseBigNumberish");if(o instanceof Ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ze(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=_n||o<=-_n)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Ze(String(o))):typeof o=="bigint"?new Ze(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Ze(0))}var bt=_("module/fraction"),Gt=Qe(gt),He=Qe(ri),ai={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},si={[0]:gt.roundDown,[1]:gt.roundHalfUp,[2]:gt.roundUp},U=class{constructor(e,n=new ii(1)){this.numerator=ie(e),this.denominator=ie(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(e){let n=e instanceof U?e:new U(ie(e));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(e){let n=e instanceof U?e:new U(ie(e));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(e){let n=e instanceof U?e:new U(ie(e));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof U?e:new U(ie(e));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||bt.logWithError(`${e} is not an integer.`),e<=0&&bt.logWithError(`${e} is not positive.`),He.set({precision:e+1,rounding:ai[i]});let a=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||bt.logWithError(`${e} is not an integer.`),e<0&&bt.logWithError(`${e} is negative.`),Gt.DP=e,Gt.RM=si[i]||1,new Gt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var qu=_("Raydium_amount"),Uu=Qe(ui);import{PublicKey as li}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as En}from"@solana/spl-token";var Pt={chainId:101,address:li.default.toBase58(),programId:En.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:En.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 zt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Dn,SYSVAR_RENT_PUBKEY as mi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as di}from"@solana/spl-token";function Oe({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var pi=[Oe({pubkey:di,isWritable:!1}),Oe({pubkey:Dn.programId,isWritable:!1}),Oe({pubkey:mi,isWritable:!1})];function Wn({publicKey:o,transformSol:e}){let n=qn(o.toString());if(n instanceof X)return e&&n.equals(Be)?Ae:n;if(e&&n.toString()===Be.toBase58())return Ae;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 qn(o){try{return new X(o)}catch{return o}}var je=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Se=new X("SysvarRent111111111111111111111111111111111"),ju=new X("SysvarC1ock11111111111111111111111111111111"),Ke=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),fi=new X("Sysvar1nstructions1111111111111111111111111"),Un=Dn.programId,$u=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ju=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ec=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),tc=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),nc=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),oc=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ic=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),rc=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ac=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),sc=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),uc=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new X("So11111111111111111111111111111111111111112"),Be=X.default;var Xt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===Be.toBase58()||e instanceof zt&&Be.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new zt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=c?zt.default:Wn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=Xt;ee.WSOL=new Xt(D(M({},de),{mint:de.address}));var Yt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},At=Yt;At.SOL=new Yt(Pt);import yi from"bn.js";var wc=new U(new yi(100));var Sc=_("Raydium_price");import{merge as Dx}from"lodash";import Fc from"axios";var Gn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},bi=D(M({},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 il=_("Raydium_Api");import{PublicKey as Om,SystemProgram as Nm}from"@solana/web3.js";import{AccountLayout as _m,createAssociatedTokenAccountIdempotentInstruction as Em,TOKEN_PROGRAM_ID as Dm,TOKEN_2022_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as Ve,sendAndConfirmTransaction as Jt,SystemProgram as Ti,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import hi from"axios";import{PublicKey as Qt,AddressLookupTableAccount as Fe}from"@solana/web3.js";async function Zt({connection:o,address:e,cluster:n="mainnet"}){let i=await Pe(o,[...new Set(e.map(c=>c.toString()))].map(c=>new Qt(c))),a={};for(let c=0;c<e.length;c++){let l=i[c],d=e[c];if(!l)continue;let b=new Fe({key:d,state:Fe.deserialize(l.data)});a[d.toString()]=b,n==="devnet"?Me[d.toString()]=b:Ne[d.toString()]=b}return a}var Ne={},Ht=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ne[e])return Ne;let n=new Qt(e),i=await o.getAccountInfo(n);return i&&(Ne[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Ne},Me={},jt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Me[e])return Me;let n=new Qt(e),i=await o.getAccountInfo(n);return i&&(Me[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Me};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 zn,Keypair as Yn,PublicKey as gi,Transaction as Qn,TransactionMessage as Pi,VersionedTransaction as Zn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ai}from"@solana/spl-token";var Xn=_("Raydium_txUtil"),Hn=1644;function wt(o){let e=[],n=[];return o.microLamports&&(e.push(zn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(e.push(zn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function ve(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function kt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function $t(o,e){o.length<1&&Xn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Xn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Qn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Hn}catch{return!1}}function Y(o,e){let[n,i]=gi.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function $e({instructions:o,payer:e,signers:n}){return $t(o,[e,...n])}function Je({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=Yn.generate().publicKey.toString()}){let c=new Pi({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Zn(c).serialize()).toString("base64").length<Hn}catch{return!1}}var wi=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ki=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Zn&&(e=wi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function xe(o){let e=[];return o.forEach(n=>{n instanceof Qn&&(n.recentBlockhash||(n.recentBlockhash=Ai.toBase58()),n.feePayer||(n.feePayer=Yn.generate().publicKey)),e.push(ki(n))}),console.log("simulate tx string:",e),e}var Tt=2e3,ht=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await hi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=e==null?void 0:e[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:i}=wt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(Ti.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Ve(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(d=>d!==Ve.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(D(M({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new et;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var p;let{recentBlockHash:c,skipPreflight:l=!0,sendAndConfirm:d,notSendToRpc:b}=a||{},y=c!=null?c:await ve(this.connection,this.blockhashCommitment);if(n.recentBlockhash=y,this.signers.length&&n.sign(...this.signers),xe([n]),(p=this.owner)!=null&&p.isKeyPair)return{txId:d?await Jt(this.connection,n,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),signedTx:n};if(this.signAllTransactions){let k=await this.signAllTransactions([n]);if(this.signers.length)for(let T of k)try{T.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(k[0].serialize(),{skipPreflight:l}),signedTx:k[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var y;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),c=n.filter(p=>p.transaction.instructions.length>0),l=[a,...c.map(p=>p.transaction)],d=[this.signers,...c.map(p=>p.signers)],b=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&d.forEach(p=>{p.some(k=>k.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:d,instructionTypes:b,execute:async p=>{var h;let{sequentially:k,onTxUpdate:T,skipTxCount:A=0,recentBlockHash:S,skipPreflight:P=!0}=p||{},g=S!=null?S:await ve(this.connection,this.blockhashCommitment);if((h=this.owner)!=null&&h.isKeyPair){if(k){let B=[],O=0;for(let N of l){if(++O,O<=A)continue;let I=await Jt(this.connection,N,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});B.push(I)}return{txIds:B,signedTxs:l}}return{txIds:await await Promise.all(l.map(async B=>(B.recentBlockhash=g,await this.connection.sendRawTransaction(B.serialize(),{skipPreflight:P})))),signedTxs:l}}if(this.signAllTransactions){let B=l.map((N,I)=>(N.recentBlockhash=g,d[I].length&&N.sign(...d[I]),N));xe(B);let O=await this.signAllTransactions(B);if(k){let N=0,I=[],x=async()=>{if(!O[N])return;let K=await this.connection.sendRawTransaction(O[N].serialize(),{skipPreflight:P});I.push({txId:K,status:"sent",signedTx:O[N]}),T==null||T([...I]),N++;let C=!1,L=null,V=null,ne=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=I.findIndex(J=>J.txId===K);if(W>-1){if(I[W].status==="error"||I[W].status==="success")return;I[W].status=q.err?"error":"success"}T==null||T([...I]),q.err||x()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),ne({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",K))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,K)}},Tt)),V=this.connection.onSignature(K,q=>{if(C){this.connection.removeSignatureListener(V);return}C=!0,ne(q)},"confirmed"),this.connection.getSignatureStatus(K)};return await x(),{txIds:I.map(K=>K.txId),signedTxs:O}}else{let N=[];for(let I=0;I<O.length;I+=1){let x=await this.connection.sendRawTransaction(O[I].serialize(),{skipPreflight:P});N.push(x)}return{txIds:N,signedTxs:O}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var P;let S=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=S,l=me(S,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),d=M(M({},this.cluster==="devnet"?await jt(this.connection):await Ht(this.connection)),n),b=Array.from(new Set([...i,...this.lookupTableAddress])),y=[];for(let g of b)d[g]===void 0&&y.push(new Ve(g));let p=await Zt({connection:this.connection,address:y});for(let[g,h]of Object.entries(p))d[g]=h;let k=a?Ve.default.toBase58():c!=null?c:await ve(this.connection,this.blockhashCommitment),T=new tt({payerKey:this.feePayer,recentBlockhash:k,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(d));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(g=>g.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let A=new nt(T);return A.sign(this.signers),{builder:this,transaction:A,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var N;let{skipPreflight:h=!0,sendAndConfirm:B,notSendToRpc:O}=g||{};if(xe([A]),(N=this.owner)!=null&&N.isKeyPair){let I=await this.connection.sendTransaction(A,{skipPreflight:h});return B&&await kt(this.connection,I),{txId:I,signedTx:A}}if(this.signAllTransactions){let I=await this.signAllTransactions([A]);if(this.signers.length)for(let x of I)try{x.sign(this.signers)}catch{}return{txId:O?"":await this.connection.sendTransaction(I[0],{skipPreflight:h}),signedTx:I[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var y;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),c=n.filter(p=>p.builder.instructions.length>0),l=[a,...c.map(p=>p.transaction)],d=[this.signers,...c.map(p=>p.signers)],b=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&d.forEach(p=>{p.some(k=>k.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(p,k)=>{p.sign(d[k])}),{builder:this,transactions:l,signers:d,instructionTypes:b,buildProps:i,execute:async p=>{var P;let{sequentially:k,onTxUpdate:T,recentBlockHash:A,skipPreflight:S=!0}=p||{};if(A&&l.forEach(g=>g.message.recentBlockhash=A),xe(l),(P=this.owner)!=null&&P.isKeyPair){if(k){let g=[];for(let h of l){let B=await this.connection.sendTransaction(h,{skipPreflight:S});await kt(this.connection,B),g.push(B)}return{txIds:g,signedTxs:l}}return{txIds:await Promise.all(l.map(async g=>await this.connection.sendTransaction(g,{skipPreflight:S}))),signedTxs:l}}if(this.signAllTransactions){let g=await this.signAllTransactions(l);if(k){let h=0,B=[],O=async()=>{if(!g[h])return;let N=await this.connection.sendTransaction(g[h],{skipPreflight:S});B.push({txId:N,status:"sent",signedTx:g[h]}),T==null||T([...B]),h++;let I=!1,x=null,K=null,C=L=>{x!==null&&clearInterval(x),K!==null&&this.connection.removeSignatureListener(K);let V=B.findIndex(ne=>ne.txId===N);if(V>-1){if(B[V].status==="error"||B[V].status==="success")return;B[V].status=L.err?"error":"success"}T==null||T([...B]),L.err||O()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var L;if(I){clearInterval(x);return}try{let V=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(I=!0,clearInterval(x),C({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",N))}catch(V){I=!0,clearInterval(x),console.error("getTransaction timeout:",V,N)}},Tt)),K=this.connection.onSignature(N,L=>{if(I){this.connection.removeSignatureListener(K);return}I=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(N)};return O(),{txIds:[],signedTxs:g}}else{let h=[];for(let B=0;B<g.length;B+=1){let O=await this.connection.sendTransaction(g[B],{skipPreflight:S});h.push(O)}return{txIds:h,signedTxs:g}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var T;let k=e||{},{splitIns:n=[],computeBudgetConfig:i}=k,a=me(k,["splitIns","computeBudgetConfig"]),c=i?wt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((A,S)=>D(M({},A),{[S.publicKey.toBase58()]:S}),{}),d=[],b=[],y=[],p=0;if(this.allInstructions.forEach(A=>{let S=[...y,A],P=i?[...c.instructions,...S]:S,h=[...new Set(S.map(B=>B.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(B=>new Ve(B));if(A!==n[p]&&y.length<12&&($e({instructions:P,payer:this.feePayer,signers:h})||$e({instructions:S,payer:this.feePayer,signers:h})))y.push(A);else{if(y.length===0)throw Error("item ins too big");p+=A===n[p]?1:0,$e({instructions:i?[...c.instructions,...y]:[...y],payer:this.feePayer,signers:h})?d.push(new et().add(...c.instructions,...y)):d.push(new et().add(...y)),b.push(Array.from(new Set(y.map(B=>B.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(B=>l[B]).filter(B=>B!==void 0)),y=[A]}}),y.length>0){let S=[...new Set(y.map(P=>P.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(P=>l[P]).filter(P=>P!==void 0);$e({instructions:i?[...c.instructions,...y]:[...y],payer:this.feePayer,signers:S.map(P=>P.publicKey)})?d.push(new et().add(...c.instructions,...y)):d.push(new et().add(...y)),b.push(S)}return d.forEach(A=>A.feePayer=this.feePayer),(T=this.owner)!=null&&T.signer&&b.forEach(A=>{A.some(S=>S.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),{builder:this,transactions:d,signers:b,instructionTypes:this.instructionTypes,execute:async A=>{var N;let{sequentially:S,onTxUpdate:P,skipTxCount:g=0,recentBlockHash:h,skipPreflight:B=!0}=A||{},O=h!=null?h:await ve(this.connection,this.blockhashCommitment);if(d.forEach(async(I,x)=>{I.recentBlockhash=O,b[x].length&&I.sign(...b[x])}),xe(d),(N=this.owner)!=null&&N.isKeyPair){if(S){let I=0,x=[];for(let K of d){if(++I,I<=g){x.push("tx skipped");continue}let C=await Jt(this.connection,K,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:B});x.push(C)}return{txIds:x,signedTxs:d}}return{txIds:await Promise.all(d.map(async I=>await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:B}))),signedTxs:d}}if(this.signAllTransactions){let I=await this.signAllTransactions(d.slice(g,d.length)),x=[...d.slice(0,g),...I];if(S){let K=0,C=[],L=async()=>{if(!x[K])return;K<g&&(C.push({txId:"",status:"success",signedTx:x[K]}),P==null||P([...C]),K++,L());let V=await this.connection.sendRawTransaction(x[K].serialize(),{skipPreflight:B});C.push({txId:V,status:"sent",signedTx:x[K]}),P==null||P([...C]),K++;let ne=!1,q=null,W=null,J=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let oe=C.findIndex(be=>be.txId===V);if(oe>-1){if(C[oe].status==="error"||C[oe].status==="success")return;C[oe].status=G.err?"error":"success"}P==null||P([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ne){clearInterval(q);return}try{let oe=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(ne=!0,clearInterval(q),J({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(oe){ne=!0,clearInterval(q),console.error("getTransaction timeout:",oe,V)}},Tt)),W=this.connection.onSignature(V,G=>{if(ne){this.connection.removeSignatureListener(W);return}ne=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:C.map(V=>V.txId),signedTxs:x}}else{let K=[];for(let C=0;C<x.length;C+=1){let L=await this.connection.sendRawTransaction(x[C].serialize(),{skipPreflight:B});K.push(L)}return{txIds:K,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var N;let O=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:l=12}=O,d=me(O,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=M(M({},this.cluster==="devnet"?await jt(this.connection):await Ht(this.connection)),a),y=Array.from(new Set([...this.lookupTableAddress,...c])),p=[];for(let I of y)b[I]===void 0&&p.push(new Ve(I));let k=await Zt({connection:this.connection,address:p});for(let[I,x]of Object.entries(k))b[I]=x;let T=n?wt(n):{instructions:[],instructionTypes:[]},A=await ve(this.connection,this.blockhashCommitment),S=this.signers.reduce((I,x)=>D(M({},I),{[x.publicKey.toBase58()]:x}),{}),P=[],g=[],h=[],B=0;if(this.allInstructions.forEach(I=>{let x=[...h,I],K=n?[...T.instructions,...x]:x;if(I!==i[B]&&h.length<l&&(Je({instructions:K,payer:this.feePayer,lookupTableAddressAccount:b})||Je({instructions:x,payer:this.feePayer,lookupTableAddressAccount:b})))h.push(I);else{if(h.length===0)throw Error("item ins too big");B+=I===i[B]?1:0;let C={};for(let L of[...new Set(y)])b[L]!==void 0&&(C[L]=b[L]);if(n&&Je({instructions:[...T.instructions,...h],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:A})){let L=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...T.instructions,...h]}).compileToV0Message(Object.values(b));P.push(new nt(L))}else{let L=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...h]}).compileToV0Message(Object.values(b));P.push(new nt(L))}g.push(Array.from(new Set(h.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>S[L]).filter(L=>L!==void 0)),h=[I]}}),h.length>0){let x=[...new Set(h.map(K=>K.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(K=>S[K]).filter(K=>K!==void 0);if(n&&Je({instructions:[...T.instructions,...h],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:A})){let K=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...T.instructions,...h]}).compileToV0Message(Object.values(b));P.push(new nt(K))}else{let K=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...h]}).compileToV0Message(Object.values(b));P.push(new nt(K))}g.push(x)}return(N=this.owner)!=null&&N.signer&&g.forEach(I=>{I.some(x=>x.publicKey.equals(this.owner.publicKey))||I.push(this.owner.signer)}),P.forEach((I,x)=>{I.sign(g[x])}),{builder:this,transactions:P,buildProps:e,signers:g,instructionTypes:this.instructionTypes,execute:async I=>{var ne;let{sequentially:x,onTxUpdate:K,skipTxCount:C=0,recentBlockHash:L,skipPreflight:V=!0}=I||{};if(P.map(async(q,W)=>{g[W].length&&q.sign(g[W]),L&&(q.message.recentBlockhash=L)}),xe(P),(ne=this.owner)!=null&&ne.isKeyPair){if(x){let q=0,W=[];for(let J of P){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:V});await kt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(C,P.length)),W=[...P.slice(0,C),...q];if(x){let J=0,G=[],oe=async()=>{if(!W[J])return;if(J<C){G.push({txId:"",status:"success",signedTx:W[J]}),K==null||K([...G]),J++,oe();return}let be=await this.connection.sendTransaction(W[J],{skipPreflight:V});G.push({txId:be,status:"sent",signedTx:W[J]}),K==null||K([...G]),J++;let ze=!1,Re=null,mt=null,kn=he=>{Re!==null&&clearInterval(Re),mt!==null&&this.connection.removeSignatureListener(mt);let ge=G.findIndex(No=>No.txId===be);if(ge>-1){if(G[ge].status==="error"||G[ge].status==="success")return;G[ge].status=he.err?"error":"success"}K==null||K([...G]),he.err||oe()};this.loopMultiTxStatus&&(Re=setInterval(async()=>{var he;if(ze){clearInterval(Re);return}try{let ge=await this.connection.getTransaction(be,{commitment:"confirmed",maxSupportedTransactionVersion:0});ge&&(ze=!0,clearInterval(Re),kn({err:((he=ge.meta)==null?void 0:he.err)||null}),console.log("tx status from getTransaction:",be))}catch(ge){ze=!0,clearInterval(Re),console.error("getTransaction timeout:",ge,be)}},Tt)),mt=this.connection.onSignature(be,he=>{if(ze){this.connection.removeSignatureListener(mt);return}ze=!0,kn(he)},"confirmed"),this.connection.getSignatureStatus(be)};return oe(),{txIds:[],signedTxs:W}}else{let J=[];for(let G=0;G<W.length;G+=1){let oe=await this.connection.sendTransaction(W[G],{skipPreflight:V});J.push(oe)}return{txIds:J,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}};var en=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),re=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=_(n)}createTxBuilder(e){return this.scope.checkOwner(),new ht({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(en(e))}logInfo(...e){this.logger.info(en(e))}logAndCreateError(...e){let n=en(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as cm,SystemProgram as mm}from"@solana/web3.js";import fm from"bn.js";import{createCloseAccountInstruction as Pm,createInitializeAccountInstruction as Am,createTransferInstruction as wm,TOKEN_PROGRAM_ID as km}from"@solana/spl-token";import{Keypair as Hl,PublicKey as jl}from"@solana/web3.js";import em from"bn.js";import{TOKEN_PROGRAM_ID as om}from"@solana/spl-token";var It=m([r("mint"),r("owner"),t("amount"),z("delegateOption"),r("delegate"),f("state"),z("isNativeOption"),t("isNative"),t("delegatedAmount"),z("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as NP,SystemProgram as MP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as vP}from"@solana/spl-token";import{PublicKey as Bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Si}from"@solana/spl-token";function ae(o,e,n){return Y([o.toBuffer(),(n!=null?n:Si).toBuffer(),e.toBuffer()],new Bi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as R}from"@solana/web3.js";var $n=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Jn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),eo=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),tn=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),$m=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ki=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),to=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),no=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Jm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),xi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),oo=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ci=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ri=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),io=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ed=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Li=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),St=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ro=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),td=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Oi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ni=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Mi=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),nd=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),od=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),id=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),rd=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ad=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ke={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import XP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as lb,TOKEN_2022_PROGRAM_ID as mb,TOKEN_PROGRAM_ID as db}from"@solana/spl-token";import{PublicKey as fb}from"@solana/web3.js";import bb from"bn.js";import Pb from"decimal.js";import{TOKEN_PROGRAM_ID as wd}from"@solana/spl-token";import{PublicKey as Id}from"@solana/web3.js";var Fi=m([z("mintAuthorityOption"),r("mintAuthority"),t("supply"),f("decimals"),f("isInitialized"),z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Oy,TOKEN_2022_PROGRAM_ID as Ny,TOKEN_PROGRAM_ID as My}from"@solana/spl-token";import{Keypair as Vy,PublicKey as _y,SystemProgram as Dy,TransactionInstruction as Wy}from"@solana/web3.js";import Uy from"bn.js";import E from"bn.js";var Ee=new E(1).shln(64);var vi=new E(1).shln(128),nn=new E(1).shln(64).subn(1),Vi=new E(1).shln(128).subn(1);var De=new E("4295048016"),We=new E("79226673521066979257578248091"),_i=new E("59543866431248"),Ei=new E("184467440737095516"),Di=new E("15793534762490258745");var on=60,vd=new E("18446743708227953217"),Wi=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var ot=3,ao=100;var so=10,uo=100,Kt=14;var j=new E(0),qe=new E(1),Vd=new E(-1);var _d=new E("18446744073700000000");var qi=m([v(8),f("bump"),Q("index"),r("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Q("tickSpacing"),z("fundFeeRate"),w(z(),1),r("fundOwner"),w(t(),3)]),Ui=m([z("blockTimestamp"),Le("tickCumulative"),w(t(),4)]),co=m([v(8),ue("initialized"),t("recentEpoch"),Q("observationIndex"),r("poolId"),w(Ui,ao,"observations"),w(t(),4)]),Gi=m([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),t("lastUpdateTimestamp"),w(f(),46)]),zi=m([f("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),F("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),F("growthGlobalX64")]),rn=m([v(8),f("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),f("mintDecimalsA"),f("mintDecimalsB"),Q("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),ce("tickCurrent"),z(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),w(F(),4),f("status"),f("feeOn"),v(6),w(zi,ot,"rewardInfos"),v(8*16,"tickArrayBitmap"),w(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Gi.replicate("dynamicFeeInfo"),w(t(),46)]),Xi=m([F("growthInsideLastX64"),t("rewardAmountOwed")]),Yi=m([v(8),f("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),w(Xi,ot,"rewardInfos"),t("recentEpoch"),w(t(),7)]),qd=m([v(8),f("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),w(F(),ot,"rewardGrowthInside"),t("recentEpoch"),w(t(),7)]),Qi=m([ce("tick"),On("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),w(F(),ot,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),F("unfilledRatioX64"),w(z(),3)]),lo=m([v(8),r("poolId"),ce("startTickIndex"),w(Qi,on,"ticks"),f("initializedTickCount"),t("recentEpoch"),w(f(),107)]),Zi=m([v(8),f("bump"),w(r(),so,"operationOwners"),w(r(),uo,"whitelistMints")]),Hi=m([v(8),r("poolId"),r("owner"),ce("tick"),ue("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),F("unfilledRatioX64"),w(t(),4)]),mo=m([v(8),r("poolId"),v(8*8*Kt,"positiveTickArrayBitmap"),v(8*8*Kt,"negativeTickArrayBitmap")]),Ud=m([v(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),w(t(),8)]),ji=m([v(8),r("wallet"),f("nonceIndex"),t("orderNonce"),w(t(),4)]),Gd=m([t(),f("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),w(t(),8)]),$i=m([v(8),f("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),w(t(),8)]);import Yd from"bn.js";var ip=Buffer.from("amm_config","utf8"),er=Buffer.from("pool","utf8"),tr=Buffer.from("pool_vault","utf8"),rp=Buffer.from("pool_reward_vault","utf8"),ap=Buffer.from("position","utf8"),sp=Buffer.from("tick_array","utf8"),up=Buffer.from("operation","utf8"),cp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),lp=Buffer.from("observation","utf8"),mp=Buffer.from("support_mint","utf8"),dp=Buffer.from("dynamic_fee_config","utf8"),pp=Buffer.from("permission","utf8");function xt(o){return Y([Buffer.from("metadata","utf8"),Ke.toBuffer(),o.toBuffer()],Ke)}var fp=Buffer.from("locked_position","utf8");import{sha256 as br}from"js-sha256";import nr from"bn.js";import Pp from"decimal.js";var wp=new nr(1).shln(256).subn(1);import _p from"bn.js";import Kp from"bn.js";import Cp from"decimal.js";import Up from"bn.js";import zp from"decimal.js";import{PublicKey as Of}from"@solana/web3.js";import Mf from"bn.js";import{TOKEN_2022_PROGRAM_ID as qf,TOKEN_PROGRAM_ID as Uf}from"@solana/spl-token";import Yf from"decimal.js";import kf from"bn.js";import uf from"bn.js";import iy from"bn.js";function $(o){let e=`global:${o}`;return Buffer.from(br.digest(e)).slice(0,8)}co.span;var jy=_("Raydium_Clmm"),$y={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 cn}from"@solana/web3.js";var wr=m([f("instruction")]),kr=m([f("instruction")]),Tr=m([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),F("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),w(t(),15,"padding")]),hr=m([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),F("perShareReward"),t("lastSlot"),t("perSlotReward")]),Ir=m([t("state"),t("nonce"),r("lpVault"),r("rewardVaultA"),t("totalRewardA"),F("perShareRewardA"),t("perSlotRewardA"),f("option"),r("rewardVaultB"),v(7),t("totalRewardB"),F("perShareRewardB"),t("perSlotRewardB"),t("lastSlot"),r()]),Br=m([t(),t("state"),t("nonce"),t("validRewardTokenNum"),F("rewardMultiplier"),t("rewardPeriodMax"),t("rewardPeriodMin"),t("rewardPeriodExtend"),r("lpMint"),r("lpVault"),w(Tr,5,"rewardInfos"),r("creator"),r(),w(t(),32,"padding")]),Sr=new Proxy(hr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(M({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,e,n)}}),Kr=new Proxy(Ir,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(M({},a),{version:5,rewardInfos:[{rewardVault:a.rewardVaultA,totalReward:a.totalRewardA,perSlotReward:a.perSlotRewardA,perShareReward:a.perShareRewardA},{rewardVault:a.rewardVaultB,totalReward:a.totalRewardB,perSlotReward:a.perSlotRewardB,perShareReward:a.perShareRewardB}]})}:Reflect.get(o,e,n)}}),Po=new Proxy(Br,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(M({},a),{version:6,rewardInfos:a.rewardInfos.map(c=>{var l;return D(M({},c),{rewardType:((l=Object.entries(at).find(d=>String(d[1])===c.rewardType.toString()))!=null?l:["Standard SPL"])[0]})})})}:Reflect.get(o,e,n)}}),xr=m([t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Cr=m([f("instruction"),t("nonce"),w(xr,5,"rewardTimeInfo")]),Rr=m([f("instruction"),t("rewardReopenTime"),t("rewardEndTime"),t("rewardPerSecond")]),Lr=m([f("instruction"),t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),jb=m([t("state"),r("id"),r("owner"),t("deposited"),w(t(),1,"rewardDebts")]),Ao=m([t("state"),r("id"),r("owner"),t("deposited"),w(F(),1,"rewardDebts"),t(""),t("voteLockedBalance"),w(t(),15)]),$b=m([t("state"),r("id"),r("owner"),t("deposited"),w(t(),2,"rewardDebts")]),Or=m([t("state"),r("id"),r("owner"),t("deposited"),w(F(),2,"rewardDebts"),w(t(),17)]),Nr=m([t(),t("state"),r("id"),r("owner"),t("deposited"),w(F(),5,"rewardDebts"),w(t(),16)]),Mr=m([f("instruction"),t("amount")]),Fr=m([r("mint"),r("grantAuthority"),t("baselineVoteWeightScaledFactor"),t("maxExtraLockupVoteWeightScaledFactor"),t("lockupSaturationSecs"),Ln("digitShift"),w(f(),7,"reserved1"),w(t(),7,"reserved2")]),vr=m([v(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),w(f(),32,"reserved1"),w(Fr,4,"votingMints"),Le("timeOffset"),f("bump"),w(f(),7,"reserved2"),w(t(),11,"reserved3")]),Vr=m([Le("startTime"),Le("endTime"),f("kind"),w(f(),15,"reserved")]),_r=m([w(Vr,1,"lockup"),t("amountDeposited_native"),t("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),f("votingMintConfigIdx"),w(f(),29,"reserved")]),Er=m([v(8),r("voterAuthority"),r("registrar"),w(_r,32,"deposits"),f("voterBump"),f("voterWweightRecordBump"),w(f(),94,"reserved")]);import{NATIVE_MINT as sg}from"@solana/spl-token";var ug=_("Raydium_farm_config"),Dr=new cn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Wr=new cn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var cg=new cn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var at={"Standard SPL":0,"Option tokens":1},wo={[$n.toString()]:3,[Jn.toString()]:4,[eo.toString()]:5,[tn.toString()]:6,[ke.FARM_PROGRAM_ID_V3.toString()]:3,[ke.FARM_PROGRAM_ID_V4.toString()]:4,[ke.FARM_PROGRAM_ID_V5.toString()]:5,[ke.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Qg,SystemProgram as Zg,SYSVAR_CLOCK_PUBKEY as Hg,SYSVAR_RENT_PUBKEY as jg,TransactionInstruction as $g}from"@solana/web3.js";import eP from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as nP,createAssociatedTokenAccountIdempotentInstruction as oP,TOKEN_PROGRAM_ID as iP}from"@solana/spl-token";import Ig from"bn.js";import{PublicKey as yg}from"@solana/web3.js";import gg from"bn.js";var Vg=_("Raydium.farm.util");var yP=_("Raydium_farm_instruction"),bP={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 oA from"bn.js";import{PublicKey as mk}from"@solana/web3.js";import{AccountLayout as fk,MintLayout as yk,NATIVE_MINT as bk,TOKEN_PROGRAM_ID as Pk}from"@solana/spl-token";import aA from"bn.js";import To from"bn.js";var Zr=new To(25),Hr=new To(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as xA,TOKEN_PROGRAM_ID as CA}from"@solana/spl-token";import{PublicKey as LA,SystemProgram as OA,SYSVAR_RENT_PUBKEY as NA,TransactionInstruction as MA}from"@solana/web3.js";import qA from"bn.js";var jr=m([f("instruction"),t("amountIn"),t("minAmountOut")]),$r=m([f("instruction"),t("maxAmountIn"),t("amountOut")]),IA=m([f("instruction"),f("nonce")]),Jr=m([f("instruction"),f("nonce"),t("startTime")]),ho=m([t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalValue"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),F("swapBaseInAmount"),F("swapQuoteOutAmount"),t("swapBase2QuoteFee"),F("swapQuoteInAmount"),F("swapBaseOutAmount"),t("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),t("lpReserve"),w(t(),3,"padding")]),BA=m([t("accountType"),t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalsValue"),t("abortTradeFactor"),t("priceTickMultiplier"),t("priceTick"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),F("swapBaseInAmount"),F("swapQuoteOutAmount"),F("swapQuoteInAmount"),F("swapBaseOutAmount"),t("swapQuote2BaseFee"),t("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),w(t(),64,"padding")]),ea=m([f("instruction"),t("baseAmountIn"),t("quoteAmountIn"),t("fixedSide"),t("otherAmountMin")]),ta=m([f("instruction"),t("lpAmount"),t("baseAmountMin"),t("quoteAmountMin")]);var na=m([t("fee")]);var zA=_("Raydium_liquidity_instruction");var oa=5e4,ia=m([t("x"),t("y"),t("price")]),ZA=m([t("accountType"),t("status"),t("multiplier"),t("validDataCount"),w(ia,oa,"DataElement")]);import{PublicKey as sw}from"@solana/web3.js";import cw from"decimal.js";import{TOKEN_PROGRAM_ID as mw}from"@solana/spl-token";import{PublicKey as JA}from"@solana/web3.js";var nw=_("Raydium_liquidity_serum");import _k from"bn.js";import Dk from"decimal.js";import{TOKEN_PROGRAM_ID as _w}from"@solana/spl-token";import{PublicKey as Dw}from"@solana/web3.js";import qw from"bn.js";import{SystemProgram as Bw,SYSVAR_RENT_PUBKEY as Sw,Transaction as Kw,TransactionInstruction as xw}from"@solana/web3.js";import{createInitializeAccountInstruction as Rw,TOKEN_PROGRAM_ID as Lw}from"@solana/spl-token";function ra(o="accountFlags"){let e=new yt(o);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var aa=m([v(5),ra("accountFlags"),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),v(7)]);import{PublicKey as mT}from"@solana/web3.js";import{AccountLayout as pT,NATIVE_MINT as fT,TOKEN_2022_PROGRAM_ID as yT,TOKEN_PROGRAM_ID as bT,createAssociatedTokenAccountIdempotentInstruction as gT}from"@solana/spl-token";import Bo from"bn.js";import Nt from"bn.js";function mn(o,e){if(e.isZero())throw Error("divisor is zero");return o.mod(e)}function pa(o,e){if(e.isZero())throw Error("rhs is zero");let n=o.div(e);return mn(o,e).gt(st)&&(n=n.add(new Nt(1))),[n,e]}var st=new Nt(0),ut=class{static swapBaseInputWithoutFees(e,n,i){let a=e.mul(i),c=n.add(e);return a.div(c)}static swapBaseOutputWithoutFees(e,n,i){let a=n.mul(e),c=i.sub(e),[l]=pa(a,c);return l}static lpTokensToTradingTokens(e,n,i,a,c){let l=e.mul(i).div(n),d=e.mul(a).div(n);if(c===0)return{tokenAmount0:l,tokenAmount1:d};if(c===1)return mn(e.mul(i),n).gt(st)&&l.gt(st)&&(l=l.add(new Nt(1))),mn(e.mul(a),n).gt(st)&&d.gt(st)&&(d=d.add(new Nt(1))),{tokenAmount0:l,tokenAmount1:d};throw Error("roundDirection value error")}};import ya from"bn.js";import fa from"bn.js";var pe=new fa(1e6);var se=class{static tradingFee(e,n){return Ft(e,n,pe)}static protocolFee(e,n){return Mt(e,n,pe)}static fundFee(e,n){return Mt(e,n,pe)}static creatorFee(e,n){return Ft(e,n,pe)}static splitCreatorFee(e,n,i){return Mt(e,i,n.add(i))}static calculatePreFeeAmount(e,n){if(n.isZero())return e;let i=e.mul(pe),a=pe.sub(n);return i.add(a).sub(new ya(1)).div(a)}};var Io=(n=>(n[n.Floor=0]="Floor",n[n.Ceiling=1]="Ceiling",n))(Io||{}),ba=(n=>(n[n.ZeroForOne=0]="ZeroForOne",n[n.OneForZero=1]="OneForZero",n))(ba||{}),ga=(n=>(n[n.OneForZero=0]="OneForZero",n[n.ZeroForOne=1]="ZeroForOne",n))(ga||{}),dn=class{static validate_supply(e,n){if(e.isZero())throw Error("tokenAmount0 is zero");if(n.isZero())throw Error("tokenAmount1 is zero")}static swapBaseInput(e,n,i,a,c,l,d,b){let y=new Bo(0),p=se.tradingFee(e,a),k;b?(y=se.creatorFee(e,c),k=e.sub(p).sub(y)):k=e.sub(p);let T=se.protocolFee(p,l),A=se.protocolFee(p,d),S=ut.swapBaseInputWithoutFees(k,n,i),P;return b?P=S:(y=se.creatorFee(S,c),P=S.sub(y)),{newInputVaultAmount:n.add(k),newOutputVaultAmount:i.sub(S),inputAmount:e,outputAmount:P,tradeFee:p,protocolFee:T,fundFee:A,creatorFee:y}}static swapBaseOutput(e,n,i,a,c,l,d,b){let y,p=new Bo(0),k;if(b)k=e;else{let g=se.calculatePreFeeAmount(e,c);p=g.sub(e),k=g}let T=ut.swapBaseOutputWithoutFees(k,n,i),A;if(b){let g=se.calculatePreFeeAmount(T,a.add(c)),h=g.sub(T);p=se.splitCreatorFee(h,a,c),y=h.sub(p),A=g}else{let g=se.calculatePreFeeAmount(T,a);y=g.sub(T),A=g}let S=se.protocolFee(y,l),P=se.fundFee(y,d);return{newInputVaultAmount:n.add(T),newOutputVaultAmount:i.sub(k),inputAmount:A,outputAmount:e,tradeFee:y,protocolFee:S,fundFee:P,creatorFee:p}}};import BT from"bn.js";import KT from"decimal.js";var Pa=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Aa=Buffer.from("amm_config","utf8"),wa=Buffer.from("pool","utf8"),ka=Buffer.from("pool_lp_mint","utf8"),Ta=Buffer.from("pool_vault","utf8"),ha=Buffer.from("observation","utf8"),Ia=Buffer.from("permission","utf8"),Ba=Buffer.from("support_mint","utf8");function pn(o){return Y([Pa],o)}function uT(o,e){return Y([Aa,Ka(e)],o)}function fn(o,e,n,i){return Y([wa,e.toBuffer(),n.toBuffer(),i.toBuffer()],o)}function Sa(o,e){return Y([ka,e.toBuffer()],o)}function So(o,e,n){return Y([Ta,e.toBuffer(),n.toBuffer()],o)}function yn(o,e){return Y([ha,e.toBuffer()],o)}function Ka(o){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,o,!1),new Uint8Array(e)}function xa({poolId:o,programId:e,configId:n,mintA:i,mintB:a}){let c=pn(e).publicKey,l=o||fn(e,n,i,a).publicKey,d=Sa(e,l).publicKey,b=So(e,l,i).publicKey,y=So(e,l,a).publicKey,p=yn(e,l).publicKey;return{poolId:l,configId:n,authority:c,lpMint:d,vaultA:b,vaultB:y,observationId:p}}var Ca=Buffer.from("locked_liquidity","utf8");function bn(o,e){return Y([Ca,e.toBuffer()],o)}function Ra(o,e){return Y([Ia,e.toBuffer()],o)}function La(o,e){return Y([Ba,e.toBuffer()],o)}import{PublicKey as cK,SystemProgram as lK}from"@solana/web3.js";import{createTransferInstruction as dK,TOKEN_PROGRAM_ID as pK,TOKEN_2022_PROGRAM_ID as fK,createAssociatedTokenAccountIdempotentInstruction as yK,createSyncNativeInstruction as gK,createTransferCheckedInstruction as PK}from"@solana/spl-token";import ts from"bn.js";import kK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as xh,TOKEN_2022_PROGRAM_ID as Ch,TOKEN_PROGRAM_ID as Rh}from"@solana/spl-token";import{SystemProgram as Mh,TransactionInstruction as Fh}from"@solana/web3.js";import za from"bn.js";var Wa=m([t(),t("epoch"),f("curveType"),Q("index"),t("migrateFee"),t("tradeFeeRate"),t("maxShareFeeRate"),t("minSupplyA"),t("maxLockRate"),t("minSellRateA"),t("minMigrateRateA"),t("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),w(t(),16)]),qa=m([t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod"),t("startTime"),t("totalAllocatedShare")]),Ua=m([t(),t("epoch"),f("bump"),f("status"),f("mintDecimalsA"),f("mintDecimalsB"),f("migrateType"),t("supply"),t("totalSellA"),t("virtualA"),t("virtualB"),t("realA"),t("realB"),t("totalFundRaisingB"),t("protocolFee"),t("platformFee"),t("migrateFee"),qa.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),f("mintProgramFlag"),f("cpmmCreatorFeeOn"),t("platformVestingShare"),w(f(),54)]),ch=m([t(),t("epoch"),r("poolId"),r("beneficiary"),t("claimedAmount"),t("tokenShareAmount"),w(t(),8)]),Ko=m([f("migrateType"),f("migrateCpmmFeeOn"),t("supply"),t("totalSellA"),t("totalFundRaisingB"),t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod")]),Ga=m([t("epoch"),f("index"),r("configId"),Ko.replicate("bondingCurveParam"),w(t(),50)]),xo=m([t(),t("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),t("platformScale"),t("creatorScale"),t("burnScale"),t("feeRate"),w(f(),64,"name"),w(f(),256,"web"),w(f(),256,"img"),r("cpConfigId"),t("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),t("platformVestingScale"),r("platformCpCreator"),f("restrictGlobalConfig"),w(f(),107),Nn(Ga,"platformCurve")]);var fh=Buffer.from("vault_auth_seed","utf8"),yh=Buffer.from("global_config","utf8"),bh=Buffer.from("pool_vesting","utf8"),gh=Buffer.from("platform_config","utf8"),Ph=Buffer.from("platform_fee_vault_auth_seed","utf8"),Ah=Buffer.from("creator_fee_vault_auth_seed","utf8"),wh=Buffer.from("platform_global_access","utf8"),kh=Buffer.from("platform_allow_config","utf8");var Eh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var Dh=new za("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Gh,TOKEN_PROGRAM_ID as zh}from"@solana/spl-token";import Zh from"bn.js";import jh from"decimal.js";import CI from"bn.js";import LI from"decimal.js";import oI from"bn.js";import rI from"decimal.js";import yI from"bn.js";import gI from"decimal.js";import Lo from"bn.js";import Pn from"decimal.js";var vt=class{static _multipler(e){return new Pn(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new Pn(e.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:n,decimalB:i}){let a=e.mul(this._multipler(i)).div(this._multipler(n));return new Lo(a.mul(this._Q64).toFixed(0))}};vt._Q64=new Pn(new Lo(1).shln(64).toString());import{NATIVE_MINT as EB,TOKEN_2022_PROGRAM_ID as DB,TOKEN_PROGRAM_ID as WB,createAssociatedTokenAccountIdempotentInstruction as UB,createSyncNativeInstruction as GB,getTransferFeeConfig as zB,unpackMint as XB}from"@solana/spl-token";import H from"bn.js";import{PublicKey as $a,SystemProgram as ZB}from"@solana/web3.js";import nS from"decimal.js";var oS={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 $a("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},iS=new H(1e4);var Ja={[to.toBase58()]:3};var es=m([v(5),v(8),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),v(7)]);import{PublicKey as KS}from"@solana/web3.js";var OS=_("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as WS,TOKEN_2022_PROGRAM_ID as qS,TOKEN_PROGRAM_ID as US}from"@solana/spl-token";import{PublicKey as zS,SystemProgram as XS,TransactionInstruction as YS}from"@solana/web3.js";import ZS from"bn.js";var jK=new ts(0);import{PublicKey as ns,Transaction as An,TransactionInstruction as os}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as is}from"@solana/spl-token";import Oo from"bn.js";var te=class extends re{static getPdaPoolId(e,n){return Y([te.SEED_CONFIG.pool.id,n.toBuffer()],e)}static getPdaOwnerId(e,n,i,a){return Y([te.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new Oo(a).toArray())],e)}static async getAllInfo({connection:e,programId:n,poolIds:i,wallet:a,chainTime:c}){if(i.length===0)return[];let l=i.map(p=>te.getPdaPoolId(n,p).publicKey),d=[];for(let p=0;p<te.VERSION_PROJECT.length;p++)d.push(...l.map(k=>te.getPdaOwnerId(n,k,a,p).publicKey));let b=await Pe(e,[...l,...d]),y=[];for(let p=0;p<b.length;p++){let k=Math.floor(p/i.length),T=p%i.length,A=l[T],S=d[p],P=b[T],g=b[i.length+p];if(!(P&&g)||P.data.length!==te.POOL_LAYOUT.span||g.data.length!==te.OWNER_LAYOUT.span)continue;let h=te.POOL_LAYOUT.decode(P.data),B=te.OWNER_LAYOUT.decode(g.data),O=h.openTime.toNumber(),N=h.endTime.toNumber(),I=B.tokenInfo.map(C=>C.debtAmount.gt(new Oo(0))).filter(C=>!C).length!==3,x=c>O&&c<N&&h.status===1,K=I&&x;y.push({programId:n,poolId:A,ammId:h.ammId,ownerAccountId:S,snapshotLpAmount:B.lpAmount,project:te.VERSION_PROJECT[k],openTime:O,endTime:N,canClaim:K,canClaimErrorType:I?x?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:h.tokenInfo.map((C,L)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:B.tokenInfo[L].debtAmount.add(B.tokenInfo[L].claimedAmount)}))})}return y}async makeClaimTransaction({poolInfo:e,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,l=[];for(let y of e.tokenInfo){let{account:p,instructionParams:k}=await this.scope.account.getOrCreateTokenAccount({mint:y.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:y.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!y.mintAddress.equals(ee.WSOL.mint),associatedOnly:y.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});k&&a.addInstruction(k),l.push(p)}a.addInstruction({instructions:[te.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:c,ownerPda:e.ownerAccountId,claimAddress:l}})]});let{transaction:d,signers:b}=a.build();return[{transaction:d,signer:b}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,l={};for(let p of e){let k=[];for(let T of p.tokenInfo){let{account:A,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({mint:T.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:T.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!T.mintAddress.equals(ee.WSOL.mint),associatedOnly:T.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});S&&a.addInstruction(S),A&&(l[T.mintAddress.toString()]=A,k.push(A))}a.addInstruction({instructions:[te.makeClaimInstruction({programId:p.programId,poolInfo:p,ownerInfo:{wallet:c,ownerPda:p.ownerAccountId,claimAddress:k}})]})}let{transaction:d,signers:b}=a.build(),y=a.allInstructions;return $t(y,[c,...b.map(p=>p.publicKey)])?[{transaction:d,signer:b}]:[{transaction:new An().add(...y.slice(0,a.AllTxData.instructions.length-1)),signer:b},{transaction:new An().add(...y.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new An().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:n,ownerInfo:i}){let a=m([]),c=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(b=>({pubkey:b,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:b})=>({pubkey:b,isSigner:!1,isWritable:!0})),{pubkey:is,isSigner:!1,isWritable:!1}],l=Buffer.alloc(a.span);a.encode({},l);let d=Buffer.from([10,66,208,184,161,6,191,98,...l]);return new os({keys:c,programId:e,data:d})}},le=te;le.CLAIMED_NUM=3,le.POOL_LAYOUT=m([v(8),f("bump"),f("status"),t("openTime"),t("endTime"),r("ammId"),w(m([f("mintDecimals"),r("mintAddress"),r("mintVault"),t("perLpLoss"),t("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),w(t(),10,"padding")]),le.OWNER_LAYOUT=m([v(8),f("bump"),f("version"),r("poolId"),r("owner"),t("lpAmount"),w(m([r("mintAddress"),t("debtAmount"),t("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),w(t(),4,"padding")]),le.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new ns(e)),le.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},le.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as fx}from"@solana/web3.js";import{getTransferFeeConfig as bx,MintLayout as gx,TOKEN_2022_PROGRAM_ID as Px,TOKEN_PROGRAM_ID as Ax,unpackMint as wx}from"@solana/spl-token";var QC=new Te(2),ZC=new Te(3),HC=new Te(5),ci=new Te(10),jC=new Te(100),$C=new Te(1e3),JC=new Te(1e4);function Ft(o,e,n){return o.mul(e).add(n).sub(new Te(1)).div(n)}function Mt(o,e,n){return o.mul(e).div(n)}function Ut(o,e=1,n=[]){let i=[...o];if(e<=0)return n;for(;i.length;)n.push(i.splice(0,e));return n}var as=_("Raydium_cpmm"),ye={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])};function Oa(o,e,n,i,a,c,l,d,b,y,p,k,T,A,S,P,g,h,B,O,N){let I=m([t("amountMaxA"),t("amountMaxB"),t("openTime")]),x=fn(o,n,c,l).publicKey,K=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!a.equals(x),isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!0},{pubkey:T,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:S,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},{pubkey:lt,isSigner:!1,isWritable:!1},{pubkey:Un,isSigner:!1,isWritable:!1},{pubkey:Se,isSigner:!1,isWritable:!1},...(N!=null?N:[]).map(L=>({pubkey:L,isSigner:!1,isWritable:!1}))],C=Buffer.alloc(I.span);return I.encode({amountMaxA:h,amountMaxB:B,openTime:O},C),new fe({keys:K,programId:o,data:Buffer.from([...ye.initialize,...C])})}function Na(o,e,n,i,a,c,l,d,b,y,p,k,T,A,S){let P=m([t("lpAmount"),t("amountMaxA"),t("amountMaxB")]),g=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:wn,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!0}],h=Buffer.alloc(P.span);return as.debug("cpmm deposit data",{lpAmount:T.toString(),amountMaxA:A.toString(),amountMaxB:S.toString()}),P.encode({lpAmount:T,amountMaxA:A,amountMaxB:S},h),new fe({keys:g,programId:o,data:Buffer.from([...ye.deposit,...h])})}function Ma(o,e,n,i,a,c,l,d,b,y,p,k,T,A,S){let P=m([t("lpAmount"),t("amountMinA"),t("amountMinB")]),g=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:wn,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!0},{pubkey:je,isSigner:!1,isWritable:!1}],h=Buffer.alloc(P.span);return P.encode({lpAmount:T,amountMinA:A,amountMinB:S},h),new fe({keys:g,programId:o,data:Buffer.from([...ye.withdraw,...h])})}function gn(o,e,n,i,a,c,l,d,b,y,p,k,T,A,S,P){let g=m([t("amountIn"),t("amounOutMin")]),h=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:T,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!0}],B=Buffer.alloc(g.span);return g.encode({amountIn:S,amounOutMin:P},B),new fe({keys:h,programId:o,data:Buffer.from([...ye.swapBaseInput,...B])})}function Fa(o,e,n,i,a,c,l,d,b,y,p,k,T,A,S,P){let g=m([t("amountInMax"),t("amountOut")]),h=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:T,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!0}],B=Buffer.alloc(g.span);return g.encode({amountInMax:S,amountOut:P},B),new fe({keys:h,programId:o,data:Buffer.from([...ye.swapBaseOutput,...B])})}async function va(o){var g;let{ownerInfo:e,poolInfo:n,poolKeys:i,feeNftOwner:a,getEphemeralSigners:c}=o,l=[],[d,b]=[new ct(n.id),new ct(n.lpMint.address)],y;if(c)y=new ct((await c(1))[0]);else{let h=rs.generate();l.push(h),y=h.publicKey}let{publicKey:p}=ae(a,y,we),{publicKey:k}=xt(y),{publicKey:T}=bn(o.lockProgram,y),{publicKey:A}=ae(e.wallet,b,we),{publicKey:S}=ae(o.lockAuthProgram,b,we),P=ss({programId:o.lockProgram,auth:o.lockAuthProgram,payer:e.feePayer,liquidityOwner:e.wallet,nftOwner:a,nftMint:y,nftAccount:p,poolId:d,lockPda:T,mintLp:b,userLpVault:A,lockLpVault:S,poolVaultA:new ct(i.vault.A),poolVaultB:new ct(i.vault.B),metadataAccount:k,lpAmount:o.lpAmount,withMetadata:(g=o.withMetadata)!=null?g:!0});return{address:{nftMint:y,nftAccount:p,metadataAccount:k,lockPda:T,userLpVault:A,lockLpVault:S},instructions:[P],signers:l,instructionTypes:[Z.CpmmLockLp],lookupTableAddress:[]}}function ss({programId:o,auth:e,payer:n,liquidityOwner:i,nftOwner:a,nftMint:c,nftAccount:l,poolId:d,lockPda:b,mintLp:y,userLpVault:p,lockLpVault:k,poolVaultA:T,poolVaultB:A,metadataAccount:S,lpAmount:P,withMetadata:g}){let h=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!0,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!0},{pubkey:T,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:S,isSigner:!1,isWritable:!0},{pubkey:Se,isSigner:!1,isWritable:!1},{pubkey:Vt.programId,isSigner:!1,isWritable:!1},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:lt,isSigner:!1,isWritable:!1},{pubkey:Ke,isSigner:!1,isWritable:!1}],B=m([t("lpAmount"),ue("withMetadata")]),O=Buffer.alloc(B.span);B.encode({lpAmount:P,withMetadata:g},O);let N=Buffer.from([...ye.lockCpLiquidity,...O]);return new fe({keys:h,programId:o,data:N})}function Va({programId:o,nftOwner:e,auth:n,nftAccount:i,lockPda:a,poolId:c,mintLp:l,userVaultA:d,userVaultB:b,poolVaultA:y,poolVaultB:p,mintA:k,mintB:T,lockLpVault:A,lpFeeAmount:S,cpmmProgram:P,cpmmAuthProgram:g}){let h=[{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:P!=null?P:St,isSigner:!1,isWritable:!1},{pubkey:g!=null?g:ro,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:T,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:wn,isSigner:!1,isWritable:!1},{pubkey:je,isSigner:!1,isWritable:!1}],B=m([t("lpFeeAmount")]),O=Buffer.alloc(B.span);B.encode({lpFeeAmount:S},O);let N=Buffer.from([...ye.collectCpFee,...O]);return new fe({keys:h,programId:o,data:N})}function _a(o,e,n,i,a,c,l,d,b,y,p,k,T){let A=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:T,isSigner:!1,isWritable:!1},{pubkey:lt,isSigner:!1,isWritable:!1},{pubkey:Vt.programId,isSigner:!1,isWritable:!1}];return new fe({keys:A,programId:o,data:ye.collectCreatorFee})}function Ea(o,e,n,i,a,c,l,d,b,y,p,k,T){let A=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:T,isSigner:!1,isWritable:!1},{pubkey:lt,isSigner:!1,isWritable:!1},{pubkey:Vt.programId,isSigner:!1,isWritable:!1}];return new fe({keys:A,programId:o,data:ye.collectCreatorFeePermissionless})}function Da(o,e,n,i,a,c,l,d,b,y,p,k,T,A,S,P,g,h,B,O,N,I,x,K){let C=m([t("amountA"),t("amountB"),t("openTime"),f("feeOn")]),L=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!0},{pubkey:T,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:S,isSigner:!1,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!0},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:lt,isSigner:!1,isWritable:!1},{pubkey:Vt.programId,isSigner:!1,isWritable:!1},...(K!=null?K:[]).map(ne=>({pubkey:ne,isSigner:!1,isWritable:!1}))],V=Buffer.alloc(C.span);return C.encode({amountA:O,amountB:N,openTime:I,feeOn:x},V),new fe({keys:L,programId:o,data:Buffer.from([...ye.initializeWithPermission,...V])})}export{ut as ConstantProductCurve,jo as CpmmConfigInfoLayout,se as CpmmFee,tu as CpmmPermission,Mn as CpmmPoolInfoLayout,dn as CurveCalculator,Fn as FeeOn,Ca as LOCK_LIQUIDITY_SEED,Io as RoundDirection,ba as TradeDirection,ga as TradeDirectionOpposite,Va as collectCpFeeInstruction,Ea as collectCreatorFeePermissionlessInInstruction,ss as cpmmLockPositionInstruction,bn as getCpLockPda,uT as getCpmmPdaAmmConfigId,fn as getCpmmPdaPoolId,xa as getCreatePoolKeys,Sa as getPdaLpMint,La as getPdaMintExAccountCp,yn as getPdaObservationId,Ra as getPdaPermissionId,pn as getPdaPoolAuthority,So as getPdaVault,Da as initializeWithPermission,_a as makeCollectCreatorFeeInstruction,va as makeCpmmLockInstruction,Oa as makeCreateCpmmPoolInInstruction,Na as makeDepositCpmmInInstruction,gn as makeSwapCpmmBaseInInstruction,Fa as makeSwapCpmmBaseOutInstruction,Ma as makeWithdrawCpmmInInstruction};
//# sourceMappingURL=index.mjs.map