UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 124 kB
var Bi=Object.defineProperty,Si=Object.defineProperties;var xi=Object.getOwnPropertyDescriptors;var Wt=Object.getOwnPropertySymbols;var eo=Object.prototype.hasOwnProperty,to=Object.prototype.propertyIsEnumerable;var Jn=(r,e,t)=>e in r?Bi(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,L=(r,e)=>{for(var t in e||(e={}))eo.call(e,t)&&Jn(r,t,e[t]);if(Wt)for(var t of Wt(e))to.call(e,t)&&Jn(r,t,e[t]);return r},E=(r,e)=>Si(r,xi(e));var Ce=(r,e)=>{var t={};for(var n in r)eo.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&&to.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 Z=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"),no=new X("59543866431248"),oo=new X("184467440737095516"),io=new X("15793534762490258745"),ro=16,Ut=512,Pe=60,Vs=new X("18446743708227953217"),ao=[{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,_s=1e5,pn=(n=>(n[n.FromInput=0]="FromInput",n[n.TokenOnlyA=1]="TokenOnlyA",n[n.TokenOnlyB=2]="TokenOnlyB",n))(pn||{}),Es=1e3,Gt=1e5,kt=1e4,so=1e4,uo=1e5,Ds=60,Tt=3,co=100,Ws=15,lo=10,mo=100,rt=14,Ki=(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))(Ki||{}),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),qs=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 Us(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 Gs=2,zs=new X("18446744073700000000");function yn(r){return new Re(1).shln(r).subn(1)}function Hs(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 js(r,e){if(r.lt(e))throw new Error("Subtraction underflow");return r.sub(e)}function $s(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 Js(r,e){let t=r.mul(e),n=t.and(yn(128)),o=t.shrn(128);return[n,o]}function j(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 eu(r,e,t,n){return n?J(r,e,t):j(r,e,t)}function zt(r,e){return r.div(e).add(r.mod(e).isZero()?C:Be)}function tu(r,e){let t=r.add(e);return t.gt(qt)?qt:t}function nu(r,e){return r.gt(e)?r.sub(e):new Re(0)}function ou(r,e){let t=r.mul(e);if(t.gt(qt))throw new Error("U128 multiplication overflow");return t}var iu=new Re(1).shln(256).subn(1);function ru(r,e,t){if(t.isZero())throw new Error("Division by zero");return r.mul(e).div(t)}function au(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 po(r){return r.isZero()?-1:r.bitLength()-1}function su(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 uu(r,e){return r.testn(e)}function cu(r,e){return r.or(new Re(1).shln(e))}function lu(r,e){return r.and(new Re(1).shln(e).notn(256))}function mu(r,e){return r.xor(new Re(1).shln(e))}function du(r){let e=new Re(1).shln(127);return r.and(e).isZero()?r:r.sub(new Re(1).shln(128))}function pu(r){return r.isNeg()?r.add(new Re(1).shln(128)):r}function fu(r){return r.isNeg()?r.neg():r}function fo(r,e){return new fn(r.toString()).div(fn.pow(2,64)).toDecimalPlaces(e)}function yo(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 Ms from"bn.js";import{PublicKey as vi}from"@solana/web3.js";import{get as bo,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}},go={},Fi={};function G(r){let e=bo(go,r);if(!e){let t=bo(Fi,r);e=new bn({name:r,logLevel:t}),Mi(go,r,e)}return e}import{MINT_SIZE as Bu,TOKEN_PROGRAM_ID as Su,getTransferFeeConfig as xu,unpackMint as Ku}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}=L({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(L({},o),{accountInfo:n[a]}))}import nt from"bn.js";import NC from"decimal.js";import Gi from"big.js";import Qt from"bn.js";import Vi from"toformat";var _i=Vi,ht=_i;import Yt from"big.js";import Di from"bn.js";import Wi from"decimal.js-light";import It from"bn.js";var Po=9007199254740991;function re(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>=Po||r<=-Po)&&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=re(e),this.denominator=re(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(re(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(re(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(re(e));return new Y(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Y?e:new Y(re(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"),Ao=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 ae=class extends Y{constructor(t,n,o=!0,a){let s=new Qt(0),u=wn.pow(new Qt(t.decimals));if(o)s=re(n);else{let c=new Qt(0),l=new Qt(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[m,p]=Xi(n.toString(),t.decimals);c=re(m),l=re(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 ae(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new ae(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 Ao.DP=this.token.decimals,new Ao(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wo}from"@solana/spl-token";var Zt={chainId:101,address:Yi.default.toBase58(),programId:wo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ve={chainId:101,address:"So11111111111111111111111111111111111111112",programId:wo.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 ko,SYSVAR_RENT_PUBKEY as Qi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zi}from"@solana/spl-token";function at({pubkey:r,isSigner:e=!1,isWritable:t=!0}){return{pubkey:r,isWritable:t,isSigner:e}}var Hi=[at({pubkey:Zi,isWritable:!1}),at({pubkey:ko.programId,isWritable:!1}),at({pubkey:Qi,isWritable:!1})];function kn({publicKey:r,transformSol:e}){let t=To(r.toString());if(t instanceof ee)return e&&t.equals($e)?ze:t;if(e&&t.toString()===$e.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 To(r){try{return new ee(r)}catch{return r}}var Tn=new ee("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),St=new ee("SysvarRent111111111111111111111111111111111"),ac=new ee("SysvarC1ock11111111111111111111111111111111"),st=new ee("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ji=new ee("Sysvar1nstructions1111111111111111111111111"),$i=ko.programId,sc=new ee("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),uc=new ee("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),cc=new ee("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),lc=new ee("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),mc=new ee("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),dc=new ee("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),pc=new ee("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),fc=new ee("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),yc=new ee("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),bc=new ee("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),gc=new ee("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ze=new ee("So11111111111111111111111111111111111111112"),$e=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===$e.toBase58()||e instanceof hn&&$e.equals(e)){this.decimals=Ve.decimals,this.symbol=Ve.symbol,this.name=Ve.name,this.mint=new hn(Ve.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(L({},Ve),{mint:Ve.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}},Ht=Bn;Ht.SOL=new Bn(Zt);import Ji from"bn.js";var ho=new Y(new Ji(100)),_e=class extends Y{toSignificant(e=5,t,n){return this.mul(ho).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(ho).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 FK}from"lodash";import Wc from"axios";var Io={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(L({},Io),{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 ll=G("Raydium_Api");import{PublicKey as Cd,SystemProgram as Rd}from"@solana/web3.js";import{AccountLayout as Fd,createAssociatedTokenAccountIdempotentInstruction as vd,TOKEN_PROGRAM_ID as Vd,TOKEN_2022_PROGRAM_ID as _d}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 xn,AddressLookupTableAccount as lt}from"@solana/web3.js";async function Kn({connection:r,address:e,cluster:t="mainnet"}){let n=await we(r,[...new Set(e.map(a=>a.toString()))].map(a=>new xn(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 xn(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 xn(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 Bo,Keypair as xo,PublicKey as nr,Transaction as Ko,TransactionMessage as or,VersionedTransaction as Co}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ir}from"@solana/spl-token";var So=G("Raydium_txUtil"),Ro=1644;function jt(r){let e=[],t=[];return r.microLamports&&(e.push(Bo.setComputeUnitPrice({microLamports:r.microLamports})),t.push(de.SetComputeUnitPrice)),r.units&&(e.push(Bo.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 $t(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&&So.logWithError(`no instructions provided: ${r.toString()}`),e.length<1&&So.logWithError(`no signers provided:, ${e.toString()}`);let t=new Ko;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...r);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Ro}catch{return!1}}function Q(r,e){let[t,n]=nr.findProgramAddressSync(r,e);return{publicKey:t,nonce:n}}function xt({instructions:r,payer:e,signers:t}){return Ln(r,[e,...t])}function Kt({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 Co(a).serialize()).toString("base64").length<Ro}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 Co&&(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 Ko&&(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}=jt(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(L({},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 x=[],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});x.push(b)}return{txIds:x,signedTxs:s}}return{txIds:await await Promise.all(s.map(async x=>(x.recentBlockhash=T,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:A})))),signedTxs:s}}if(this.signAllTransactions){let x=s.map((v,b)=>(v.recentBlockhash=T,u[b].length&&v.sign(...u[b]),v));Je(x);let M=await this.signAllTransactions(x);if(p){let v=0,b=[],I=async()=>{if(!M[v])return;let K=await this.connection.sendRawTransaction(M[v].serialize(),{skipPreflight:A});b.push({txId:K,status:"sent",signedTx:M[v]}),P==null||P([...b]),v++;let O=!1,R=null,_=null,$=U=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let N=b.findIndex(H=>H.txId===K);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&&(R=setInterval(async()=>{var U;if(O){clearInterval(R);return}try{let N=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});N&&(O=!0,clearInterval(R),$({err:((U=N.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",K))}catch(N){O=!0,clearInterval(R),console.error("getTransaction timeout:",N,K)}},Jt)),_=this.connection.onSignature(K,U=>{if(O){this.connection.removeSignatureListener(_);return}O=!0,$(U)},"confirmed"),this.connection.getSignatureStatus(K)};return await I(),{txIds:b.map(K=>K.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=L(L({},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 Kn({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:x,notSendToRpc:M}=T||{};if(Je([g]),(v=this.owner)!=null&&v.isKeyPair){let b=await this.connection.sendTransaction(g,{skipPreflight:S});return x&&await $t(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 x=await this.connection.sendTransaction(S,{skipPreflight:h});await $t(this.connection,x),T.push(x)}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,x=[],M=async()=>{if(!T[S])return;let v=await this.connection.sendTransaction(T[S],{skipPreflight:h});x.push({txId:v,status:"sent",signedTx:T[S]}),P==null||P([...x]),S++;let b=!1,I=null,K=null,O=R=>{I!==null&&clearInterval(I),K!==null&&this.connection.removeSignatureListener(K);let _=x.findIndex($=>$.txId===v);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=R.err?"error":"success"}P==null||P([...x]),R.err||M()};this.loopMultiTxStatus&&(I=setInterval(async()=>{var R;if(b){clearInterval(I);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(b=!0,clearInterval(I),O({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){b=!0,clearInterval(I),console.error("getTransaction timeout:",_,v)}},Jt)),K=this.connection.onSignature(v,R=>{if(b){this.connection.removeSignatureListener(K);return}b=!0,O(R)},"confirmed"),this.connection.getSignatureStatus(v)};return M(),{txIds:[],signedTxs:T}}else{let S=[];for(let x=0;x<T.length;x+=1){let M=await this.connection.sendTransaction(T[x],{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?jt(n):{instructions:[],instructionTypes:[]},s=this.signers.reduce((g,h)=>E(L({},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(x=>x.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat()).values()].map(x=>new dt(x));if(g!==t[m]&&l.length<12&&(xt({instructions:A,payer:this.feePayer,signers:S})||xt({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,xt({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(x=>x.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat())).map(x=>s[x]).filter(x=>x!==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);xt({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:x=!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 K of u){if(++b,b<=T){I.push("tx skipped");continue}let O=await On(this.connection,K,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});I.push(O)}return{txIds:I,signedTxs:u}}return{txIds:await Promise.all(u.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:x}))),signedTxs:u}}if(this.signAllTransactions){let b=await this.signAllTransactions(u.slice(T,u.length)),I=[...u.slice(0,T),...b];if(h){let K=0,O=[],R=async()=>{if(!I[K])return;K<T&&(O.push({txId:"",status:"success",signedTx:I[K]}),A==null||A([...O]),K++,R());let _=await this.connection.sendRawTransaction(I[K].serialize(),{skipPreflight:x});O.push({txId:_,status:"sent",signedTx:I[K]}),A==null||A([...O]),K++;let $=!1,U=null,N=null,H=q=>{U!==null&&clearInterval(U),N!==null&&this.connection.removeSignatureListener(N);let oe=O.findIndex(Te=>Te.txId===_);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||R()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var q;if($){clearInterval(U);return}try{let oe=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&($=!0,clearInterval(U),H({err:((q=oe.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",_))}catch(oe){$=!0,clearInterval(U),console.error("getTransaction timeout:",oe,_)}},Jt)),N=this.connection.onSignature(_,q=>{if($){this.connection.removeSignatureListener(N);return}$=!0,H(q)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:O.map(_=>_.txId),signedTxs:I}}else{let K=[];for(let O=0;O<I.length;O+=1){let R=await this.connection.sendRawTransaction(I[O].serialize(),{skipPreflight:x});K.push(R)}return{txIds:K,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=L(L({},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 Kn({connection:this.connection,address:m});for(let[b,I]of Object.entries(p))c[b]=I;let P=t?jt(t):{instructions:[],instructionTypes:[]},g=await mt(this.connection,this.blockhashCommitment),h=this.signers.reduce((b,I)=>E(L({},b),{[I.publicKey.toBase58()]:I}),{}),A=[],T=[],S=[],x=0;if(this.allInstructions.forEach(b=>{let I=[...S,b],K=t?[...P.instructions,...I]:I;if(b!==n[x]&&S.length<s&&(Kt({instructions:K,payer:this.feePayer,lookupTableAddressAccount:c})||Kt({instructions:I,payer:this.feePayer,lookupTableAddressAccount:c})))S.push(b);else{if(S.length===0)throw Error("item ins too big");x+=b===n[x]?1:0;let O={};for(let R of[...new Set(l)])c[R]!==void 0&&(O[R]=c[R]);if(t&&Kt({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let R=new Rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Lt(R))}else{let R=new Rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Lt(R))}T.push(Array.from(new Set(S.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>h[R]).filter(R=>R!==void 0)),S=[b]}}),S.length>0){let I=[...new Set(S.map(K=>K.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(K=>h[K]).filter(K=>K!==void 0);if(t&&Kt({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let K=new Rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Lt(K))}else{let K=new Rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Lt(K))}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 $;let{sequentially:I,onTxUpdate:K,skipTxCount:O=0,recentBlockHash:R,skipPreflight:_=!0}=b||{};if(A.map(async(U,N)=>{T[N].length&&U.sign(T[N]),R&&(U.message.recentBlockhash=R)}),Je(A),($=this.owner)!=null&&$.isKeyPair){if(I){let U=0,N=[];for(let H of A){if(++U,U<=O){console.log("skip tx: ",U),N.push("tx skipped");continue}let q=await this.connection.sendTransaction(H,{skipPreflight:_});await $t(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:_}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(O,A.length)),N=[...A.slice(0,O),...U];if(I){let H=0,q=[],oe=async()=>{if(!N[H])return;if(H<O){q.push({txId:"",status:"success",signedTx:N[H]}),K==null||K([...q]),H++,oe();return}let Te=await this.connection.sendTransaction(N[H],{skipPreflight:_});q.push({txId:Te,status:"sent",signedTx:N[H]}),K==null||K([...q]),H++;let wt=!1,ot=null,Dt=null,$n=je=>{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=je.err?"error":"success"}K==null||K([...q]),je.err||oe()};this.loopMultiTxStatus&&(ot=setInterval(async()=>{var je;if(wt){clearInterval(ot);return}try{let We=await this.connection.getTransaction(Te,{commitment:"confirmed",maxSupportedTransactionVersion:0});We&&(wt=!0,clearInterval(ot),$n({err:((je=We.meta)==null?void 0:je.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,je=>{if(wt){this.connection.removeSignatureListener(Dt);return}wt=!0,$n(je)},"confirmed"),this.connection.getSignatureStatus(Te)};return oe(),{txIds:[],signedTxs:N}}else{let H=[];for(let q=0;q<N.length;q+=1){let oe=await this.connection.sendTransaction(N[q],{skipPreflight:_});H.push(oe)}return{txIds:H,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 ad,SystemProgram as ud}from"@solana/web3.js";import md from"bn.js";import{createCloseAccountInstruction as yd,createInitializeAccountInstruction as bd,createTransferInstruction as gd,TOKEN_PROGRAM_ID as Pd}from"@solana/spl-token";import{Keypair as Ym,PublicKey as Qm}from"@solana/web3.js";import jm from"bn.js";import{TOKEN_PROGRAM_ID as ed}from"@solana/spl-token";import{PublicKey as wr}from"@solana/web3.js";import Fo,{isBN as vo}from"bn.js";import{bits as cr,BitStructure as $l,blob as lr,Blob as Jl,cstr as em,f32 as tm,f32be as nm,f64 as om,f64be as im,greedy as rm,Layout as mr,ns64 as am,ns64be as sm,nu64 as um,nu64be as cm,offset as dr,s16 as lm,s16be as mm,s24 as dm,s24be as pm,s32 as pr,s32be as fm,s40 as ym,s40be as bm,s48 as gm,s48be as Pm,s8 as Am,seq as fr,struct as wm,Structure as yr,u16 as br,u16be as km,u24 as Tm,u24be as hm,u32 as gr,u32be as Im,u40 as Bm,u40be as Sm,u48 as xm,u48be as Km,u8 as Pr,UInt as Ar,union as Cm,Union as Rm,unionLayoutDiscriminator as Lm,utf8 as Om}from"@solana/buffer-layout";var tn=mr,Lo=yr;var Mn=Ar;var Oo=Pr,se=br;var nn=gr;var Le=pr;var No=fr;var W=lr;var Fn=cr,Mo=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 Fo(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 Fo(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 L(L({},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 _o(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 xe(r){return new Ot(Oo(),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 Eo(r,e){let t=nn("length"),n=k([t,B(r,Mo(t,-t.span),"values")]);return new Ot(n,({values:o})=>o,o=>({values:o}),e)}var vn=class extends Lo{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:vo(e)?e.toNumber():new Proxy(e,{get(a,s){if(!n){let u=Reflect.get(a,"count");n=vo(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 No(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 Qb,SystemProgram as Zb}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as jb}from"@solana/spl-token";import{PublicKey as zd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yd}from"@solana/spl-token";import{PublicKey as V}from"@solana/web3.js";var Wo=new V("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),qo=new V("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Uo=new V("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Vn=new V("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),jd=new V("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ir=new V("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Go=new V("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),zo=new V("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$d=new V("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Br=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xo=new V("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Sr=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),xr=new V("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Yo=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Jd=new V("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Kr=new V("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),_n=new V("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Cr=new V("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ep=new V("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Rr=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Lr=new V("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Or=new V("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),tp=new V("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),np=new V("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),op=new V("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ip=new V("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),rp=new V("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ze={OPEN_BOOK_PROGRAM:new V("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new V("Ray1111111111111111111111111111111111111111"),AMM_V4:new V("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new V("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new V("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new V("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new V("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new V("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new V("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new V("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new V("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new V("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:V.default,Router:new V("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new V("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new V("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new V("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new V("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new V("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new V("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_