@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 125 kB
JavaScript
var Bi=Object.defineProperty,Si=Object.defineProperties;var Ki=Object.getOwnPropertyDescriptors;var Wt=Object.getOwnPropertySymbols;var to=Object.prototype.hasOwnProperty,no=Object.prototype.propertyIsEnumerable;var eo=(r,e,t)=>e in r?Bi(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,R=(r,e)=>{for(var t in e||(e={}))to.call(e,t)&&eo(r,t,e[t]);if(Wt)for(var t of Wt(e))no.call(e,t)&&eo(r,t,e[t]);return r},E=(r,e)=>Si(r,Ki(e));var Ce=(r,e)=>{var t={};for(var n in r)to.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&Wt)for(var n of Wt(r))e.indexOf(n)<0&&no.call(r,n)&&(t[n]=r[n]);return t};import Re from"bn.js";import fn from"decimal.js";import X from"bn.js";var Q=new X(1).shln(64),it=64,dn=new X(1).shln(128),qe=new X(1).shln(64).subn(1),qt=new X(1).shln(128).subn(1),he=-443636,Ie=443636,Fe=new X("4295048016"),ve=new X("79226673521066979257578248091"),oo=new X("59543866431248"),io=new X("184467440737095516"),ro=new X("15793534762490258745"),ao=16,Ut=512,Pe=60,Ds=new X("18446743708227953217"),so=[{bit:0,factor:new X("fffcb933bd6fb800",16)},{bit:1,factor:new X("fff97272373d4000",16)},{bit:2,factor:new X("fff2e50f5f657000",16)},{bit:3,factor:new X("ffe5caca7e10f000",16)},{bit:4,factor:new X("ffcb9843d60f7000",16)},{bit:5,factor:new X("ff973b41fa98e800",16)},{bit:6,factor:new X("ff2ea16466c9b000",16)},{bit:7,factor:new X("fe5dee046a9a3800",16)},{bit:8,factor:new X("fcbe86c7900bb000",16)},{bit:9,factor:new X("f987a7253ac65800",16)},{bit:10,factor:new X("f3392b0822bb6000",16)},{bit:11,factor:new X("e7159475a2caf000",16)},{bit:12,factor:new X("d097f3bdfd2f2000",16)},{bit:13,factor:new X("a9f746462d9f8000",16)},{bit:14,factor:new X("70d869a156f31c00",16)},{bit:15,factor:new X("31be135f97ed3200",16)},{bit:16,factor:new X("9aa508b5b85a500",16)},{bit:17,factor:new X("5d6af8dedc582c",16)},{bit:18,factor:new X("2216e584f5fa",16)}],Ue=1e6,Ws=1e5,pn=(n=>(n[n.FromInput=0]="FromInput",n[n.TokenOnlyA=1]="TokenOnlyA",n[n.TokenOnlyB=2]="TokenOnlyB",n))(pn||{}),qs=1e3,Gt=1e5,kt=1e4,uo=1e4,co=1e5,Us=60,Tt=3,lo=100,Gs=15,mo=10,po=100,rt=14,xi=(s=>(s[s.OpenPositionOrIncreaseLiquidity=0]="OpenPositionOrIncreaseLiquidity",s[s.DecreaseLiquidity=1]="DecreaseLiquidity",s[s.CollectFee=2]="CollectFee",s[s.CollectReward=3]="CollectReward",s[s.Swap=4]="Swap",s[s.LimitOrder=5]="LimitOrder",s))(xi||{}),Ci=(t=>(t[t.Enable=0]="Enable",t[t.Disable=1]="Disable",t))(Ci||{}),Ri=(o=>(o[o.Uninitialized=0]="Uninitialized",o[o.Initialized=1]="Initialized",o[o.Opening=2]="Opening",o[o.Ended=3]="Ended",o))(Ri||{}),Li=(a=>(a[a.TradeFeeRate=0]="TradeFeeRate",a[a.ProtocolFeeRate=1]="ProtocolFeeRate",a[a.FundFeeRate=2]="FundFeeRate",a[a.NewOwner=3]="NewOwner",a[a.NewFundOwner=4]="NewFundOwner",a))(Li||{}),Oi=(o=>(o[o.UpdateOperationOwner=0]="UpdateOperationOwner",o[o.RemoveOperationOwner=1]="RemoveOperationOwner",o[o.UpdateWhitelistMint=2]="UpdateWhitelistMint",o[o.RemoveWhitelistMint=3]="RemoveWhitelistMint",o))(Oi||{}),C=new X(0),Be=new X(1),zs=new X(-1),Ni={tvl:0,volumeQuote:0,mintAmountA:0,mintAmountB:0,rewardDefaultInfos:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,day:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},week:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},month:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},pooltype:[]};function Xs(r){switch(r){case 0:return"0 (FromInput - fee from input token)";case 1:return"1 (Token0Only - fee from token0)";case 2:return"2 (Token1Only - fee from token1)";default:return`${r} (unknown)`}}var Ys=2,Hs=new X("18446744073700000000");function yn(r){return new Re(1).shln(r).subn(1)}function Js(r,e,t){let n=r.add(e),o=yn(t);if(n.gt(o))throw new Error(`Addition overflow: result exceeds ${t} bits`);return n}function eu(r,e){if(r.lt(e))throw new Error("Subtraction underflow");return r.sub(e)}function tu(r,e,t){let n=r.mul(e),o=yn(t);if(n.gt(o))throw new Error(`Multiplication overflow: result exceeds ${t} bits`);return n}function nu(r,e){let t=r.mul(e),n=t.and(yn(128)),o=t.shrn(128);return[n,o]}function $(r,e,t){if(t.isZero())throw new Error("Division by zero");return r.mul(e).div(t)}function J(r,e,t){if(t.isZero())throw new Error("Division by zero");let n=r.mul(e),o=n.div(t);return n.mod(t).isZero()?o:o.addn(1)}function ou(r,e,t,n){return n?J(r,e,t):$(r,e,t)}function zt(r,e){return r.div(e).add(r.mod(e).isZero()?C:Be)}function iu(r,e){let t=r.add(e);return t.gt(qt)?qt:t}function ru(r,e){return r.gt(e)?r.sub(e):new Re(0)}function au(r,e){let t=r.mul(e);if(t.gt(qt))throw new Error("U128 multiplication overflow");return t}var su=new Re(1).shln(256).subn(1);function uu(r,e,t){if(t.isZero())throw new Error("Division by zero");return r.mul(e).div(t)}function cu(r,e,t){if(t.isZero())throw new Error("Division by zero");let n=r.mul(e),o=n.div(t);return n.mod(t).isZero()?o:o.addn(1)}function fo(r){return r.isZero()?-1:r.bitLength()-1}function lu(r){if(r.isZero())return-1;let e=0,t=r.clone();for(;t.and(new Re(1)).isZero();)t=t.shrn(1),e++;return e}function mu(r,e){return r.testn(e)}function du(r,e){return r.or(new Re(1).shln(e))}function pu(r,e){return r.and(new Re(1).shln(e).notn(256))}function fu(r,e){return r.xor(new Re(1).shln(e))}function yu(r){let e=new Re(1).shln(127);return r.and(e).isZero()?r:r.sub(new Re(1).shln(128))}function bu(r){return r.isNeg()?r.add(new Re(1).shln(128)):r}function gu(r){return r.isNeg()?r.neg():r}function yo(r,e){return new fn(r.toString()).div(fn.pow(2,64)).toDecimalPlaces(e)}function bo(r){return new Re(r.mul(fn.pow(2,64)).floor().toFixed())}function ye(r,e){return r.add(dn).sub(e).mod(dn)}import _s from"bn.js";import{PublicKey as vi}from"@solana/web3.js";import{get as go,set as Mi}from"lodash";var bn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Po={},Fi={};function G(r){let e=go(Po,r);if(!e){let t=go(Fi,r);e=new bn({name:r,logLevel:t}),Mi(Po,r,e)}return e}import{MINT_SIZE as xu,TOKEN_PROGRAM_ID as Cu,getTransferFeeConfig as Ru,unpackMint as Lu}from"@solana/spl-token";var gn=G("Raydium_accountInfo_util");async function we(r,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:a=100}=R({batchRequest:!1},t),s=Pn(e,a),u=new Array(s.length).fill([]);if(n){let c=s.map(p=>{let P=r._buildArgs([p.map(g=>g.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:P}}),l=Pn(c,10);u=(await(await Promise.all(l.map(async p=>await r._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&gn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.error.message}`),p.result.value.map(P=>{if(P){let{data:g,executable:h,lamports:A,owner:T,rentEpoch:S}=P;return g.length!==2&&g[1]!=="base64"&&gn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(g[0],"base64"),executable:h,lamports:A,owner:new vi(T),rentEpoch:S}}return null})))}else try{u=await Promise.all(s.map(c=>r.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&gn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return u.flat()}async function Ge(r,e,t){let n=await we(r,e.map(o=>o.pubkey),t);return e.map((o,a)=>E(R({},o),{accountInfo:n[a]}))}import nt from"bn.js";import kR from"decimal.js";import Gi from"big.js";import Ht from"bn.js";import _i from"toformat";var Vi=_i,ht=Vi;import Yt from"big.js";import Di from"bn.js";import Wi from"decimal.js-light";import It from"bn.js";var Ao=9007199254740991;function ae(r){let e=G("Raydium_parseBigNumberish");if(r instanceof It)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new It(r);e.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&e.logWithError(`BigNumberish number underflow: ${r}`),(r>=Ao||r<=-Ao)&&e.logWithError(`BigNumberish number overflow: ${r}`),new It(String(r))):typeof r=="bigint"?new It(r.toString()):(e.error(`invalid BigNumberish value: ${r}`),new It(0))}var Xt=G("module/fraction"),An=ht(Yt),Bt=ht(Wi),qi={[0]:Bt.ROUND_DOWN,[1]:Bt.ROUND_HALF_UP,[2]:Bt.ROUND_UP},Ui={[0]:Yt.roundDown,[1]:Yt.roundHalfUp,[2]:Yt.roundUp},Y=class{constructor(e,t=new Di(1)){this.numerator=ae(e),this.denominator=ae(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Y(this.denominator,this.numerator)}add(e){let t=e instanceof Y?e:new Y(ae(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.add(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Y?e:new Y(ae(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.sub(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Y?e:new Y(ae(e));return new Y(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Y?e:new Y(ae(e));return new Y(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Xt.logWithError(`${e} is not an integer.`),e<=0&&Xt.logWithError(`${e} is not positive.`),Bt.set({precision:e+1,rounding:qi[n]});let o=new Bt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||Xt.logWithError(`${e} is not an integer.`),e<0&&Xt.logWithError(`${e} is negative.`),An.DP=e,An.RM=Ui[n]||1,new An(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var zi=G("Raydium_amount"),wo=ht(Gi);function Xi(r,e){let t="0",n="0";if(r.includes(".")){let o=r.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):zi.logWithError(`invalid number string, num: ${r}`)}else t=r;return[t,n.slice(0,e)||n]}var se=class extends Y{constructor(t,n,o=!0,a){let s=new Ht(0),u=wn.pow(new Ht(t.decimals));if(o)s=ae(n);else{let c=new Ht(0),l=new Ht(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[m,p]=Xi(n.toString(),t.decimals);c=ae(m),l=ae(p)}c=c.mul(u),s=c.add(l)}super(s,u);this.logger=G(a||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new se(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new se(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return wo.DP=this.token.decimals,new wo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ko}from"@solana/spl-token";var Qt={chainId:101,address:Yi.default.toBase58(),programId:ko.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},_e={chainId:101,address:"So11111111111111111111111111111111111111112",programId:ko.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 hn}from"@solana/web3.js";import{PublicKey as ee,SystemProgram as To,SYSVAR_RENT_PUBKEY as Hi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qi}from"@solana/spl-token";function at({pubkey:r,isSigner:e=!1,isWritable:t=!0}){return{pubkey:r,isWritable:t,isSigner:e}}var Zi=[at({pubkey:Qi,isWritable:!1}),at({pubkey:To.programId,isWritable:!1}),at({pubkey:Hi,isWritable:!1})];function kn({publicKey:r,transformSol:e}){let t=ho(r.toString());if(t instanceof ee)return e&&t.equals(je)?ze:t;if(e&&t.toString()===je.toBase58())return ze;if(typeof t=="string"){if(t===ee.default.toBase58())return ee.default;try{return new ee(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function ho(r){try{return new ee(r)}catch{return r}}var Tn=new ee("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),St=new ee("SysvarRent111111111111111111111111111111111"),cc=new ee("SysvarC1ock11111111111111111111111111111111"),st=new ee("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$i=new ee("Sysvar1nstructions1111111111111111111111111"),ji=To.programId,lc=new ee("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),mc=new ee("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),dc=new ee("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),pc=new ee("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),fc=new ee("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),yc=new ee("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),bc=new ee("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),gc=new ee("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Pc=new ee("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ac=new ee("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),wc=new ee("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ze=new ee("So11111111111111111111111111111111111111112"),je=ee.default;function Xe(r){return kn({publicKey:r,transformSol:!0})}var In=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:a=!1,isToken2022:s=!1}){if(e===je.toBase58()||e instanceof hn&&je.equals(e)){this.decimals=_e.decimals,this.symbol=_e.symbol,this.name=_e.name,this.mint=new hn(_e.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=a?hn.default:kn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},me=In;me.WSOL=new In(E(R({},_e),{mint:_e.address}));var Bn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Zt=Bn;Zt.SOL=new Bn(Qt);import Ji from"bn.js";var Io=new Y(new Ji(100)),Ve=class extends Y{toSignificant(e=5,t,n){return this.mul(Io).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Io).toFixed(e,t,n)}};var er=G("Raydium_price"),Se=class extends Y{constructor(t){let{baseToken:n,quoteToken:o,numerator:a,denominator:s}=t;super(a,s);this.baseToken=n,this.quoteToken=o,this.scalar=new Y(Sn(n.decimals),Sn(o.decimals))}get raw(){return new Y(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Se({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&er.logWithError("mul token not equals");let n=super.mul(t);return new Se({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(t,n,o)}toFixed(t=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(t,n,o)}};import{merge as hC}from"lodash";import Gc from"axios";var Bo={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"},tr=E(R({},Bo),{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 pl=G("Raydium_Api");import{PublicKey as Od,SystemProgram as Nd}from"@solana/web3.js";import{AccountLayout as Vd,createAssociatedTokenAccountIdempotentInstruction as Ed,TOKEN_PROGRAM_ID as Dd,TOKEN_2022_PROGRAM_ID as Wd}from"@solana/spl-token";import{PublicKey as dt,sendAndConfirmTransaction as On,SystemProgram as sr,Transaction as Ct,TransactionMessage as Rt,VersionedTransaction as Lt}from"@solana/web3.js";import ur from"axios";import{PublicKey as Kn,AddressLookupTableAccount as lt}from"@solana/web3.js";async function xn({connection:r,address:e,cluster:t="mainnet"}){let n=await we(r,[...new Set(e.map(a=>a.toString()))].map(a=>new Kn(a))),o={};for(let a=0;a<e.length;a++){let s=n[a],u=e[a];if(!s)continue;let c=new lt({key:u,state:lt.deserialize(s.data)});o[u.toString()]=c,t==="devnet"?ct[u.toString()]=c:ut[u.toString()]=c}return o}var ut={},Cn=async r=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(ut[e])return ut;let t=new Kn(e),n=await r.getAccountInfo(t);return n&&(ut[e]=new lt({key:t,state:lt.deserialize(n.data)})),ut},ct={},Rn=async r=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(ct[e])return ct;let t=new Kn(e),n=await r.getAccountInfo(t);return n&&(ct[e]=new lt({key:t,state:lt.deserialize(n.data)})),ct};var de={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 So,Keypair as xo,PublicKey as nr,Transaction as Co,TransactionMessage as or,VersionedTransaction as Ro}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ir}from"@solana/spl-token";var Ko=G("Raydium_txUtil"),Lo=1644;function $t(r){let e=[],t=[];return r.microLamports&&(e.push(So.setComputeUnitPrice({microLamports:r.microLamports})),t.push(de.SetComputeUnitPrice)),r.units&&(e.push(So.setComputeUnitLimit({units:r.units})),t.push(de.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function mt(r,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=r.getLatestBlockhash)==null?void 0:n.call(r,{commitment:t})))==null?void 0:o.blockhash}async function jt(r,e){return r.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);r.onSignature(e,a=>{if(clearTimeout(o),!a.err){t("");return}n(Object.assign(a.err,{txId:e}))},"confirmed")})}function Ln(r,e){r.length<1&&Ko.logWithError(`no instructions provided: ${r.toString()}`),e.length<1&&Ko.logWithError(`no signers provided:, ${e.toString()}`);let t=new Co;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...r);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Lo}catch{return!1}}function H(r,e){let[t,n]=nr.findProgramAddressSync(r,e);return{publicKey:t,nonce:n}}function Kt({instructions:r,payer:e,signers:t}){return Ln(r,[e,...t])}function xt({instructions:r,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=xo.generate().publicKey.toString()}){let a=new or({payerKey:e,recentBlockhash:n,instructions:r}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Ro(a).serialize()).toString("base64").length<Lo}catch{return!1}}var rr=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),ar=r=>{let e=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Ro&&(e=rr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Je(r){let e=[];return r.forEach(t=>{t instanceof Co&&(t.recentBlockhash||(t.recentBlockhash=ir.toBase58()),t.feePayer||(t.feePayer=xo.generate().publicKey)),e.push(ar(t))}),console.log("simulate tx string:",e),e}var Jt=2e3,en=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 n;let e=(await ur.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=$t(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(sr.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new dt(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(de.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:o=[],endInstructionTypes:a=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...o),this.endInstructionTypes.push(...a),this.lookupTableAddress.push(...s.filter(u=>u!==dt.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(E(R({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new Ct;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var m;let{recentBlockHash:a,skipPreflight:s=!0,sendAndConfirm:u,notSendToRpc:c}=o||{},l=a!=null?a:await mt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=l,this.signers.length&&t.sign(...this.signers),Je([t]),(m=this.owner)!=null&&m.isKeyPair)return{txId:u?await On(this.connection,t,this.signers.find(P=>P.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let p=await this.signAllTransactions([t]);if(this.signers.length)for(let P of p)try{P.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(p[0].serialize(),{skipPreflight:s}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var l;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:o}=this.build(n),a=t.filter(m=>m.transaction.instructions.length>0),s=[o,...a.map(m=>m.transaction)],u=[this.signers,...a.map(m=>m.signers)],c=[...this.instructionTypes,...a.map(m=>m.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&u.forEach(m=>{m.some(p=>p.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:u,instructionTypes:c,execute:async m=>{var S;let{sequentially:p,onTxUpdate:P,skipTxCount:g=0,recentBlockHash:h,skipPreflight:A=!0}=m||{},T=h!=null?h:await mt(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(p){let K=[],M=0;for(let v of s){if(++M,M<=g)continue;let b=await On(this.connection,v,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});K.push(b)}return{txIds:K,signedTxs:s}}return{txIds:await await Promise.all(s.map(async K=>(K.recentBlockhash=T,await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:A})))),signedTxs:s}}if(this.signAllTransactions){let K=s.map((v,b)=>(v.recentBlockhash=T,u[b].length&&v.sign(...u[b]),v));Je(K);let M=await this.signAllTransactions(K);if(p){let v=0,b=[],I=async()=>{if(!M[v])return;let x=await this.connection.sendRawTransaction(M[v].serialize(),{skipPreflight:A});b.push({txId:x,status:"sent",signedTx:M[v]}),P==null||P([...b]),v++;let O=!1,L=null,V=null,j=U=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let N=b.findIndex(Z=>Z.txId===x);if(N>-1){if(b[N].status==="error"||b[N].status==="success")return;b[N].status=U.err?"error":"success"}P==null||P([...b]),U.err||I()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(O){clearInterval(L);return}try{let N=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:1});N&&(O=!0,clearInterval(L),j({err:((U=N.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",x))}catch(N){O=!0,clearInterval(L),console.error("getTransaction timeout:",N,x)}},Jt)),V=this.connection.onSignature(x,U=>{if(O){this.connection.removeSignatureListener(V);return}O=!0,j(U)},"confirmed"),this.connection.getSignatureStatus(x)};return await I(),{txIds:b.map(x=>x.txId),signedTxs:M}}else{let v=[];for(let b=0;b<M.length;b+=1){let I=await this.connection.sendRawTransaction(M[b].serialize(),{skipPreflight:A});v.push(I)}return{txIds:v,signedTxs:M}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var A;let h=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:a}=h,s=Ce(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=R(R({},this.cluster==="devnet"?await Rn(this.connection):await Cn(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),l=[];for(let T of c)u[T]===void 0&&l.push(new dt(T));let m=await xn({connection:this.connection,address:l});for(let[T,S]of Object.entries(m))u[T]=S;let p=o?dt.default.toBase58():a!=null?a:await mt(this.connection,this.blockhashCommitment),P=new Rt({payerKey:this.feePayer,recentBlockhash:p,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let g=new Lt(P);return g.sign(this.signers),{builder:this,transaction:g,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:S=!0,sendAndConfirm:K,notSendToRpc:M}=T||{};if(Je([g]),(v=this.owner)!=null&&v.isKeyPair){let b=await this.connection.sendTransaction(g,{skipPreflight:S});return K&&await jt(this.connection,b),{txId:b,signedTx:g}}if(this.signAllTransactions){let b=await this.signAllTransactions([g]);if(this.signers.length)for(let I of b)try{I.sign(this.signers)}catch{}return{txId:M?"":await this.connection.sendTransaction(b[0],{skipPreflight:S}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(e){var l;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:o}=await this.buildV0(n),a=t.filter(m=>m.builder.instructions.length>0),s=[o,...a.map(m=>m.transaction)],u=[this.signers,...a.map(m=>m.signers)],c=[...this.instructionTypes,...a.map(m=>m.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&u.forEach(m=>{m.some(p=>p.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(m,p)=>{m.sign(u[p])}),{builder:this,transactions:s,signers:u,instructionTypes:c,buildProps:n,execute:async m=>{var A;let{sequentially:p,onTxUpdate:P,recentBlockHash:g,skipPreflight:h=!0}=m||{};if(g&&s.forEach(T=>T.message.recentBlockhash=g),Je(s),(A=this.owner)!=null&&A.isKeyPair){if(p){let T=[];for(let S of s){let K=await this.connection.sendTransaction(S,{skipPreflight:h});await jt(this.connection,K),T.push(K)}return{txIds:T,signedTxs:s}}return{txIds:await Promise.all(s.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let T=await this.signAllTransactions(s);if(p){let S=0,K=[],M=async()=>{if(!T[S])return;let v=await this.connection.sendTransaction(T[S],{skipPreflight:h});K.push({txId:v,status:"sent",signedTx:T[S]}),P==null||P([...K]),S++;let b=!1,I=null,x=null,O=L=>{I!==null&&clearInterval(I),x!==null&&this.connection.removeSignatureListener(x);let V=K.findIndex(j=>j.txId===v);if(V>-1){if(K[V].status==="error"||K[V].status==="success")return;K[V].status=L.err?"error":"success"}P==null||P([...K]),L.err||M()};this.loopMultiTxStatus&&(I=setInterval(async()=>{var L;if(b){clearInterval(I);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});V&&(b=!0,clearInterval(I),O({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){b=!0,clearInterval(I),console.error("getTransaction timeout:",V,v)}},Jt)),x=this.connection.onSignature(v,L=>{if(b){this.connection.removeSignatureListener(x);return}b=!0,O(L)},"confirmed"),this.connection.getSignatureStatus(v)};return M(),{txIds:[],signedTxs:T}}else{let S=[];for(let K=0;K<T.length;K+=1){let M=await this.connection.sendTransaction(T[K],{skipPreflight:h});S.push(M)}return{txIds:S,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var P;let p=e||{},{splitIns:t=[],computeBudgetConfig:n}=p,o=Ce(p,["splitIns","computeBudgetConfig"]),a=n?$t(n):{instructions:[],instructionTypes:[]},s=this.signers.reduce((g,h)=>E(R({},g),{[h.publicKey.toBase58()]:h}),{}),u=[],c=[],l=[],m=0;if(this.allInstructions.forEach(g=>{let h=[...l,g],A=n?[...a.instructions,...h]:h,S=[...new Set(h.map(K=>K.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat()).values()].map(K=>new dt(K));if(g!==t[m]&&l.length<12&&(Kt({instructions:A,payer:this.feePayer,signers:S})||Kt({instructions:h,payer:this.feePayer,signers:S})))l.push(g);else{if(l.length===0)throw Error("item ins too big");m+=g===t[m]?1:0,Kt({instructions:n?[...a.instructions,...l]:[...l],payer:this.feePayer,signers:S})?u.push(new Ct().add(...a.instructions,...l)):u.push(new Ct().add(...l)),c.push(Array.from(new Set(l.map(K=>K.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat())).map(K=>s[K]).filter(K=>K!==void 0)),l=[g]}}),l.length>0){let h=[...new Set(l.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>s[A]).filter(A=>A!==void 0);Kt({instructions:n?[...a.instructions,...l]:[...l],payer:this.feePayer,signers:h.map(A=>A.publicKey)})?u.push(new Ct().add(...a.instructions,...l)):u.push(new Ct().add(...l)),c.push(h)}return u.forEach(g=>g.feePayer=this.feePayer),(P=this.owner)!=null&&P.signer&&c.forEach(g=>{g.some(h=>h.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),{builder:this,transactions:u,signers:c,instructionTypes:this.instructionTypes,execute:async g=>{var v;let{sequentially:h,onTxUpdate:A,skipTxCount:T=0,recentBlockHash:S,skipPreflight:K=!0}=g||{},M=S!=null?S:await mt(this.connection,this.blockhashCommitment);if(u.forEach(async(b,I)=>{b.recentBlockhash=M,c[I].length&&b.sign(...c[I])}),Je(u),(v=this.owner)!=null&&v.isKeyPair){if(h){let b=0,I=[];for(let x of u){if(++b,b<=T){I.push("tx skipped");continue}let O=await On(this.connection,x,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});I.push(O)}return{txIds:I,signedTxs:u}}return{txIds:await Promise.all(u.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:K}))),signedTxs:u}}if(this.signAllTransactions){let b=await this.signAllTransactions(u.slice(T,u.length)),I=[...u.slice(0,T),...b];if(h){let x=0,O=[],L=async()=>{if(!I[x])return;x<T&&(O.push({txId:"",status:"success",signedTx:I[x]}),A==null||A([...O]),x++,L());let V=await this.connection.sendRawTransaction(I[x].serialize(),{skipPreflight:K});O.push({txId:V,status:"sent",signedTx:I[x]}),A==null||A([...O]),x++;let j=!1,U=null,N=null,Z=q=>{U!==null&&clearInterval(U),N!==null&&this.connection.removeSignatureListener(N);let oe=O.findIndex(Te=>Te.txId===V);if(oe>-1){if(O[oe].status==="error"||O[oe].status==="success")return;O[oe].status=q.err?"error":"success"}A==null||A([...O]),q.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var q;if(j){clearInterval(U);return}try{let oe=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});oe&&(j=!0,clearInterval(U),Z({err:((q=oe.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",V))}catch(oe){j=!0,clearInterval(U),console.error("getTransaction timeout:",oe,V)}},Jt)),N=this.connection.onSignature(V,q=>{if(j){this.connection.removeSignatureListener(N);return}j=!0,Z(q)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:O.map(V=>V.txId),signedTxs:I}}else{let x=[];for(let O=0;O<I.length;O+=1){let L=await this.connection.sendRawTransaction(I[O].serialize(),{skipPreflight:K});x.push(L)}return{txIds:x,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var v;let M=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:a=[],insCountLimit:s=12}=M,u=Ce(M,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=R(R({},this.cluster==="devnet"?await Rn(this.connection):await Cn(this.connection)),o),l=Array.from(new Set([...this.lookupTableAddress,...a])),m=[];for(let b of l)c[b]===void 0&&m.push(new dt(b));let p=await xn({connection:this.connection,address:m});for(let[b,I]of Object.entries(p))c[b]=I;let P=t?$t(t):{instructions:[],instructionTypes:[]},g=await mt(this.connection,this.blockhashCommitment),h=this.signers.reduce((b,I)=>E(R({},b),{[I.publicKey.toBase58()]:I}),{}),A=[],T=[],S=[],K=0;if(this.allInstructions.forEach(b=>{let I=[...S,b],x=t?[...P.instructions,...I]:I;if(b!==n[K]&&S.length<s&&(xt({instructions:x,payer:this.feePayer,lookupTableAddressAccount:c})||xt({instructions:I,payer:this.feePayer,lookupTableAddressAccount:c})))S.push(b);else{if(S.length===0)throw Error("item ins too big");K+=b===n[K]?1:0;let O={};for(let L of[...new Set(l)])c[L]!==void 0&&(O[L]=c[L]);if(t&&xt({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let L=new Rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Lt(L))}else{let L=new Rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Lt(L))}T.push(Array.from(new Set(S.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>h[L]).filter(L=>L!==void 0)),S=[b]}}),S.length>0){let I=[...new Set(S.map(x=>x.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(x=>h[x]).filter(x=>x!==void 0);if(t&&xt({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let x=new Rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Lt(x))}else{let x=new Rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Lt(x))}T.push(I)}return(v=this.owner)!=null&&v.signer&&T.forEach(b=>{b.some(I=>I.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),A.forEach((b,I)=>{b.sign(T[I])}),{builder:this,transactions:A,buildProps:e,signers:T,instructionTypes:this.instructionTypes,execute:async b=>{var j;let{sequentially:I,onTxUpdate:x,skipTxCount:O=0,recentBlockHash:L,skipPreflight:V=!0}=b||{};if(A.map(async(U,N)=>{T[N].length&&U.sign(T[N]),L&&(U.message.recentBlockhash=L)}),Je(A),(j=this.owner)!=null&&j.isKeyPair){if(I){let U=0,N=[];for(let Z of A){if(++U,U<=O){console.log("skip tx: ",U),N.push("tx skipped");continue}let q=await this.connection.sendTransaction(Z,{skipPreflight:V});await jt(this.connection,q),N.push(q)}return{txIds:N,signedTxs:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(O,A.length)),N=[...A.slice(0,O),...U];if(I){let Z=0,q=[],oe=async()=>{if(!N[Z])return;if(Z<O){q.push({txId:"",status:"success",signedTx:N[Z]}),x==null||x([...q]),Z++,oe();return}let Te=await this.connection.sendTransaction(N[Z],{skipPreflight:V});q.push({txId:Te,status:"sent",signedTx:N[Z]}),x==null||x([...q]),Z++;let wt=!1,ot=null,Dt=null,Jn=$e=>{ot!==null&&clearInterval(ot),Dt!==null&&this.connection.removeSignatureListener(Dt);let We=q.findIndex(Ii=>Ii.txId===Te);if(We>-1){if(q[We].status==="error"||q[We].status==="success")return;q[We].status=$e.err?"error":"success"}x==null||x([...q]),$e.err||oe()};this.loopMultiTxStatus&&(ot=setInterval(async()=>{var $e;if(wt){clearInterval(ot);return}try{let We=await this.connection.getTransaction(Te,{commitment:"confirmed",maxSupportedTransactionVersion:1});We&&(wt=!0,clearInterval(ot),Jn({err:(($e=We.meta)==null?void 0:$e.err)||null}),console.log("tx status from getTransaction:",Te))}catch(We){wt=!0,clearInterval(ot),console.error("getTransaction timeout:",We,Te)}},Jt)),Dt=this.connection.onSignature(Te,$e=>{if(wt){this.connection.removeSignatureListener(Dt);return}wt=!0,Jn($e)},"confirmed"),this.connection.getSignatureStatus(Te)};return oe(),{txIds:[],signedTxs:N}}else{let Z=[];for(let q=0;q<N.length;q+=1){let oe=await this.connection.sendTransaction(N[q],{skipPreflight:V});Z.push(oe)}return{txIds:Z,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var Nn=(...r)=>r.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Ae=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=G(t)}createTxBuilder(e){return this.scope.checkOwner(),new en({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(Nn(e))}logInfo(...e){this.logger.info(Nn(e))}logAndCreateError(...e){let t=Nn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as cd,SystemProgram as md}from"@solana/web3.js";import fd from"bn.js";import{createCloseAccountInstruction as Pd,createInitializeAccountInstruction as Ad,createTransferInstruction as wd,TOKEN_PROGRAM_ID as kd}from"@solana/spl-token";import{Keypair as Zm,PublicKey as $m}from"@solana/web3.js";import ed from"bn.js";import{TOKEN_PROGRAM_ID as od}from"@solana/spl-token";import{PublicKey as wr}from"@solana/web3.js";import vo,{isBN as _o}from"bn.js";import{bits as cr,BitStructure as tm,blob as lr,Blob as nm,cstr as om,f32 as im,f32be as rm,f64 as am,f64be as sm,greedy as um,Layout as mr,ns64 as cm,ns64be as lm,nu64 as mm,nu64be as dm,offset as dr,s16 as pm,s16be as fm,s24 as ym,s24be as bm,s32 as pr,s32be as gm,s40 as Pm,s40be as Am,s48 as wm,s48be as km,s8 as Tm,seq as fr,struct as hm,Structure as yr,u16 as br,u16be as Im,u24 as Bm,u24be as Sm,u32 as gr,u32be as Km,u40 as xm,u40be as Cm,u48 as Rm,u48be as Lm,u8 as Pr,UInt as Ar,union as Om,Union as Nm,unionLayoutDiscriminator as Mm,utf8 as Fm}from"@solana/buffer-layout";var tn=mr,Oo=yr;var Mn=Ar;var No=Pr,ie=br;var nn=gr;var Le=pr;var Mo=fr;var W=lr;var Fn=cr,Fo=dr;var tt=class extends tn{constructor(t,n,o){super(t,o);this.blob=W(t),this.signed=n}decode(t,n=0){let o=new vo(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new vo(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},on=class extends tn{constructor(t){super(8,t);this._lower=Fn(nn(),!1),this._upper=Fn(nn(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let o=this._lower.decode(t,n),a=this._upper.decode(t,n+this._lower.span);return R(R({},o),a)}encode(t,n,o=0){return this._lower.encode(t,n,o)+this._upper.encode(t,n,o+this._lower.span)}};function w(r){return new Mn(1,r)}function te(r){return new Mn(4,r)}function i(r){return new tt(8,!1,r)}function D(r){return new tt(16,!1,r)}function Vo(r){return new tt(1,!0,r)}function pt(r){return new tt(8,!0,r)}function Eo(r){return new tt(16,!0,r)}var Ot=class extends tn{constructor(t,n,o,a){super(t.span,a);this.layout=t,this.decoder=n,this.encoder=o}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,o){return this.layout.encode(this.encoder(t),n,o)}getSpan(t,n){return this.layout.getSpan(t,n)}};function d(r){return new Ot(W(32),e=>new wr(e),e=>e.toBuffer(),r)}function Ke(r){return new Ot(No(),kr,Tr,r)}function kr(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function Tr(r){return r?1:0}function _n(r,e){let t=nn("length"),n=k([t,B(r,Fo(t,-t.span),"values")]);return new Ot(n,({values:o})=>o,o=>({values:o}),e)}var vn=class extends Oo{decode(e,t){return super.decode(e,t)}};function k(r,e,t){return new vn(r,e,t)}function B(r,e,t){let n,o=typeof e=="number"?e:_o(e)?e.toNumber():new Proxy(e,{get(a,s){if(!n){let u=Reflect.get(a,"count");n=_o(u)?u.toNumber():u,Reflect.set(a,"count",n)}return Reflect.get(a,s)},set(a,s,u){return s==="count"&&(n=u),Reflect.set(a,s,u)}});return Mo(r,o,t)}var rn=k([d("mint"),d("owner"),i("amount"),te("delegateOption"),d("delegate"),w("state"),te("isNativeOption"),i("isNative"),i("delegatedAmount"),te("closeAuthorityOption"),d("closeAuthority")]);import{PublicKey as Hb,SystemProgram as Qb}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as $b}from"@solana/spl-token";import{PublicKey as Hd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zd}from"@solana/spl-token";import{PublicKey as _}from"@solana/web3.js";var Wo=new _("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),qo=new _("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Uo=new _("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Vn=new _("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ep=new _("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ir=new _("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Go=new _("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),zo=new _("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),tp=new _("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Br=new _("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xo=new _("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Sr=new _("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Kr=new _("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Yo=new _("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),np=new _("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),xr=new _("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),En=new _("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Cr=new _("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),op=new _("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Rr=new _("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Lr=new _("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Or=new _("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ip=new _("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),rp=new _("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ap=new _("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),sp=new _("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),up=new _("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Qe={OPEN_BOOK_PROGRAM:new _("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new _("Ray1111111111111111111111111111111111111111"),AMM_V4:new _("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new _("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new _("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new _("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new _("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new _("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new _("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new _("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new _("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new _("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:_.default,Router:new _("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new _("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new _("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new _("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new _("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new _("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new _("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new _("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new _("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new _("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new _("Ray1111111111111111111111111111111111111111")};import sg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Cf,TOKEN_2022_PROGRAM_ID as Rf,TOKEN_PROGRAM_ID as Lf}from"@solana/spl-token";import{PublicKey as Nf}from"@solana/web3.js";import Ff from"bn.js";import _f from"decimal.js";import{TOKEN_PROGRAM_ID as Tp}from"@solana/spl-token";import{PublicKey as Sp}from"@solana/web3.js";var Nr=k([te("mintAuthorityOption"),d("mintAuthority"),i("supply"),w("decimals"),w("isInitialized"),te("freezeAuthorityOption"),d("freezeAuthority")]);var ft=o=>{var a=o,{address:r,programId:e,decimals:t}=a,n=Ce(a,["address","programId","decimals"]);return R({chainId:101,address:Xe(r).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:n.extensions||{}},n)};import{ASSOCIATED_TOKEN_PROGRAM_ID as nf,TOKEN_2022_PROGRAM_ID as of,TOKEN_PROGRAM_ID as rf}from"@solana/spl-token";import{Keypair as uf,PublicKey as cf,SystemProgram as mf,TransactionInstruction as df}from"@solana/web3.js";import ff from"bn.js";var Mr=k([W(8),w("bump"),ie("index"),d("owner"),te("protocolFeeRate"),te("tradeFeeRate"),ie("tickSpacing"),te("fundFeeRate"),B(te(),1),d("fundOwner"),B(i(),3)]),Fr=k([te("blockTimestamp"),pt("tickCumulative"),B(i(),4)]),Ho=k([W(8),Ke("initialized"),i("recentEpoch"),ie("observationIndex"),d("poolId"),B(Fr,lo,"observations"),B(i(),4)]),vr=k([ie("filterPeriod"),ie("decayPeriod"),ie("reductionFactor"),te("dynamicFeeControl"),te("maxVolatilityAccumulator"),Le("tickSpacingIndexReference"),te("volatilityReference"),te("volatilityAccumulator"),i("lastUpdateTimestamp"),B(w(),46)]),_r=k([w("state"),i("openTime"),i("endTime"),i("lastUpdateTime"),D("emissionsPerSecondX64"),i("totalEmissioned"),i("claimed"),d("mint"),d("vault"),d("creator"),D("growthGlobalX64")]),sn=k([W(8),w("bump"),d("configId"),d("creator"),d("mintA"),d("mintB"),d("vaultA"),d("vaultB"),d("observationId"),w("mintDecimalsA"),w("mintDecimalsB"),ie("tickSpacing"),D("liquidity"),D("sqrtPriceX64"),Le("tickCurrent"),te(),D("feeGrowthGlobalX64A"),D("feeGrowthGlobalX64B"),i("protocolFeesTokenA"),i("protocolFeesTokenB"),B(D(),4),w("status"),w("feeOn"),W(6),B(_r,Tt,"rewardInfos"),W(8*16,"tickArrayBitmap"),B(i(),4),i("fundFeesTokenA"),i("fundFeesTokenB"),i("startTime"),i("recentEpoch"),vr.replicate("dynamicFeeInfo"),B(i(),46)]),Vr=k([D("growthInsideLastX64"),i("rewardAmountOwed")]),Er=k([W(8),w("bump"),d("nftMint"),d("poolId"),Le("tickLower"),Le("tickUpper"),D("liquidity"),D("feeGrowthInsideLastX64A"),D("feeGrowthInsideLastX64B"),i("tokenFeesOwedA"),i("tokenFeesOwedB"),B(Vr,Tt,"rewardInfos"),i("recentEpoch"),B(i(),7)]),Ep=k([W(8),w("bump"),d("poolId"),Le("tickLower"),Le("tickUpper"),D("liquidity"),D("feeGrowthInsideLastX64A"),D("feeGrowthInsideLastX64B"),i("tokenFeesOwedA"),i("tokenFeesOwedB"),B(D(),Tt,"rewardGrowthInside"),i("recentEpoch"),B(i(),7)]),Dr=k([Le("tick"),Eo("liquidityNet"),D("liquidityGross"),D("feeGrowthOutsideX64A"),D("feeGrowthOutsideX64B"),B(D(),Tt,"rewardGrowthsOutsideX64"),i("orderPhase"),i("ordersAmount"),i("partFilledOrdersRemaining"),D("unfilledRatioX64"),B(te(),3)]),yt=k([W(8),d("poolId"),Le("startTickIndex"),B(Dr,Pe,"ticks"),w("initializedTickCount"),i("recentEpoch"),B(w(),107)]),Wr=k([W(8),w("bump"),B(d(),mo,"operationOwners"),B(d(),po,"whitelistMints")]),qr=k([W(8),d("poolId"),d("owner"),Le("tick"),Ke("zeroForOne"),i("orderPhase"),i("totalAmount"),i("filledAmount"),i("settleBase"),i("settleOutput"),i("openTime"),D("unfilledRatioX64"),B(i(),4)]),un=k([W(8),d("poolId"),W(8*8*rt,"positiveTickArrayBitmap"),W(8*8*rt,"negativeTickArrayBitmap")]),Dp=k([W(8),ie("index"),ie("filterPeriod"),ie("decayPeriod"),ie("reductionFactor"),te("dynamicFeeControl"),te("maxVolatilityAccumulator"),B(i(),8)]),Ur=k([W(8),d("wallet"),w("nonceIndex"),i("orderNonce"),B(i(),4)]),Wp=k([i(),w("bump"),d("owner"),d("poolId"),d("positionId"),d("nftAccount"),B(i(),8)]),Gr=k([W(8),w("bump"),d("lockOwner"),d("poolId"),d("positionId"),d("nftAccount"),d("lockNftMint"),i("recentEpoch"),B(i(),8)]);import zr from"bn.js";function Dn(r){let e=Buffer.alloc(2);return e.writeUInt16LE(r),e}function Wn(r){let e=Buffer.alloc(2);return e.writeUInt16BE(r),e}function qn(r){let e=Buffer.alloc(4);return e.writeInt32LE(r),e}function Qo(r){let e=Buffer.alloc(4);return e.writeInt32BE(r),e}function Zo(r){return(typeof r=="number"||typeof r=="bigint")&&(r=new zr(r.toString())),r.toArrayLike(Buffer,"be",8)}function $o(r){let e=new ArrayBuffer(1);return new DataView(e).setUint8(0,r),new Uint8Array(e)}var Xr=Buffer.from("amm_config","utf8"),Un=Buffer.from("pool","utf8"),jo=Buffer.from("pool_vault","utf8"),Yr=Buffer.from("pool_reward_vault","utf8"),Jo=Buffer.from("position","utf8"),Hr=Buffer.from("tick_array","utf8"),Qr=Buffer.from("operation","utf8"),Zr=Buffer.from("pool_tick_array_bitmap_extension","utf8"),$r=Buffer.from("observation","utf8"),jr=Buffer.from("support_mint","utf8"),Jr=Buffer.from("dynamic_fee_config","utf8"),ea=Buffer.from("permission","utf8");function Qp(r,e){return H([Xr,Wn(e)],r)}function ta(r,e,t,n){return H([Un,e.toBuffer(),t.toBuffer(),n.toBuffer()],r)}function na(r,e){return H([ea,e.toBuffer()],r)}function oa(r,e,t,n,o){return H([Un,e.toBuffer(),t.toBuffer(),n.toBuffer(),Dn(o)],r)}function ei(r,e,t){return H([jo,e.toBuffer(),t.toBuffer()],r)}function ia(r,e,t){return H([Yr,e.toBuffer(),t.toBuffer()],r)}function Ze(r,e,t){return H([Hr,e.toBuffer(),Qo(t)],r)}function ti(r,e,t,n){return H([Jo,e.toBuffer(),qn(t),qn(n)],r)}function ni(r,e){return H([Jo,e.toBuffer()],r)}function Gn(r){return H([Buffer.from("metadata","utf8"),st.toBuffer(),r.toBuffer()],st)}function oi(r){return H([Qr],r)}function Ye(r,e){return H([Zr,e.toBuffer()],r)}function ra(r,e){return H([$r,e.toBuffer()],r)}function aa(r,e){return H([jr,e.toBuffer()],r)}function sa(r,e,t,n){return H([e.toBuffer(),t.toBuffer(),Zo(n)],r)}function Zp(r,e){return H([Jr,Wn(e)],r)}function ua(r,e,t){return H([e.toBuffer(),$o(t)],r)}var ii=Buffer.from("locked_position","utf8");function ca(r,e){return H([ii,e.toBuffer()],r)}function ri(r,e){return H([ii,e.toBuffer()],r)}import{sha256 as la}from"js-sha256";function pe(r){let e=`global:${r}`;return Buffer.from(la.digest(e)).slice(0,8)}Ho.span;var hf=G("Raydium_Clmm"),If={createPool:pe("create_pool"),createCustomizablePool:pe("create_customizable_pool"),createPermissionedPool:pe("create_permissioned_pool"),openPositionV2:pe("open_position_v2"),openPositionWithToken22Nft:pe("open_position_with_token22_nft"),closePosition:pe("close_position"),increaseLiquidityV2:pe("increase_liquidity_v2"),decreaseLiquidityV2:pe("decrease_liquidity_v2"),initializeReward:pe("initialize_reward"),setRewardParams:pe("set_reward_params"),updateRewardInfos:pe("update_reward_infos"),collectRemainingRewards:pe("collect_remaining_rewards"),swapV2:pe("swap_v2"),openLimitOrder:pe("open_limit_order"),increaseLimitOrder:pe("increase_limit_order"),decreaseLimitOrder:pe("decrease_limit_order"),settleLimitOrder:pe("settle_limit_order"),closeLimitOrder:pe("close_limit_order")};import{PublicKey as Yn}from"@solana/web3.js";var fa=k([w("instruction")]),ya=k([w("instruction")]),ba=k([i("rewardState"),i("rewardOpenTime"),i("rewardEndTime"),i("rewardLastUpdateTime"),i("totalReward"),i("totalRewardEmissioned"),i("rewardClaimed"),i("rewardPerSecond"),D("accRewardPerShare"),d("rewardVault"),d("rewardMint"),d("rewardSender"),i("rewardType"),B(i(),15,"padding")]),ga=k([i("state"),i("nonce"),d("lpVault"),d("rewardVault"),d(),d(),i(),i(),i("totalReward"),D("perShareReward"),i("lastSlot"),i("perSlotReward")]),Pa=k([i("state"),i("nonce"),d("lpVault"),d("rewardVaultA"),i("totalRewardA"),D("perShareRewardA"),i("perSlotRewardA"),w("option"),d("rewardVaultB"),W(7),i("totalRewardB"),D("perShareRewardB"),i("perSlotRewardB"),i("lastSlot"),d()]),Aa=k([i(),i("state"),i("nonce"),i("validRewardTokenNum"),D("rewardMultiplier"),i("rewardPeriodMax"),i("rewardPeriodMin"),i("rewardPeriodExtend"),d("lpMint"),d("lpVault"),B(ba,5,"rewardInfos"),d("creator"),d(),B(i(),32,"padding")]),wa=new Proxy(ga,{get(r,e,t){return e==="decode"?(...n)=>{let o=r.decode(...n);return E(R({},o),{version:3,rewardInfos:[{rewardVault:o.rewardVault,totalReward:o.totalReward,perSlotReward:o.perSlotReward,perShareReward:o.perShareReward}]})}:Reflect.get(r,e,t)}}),ka=new Proxy(Pa,{get(r,e,t){return e==="decode"?(...n)=>{let o=r.decode(...n);return E(R({},o),{version:5,rewardInfos:[{rewardVault:o.rewardVaultA,totalReward:o.totalRewardA,perSlotReward:o.perSlotRewardA,perShareReward:o.perShareRewardA},{rewardVault:o.rewardVaultB,totalReward:o.totalRewardB,perSlotReward:o.perSlotRewardB,perShareReward:o.perShareRewardB}]})}:Reflect.get(r,e,t)}}),ui=new Proxy(Aa,{get(r,e,t){return e==="decode"?(...n)=>{let o=r.decode(...n);return E(R({},o),{version:6,rewardInfos:o.rewardInfos.map(a=>{var s;return E(R({},a),{rewardType:((s=Object.entries(Mt).find(u=>String(u[1])===a.rewardType.toString()))!=null?s:["Standard SPL"])[0]})})})}:Reflect.get(r,e,t)}}),Ta=k([i("isSet"),i("rewardPerSecond"),i("rewardOpenTime"),i("rewardEndTime"),i("rewardType")]),ha=k([w("instruction"),i("nonce"),B(Ta,5,"rewardTimeInfo")]),Ia=k([w("instruction"),i("rewardReopenTime"),i("rewardEndTime"),i("rewardPerSecond")]),Ba=k([w("instruction"),i("isSet"),i("rewardPerSecond"),i("rewardOpenTime"),i("rewardEndTime"),i("rewardType")]),dy=k([i("state"),d("id"),d("owner"),i("deposited"),B(i(),1,"rewardDebts")]),ci=k([i("state"),d("id"),d("owner"),i("deposited"),B(D(),1,"rewardDebts"),i(""),i("voteLockedBalance"),B(i(),15)]),py=k([i("state"),d("id"),d("owner"),i("deposited"),B(i(),2,"rewardDebts")]),Sa=k([i("state"),d("id"),d("owner"),i("deposited"),B(D(),2,"rewardDebts"),B(i(),17)]),Ka=k([i(),i("state"),d("id"),d("owner"),i("deposited"),B(D(),5,"rewardDebts"),B(i(),16)]),xa=k([w("instruction"),i("amount")]),Ca=k([d("mint"),d("grantAuthority"),i("baselineVoteWeightScaledFactor"),i("maxExtraLockupVoteWeightScaledFactor"),i("lockupSaturationSecs"),Vo("digitShift"),B(w(),7,"reserved1"),B(i(),7,"reserved2")]),Ra=k([W(8),d("governanceProgramId"),d("realm"),d("realmGoverningTokenMint"),d("realmAuthority"),B(w(),32,"reserved1"),B(Ca,4,"votingMints"),pt("timeOffset"),w("bump"),B(w(),7,"reserved2"),B(i(),11,"reserved3")]),La=k([pt("startTime"),pt("endTime"),w("kind"),B(w(),15,"reserved")]),Oa=k([B(La,1,"lockup"),i("amountDeposited_native"),i("amountInitiallyLockedNative"),Ke("isUsed"),Ke("allowClawback"),w("votingMintConfigIdx"),B(w(),29,"reserved")]),Na=k([W(8),d("voterAuthority"),d("registrar"),B(Oa,32,"deposits"),w("voterBump"),w("voterWweightRecordBump"),B(w(),94,"reserved")]);import{NATIVE_MINT as Ty}from"@solana/spl-token";var hy=G("Raydium_farm_config"),Ma=new Yn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Fa=new Yn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Iy=new Yn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var Mt={"Standard SPL":0,"Option tokens":1},li={[Wo.toString()]:3,[qo.toString()]:4,[Uo.toString()]:5,[Vn.toString()]:6,[Qe.FARM_PROGRAM_ID_V3.toString()]:3,[Qe.FARM_PROGRAM_ID_V4.toString()]:4,[Qe.FARM_PROGRAM_ID_V5.toString()]:5,[Qe.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as cb,SystemProgram as lb,SYSVAR_CLOCK_PUBKEY as mb,SYSVAR_RENT_PUBKEY as db,TransactionInstruction as pb}from"@solana/web3.js";import yb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as gb,createAssociatedTokenAccountIdempotentInstruction as Pb,TOKEN_PROGRAM_ID as Ab}from"@solana/spl-token";import Ey from"bn.js";import{PublicKey as Ry}from"@solana/web3.js";import Oy from"bn.js";var jy=G("Raydium.farm.util");var Rb=G("Raydium_farm_instruction"),Lb={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 Pg from"bn.js";import{PublicKey as IA}from"@solana/web3.js";import{AccountLayout as KA,MintLayout as xA,NATIVE_MINT as CA,TOKEN_PROGRAM_ID as LA}from"@solana/spl-token";import Oe from"bn.js";var Ft=1e4;function ke(r,e,t,n){if(e===void 0)return{amount:r,fee:void 0,expirationTime:void 0};let o=E(R({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),a=t.epoch<o.newerTransferFee.epoch?o.olderTransferFee:o.newerTransferFee,s=new Oe(a.maximumFee.toString()),u=t.epoch<o.newerTransferFee.epoch?(Number(o.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(n)if(a.transferFeeBasisPoints===Ft){let c=new Oe(a.maximumFee.toString());return{amount:r.add(c),fee:c,expirationTime:u}}else{let c=cn(r.mul(new Oe(Ft)),new Oe(Ft-a.transferFeeBasisPoints)),l=new Oe(a.maximumFee.toString()),m=c.sub(r).gt(l)?r.add(l):c,p=cn(m.mul(new Oe(a.transferFeeBasisPoints)),new Oe(Ft)),P=p.gt(s)?s:p;return{amount:m,fee:P,expirationTime:u}}else{let c=cn(r.mul(new Oe(a.transferFeeBasisPoints)),new Oe(Ft)),l=c.gt(s)?s:c;return{amount:r,fee:l,expirationTime:u}}}function vt(r,e){return r===void 0?e:e===void 0?r:Math.min(r,e)}function cn(r,e){let{div:t,mod:n}=r.divmod(e);return n.gt(new Oe(0))?t.add(new Oe(1)):t}import di from"bn.js";var Ua=new di(25),Ga=new di(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as qg,TOKEN_PROGRAM_ID as Ug}from"@solana/spl-token";import{PublicKey as zg,SystemProgram as Xg,SYSVAR_RENT_PUBKEY as Yg,TransactionInstruction as Hg}from"@solana/web3.js";import nP from"bn.js";var za=k([w("instruction"),i("amountIn"),i("minAmountOut")]),Xa=k([w("instruction"),i("maxAmountIn"),i("amountOut")]),Vg=k([w("instruction"),w("nonce")]),Ya=k([w("instruction"),w("nonce"),i("startTime")]),pi=k([i("status"),i("nonce"),i("maxOrder"),i("depth"),i("baseDecimal"),i("quoteDecimal"),i("state"),i("resetFlag"),i("minSize"),i("volMaxCutRatio"),i("amountWaveRatio"),i("baseLotSize"),i("quoteLotSize"),i("minPriceMultiplier"),i("maxPriceMultiplier"),i("systemDecimalValue"),i("minSeparateNumerator"),i("minSeparateDenominator"),i("tradeFeeNumerator"),i("tradeFeeDenominator"),i("pnlNumerator"),i("pnlDenominator"),i("swapFeeNumerator"),i("swapFeeDenominator"),i("baseNeedTakePnl"),i("quoteNeedTakePnl"),i("quoteTotalPnl"),i("baseTotalPnl"),i("poolOpenTime"),i("punishPcAmount"),i("punishCoinAmount"),i("orderbookToInitTime"),D("swapBaseInAmount"),D("swapQuoteOutAmount"),i("swapBase2QuoteFee"),D("swapQuoteInAmount"),D("swapBaseOutAmount"),i("swapQuote2BaseFee"),d("baseVault"),d("quoteVault"),d("baseMint"),d("quoteMint"),d("lpMint"),d("openOrders"),d("marketId"),d("marketProgramId"),d("targetOrders"),d("withdrawQueue"),d("lpVault"),d("owner"),i("lpReserve"),B(i(),3,"padding")]),Eg=k([i("accountType"),i("status"),i("nonce"),i("maxOrder"),i("depth"),i("baseDecimal"),i("quoteDecimal"),i("state"),i("resetFlag"),i("minSize"),i("volMaxCutRatio"),i("amountWaveRatio"),i("baseLotSize"),i("quoteLotSize"),i("minPriceMultiplier"),i("maxPriceMultiplier"),i("systemDecimalsValue"),i("abortTradeFactor"),i("priceTickMultiplier"),i("priceTick"),i("minSeparateNumerator"),i("minSeparateDenominator"),i("tradeFeeNumerator"),i("tradeFeeDenominator"),i("pnlNumerator"),i("pnlDenominator"),i("swapFeeNumerator"),i("swapFeeDenominator"),i("baseNeedTakePnl"),i("quoteNeedTakePnl"),i("quoteTotalPnl"),i("baseTotalPnl"),i("poolOpenTime"),i("punishPcAmount"),i("punishCoinAmount"),i("orderbookToInitTime"),D("swapBaseInAmount"),D("swapQuoteOutAmount"),D("swapQuoteInAmount"),D("swapBaseOutAmount"),i("swapQuote2BaseFee"),i("swapBase2QuoteFee"),d("baseVault"),d("quoteVault"),d("baseMint"),d("quoteMint"),d("lpMint"),d("modelDataAccount"),d("openOrders"),d("marketId"),d("marketProgramId"),d("targetOrders"),d("owner"),B(i(),64,"padding")]),Ha=k([w("instruction"),i("baseAmountIn"),i("quoteAmountIn"),i("fixedSide"),i("otherAmountMin")]),Qa=k([w("instruction"),i("lpAmount"),i("baseAmountMin"),i("quoteAmountMin")]);var Za=k([i("fee")]);var rP=G("Raydium_liquidity_instruction");var $a=5e4,ja=k([i("x"),i("y"),i("price")]),cP=k([i("accountType"),i("status"),i("multiplier"),i("validDataCount"),B(ja,$a,"DataElement")]);import{PublicKey as kP}from"@solana/web3.js";import hP from"decimal.js";import{TOKEN_PROGRAM_ID as BP}from"@solana/spl-token";import{PublicKey as pP}from"@solana/web3.js";var bP=G("Raydium_liquidity_serum");import $A from"bn.js";import JA from"decimal.js";import{TOKEN_PROGRAM_ID as jP}from"@solana/spl-token";import{PublicKey as eA}from"@solana/web3.js";import nA from"bn.js";import{SystemProgram as EP,SYSVAR_RENT_PUBKEY as DP,Transaction as WP,TransactionInstruction as qP}from"@solana/web3.js";import{createInitializeAccountInstruction as GP,TOKEN_PROGRAM_ID as zP}from"@solana/spl-token";function Ja(r="accountFlags"){let e=new on(r);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var es=k([W(5),Ja("accountFlags"),d("ownAddress"),i("vaultSignerNonce"),d("baseMint"),d("quoteMint"),d("baseVault"),i("baseDepositsTotal"),i("baseFeesAccrued"),d("quoteVault"),i("quoteDepositsTotal"),i("quoteFeesAccrued"),i("quoteDustThreshold"),d("requestQueue"),d("eventQueue"),d("bids"),d("asks"),i("baseLotSize"),i("quoteLotSize"),i("feeRateBps"),i("referrerRebatesAccrued"),W(7)]);import{PublicKey as Kk}from"@solana/web3.js";import{AccountLayout as Ck,NATIVE_MINT as Rk,TOKEN_2022_PROGRAM_ID as Lk,TOKEN_PROGRAM_ID as Ok,createAssociatedTokenAccountIdempotentInstruction as Nk}from"@solana/spl-token";import hw from"bn.js";import ss from"bn.js";var cw=new ss(0);import yw from"bn.js";import us from"bn.js";var xe=new us(1e6);import Wk from"bn.js";import Uk from"decimal.js";import{PublicKey as Uw,TransactionInstruction as Gw,Keypair as Xw,SystemProgram as Yw}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Qw,TOKEN_2022_PROGRAM_ID as Zw,TOKEN_PROGRAM_ID as $w}from"@solana/spl-token";var xw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Cw=Buffer.from("amm_config","utf8"),Rw=Buffer.from("pool","utf8"),Lw=Buffer.from("pool_lp_mint","utf8"),Ow=Buffer.from("pool_vault","utf8"),Nw=Buffer.from("observation","utf8"),Mw=Buffer.from("permission","utf8"),Fw=Buffer.from("support_mint","utf8"),vw=Buffer.from("creator_fee_share","utf8");var _w=Buffer.from("locked_liquidity","utf8");var ik=G("Raydium_cpmm"),rk={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 ms=k([W(8),w("bump"),Ke("disableCreatePool"),ie("index"),i("tradeFeeRate"),i("protocolFeeRate"),i("fundFeeRate"),i("createPoolFee"),d("protocolOwner"),d("fundOwner"),i("creatorFeeRate"),i("creatorFeeShareRate"),B(i(),14)]),fi=k([W(8),d("configId"),d("poolCreator"),d("vaultA"),d("vaultB"),d("mintLp"),d("mintA"),d("mintB"),d("mintProgramA"),d("mintProgramB"),d("observationId"),w("bump"),w("status"),w("lpDecimals"),w("mintDecimalA"),w("mintDecimalB"),i("lpAmount"),i("protocolFeesMintA"),i("protocolFeesMintB"),i("fundFeesMintA"),i("fundFeesMintB"),i("openTime"),i("epoch"),w("feeOn"),Ke("enableCreatorFee"),B(w(),6),i("creatorFeesMintA"),i("creatorFeesMintB"),B(i(),28)]),uk=k([W(8),d("configId"),B(i(),30)]),ck=k([W(8),w("bump"),d("creator"),d("ammConfig"),i("shareRate"),B(i(),8)]);import{PublicKey as XK,SystemProgram as YK}from"@solana/web3.js";import{createTransferInstruction as QK,TOKEN_PROGRAM_ID as ZK,TOKEN_2022_PROGRAM_ID as $K,createAssociatedTokenAccountIdempotentInstruction as jK,createSyncNativeInstruction as ex,createTransferCheckedInstruction as tx}from"@solana/spl-token";import Ns from"bn.js";import ix from"decimal.js";import{PublicKey as ge}from"@solana/web3.js";import fe from"bn.js";import{TOKEN_2022_PROGRAM_ID as gi,TOKEN_PROGRAM_ID as fs}from"@solana/spl-token";import z from"decimal.js";import ln from"bn.js";import bi from"decimal.js";var ne=class{static getDeltaAmountAUnsigned(e,t,n,o){e.gt(t)&&([e,t]=[t,e]);let a=n.shln(it),s=t.sub(e);if(!e.gt(C))throw Error("!sqrtPriceX64A.gt(BN_ZERO)");let u=o?zt(J(a,s,t),e):$(a,s,t).div(e);if(u.gt(qe))throw Error("MaxTokenOverflow");return u}static getDeltaAmountBUnsigned(e,t,n,o){e.gt(t)&&([e,t]=[t,e]);let a=o?J(n,t.sub(e),Q):$(n,t.sub(e),Q);if(a.gt(qe))throw Error("MaxTokenOverflow");return a}static addDelta(e,t){if(t.isNeg()){let n=t.neg();if(e.lt(n))throw new Error("Liquidity underflow");return e.sub(n)}else return e.add(t)}static getLiquidityFromAmountA(e,t,n){if(n.isZero())return C;e.gt(t)&&([e,t]=[t,e]);let o=$(e,t,Q),a=t.sub(e);return $(n,o,a)}static getLiquidityFromAmountB(e,t,n){if(n.isZero())return C;e.gt(t)&&([e,t]=[t,e]);let o=t.sub(e);return $(n,Q,o)}static getLiquidityFromAmounts(e,t,n,o,a){if(t.gt(n)&&([t,n]=[n,t]),e.lte(t))return this.getLiquidityFromAmountA(t,n,o);if(e.lt(n)){let s=this.getLiquidityFromAmountA(e,n,o),u=this.getLiquidityFromAmountB(t,e,a);return s.lt(u)?s:u}else return this.getLiquidityFromAmountB(t,n,a)}static getAmountsForLiquidity(e,t,n,o,a){t.gt(n)&&([t,n]=[n,t]);let s=C,u=C;return e.lte(t)?s=this.getDeltaAmountAUnsigned(t,n,o,a):e.lt(n)?(s=this.getDeltaAmountAUnsigned(e,n,o,a),u=this.getDeltaAmountBUnsigned(t,e,o,a)):u=this.getDeltaAmountBUnsigned(t,n,o,a),{amountA:s,amountB:u}}static getAmountsFromLiquidityWithSlippage(e,t,n,o,a,s,u){let{amountA:c,amountB:l}=this.getAmountsForLiquidity(e,t,n,o,s),m=a?1+u:1-u,p=new ln(new bi(c.toString()).mul(m).toFixed(0)),P=new ln(new bi(l.toString()).mul(m).toFixed(0));return{amountSlippageA:p,amountSlippageB:P}}static getLiquidityAndAmountsFromAmount({sqrtPriceCurrentX64:e,sqrtPriceLowerX64:t,sqrtPriceUpperX64:n,amountInfo:o}){let a;if(o.type==="liquidity")a=o.amount;else if(o.type==="amountA")a=e.gte(n)?C:this.getLiquidityFromAmountA(ln.max(e,t),n,o.amount);else if(o.type==="amountB")a=e.lte(t)?C:this.getLiquidityFromAmountB(t,ln.min(e,n),o.amount);else throw Error("amount info type check error");return R({liquidity:a},this.getAmountsForLiquidity(e,t,n,o.amount,!0))}};import gt from"bn.js";import re from"bn.js";var _t=class{static getNextSqrtPriceFromAmountARoundingUp(e,t,n,o){if(n.isZero())return e;let a=t.shln(it);if(o){let s=n.mul(e),u=a.add(s);if(u.gte(a))return J(a,e,u);let c=$(a,Be,e);return J(a,Be,c.add(n))}else{let s=n.mul(e);if(a.lte(s))throw new Error("Insufficient liquidity for token0 removal");let u=a.sub(s);return J(a,e,u)}}static getNextSqrtPriceFromAmountBRoundingDown(e,t,n,o){if(n.isZero())return e;if(o){let a=n.shln(it).div(t);return e.add(a)}else{let a=zt(n.shln(it),t);return e.sub(a)}}static getNextSqrtPriceFromInput(e,t,n,o){if(!e.gt(C))throw Error("sqrtPriceX64.gt(BN_ZERO)");if(!t.gt(C))throw Error("liquidity.gt(BN_ZERO)");return o?this.getNextSqrtPriceFromAmountARoundingUp(e,t,n,!0):this.getNextSqrtPriceFromAmountBRoundingDown(e,t,n,!0)}static getNextSqrtPriceFromOutput(e,t,n,o){if(!e.gt(C))throw Error("sqrtPriceX64.gt(BN_ZERO)");if(!t.gt(C))throw Error("liquidity.gt(BN_ZERO)");return o?this.getNextSqrtPriceFromAmountBRoundingDown(e,t,n,!1):this.getNextSqrtPriceFromAmountARoundingUp(e,t,n,!1)}};var Ne=class{static newValue({poolInfo:e,amountSpecified:t,zeroForOne:n,feeRate:o,blockTimestamp:a}){let s={amountSpecifiedRemaining:t,amountCalculated:C,sqrtPriceX64:e.sqrtPriceX64,tick:e.tickCurrent,feeGrowthGlobalX64:n?e.feeGrowthGlobalX64A:e.feeGrowthGlobalX64B,lpFee:C,protocolFee:C,fundFee:C,liquidity:e.liquidity,sqrtPriceNextX64:C,tickNext:0,baseFeeRate:o,tickSpacing:e.tickSpacing,tickSpacingIndex:0,dynamicFeeInfo:bt.getDynamicFeeInfo({poolInfo:e})};return s.dynamicFeeInfo&&(s.tickSpacingIndex=Et.tickSpacingIndexFromTick(s.tick,s.tickSpacing),bt.updateReference({dynamicFeeInfo:s.dynamicFeeInfo,tickSpacingIndex:s.tickSpacingIndex,currentTimestamp:a})),s}static getTargetPriceBasedOnNextTick({data:e,tickNext:t,zeroForOne:n,sqrtPriceLimitX64:o}){e.tickNext=t,e.tickNext<he?e.tickNext=he:e.tickNext>Ie&&(e.tickNext=Ie),e.sqrtPriceNextX64=F.getSqrtPriceAtTick(e.tickNext);let a;if(n&&e.sqrtPriceNextX64.lt(o)||!n&&e.sqrtPriceNextX64.gt(o)?a=o:a=e.sqrtPriceNextX64,n){if(e.tick<e.tickNext)throw Error("data.tick < data.tickNext");if(e.sqrtPriceX64.lt(e.sqrtPriceNextX64))throw Error("data.sqrtPriceX64.lt(data.sqrtPriceNextX64)");if(e.sqrtPriceX64.lt(a))throw Error("data.sqrtPriceX64.lt(targetPrice)")}else{if(e.tickNext<=e.tick)throw Error("data.tickNext <= data.tick");if(e.sqrtPriceNextX64.lt(e.sqrtPriceX64))throw Error("data.sqrtPriceNextX64.lt(data.sqrtPriceX64)");if(a.lt(e.sqrtPriceX64))throw Error("targetPrice.lt(data.sqrtPriceX64)")}return a}static updateVolatilityAccumulator({state:e}){!e.dynamicFeeInfo||bt.updateVolatilityAccumulator({state:e.dynamicFeeInfo,tickSpacingIndex:e.tickSpacingIndex})}static computeDynamicFeeRate({data:e,tickSpacing:t}){let n=e.volatilityAccumulator*t,o=n*n,a=co*kt*kt,s=J(new re(e.dynamicFeeControl),new re(o),new re(a)).toNumber();return s>Gt?Gt:s}static getTotalFeeRate({data:e}){if(e.dynamicFeeInfo){let t=this.computeDynamicFeeRate({data:e.dynamicFeeInfo,tickSpacing:e.tickSpacing}),n=e.baseFeeRate+t;return Math.min(Gt,n)}return e.baseFeeRate}static getSpacingBoundedPrice({data:e,targetPrice:t,zeroForOne:n}){if(e.dynamicFeeInfo===void 0)return{isSkipped:!0,boundedPrice:t};if(e.liquidity.isZero()||e.dynamicFeeInfo.volatilityAccumulator===e.dynamicFeeInfo.maxVolatilityAccumulator)return{isSkipped:!0,boundedPrice:t};let o=e.tickSpacing,a=n?e.tickSpacingIndex*o:(e.tickSpacingIndex+1)*o,s=Math.max(he,Math.min(Ie,a)),u=F.getSqrtPriceAtTick(s);return n?{isSkipped:!1,boundedPrice:re.max(t,u)}:{isSkipped:!1,boundedPrice:re.min(t,u)}}static applySwapAmounts({state:e,amountIn:t,amountOut:n,feeAmount:o,isBaseInput:a,isFeeOnInput:s,protocolFeeRate:u,fundFeeRate:c}){let l=s?t.add(o):t;a?(e.amountSpecifiedRemaining=e.amountSpecifiedRemaining.sub(l),e.amountCalculated=e.amountCalculated.add(n)):(e.amountSpecifiedRemaining=e.amountSpecifiedRemaining.sub(n),e.amountCalculated=e.amountCalculated.add(l)),this.splitFee({state:e,feeAmount:o,protocolFeeRate:u,fundFeeRate:c})}static updateDynamicFeeIndex({state:e,zeroForOne:t,isSkippedTickSpacing:n}){if(e.dynamicFeeInfo!==void 0){if(n){let o=e.sqrtPriceX64.eq(e.sqrtPriceNextX64)?e.tickNext:e.tick,a=Et.tickSpacingIndexFromTick(o,e.tickSpacing);!t&&o%e.tickSpacing===0&&(a=a-1),e.tickSpacingIndex=a,e.dynamicFeeInfo.volatilityAccumulator!==e.dynamicFeeInfo.maxVolatilityAccumulator&&this.updateVolatilityAccumulator({state:e})}e.tickSpacingIndex+=t?-1:1}}static splitFee({state:e,feeAmount:t,protocolFeeRate:n,fundFeeRate:o}){let a=t;if(n.gt(C)){let s=t.mul(n).div(new re(xe));e.protocolFee=e.protocolFee.add(s),a=a.sub(s)}if(o.gt(C)){let s=t.mul(o).div(new re(xe));e.fundFee=e.fundFee.add(s),a=a.sub(s)}if(e.liquidity.gt(C)){let s=$(a,Q,e.liquidity);e.feeGrowthGlobalX64=e.feeGrowthGlobalX64.add(s),e.lpFee=e.lpFee.add(a)}}},Vt=class{static newSwapComputationResult({sqrtPriceNextX64:e}){return{sqrtPriceNextX64:e!=null?e:C,amountIn:C,amountOut:C,feeAmount:C}}static calculateAmountInRange({sqrtPriceCurrentX64:e,sqrtPriceTargetX64:t,liquidity:n,zeroForOne:o,isBaseInput:a}){if(a)try{return o?ne.getDeltaAmountAUnsigned(t,e,n,!0):ne.getDeltaAmountBUnsigned(e,t,n,!0)}catch(s){if(s.message==="MaxTokenOverflow")return null;throw s}else try{return o?ne.getDeltaAmountBUnsigned(t,e,n,!1):ne.getDeltaAmountAUnsigned(e,t,n,!1)}catch(s){if(s.message==="MaxTokenOverflow")return null;throw s}}static computeSwap(e,t,n,o,a,s,u,c){let l=this.newSwapComputationResult({});if(s){let p=c?$(o,new re(Ue-a),new re(Ue)):o,P=this.calculateAmountInRange({sqrtPriceCurrentX64:e,sqrtPriceTargetX64:t,liquidity:n,zeroForOne:u,isBaseInput:s});P!==null&&(l.amountIn=P),l.sqrtPriceNextX64=P!==null&&p.gte(l.amountIn)?t:_t.getNextSqrtPriceFromInput(e,n,p,u)}else{let p=c?o:J(o,new re(Ue),new re(Ue-a)),P=this.calculateAmountInRange({sqrtPriceCurrentX64:e,sqrtPriceTargetX64:t,liquidity:n,zeroForOne:u,isBaseInput:s});P!==null&&(l.amountOut=P),l.sqrtPriceNextX64=P!==null&&p.gte(l.amountOut)?t:_t.getNextSqrtPriceFromOutput(e,n,p,u)}if(u){if(!l.sqrtPriceNextX64.gte(t))throw Error("!result.sqrtPriceNextX64.gte(sqrtPriceTargetX64)")}else if(!t.gte(l.sqrtPriceNextX64))throw Error("!sqrtPriceTargetX64.gte(result.sqrtPriceNextX64)");let m=t.eq(l.sqrtPriceNextX64);if(u?(m&&s||(l.amountIn=ne.getDeltaAmountAUnsigned(l.sqrtPriceNextX64,e,n,!0)),m&&!s||(l.amountOut=ne.getDeltaAmountBUnsigned(l.sqrtPriceNextX64,e,n,!1))):(m&&s||(l.amountIn=ne.getDeltaAmountBUnsigned(e,l.sqrtPriceNextX64,n,!0)),m&&!s||(l.amountOut=ne.getDeltaAmountAUnsigned(e,l.sqrtPriceNextX64,n,!1))),s)c?l.sqrtPriceNextX64.eq(t)?l.feeAmount=J(l.amountIn,new re(a),new re(Ue-a)):l.feeAmount=o.sub(l.amountIn):(l.feeAmount=J(l.amountOut,new re(a),new re(Ue)),l.amountOut=l.amountOut.sub(l.feeAmount),m||(l.amountIn=o));else if(c)l.amountOut=re.min(l.amountOut,o),l.feeAmount=J(l.amountIn,new re(a),new re(Ue-a));else{l.feeAmount=J(l.amountOut,new re(a),new re(Ue));let p=l.amountOut.sub(l.feeAmount);p.gt(o)?(l.feeAmount=l.amountOut.sub(o),l.amountOut=o):l.amountOut=p}return l}};function Qn({programId:r,poolId:e,poolInfo:t,tickArrays:n,configInfo:o,tickarrayBitmapExtension:a,amountSpecified:s,sqrtPriceLimitX64:u,zeroForOne:c,isBaseInput:l,blockTimestamp:m,includeExtraTickArrays:p}){u.isZero()&&(u=c?new gt(Fe).addn(1):new gt(ve).subn(1));let P=0;if(n.length===0)return{allTrade:!1,amountSpecifiedRemaining:s,amountCalculated:C,feeAmount:C,sqrtPriceX64:t.sqrtPriceX64,liquidity:t.liquidity,tickCurrent:t.tickCurrent,accounts:[]};let g=p?He.findTickArrayAddress({programId:r,poolId:e,tickSpacing:t.tickSpacing,poolBitmap:t.tickArrayBitmap,tickArrayBitmap:a,findInfo:{type:c?"oneForZero":"zeroForOne",count:2,tickArrayCurrent:t.tickCurrent}}).filter(I=>I.toString()!==n[0].address.toString()):[],h=ue.getTickArrayStartIndex(t.tickCurrent,t.tickSpacing),{firstItckArrayContainsPoolTick:A,firstValidTickArrayStartIndex:T}={firstItckArrayContainsPoolTick:n[P].value.startTickIndex===h,firstValidTickArrayStartIndex:n[P].value.startTickIndex},S=A,K=T,M=n[P],v=Nt.isFeeOnInput(t.feeOn,c),b=Ne.newValue({poolInfo:t,amountSpecified:s,zeroForOne:c,feeRate:o.tradeFeeRate,blockTimestamp:m});for(;!b.amountSpecifiedRemaining.isZero()&&!b.sqrtPriceX64.eq(u);){let I=(()=>{let L=ue.nextInitalizedTick({data:M.value,tickSpacing:b.tickSpacing,zeroForOne:c,currentTickIndex:b.tick});if(L!==void 0)return L;if(S){let V=n[++P];return V===void 0?void 0:(K=V.value.startTickIndex,M=V,ue.firstinitializedTick({data:V.value,zeroForOne:c}))}else return S=!0,ue.firstinitializedTick({data:M.value,zeroForOne:c})})();if(I===void 0)return{allTrade:!1,amountSpecifiedRemaining:b.amountSpecifiedRemaining,amountCalculated:b.amountCalculated,feeAmount:b.lpFee.add(b.fundFee).add(b.protocolFee),sqrtPriceX64:b.sqrtPriceX64,liquidity:b.liquidity,tickCurrent:b.tick,accounts:n.slice(0,P).map(L=>L.address)};let x=Ne.getTargetPriceBasedOnNextTick({data:b,tickNext:I.tick,zeroForOne:c,sqrtPriceLimitX64:u}),O=b.liquidity;do{Ne.updateVolatilityAccumulator({state:b});let L=Ne.getTotalFeeRate({data:b}),{isSkipped:V,boundedPrice:j}=Ne.getSpacingBoundedPrice({data:b,targetPrice:x,zeroForOne:c}),U=!b.sqrtPriceX64.eq(j),N;U?(N=Vt.computeSwap(b.sqrtPriceX64,j,b.liquidity,b.amountSpecifiedRemaining,L,l,c,v),Ne.applySwapAmounts({state:b,amountIn:N.amountIn,amountOut:N.amountOut,feeAmount:N.feeAmount,isBaseInput:l,isFeeOnInput:v,protocolFeeRate:new gt(o.protocolFeeRate),fundFeeRate:new gt(o.fundFeeRate)})):N=Vt.newSwapComputationResult({sqrtPriceNextX64:j});let Z=F.limitOrderUnfilledAmount({tick:I});if(b.sqrtPriceNextX64.eq(N.sqrtPriceNextX64)){let q=F.matchLimitOrder({tick:I,swapAmount:b.amountSpecifiedRemaining,swapDirectionZeroForOne:c,isBaseInput:l,feeRate:L,isFeeOnInput:v});if(q.amountIn.gt(C)&&Ne.applySwapAmounts({state:b,amountIn:q.amountIn,amountOut:q.amountOut,feeAmount:q.ammFeeAmount,isBaseInput:l,isFeeOnInput:v,protocolFeeRate:new gt(o.protocolFeeRate),fundFeeRate:new gt(o.fundFeeRate)}),F.hasLiquidity({data:I})&&!F.hasLimitOrders({data:I})){let oe=c?I.liquidityNet.neg():I.liquidityNet;O=ne.addDelta(b.liquidity,oe)}b.tick=c&&!F.hasLimitOrders({data:I})||!c&&F.hasLimitOrders({data:I})?b.tickNext-1:b.tickNext}else b.sqrtPriceX64.eq(N.sqrtPriceNextX64)||(b.tick=F.getTickAtSqrtPrice(N.sqrtPriceNextX64));if(b.sqrtPriceX64=N.sqrtPriceNextX64,Ne.updateDynamicFeeIndex({state:b,zeroForOne:c,isSkippedTickSpacing:V}),b.amountSpecifiedRemaining.isZero()||b.sqrtPriceX64.eq(x)){let q=F.limitOrderUnfilledAmount({tick:I});if(!b.amountSpecifiedRemaining.isZero()&&!q.eq(Z)&&!q.isZero())throw Error("!limitOrderUnfilledAmountAfter.isZero()");break}}while(!0);b.liquidity=O}return{allTrade:!0,amountSpecifiedRemaining:C,amountCalculated:b.amountCalculated,feeAmount:b.lpFee.add(b.fundFee).add(b.protocolFee),sqrtPriceX64:b.sqrtPriceX64,liquidity:b.liquidity,tickCurrent:b.tick,accounts:[...g,...n.slice(0,P+1+(p?1:0)).map(I=>I.address)]}}var Et=class{static tickSpacingIndexFromTick(e,t){return Math.floor(e/t)}},bt=class{static getDynamicFeeInfo({poolInfo:e}){if(!(e.dynamicFeeInfo.filterPeriod===0&&e.dynamicFeeInfo.decayPeriod===0&&e.dynamicFeeInfo.reductionFactor===0&&e.dynamicFeeInfo.dynamicFeeControl===0&&e.dynamicFeeInfo.maxVolatilityAccumulator===0&&e.dynamicFeeInfo.tickSpacingIndexReference===0&&e.dynamicFeeInfo.volatilityReference===0&&e.dynamicFeeInfo.volatilityAccumulator===0&&e.dynamicFeeInfo.lastUpdateTimestamp.isZero()))return e.dynamicFeeInfo}static updateReference({dynamicFeeInfo:e,tickSpacingIndex:t,currentTimestamp:n}){let o=n-e.lastUpdateTimestamp.toNumber();o<e.filterPeriod||(o<e.decayPeriod?(e.tickSpacingIndexReference=t,e.volatilityReference=Math.floor(e.volatilityAccumulator*e.reductionFactor/uo),e.lastUpdateTimestamp=new fe(n)):(e.tickSpacingIndexReference=t,e.volatilityReference=0,e.lastUpdateTimestamp=new fe(n)))}static updateVolatilityAccumulator({state:e,tickSpacingIndex:t}){let n=Math.abs(e.tickSpacingIndexReference-t),o=e.volatilityReference+n*kt;e.volatilityAccumulator=Math.min(o,e.maxVolatilityAccumulator)}},Nt=class{static isFeeOnInput(e,t){switch(e){case 0:return!0;case 1:return t;case 2:return!t;default:return!0}}static isFeeOnTokenA(e,t){return e.feeOn===0?t:e.feeOn===1}static isOverflowDefaultTickarrayBitmap({tickSpacing:e,tickIndexs:t}){let{maxTickBoundary:n,minTickBoundary:o}=this.tickArrayStartIndexRange({tickSpacing:e});for(let a of t){let s=ue.getTickArrayStartIndex(a,e);if(s>=n||s<o)return!0}return!1}static tickArrayStartIndexRange({tickSpacing:e}){let t=He.maxTickInTickarrayBitmap(e),n=-t;return t>Ie&&(t=ue.getTickArrayStartIndex(Ie,e)+ue.tickCount(e)),n<he&&(n=ue.getTickArrayStartIndex(he,e)),{maxTickBoundary:t,minTickBoundary:n}}static async updatePoolRewardInfos({connection:e,apiPoolInfo:t,chainTime:n,poolLiquidity:o,rewardInfos:a}){var u,c,l;let s=[];for(let m=0;m<a.length;m++){let p=a[m],P=(l=(u=t.rewardDefaultInfos[m])==null?void 0:u.mint.programId)!=null?l:(c=await e.getAccountInfo(p.mint))==null?void 0:c.owner;if(P===void 0)throw Error("get new reward mint info error");let g=E(R({},p),{perSecond:yo(p.emissionsPerSecondX64),remainingRewards:void 0,tokenProgramId:new ge(P)});if(g.mint.equals(ge.default)||g.totalEmissioned.eq(qe))continue;if(n<=g.openTime.toNumber()||o.eq(C)){s.push(g);continue}let h=new fe(Math.min(g.endTime.toNumber(),n)),A=h.sub(g.lastUpdateTime);if(A.isZero()){s.push(g);continue}let T=J(A,g.emissionsPerSecondX64,Q),S=$(A,g.emissionsPerSecondX64,o),K,M=g.totalEmissioned.add(T);if(M.lte(qe))K=M;else{let b=qe.sub(g.totalEmissioned);K=qe,S=$(b,Q,o)}let v=g.growthGlobalX64.add(S);s.push(E(R({},g),{growthGlobalX64:v,totalEmissioned:K,lastUpdateTime:h}))}return s}},De=class{static getOutputAmountAndRemainAccounts(e,t,n,o,a,s,u){let c=o.toBase58()===e.mintA.address,l=ue.getTickArrayStartIndex(e.accInfo.tickCurrent,e.accInfo.tickSpacing),{allTrade:m,amountCalculated:p,feeAmount:P,sqrtPriceX64:g,accounts:h}=Qn({programId:e.programId,poolId:e.id,poolInfo:e.accInfo,tickArrays:Object.entries(n).map(A=>({address:A[1].address,value:A[1]})).filter(A=>c?A.value.startTickIndex<=l:A.value.startTickIndex>=l).sort((A,T)=>c?T.value.startTickIndex-A.value.startTickIndex:A.value.startTickIndex-T.value.startTickIndex),configInfo:e.ammConfig,tickarrayBitmapExtension:t,amountSpecified:a,sqrtPriceLimitX64:u!=null?u:C,zeroForOne:c,isBaseInput:!0,blockTimestamp:s,includeExtraTickArrays:!0});return{allTrade:m,expectedAmountOut:p,remainingAccounts:h,executionPrice:g,feeAmount:P}}static getInputAmountAndRemainAccounts(e,t,n,o,a,s,u){let c=o.toBase58()===e.mintB.address,l=ue.getTickArrayStartIndex(e.accInfo.tickCurrent,e.accInfo.tickSpacing),{allTrade:m,amountCalculated:p,feeAmount:P,sqrtPriceX64:g,accounts:h}=Qn({programId:e.programId,poolId:e.id,poolInfo:e.accInfo,tickArrays:Object.entries(n).map(A=>({address:new ge(A[0]),value:A[1]})).filter(A=>c?A.value.startTickIndex<=l:A.value.startTickIndex>=l).sort((A,T)=>c?T.value.startTickIndex-A.value.startTickIndex:A.value.startTickIndex-T.value.startTickIndex),configInfo:e.ammConfig,tickarrayBitmapExtension:t,amountSpecified:a,sqrtPriceLimitX64:u!=null?u:C,zeroForOne:c,isBaseInput:!1,blockTimestamp:s,includeExtraTickArrays:!0});return{allTrade:m,expectedAmountIn:p,remainingAccounts:h,executionPrice:g,feeAmount:P}}static async fetchExBitmaps({connection:e,exBitmapAddress:t,batchRequest:n}){let o=await Ge(e,t.map(s=>({pubkey:s})),{batchRequest:n}),a={};for(let s of o)s.accountInfo!==null&&(a[s.pubkey.toString()]=un.decode(s.accountInfo.data));return a}static async fetchMultiplePoolTickArrays({connection:e,poolKeys:t,batchRequest:n}){let o={},a=[];for(let c of t){let l=[...He.findTickArrayStartIndex({tickSpacing:c.tickSpacing,poolBitmap:c.tickArrayBitmap,tickArrayBitmap:c.exBitmapInfo,findInfo:{type:"zeroForOne",count:7,tickArrayCurrent:c.tickCurrent}}),...He.findTickArrayStartIndex({tickSpacing:c.tickSpacing,poolBitmap:c.tickArrayBitmap,tickArrayBitmap:c.exBitmapInfo,findInfo:{type:"oneForZero",count:7,tickArrayCurrent:c.tickCurrent}})];for(let m of l){let{publicKey:p}=Ze(c.programId,c.id,m);o[p.toString()]===void 0&&(a.push({pubkey:p}),o[p.toString()]=c.id)}}let s=await Ge(e,a,{batchRequest:n}),u={};for(let c of s){if(!c.accountInfo)continue;let l=o[c.pubkey.toString()];if(!l)continue;u[l.toString()]===void 0&&(u[l.toString()]={});let m=yt.decode(c.accountInfo.data);u[l.toString()][m.startTickIndex]=E(R({},m),{address:c.pubkey})}return u}static computeAmountOut({poolInfo:e,tickarrayBitmapExtension:t,tickArrayCache:n,baseMint:o,epochInfo:a,amountIn:s,slippage:u,blockTimestamp:c,priceLimit:l=new z(0)}){var N;let m,p=o.toBase58()===e.mintA.address,[P,g]=p?[e.mintA.extensions.feeConfig,e.mintB.extensions.feeConfig]:[e.mintB.extensions.feeConfig,e.mintA.extensions.feeConfig];l.equals(new z(0))?m=p?Fe.add(new fe(1)):ve.sub(new fe(1)):m=F.priceToSqrtPriceX64(l,e.mintA.decimals,e.mintB.decimals);let h=ke(s,P,a,!1),{allTrade:A,expectedAmountOut:T,remainingAccounts:S,executionPrice:K,feeAmount:M}=De.getOutputAmountAndRemainAccounts(e,t,n,o,h.amount.sub((N=h.fee)!=null?N:C),c,m),v=ke(T,g,a,!1),b=F.sqrtPriceX64ToPrice(K,e.mintA.decimals,e.mintB.decimals),I=p?b:new z(1).div(b),x=T.mul(new fe(Math.floor((1-u)*1e10))).div(new fe(1e10)),O=ke(x,g,a,!1),L=p?e.currentPrice:new z(1).div(e.currentPrice),V=new z(I).sub(L).abs(),j=L,U=new Ve(new z(V).mul(10**15).toFixed(0),new z(j).mul(10**15).toFixed(0));return{allTrade:A,realAmountIn:h,amountOut:v,minAmountOut:O,expirationTime:vt(h.expirationTime,v.expirationTime),currentPrice:e.currentPrice,executionPrice:I,priceImpact:U,fee:M,remainingAccounts:S,executionPriceX64:K}}static computeAmountOutFormat({poolInfo:e,tickarrayBitmapExtension:t,tickArrayCache:n,amountIn:o,tokenOut:a,slippage:s,epochInfo:u,blockTimestamp:c,catchLiquidityInsufficient:l=!1}){let m=a.address===e.mintB.address,[p,P]=m?[e.mintA,e.mintB]:[e.mintB,e.mintA],[g,h]=[new me(E(R({},p),{mint:p.address,isToken2022:p.programId===gi.toBase58()})),new me(E(R({},P),{mint:P.address,isToken2022:P.programId===gi.toBase58()}))],{allTrade:A,realAmountIn:T,amountOut:S,minAmountOut:K,expirationTime:M,currentPrice:v,executionPrice:b,priceImpact:I,fee:x,remainingAccounts:O,executionPriceX64:L}=De.computeAmountOut({poolInfo:e,tickarrayBitmapExtension:t,tickArrayCache:n,baseMint:new ge(p.address),amountIn:o,slippage:s,epochInfo:u,catchLiquidityInsufficient:l,blockTimestamp:c}),V=E(R({},T),{amount:new se(g,T.amount),fee:T.fee===void 0?void 0:new se(g,T.fee)}),j=E(R({},S),{amount:new se(h,S.amount),fee:S.fee===void 0?void 0:new se(h,S.fee)}),U=E(R({},K),{amount:new se(h,K.amount),fee:K.fee===void 0?void 0:new se(h,K.fee)}),N=new Se({baseToken:g,denominator:new fe(10).pow(new fe(20+g.decimals)),quoteToken:h,numerator:v.mul(new z(10**(20+h.decimals))).toFixed(0)}),Z=new Se({baseToken:g,denominator:new fe(10).pow(new fe(20+g.decimals)),quoteToken:h,numerator:b.mul(new z(10**(20+h.decimals))).toFixed(0)}),q=new se(g,x);return{allTrade:A,realAmountIn:V,amountOut:j,minAmountOut:U,expirationTime:M,currentPrice:N,executionPrice:Z,priceImpact:I,fee:q,remainingAccounts:O,executionPriceX64:L}}static computeAmountIn({poolInfo:e,tickarrayBitmapExtension:t,tickArrayCache:n,baseMint:o,epochInfo:a,amountOut:s,slippage:u,priceLimit:c=new z(0),blockTimestamp:l}){var N;let m=o.toBase58()===e.mintA.address,p={[e.mintA.address]:e.mintA.extensions.feeConfig,[e.mintB.address]:e.mintB.extensions.feeConfig},P;c.equals(new z(0))?P=m?ve.sub(new fe(1)):Fe.add(new fe(1)):P=F.priceToSqrtPriceX64(c,e.mintA.decimals,e.mintB.decimals);let g=ke(s,p[o.toString()],a,!0),{allTrade:h,expectedAmountIn:A,remainingAccounts:T,executionPrice:S,feeAmount:K}=De.getInputAmountAndRemainAccounts(e,t,n,o,g.amount.sub((N=g.fee)!=null?N:C),l,P),M=m?e.mintB.address:e.mintA.address,v=ke(A,p[M],a,!1),b=F.sqrtPriceX64ToPrice(S,e.mintA.decimals,e.mintB.decimals),I=m?b:new z(1).div(b),x=A.mul(new fe(Math.floor((1+u)*1e10))).div(new fe(1e10)),O=ke(x,p[M],a,!0),L=m?e.currentPrice:new z(1).div(e.currentPrice),V=new z(I).sub(L).abs(),j=L,U=new Ve(new z(V).mul(10**15).toFixed(0),new z(j).mul(10**15).toFixed(0));return{allTrade:h,amountIn:v,maxAmountIn:O,realAmountOut:g,expirationTime:vt(v.expirationTime,g.expirationTime),currentPrice:e.currentPrice,executionPrice:I,priceImpact:U,fee:K,remainingAccounts:T}}static estimateAprsForPriceRangeMultiplier({poolInfo:e,aprType:t,positionTickLowerIndex:n,positionTickUpperIndex:o}){var h,A,T;let a=e[t],s=F.tickToPrice(n,e.mintA.decimals,e.mintB.decimals).toNumber(),u=F.tickToPrice(o,e.mintA.decimals,e.mintB.decimals).toNumber(),c=Math.max(s,a.priceMin),m=Math.min(u,a.priceMax)-c,p=u-s,P=a.priceMax-a.priceMin,g;return m<=0?g=0:p===m?g=P/m:P===m?g=m/p:g=m/P*(m/p),{feeApr:a.feeApr*g,rewardsApr:[((h=a.rewardApr[0])!=null?h:0)*g,((A=a.rewardApr[1])!=null?A:0)*g,((T=a.rewardApr[2])!=null?T:0)*g],apr:a.apr*g}}static estimateAprsForPriceRangeDelta({poolInfo:e,poolLiquidity:t,aprType:n,mintPrice:o,liquidity:a,positionTickLowerIndex:s,positionTickUpperIndex:u,chainTime:c}){let l=n==="day"?1:n==="week"?7:n==="month"?30:0,m=e[n],p=o[Xe(e.mintA.address).toString()],P=o[Xe(e.mintB.address).toString()],g=e.mintA.decimals,h=e.mintB.decimals;if(!m||!p||!P)return{feeApr:0,rewardsApr:[0,0,0],apr:0};let A=F.priceToSqrtPriceX64(new z(e.price),e.mintA.decimals,e.mintB.decimals),T=F.getSqrtPriceAtTick(s),S=F.getSqrtPriceAtTick(u),{amountSlippageA:K,amountSlippageB:M}=ne.getAmountsFromLiquidityWithSlippage(A,T,S,t,!1,!1,0),{amountSlippageA:v,amountSlippageB:b}=ne.getAmountsFromLiquidityWithSlippage(A,T,S,a,!1,!1,0),I=new z(K.toString()).div(new z(10).pow(g)).mul(p.value).add(new z(M.toString()).div(new z(10).pow(h)).mul(P.value)),x=new z(v.toString()).div(new z(10).pow(g)).mul(p.value).add(new z(b.toString()).div(new z(10).pow(h)).mul(P.value)),O=new z(1).div(I.add(x)),V=new z(m.volumeFee).mul(365).div(l).mul(O).mul(100).toNumber(),j=3600*24*365,U=e.rewardDefaultInfos.map(N=>{var oe,Te;let Z=N.mint.decimals,q=o[N.mint.address];return c<((oe=N.startTime)!=null?oe:0)||c>((Te=N.endTime)!=null?Te:0)||!N.perSecond||!q||Z===void 0?0:new z(q.value).mul(new z(N.perSecond).mul(j)).div(new z(10).pow(Z)).mul(O).mul(100).toNumber()});return{feeApr:V,rewardsApr:U,apr:V+U.reduce((N,Z)=>N+Z,0)}}static async getLiquidityAmountOutFromAmountIn({poolInfo:e,inputA:t,tickLower:n,tickUpper:o,amount:a,slippage:s,add:u,epochInfo:c,amountHasFee:l}){var S,K;let m=F.priceToSqrtPriceX64(new z(e.price),e.mintA.decimals,e.mintB.decimals),p=F.getSqrtPriceAtTick(n),P=F.getSqrtPriceAtTick(o),g=ke(a,(S=e[t?"mintA":"mintB"].extensions)==null?void 0:S.feeConfig,c,!l),h=new fe(new z(g.amount.sub((K=g.fee)!=null?K:C).toString()).toFixed(0)),A;if(m.lte(p))A=t?ne.getLiquidityFromAmountA(p,P,h):new fe(0);else if(m.lte(P)){let M=ne.getLiquidityFromAmountA(m,P,h),v=ne.getLiquidityFromAmountB(p,m,h);A=t?M:v}else A=t?new fe(0):ne.getLiquidityFromAmountB(p,P,h);let T=await De.getAmountsFromLiquidity({epochInfo:c,poolInfo:e,tickLower:n,tickUpper:o,liquidity:A,slippage:s,add:u});return{liquidity:A,amountA:t?g:T.amountA,amountB:t?T.amountB:g,amountSlippageA:t?g:T.amountSlippageA,amountSlippageB:t?T.amountSlippageB:g,expirationTime:T.expirationTime}}static async getAmountsFromLiquidity({epochInfo:e,poolInfo:t,tickLower:n,tickUpper:o,liquidity:a,slippage:s,add:u}){var T,S,K,M;let c=F.getSqrtPriceAtTick(n),l=F.getSqrtPriceAtTick(o),m=ne.getAmountsForLiquidity(F.priceToSqrtPriceX64(new z(t.price),t.mintA.decimals,t.mintB.decimals),c,l,a,u),[p,P]=[ke(m.amountA,(T=t.mintA.extensions)==null?void 0:T.feeConfig,e,!0),ke(m.amountB,(S=t.mintB.extensions)==null?void 0:S.feeConfig,e,!0)],g=s*1e4,[h,A]=[ke(m.amountA.muln(1e4-g).divn(1e4),(K=t.mintA.extensions)==null?void 0:K.feeConfig,e,!0),ke(m.amountB.muln(1e4-g).divn(1e4),(M=t.mintB.extensions)==null?void 0:M.feeConfig,e,!0)];return{liquidity:a,amountA:p,amountB:P,amountSlippageA:h,amountSlippageB:A,expirationTime:vt(p.expirationTime,P.expirationTime)}}static async fetchComputeMultipleClmmInfo({connection:e,poolList:t,rpcDataMap:n={}}){let o=t.filter(l=>!n[l.id]).map(l=>new ge(l.id));(await we(e,o)).forEach((l,m)=>{!l||(n[o[m].toBase58()]=sn.decode(l.data))});let s=t.map(l=>Ye(new ge(l.programId),new ge(l.id)).publicKey),u=await De.fetchExBitmaps({connection:e,exBitmapAddress:s,batchRequest:!1}),c={};return t.reduce((l,m)=>E(R({},l),{[m.id]:E(R({accInfo:n[m.id]},n[m.id]),{id:new ge(m.id),version:6,programId:new ge(m.programId),mintA:m.mintA,mintB:m.mintB,ammConfig:E(R({},m.config),{id:new ge(m.config.id),fundOwner:""}),currentPrice:new z(m.price),exBitmapAccount:Ye(new ge(m.programId),new ge(m.id)).publicKey,exBitmapInfo:u[Ye(new ge(m.programId),new ge(m.id)).publicKey.toBase58()],startTime:n[m.id].startTime.toNumber(),rewardInfos:n[m.id].rewardInfos})}),{})}static async fetchComputeClmmInfo({connection:e,poolInfo:t,rpcData:n}){return(await this.fetchComputeMultipleClmmInfo({connection:e,rpcDataMap:n?{[t.id]:n}:void 0,poolList:[t]}))[t.id]}static async fetchTickArrayInfo({connection:e,programId:t,poolId:n,tick:o,tickSpacing:a}){let s=ue.getTickArrayStartIndex(o,a),u=Ze(t,n,s).publicKey,c=await e.getAccountInfo(u);if(!c)throw new Error(`tick array ${u.toBase58()} not found`);return yt.decode(c.data)}static async fetchMultipleTickArrayInfo({connection:e,tickInfoList:t}){let n=t.map(a=>{let s=ue.getTickArrayStartIndex(a.tick,a.tickSpacing);return Ze(a.programId,a.poolId,s).publicKey});return(await we(e,n)).map(a=>a&&yt.decode(a.data))}},Zn={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};function ma(r,e){let t=e!=null?e:{};return E(R({},r),{type:"Concentrated",programId:r.programId.toString(),id:r.id.toString(),rewardDefaultInfos:r.rewardInfos.filter(n=>!n.mint.equals(ge.default)).map(n=>{var o,a;return{mint:ft({address:n.mint.toBase58(),programId:fs.toBase58(),decimals:(o=t[n.mint.toBase58()].decimals)!=null?o:6}),perSecond:Number(n.emissionsPerSecondX64.divn(10**((a=t[n.mint.toBase58()].decimals)!=null?a:6)).toString()),startTime:n.openTime.toNumber(),endTime:n.endTime.toNumber()}}),rewardDefaultPoolInfos:"Clmm",price:r.currentPrice.toNumber(),mintAmountA:0,mintAmountB:0,feeRate:r.ammConfig.tradeFeeRate,openTime:r.startTime.toString(),tvl:0,day:Zn,week:Zn,month:Zn,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,burnPercent:0,config:E(R({},r.ammConfig),{id:r.ammConfig.id.toString(),defaultRange:0,defaultRangePoint:[]}),hasDynamicFee:!1,feeOn:"",launchMigratePool:!1,tips:[]})}import{ASSOCIATED_TOKEN_PROGRAM_ID as qh,TOKEN_2022_PROGRAM_ID as Uh,TOKEN_PROGRAM_ID as Gh}from"@solana/spl-token";import{SystemProgram as Hh,TransactionInstruction as Qh}from"@solana/web3.js";import ys from"bn.js";var Kh=Buffer.from("vault_auth_seed","utf8"),xh=Buffer.from("global_config","utf8"),Ch=Buffer.from("pool_vesting","utf8"),Rh=Buffer.from("platform_config","utf8"),Lh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Oh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Nh=Buffer.from("platform_global_access","utf8"),Mh=Buffer.from("platform_allow_config","utf8"),Fh=Buffer.from("platform_curve_rule","utf8");var jh={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 Jh=new ys("18446744073709551615");var bs=k([i(),i("epoch"),w("curveType"),ie("index"),i("migrateFee"),i("tradeFeeRate"),i("maxShareFeeRate"),i("minSupplyA"),i("maxLockRate"),i("minSellRateA"),i("minMigrateRateA"),i("minFundRaisingB"),d("mintB"),d("protocolFeeOwner"),d("migrateFeeOwner"),d("migrateToAmmWallet"),d("migrateToCpmmWallet"),B(i(),16)]),gs=k([i("totalLockedAmount"),i("cliffPeriod"),i("unlockPeriod"),i("startTime"),i("totalAllocatedShare")]),Ps=k([i(),i("epoch"),w("bump"),w("status"),w("mintDecimalsA"),w("mintDecimalsB"),w("migrateType"),i("supply"),i("totalSellA"),i("virtualA"),i("virtualB"),i("realA"),i("realB"),i("totalFundRaisingB"),i("protocolFee"),i("platformFee"),i("migrateFee"),gs.replicate("vestingSchedule"),d("configId"),d("platformId"),d("mintA"),d("mintB"),d("vaultA"),d("vaultB"),d("creator"),w("mintProgramFlag"),w("cpmmCreatorFeeOn"),i("platformVestingShare"),B(w(),54)]),oI=k([i(),i("epoch"),d("poolId"),d("beneficiary"),i("claimedAmount"),i("tokenShareAmount"),B(i(),8)]),As=k([w("migrateType"),w("migrateCpmmFeeOn"),i("supply"),i("totalSellA"),i("totalFundRaisingB"),i("totalLockedAmount"),i("cliffPeriod"),i("unlockPeriod")]),iI=k([i("epoch"),w("index"),d("configId"),As.replicate("bondingCurveParam"),B(i(),50)]),Pi=k([i(),i("epoch"),d("platformClaimFeeWallet"),d("platformLockNftWallet"),i("platformScale"),i("creatorScale"),i("burnScale"),i("feeRate"),B(w(),64,"name"),B(w(),256,"web"),B(w(),256,"img"),d("cpConfigId"),i("creatorFeeRate"),d("transferFeeExtensionAuth"),d("platformVestingWallet"),i("platformVestingScale"),d("platformCpCreator"),w("restrictGlobalConfig"),w("restrictCurveParam"),d("curveRuleManager"),B(w(),78)]),ws=k([w("field"),w("op"),D("value")]),ks=k([ie("groupId"),i("epoch"),_n(ws,"constraints")]),Ts=k([i(),w("bump"),w("version"),d("platformId"),d("configId"),i("epoch"),B(i(),8),_n(ks,"groups")]);import{TOKEN_2022_PROGRAM_ID as sI,TOKEN_PROGRAM_ID as uI}from"@solana/spl-token";import hs from"bn.js";var wI=new hs(1e6);import II from"bn.js";import SI from"decimal.js";import iB from"bn.js";import aB from"decimal.js";import OI from"bn.js";import MI from"decimal.js";import GI from"bn.js";import XI from"decimal.js";import ki from"bn.js";import $n from"decimal.js";var mn=class{static _multipler(e){return new $n(10).pow(e)}static getPrice({priceX64:e,decimalA:t,decimalB:n}){return new $n(e.toString()).div(this._Q64).mul(this._multipler(t)).div(this._multipler(n))}static getPriceX64({price:e,decimalA:t,decimalB:n}){let o=e.mul(this._multipler(n)).div(this._multipler(t));return new ki(o.mul(this._Q64).toFixed(0))}};mn._Q64=new $n(new ki(1).shln(64).toString());import{NATIVE_MINT as kS,TOKEN_2022_PROGRAM_ID as TS,TOKEN_PROGRAM_ID as hS,createAssociatedTokenAccountIdempotentInstruction as BS,createSyncNativeInstruction as SS,getTransferFeeConfig as KS,unpackMint as xS}from"@solana/spl-token";import ce from"bn.js";import{PublicKey as Rs,SystemProgram as LS}from"@solana/web3.js";import VS from"decimal.js";var ES={initPriceX64:new ce("515752397214619"),supply:new ce(1e15),totalSellA:new ce(7931e11),totalFundRaisingB:new ce(85e9),totalFundRaisingBUSD:new ce(125e8),totalLockedAmount:new ce("0"),cliffPeriod:new ce("0"),unlockPeriod:new ce("0"),decimals:6,virtualA:new ce("1073471847374405"),virtualB:new ce("30050573465"),realA:new ce(0),realB:new ce(0),protocolFee:new ce(0),platformId:new Rs("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new ce(0),cliffPeriod:new ce(0),unlockPeriod:new ce(0),startTime:new ce(0),totalAllocatedShare:new ce(0)}},DS=new ce(1e4);var Ls={[Go.toBase58()]:3};var Os=k([W(5),W(8),d("ownAddress"),i("vaultSignerNonce"),d("baseMint"),d("quoteMint"),d("baseVault"),i("baseDepositsTotal"),i("baseFeesAccrued"),d("quoteVault"),i("quoteDepositsTotal"),i("quoteFeesAccrued"),i("quoteDustThreshold"),d("requestQueue"),d("eventQueue"),d("bids"),d("asks"),i("baseLotSize"),i("quoteLotSize"),i("feeRateBps"),i("referrerRebatesAccrued"),W(7)]);import{PublicKey as lK}from"@solana/web3.js";var yK=G("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as IK,TOKEN_2022_PROGRAM_ID as BK,TOKEN_PROGRAM_ID as SK}from"@solana/spl-token";import{PublicKey as xK,SystemProgram as CK,TransactionInstruction as RK}from"@solana/web3.js";import OK from"bn.js";var Mx=new Ns(0);import{PublicKey as Ms,Transaction as jn,TransactionInstruction as Fs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vs}from"@solana/spl-token";import Ti from"bn.js";var be=class extends Ae{static getPdaPoolId(e,t){return H([be.SEED_CONFIG.pool.id,t.toBuffer()],e)}static getPdaOwnerId(e,t,n,o){return H([be.SEED_CONFIG.owner.id,t.toBuffer(),n.toBuffer(),Buffer.from(new Ti(o).toArray())],e)}static async getAllInfo({connection:e,programId:t,poolIds:n,wallet:o,chainTime:a}){if(n.length===0)return[];let s=n.map(m=>be.getPdaPoolId(t,m).publicKey),u=[];for(let m=0;m<be.VERSION_PROJECT.length;m++)u.push(...s.map(p=>be.getPdaOwnerId(t,p,o,m).publicKey));let c=await we(e,[...s,...u]),l=[];for(let m=0;m<c.length;m++){let p=Math.floor(m/n.length),P=m%n.length,g=s[P],h=u[m],A=c[P],T=c[n.length+m];if(!(A&&T)||A.data.length!==be.POOL_LAYOUT.span||T.data.length!==be.OWNER_LAYOUT.span)continue;let S=be.POOL_LAYOUT.decode(A.data),K=be.OWNER_LAYOUT.decode(T.data),M=S.openTime.toNumber(),v=S.endTime.toNumber(),b=K.tokenInfo.map(O=>O.debtAmount.gt(new Ti(0))).filter(O=>!O).length!==3,I=a>M&&a<v&&S.status===1,x=b&&I;l.push({programId:t,poolId:g,ammId:S.ammId,ownerAccountId:h,snapshotLpAmount:K.lpAmount,project:be.VERSION_PROJECT[p],openTime:M,endTime:v,canClaim:x,canClaimErrorType:b?I?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:S.tokenInfo.map((O,L)=>({mintAddress:O.mintAddress,mintVault:O.mintVault,mintDecimals:O.mintDecimals,perLpLoss:O.perLpLoss,debtAmount:K.tokenInfo[L].debtAmount.add(K.tokenInfo[L].claimedAmount)}))})}return l}async makeClaimTransaction({poolInfo:e,ownerInfo:t,feePayer:n}){t.wallet||this.scope.checkOwner();let o=this.createTxBuilder(n),a=t.wallet||this.scope.ownerPubKey,s=[];for(let l of e.tokenInfo){let{account:m,instructionParams:p}=await this.scope.account.getOrCreateTokenAccount({mint:l.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:l.mintAddress.equals(me.WSOL.mint),createInfo:{payer:a,amount:0},skipCloseAccount:!l.mintAddress.equals(me.WSOL.mint),associatedOnly:l.mintAddress.equals(me.WSOL.mint)?!1:t.associatedOnly});p&&o.addInstruction(p),s.push(m)}o.addInstruction({instructions:[be.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:a,ownerPda:e.ownerAccountId,claimAddress:s}})]});let{transaction:u,signers:c}=o.build();return[{transaction:u,signer:c}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:t,feePayer:n}){let o=this.createTxBuilder(n),a=t.wallet||this.scope.ownerPubKey,s={};for(let m of e){let p=[];for(let P of m.tokenInfo){let{account:g,instructionParams:h}=await this.scope.account.getOrCreateTokenAccount({mint:P.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:P.mintAddress.equals(me.WSOL.mint),createInfo:{payer:a,amount:0},skipCloseAccount:!P.mintAddress.equals(me.WSOL.mint),associatedOnly:P.mintAddress.equals(me.WSOL.mint)?!1:t.associatedOnly});h&&o.addInstruction(h),g&&(s[P.mintAddress.toString()]=g,p.push(g))}o.addInstruction({instructions:[be.makeClaimInstruction({programId:m.programId,poolInfo:m,ownerInfo:{wallet:a,ownerPda:m.ownerAccountId,claimAddress:p}})]})}let{transaction:u,signers:c}=o.build(),l=o.allInstructions;return Ln(l,[a,...c.map(m=>m.publicKey)])?[{transaction:u,signer:c}]:[{transaction:new jn().add(...l.slice(0,o.AllTxData.instructions.length-1)),signer:c},{transaction:new jn().add(...l.slice(o.AllTxData.instructions.length-1)),signer:[]},{transaction:new jn().add(...o.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:t,ownerInfo:n}){let o=k([]),a=[{pubkey:n.wallet,isSigner:!0,isWritable:!0},{pubkey:t.poolId,isSigner:!1,isWritable:!0},{pubkey:n.ownerPda,isSigner:!1,isWritable:!0},...n.claimAddress.map(c=>({pubkey:c,isSigner:!1,isWritable:!0})),...t.tokenInfo.map(({mintVault:c})=>({pubkey:c,isSigner:!1,isWritable:!0})),{pubkey:vs,isSigner:!1,isWritable:!1}],s=Buffer.alloc(o.span);o.encode({},s);let u=Buffer.from([10,66,208,184,161,6,191,98,...s]);return new Fs({keys:a,programId:e,data:u})}},Me=be;Me.CLAIMED_NUM=3,Me.POOL_LAYOUT=k([W(8),w("bump"),w("status"),i("openTime"),i("endTime"),d("ammId"),B(k([w("mintDecimals"),d("mintAddress"),d("mintVault"),i("perLpLoss"),i("totalClaimedAmount")]),be.CLAIMED_NUM,"tokenInfo"),B(i(),10,"padding")]),Me.OWNER_LAYOUT=k([W(8),w("bump"),w("version"),d("poolId"),d("owner"),i("lpAmount"),B(k([d("mintAddress"),i("debtAmount"),i("claimedAmount")]),be.CLAIMED_NUM,"tokenInfo"),B(i(),4,"padding")]),Me.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new Ms(e)),Me.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},Me.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as $x}from"@solana/web3.js";import{getTransferFeeConfig as Jx,MintLayout as eC,TOKEN_2022_PROGRAM_ID as tC,TOKEN_PROGRAM_ID as nC,unpackMint as oC}from"@solana/spl-token";var LR=new nt(2),OR=new nt(3),NR=new nt(5),wn=new nt(10),MR=new nt(100),FR=new nt(1e3),vR=new nt(1e4);function Sn(r){return wn.pow(ae(r))}function Pn(r,e=1,t=[]){let n=[...r];if(e<=0)return t;for(;n.length;)t.push(n.splice(0,e));return t}import le from"bn.js";import Pt from"decimal.js";var He=class{static scanLinearBitmap({bitmap:e,tickSpacing:t,offset:n,checkInfo:o}){let a=[],s=e.length*8,u=0,c=s-1;if(o){let p=o.tick/(t*Pe)-n;o.valueType==="gte"?u=Math.max(0,Math.ceil(p)):c=Math.min(s-1,Math.floor(p))}if(u>c)return a;let l=Math.floor(u/8),m=Math.floor(c/8);for(let p=l;p<=m;p++){if(!e[p])continue;let P=p===l?u%8:0,g=p===m?c%8:7;for(let h=P;h<=g;h++)e[p]&1<<h&&a.push((p*8+h+n)*t*Pe)}return a}static findPoolBitmap({bitmap:e,tickSpacing:t,checkInfo:n}){if(n){let o=Math.floor(n.tick/Pe/t);if(n.valueType==="lte"&&o<-512)return[];if(n.valueType==="gte"&&o>512)return[]}return this.scanLinearBitmap({bitmap:e,tickSpacing:t,offset:-Ut,checkInfo:n})}static findPositiveTickArrayBitmap({bitmap:e,tickSpacing:t,checkInfo:n}){if(n){let o=Math.floor(n.tick/Pe/t);if(n.valueType==="lte"&&o<512)return[]}return this.scanLinearBitmap({bitmap:e,tickSpacing:t,offset:Ut,checkInfo:n})}static findNegativeTickArrayBitmap({bitmap:e,tickSpacing:t,count:n,checkInfo:o}){let a=[];if(o){let c=Math.floor(o.tick/Pe/t);if(o.valueType==="gte"&&c>=-512)return a}let s=(o==null?void 0:o.valueType)==="lte"?Math.floor(o.tick/(Pe*t))+7680:1/0,u=(o==null?void 0:o.valueType)==="gte"?Math.ceil(o.tick/(Pe*t))+7680:0;e:for(let c=0;c<rt;c++){let l=rt-1-c;for(let m=0;m<512;m++){let p=c*512+m;if(p>s)break e;if(p<u)continue;let P=l*64+Math.floor(m/8);if(!e[P]){m=Math.floor(m/8)*8+7;continue}if(e[P]&1<<m%8){let g=(c*512+m-7680)*Pe*t;if(a.push(g),n!==void 0&&a.length>=n)break e}}}return a}static findTickArrayStartIndex({tickSpacing:e,poolBitmap:t,tickArrayBitmap:n,findInfo:o}){if(o.type==="all")return[...this.findNegativeTickArrayBitmap({tickSpacing:e,bitmap:n.negativeTickArrayBitmap}),...this.findPoolBitmap({tickSpacing:e,bitmap:t}),...this.findPositiveTickArrayBitmap({tickSpacing:e,bitmap:n.positiveTickArrayBitmap})];let a=ue.getTickArrayStartIndex(o.tickArrayCurrent,e),{count:s}=o;if(o.type==="oneForZero"){let u={tick:a,valueType:"gte"},c=[()=>this.findNegativeTickArrayBitmap({tickSpacing:e,bitmap:n.negativeTickArrayBitmap,checkInfo:u}),()=>this.findPoolBitmap({tickSpacing:e,bitmap:t,checkInfo:u}),()=>this.findPositiveTickArrayBitmap({tickSpacing:e,bitmap:n.positiveTickArrayBitmap,checkInfo:u})];return this.collectUntil(c,s)}if(o.type==="zeroForOne"){let u={tick:a,valueType:"lte"},c=[()=>this.findPositiveTickArrayBitmap({tickSpacing:e,bitmap:n.positiveTickArrayBitmap,checkInfo:u}).sort((l,m)=>m-l),()=>this.findPoolBitmap({tickSpacing:e,bitmap:t,checkInfo:u}).sort((l,m)=>m-l),()=>this.findNegativeTickArrayBitmap({tickSpacing:e,bitmap:n.negativeTickArrayBitmap,checkInfo:u}).sort((l,m)=>m-l)];return this.collectUntil(c,s)}throw new Error("find info type check error")}static collectUntil(e,t){let n=[];for(let o of e){if(t!==void 0&&n.length>=t)break;n.push(...o())}return n.slice(0,t)}static findTickArrayAddress(e){return this.findTickArrayStartIndex(e).map(t=>Ze(e.programId,e.poolId,t).publicKey)}static maxTickInTickarrayBitmap(e){return e*Pe*Ut}},ue=class{static firstinitializedTick({data:e,zeroForOne:t}){if(t){for(let n=e.ticks.length-1;n>=0;n--)if(F.isInitialized({data:e.ticks[n]}))return e.ticks[n]}else for(let n=0;n<e.ticks.length;n++)if(F.isInitialized({data:e.ticks[n]}))return e.ticks[n]}static nextInitalizedTick({data:e,currentTickIndex:t,tickSpacing:n,zeroForOne:o}){if(this.getTickArrayStartIndex(t,n)!==e.startTickIndex)return;let s=Math.floor((t-e.startTickIndex)/n);if(o){for(let u=s;u>=0;u--)if(F.isInitialized({data:e.ticks[u]}))return e.ticks[u]}else for(let u=s+1;u<Pe;u++)if(F.isInitialized({data:e.ticks[u]}))return e.ticks[u]}static getTickArrayStartIndex(e,t){let n=this.tickCount(t);return Math.floor(e/n)*n}static getTickOffsetInArray(e,t){if(e%t!=0)throw new Error("tickIndex % tickSpacing not equal 0");let n=this.getTickArrayStartIndex(e,t);return Math.floor((e-n)/t)}static tickCount(e){return Pe*e}static getMinTick(e){return Math.ceil(he/e)*e}static getMaxTick(e){return Math.floor(Ie/e)*e}},F=class{static isInitialized({data:e}){return this.hasLiquidity({data:e})||this.hasLimitOrders({data:e})}static hasLimitOrders({data:e}){return!e.ordersAmount.isZero()||!e.partFilledOrdersRemaining.isZero()}static hasLiquidity({data:e}){return!e.liquidityGross.isZero()}static isValidTick(e){return e>=he&&e<=Ie}static checkTick(e){if(!this.isValidTick(e))throw new Error(`Tick ${e} is out of range [${he}, ${Ie}]`)}static getSqrtPriceAtTick(e){this.checkTick(e);let t=Math.abs(e),n=Q.clone();for(let{bit:o,factor:a}of so)(t&1<<o)!==0&&(n=$(n,a,Q));return e>0&&(n=$(Q,Q,n)),n}static getLimitOrderOutput({amountIn:e,tick:t,zeroForOne:n}){if(n){let o=F.getPriceAtTick(t,!1);return $(e,o,Q)}else{let o=F.getPriceAtTick(t,!0);return $(e,Q,o)}}static getLimitOrderInput({amountOut:e,tick:t,zeroForOne:n}){if(n){let o=F.getPriceAtTick(t,!0);return J(e,o,Q)}else{let o=F.getPriceAtTick(t,!1);return J(e,Q,o)}}static limitOrderUnfilledAmount({tick:e}){return e.ordersAmount.add(e.partFilledOrdersRemaining)}static matchLimitOrder({tick:e,swapAmount:t,swapDirectionZeroForOne:n,isBaseInput:o,feeRate:a,isFeeOnInput:s}){let u={amountIn:C,amountOut:C,ammFeeAmount:C},c=this.limitOrderUnfilledAmount({tick:e});if(t.isZero()||c.isZero())return u;if(o)s?(u.ammFeeAmount=J(t,new le(a),xe),u.amountIn=t.sub(u.ammFeeAmount)):u.amountIn=t,u.amountOut=this.getLimitOrderOutput({amountIn:u.amountIn,tick:e.tick,zeroForOne:n}),u.amountOut.gt(c)&&(u.amountOut=c,u.amountIn=this.getLimitOrderInput({amountOut:c,tick:e.tick,zeroForOne:!n}),s&&(u.ammFeeAmount=J(u.amountIn,new le(a),xe.sub(new le(a)))));else{let p=le.min(t,c);s?u.amountOut=p:u.amountOut=le.min(J(p,xe,xe.sub(new le(a))),c),u.amountIn=this.getLimitOrderInput({amountOut:u.amountOut,tick:e.tick,zeroForOne:!n}),s&&(u.ammFeeAmount=J(u.amountIn,new le(a),xe.sub(new le(a))))}let l=C;e.partFilledOrdersRemaining.gt(C)&&(l=le.min(e.partFilledOrdersRemaining,u.amountOut),l.gt(C)&&(e.unfilledRatioX64=$(e.unfilledRatioX64,e.partFilledOrdersRemaining.sub(l),e.partFilledOrdersRemaining)),e.partFilledOrdersRemaining=e.partFilledOrdersRemaining.sub(l));let m=u.amountOut.sub(l);if(m.gt(C)){if(!e.partFilledOrdersRemaining.isZero())throw Error("!tick.partFilledOrdersRemaining.isZero()");if(e.ordersAmount.lt(m))throw Error("InvalidLimitOrderAmount");e.orderPhase=e.orderPhase.add(Be),e.unfilledRatioX64=$(Q,e.ordersAmount.sub(m),e.ordersAmount),e.partFilledOrdersRemaining=e.ordersAmount.sub(m),e.ordersAmount=C}return s||(u.ammFeeAmount=J(u.amountOut,new le(a),xe),u.amountOut=u.amountOut.sub(u.ammFeeAmount)),u}static getPriceAtTick(e,t){let n=this.getSqrtPriceAtTick(e);return t?n.mul(n).add(Q.subn(1)).div(Q):n.mul(n).div(Q)}static getTickAtSqrtPrice(e){if(!(e.gte(Fe)&&e.lte(ve)))throw Error("SqrtPriceX64");let t=fo(e),n=t-64,o;n>=0?o=new le(n).shln(32):o=new le(-n).shln(32).neg();let a;t>=64?a=e.shrn(t-63):a=e.shln(63-t);let s=new le(0),u=new le(1).shln(63);for(let T=0;T<ao&&!u.isZero();T++){a=a.mul(a);let S=a.shrn(127).toNumber();a=a.shrn(63+S),S&&(s=s.add(u)),u=u.shrn(1)}let c=s.shrn(32),m=o.add(c).mul(oo),p=m.sub(io),P=m.add(ro),g=this.signedShrn64(p),h=this.signedShrn64(P);return g===h?g:F.getSqrtPriceAtTick(h).lte(e)?h:g}static signedShrn64(e){if(e.isNeg()){let t=new le(1).shln(64),n=e.div(t);return!e.mod(t).isZero()&&e.isNeg()?n.subn(1).toNumber():n.toNumber()}else return e.shrn(64).toNumber()}static sqrtPriceX64ToPrice(e,t,n){let o=e.mul(e),a=t-n,s=20,u=new le(10).pow(new le(s)),c=o.mul(u),l=new le(1).shln(128),p=c.div(l).toString();for(;p.length<=s;)p="0"+p;let P=p.slice(0,-s),g=p.slice(-s),h=P+"."+g;return new Pt(h).mul(new Pt(10).pow(a))}static tickToPrice(e,t,n){let o=F.getSqrtPriceAtTick(e);return this.sqrtPriceX64ToPrice(o,t,n)}static priceToTick(e,t,n){let a=e.div(Math.pow(10,t-n)).log().div(new Pt(1.0001).log()).floor();return Math.max(he,Math.min(Ie,a.toNumber()))}static priceToSqrtPriceX64(e,t,n){let s=e.div(Math.pow(10,t-n)).sqrt().mul(new Pt(2).pow(64));return new le(s.toFixed(0))}static toTickIndex(e,t){return e>=0?e-e%t:e-e%t-(e%t!==0?t:0)}static getPriceAndTick({price:e,mintADecimals:t,mintBDecimals:n,zeroForOne:o,tickSpacing:a}){let s=e.clamp(1/10**Math.max(t,n),Number.MAX_SAFE_INTEGER);o||(s=new Pt(1).div(s));let u=F.toTickIndex(F.priceToTick(s,t,n),a),c=F.tickToPrice(u,t,n);return{price:o?c:new Pt(1).div(c),tick:u}}};async function da(r,e,t,n,o,a,s=!0){let u=[],c=Ye(r,t).publicKey,l=await e.getAccountInfo(c),m=He.findTickArrayAddress({programId:r,poolId:t,poolBitmap:a,tickArrayBitmap:un.decode(l.data),tickSpacing:o,findInfo:{type:s?"zeroForOne":"oneForZero",tickArrayCurrent:n}});return(await we(e,m)).forEach((P,g)=>{P&&u.push({address:m[g],value:yt.decode(P.data)})}),u}var Xn=class{static isFullyFilled({orderInfo:e}){return e.totalAmount.eq(e.filledAmount)}static getUnFilledAmount({orderInfo:e}){return e.totalAmount.sub(e.filledAmount)}static settleFilledOrder({orderInfo:e,tickInfo:t}){if(e.settleBase.isZero())return C;if(e.orderPhase.eq(t.orderPhase))return C;if(e.orderPhase.add(Be).eq(t.orderPhase)){let n=e.settleBase.mul(t.unfilledRatioX64),o=e.unfilledRatioX64,a=n.div(o),s=n.mod(o).isZero(),u=e.settleBase.sub(a);if(u.isZero())return C;let c=s?u:u.sub(Be);return F.getLimitOrderOutput({amountIn:c,tick:t.tick,zeroForOne:e.zeroForOne}).sub(e.settleOutput)}else{if(e.orderPhase.add(new _s(2)).lte(t.orderPhase))return F.getLimitOrderOutput({amountIn:e.settleBase,tick:t.tick,zeroForOne:e.zeroForOne}).sub(e.settleOutput);throw Error("invalid order phase")}}};var AL=({baseIn:r,price:e,mintADecimal:t,mintBDecimal:n,tickSpacing:o})=>{let a=F.priceToTick(e,t,n),s=F.toTickIndex(a,o),u=F.tickToPrice(s,t,n);return{tick:s,price:u}};import At from"bn.js";var hi=class{static getfeeGrowthInside(e,t,n){let o=new At(0),a=new At(0);e.tickCurrent>=t.tick?(o=t.feeGrowthOutsideX64A,a=t.feeGrowthOutsideX64B):(o=ye(e.feeGrowthGlobalX64A,t.feeGrowthOutsideX64A),a=ye(e.feeGrowthGlobalX64B,t.feeGrowthOutsideX64B));let s=new At(0),u=new At(0);e.tickCurrent<n.tick?(s=n.feeGrowthOutsideX64A,u=n.feeGrowthOutsideX64B):(s=ye(e.feeGrowthGlobalX64A,n.feeGrowthOutsideX64A),u=ye(e.feeGrowthGlobalX64B,n.feeGrowthOutsideX64B));let c=ye(ye(e.feeGrowthGlobalX64A,o),s),l=ye(ye(e.feeGrowthGlobalX64B,a),u);return{feeGrowthInsideX64A:c,feeGrowthInsideBX64:l}}static GetPositionFees(e,t,n,o){let{feeGrowthInsideX64A:a,feeGrowthInsideBX64:s}=this.getfeeGrowthInside(e,n,o),u=$(ye(a,t.feeGrowthInsideLastX64A),t.liquidity,Q),c=t.tokenFeesOwedA.add(u),l=$(ye(s,t.feeGrowthInsideLastX64B),t.liquidity,Q),m=t.tokenFeesOwedB.add(l);return{tokenFeeAmountA:c,tokenFeeAmountB:m}}static GetPositionRewards(e,t,n,o){let a=[],s=this.getRewardGrowthInside(e.tickCurrent,n,o,e.rewardInfos);for(let u=0;u<s.length;u++){let c=s[u],l=t.rewardInfos[u],m=ye(c,l.growthInsideLastX64),p=$(m,t.liquidity,Q),P=l.rewardAmountOwed.add(p);a.push(P)}return a}static getRewardGrowthInside(e,t,n,o){let a=[];for(let s=0;s<o.length;s++){let u=new At(0);t.liquidityGross.eqn(0)?u=o[s].growthGlobalX64:e<t.tick?u=ye(o[s].growthGlobalX64,t.rewardGrowthsOutsideX64[s]):u=t.rewardGrowthsOutsideX64[s];let c=new At(0);n.liquidityGross.eqn(0)||(e<n.tick?c=n.rewardGrowthsOutsideX64[s]:c=ye(o[s].growthGlobalX64,n.rewardGrowthsOutsideX64[s])),a.push(ye(ye(o[s].growthGlobalX64,u),c))}return a}};export{Xr as AMM_CONFIG_SEED,ao as BIT_PRECISION,zs as BN_NEGATIVE_ONE,Be as BN_ONE,C as BN_ZERO,pn as CollectFeeOn,Ys as DYNAMIC_CONFIG_INDEX,Jr as DYNAMIC_FEE_CONFIG_SEED,co as DYNAMIC_FEE_CONTROL_DENOMINATOR,bt as DynamicFeeInfo,rt as EXTENSION_TICKARRAY_BITMAP_SIZE,Ue as FEE_RATE_DENOMINATOR,oo as LOG_B_2_X32,io as LOG_B_P_ERR_MARGIN_LOWER_X64,ro as LOG_B_P_ERR_MARGIN_UPPER_X64,Xn as LimitOrderMath,ne as LiquidityMathUtil,Ds as MAGIC_SQRT_10001,Ws as MAX_FEE_RATE,Gt as MAX_FEE_RATE_NUMERATOR,ve as MAX_SQRT_PRICE_X64,Ie as MAX_TICK,qs as MAX_TICK_SPACING,Fe as MIN_SQRT_PRICE_X64,he as MIN_TICK,lo as OBSERVATION_NUM,Gs as OBSERVATION_UPDATE_DURATION_DEFAULT,Qr as OPERATION_SEED,mo as OPERATION_SIZE_USIZE,ea as PERMISSION_SEED,ii as POOL_LOCK_ID_SEED,$r as POOL_OBSERVATION_SEED,Yr as POOL_REWARD_VAULT_SEED,Un as POOL_SEED,Zr as POOL_TICK_ARRAY_BITMAP_SEED,jo as POOL_VAULT_SEED,Jo as POSITION_SEED,Et as PoolFee,Ci as PoolStatusBitFlag,xi as PoolStatusBitIndex,Nt as PoolUtil,De as PoolUtils,hi as PositionUtils,dn as Q128,Q as Q64,uo as REDUCTION_FACTOR_DENOMINATOR,it as RESOLUTION,Tt as REWARD_NUM,Ri as RewardState,jr as SUPPORT_MINT_SEED,_t as SqrtPriceMath,Vt as SwapMathUtil,Ne as SwapState,Ut as TICK_ARRAY_BITMAP_SIZE,Hr as TICK_ARRAY_SEED,Pe as TICK_ARRAY_SIZE,Us as TICK_ARRAY_SIZE_USIZE,so as TICK_TO_SQRT_PRICE_FACTORS,He as TickArrayBitmapUtil,ue as TickArrayUtil,F as TickUtil,qt as U128_MAX,su as U256_MAX,Hs as U64_IGNORE_RANGE,qe as U64_MAX,Li as UpdateAmmConfigParam,Oi as UpdateOperationAccountParam,kt as VOLATILITY_ACCUMULATOR_SCALE,po as WHITE_MINT_SIZE_USIZE,gu as abs,Js as checkedAdd,tu as checkedMul,eu as checkedSub,pu as clearBit,ma as clmmComputeInfoToApiInfo,bo as decimalToX64,zt as divRoundingUp,da as fetchTickArrays,bu as fromSignedI128,Xs as getCollectFeeOnDescription,AL as getOrderTick,Qp as getPdaAmmConfigId,Zp as getPdaDynamicFeeConfigAddress,Ye as getPdaExBitmapAccount,sa as getPdaLimitOrderAddress,ua as getPdaLimitOrderNonceAddress,ri as getPdaLockClPositionIdV2,ca as getPdaLockPositionId,Gn as getPdaMetadataKey,aa as getPdaMintExAccount,ra as getPdaObservationAccount,oi as getPdaOperationAccount,na as getPdaPermission,oa as getPdaPermissionedPoolId,ni as getPdaPersonalPositionAddress,ta as getPdaPoolId,ia as getPdaPoolRewardVaultId,ei as getPdaPoolVaultId,ti as getPdaProtocolPositionAddress,Ze as getPdaTickArrayAddress,qn as i32ToBytes,Qo as i32ToBytesBE,mu as isBitSet,lu as leastSignificantBit,yn as mask,Ni as mockV3CreatePoolInfo,fo as mostSignificantBit,J as mulDivCeil,$ as mulDivFloor,ou as mulDivRound,nu as mulFull,du as setBit,Qn as swapInternal,yu as toSignedI128,fu as toggleBit,au as u128CheckedMul,iu as u128SaturatingAdd,ru as u128SaturatingSub,Dn as u16ToBytes,Wn as u16ToBytesBE,cu as u256MulDivCeil,uu as u256MulDivFloor,Zo as u64ToBytes,$o as u8ToBytes,ye as wrappingSubU128,yo as x64ToDecimal};
//# sourceMappingURL=index.mjs.map