UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 124 kB
var Ii=Object.defineProperty,Bi=Object.defineProperties;var Si=Object.getOwnPropertyDescriptors;var Wt=Object.getOwnPropertySymbols;var $n=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable;var jn=(r,e,t)=>e in r?Ii(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,L=(r,e)=>{for(var t in e||(e={}))$n.call(e,t)&&jn(r,t,e[t]);if(Wt)for(var t of Wt(e))Jn.call(e,t)&&jn(r,t,e[t]);return r},E=(r,e)=>Bi(r,Si(e));var Ce=(r,e)=>{var t={};for(var n in r)$n.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&&Jn.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"),eo=new X("59543866431248"),to=new X("184467440737095516"),no=new X("15793534762490258745"),oo=16,Ut=512,Pe=60,Ms=new X("18446743708227953217"),io=[{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,Fs=1e5,pn=(n=>(n[n.FromInput=0]="FromInput",n[n.TokenOnlyA=1]="TokenOnlyA",n[n.TokenOnlyB=2]="TokenOnlyB",n))(pn||{}),vs=1e3,Gt=1e5,kt=1e4,ro=1e4,ao=1e5,Vs=60,Tt=3,so=100,_s=15,uo=10,co=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||{}),Ki=(t=>(t[t.Enable=0]="Enable",t[t.Disable=1]="Disable",t))(Ki||{}),Ci=(o=>(o[o.Uninitialized=0]="Uninitialized",o[o.Initialized=1]="Initialized",o[o.Opening=2]="Opening",o[o.Ended=3]="Ended",o))(Ci||{}),Ri=(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))(Ri||{}),Li=(o=>(o[o.UpdateOperationOwner=0]="UpdateOperationOwner",o[o.RemoveOperationOwner=1]="RemoveOperationOwner",o[o.UpdateWhitelistMint=2]="UpdateWhitelistMint",o[o.RemoveWhitelistMint=3]="RemoveWhitelistMint",o))(Li||{}),C=new X(0),Be=new X(1),Es=new X(-1),Oi={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 Ds(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 Ws=2,qs=new X("18446744073700000000");function yn(r){return new Re(1).shln(r).subn(1)}function Ys(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 Qs(r,e){if(r.lt(e))throw new Error("Subtraction underflow");return r.sub(e)}function Zs(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 Hs(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 js(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 $s(r,e){let t=r.add(e);return t.gt(qt)?qt:t}function Js(r,e){return r.gt(e)?r.sub(e):new Re(0)}function eu(r,e){let t=r.mul(e);if(t.gt(qt))throw new Error("U128 multiplication overflow");return t}var tu=new Re(1).shln(256).subn(1);function nu(r,e,t){if(t.isZero())throw new Error("Division by zero");return r.mul(e).div(t)}function ou(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 lo(r){return r.isZero()?-1:r.bitLength()-1}function iu(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 ru(r,e){return r.testn(e)}function au(r,e){return r.or(new Re(1).shln(e))}function su(r,e){return r.and(new Re(1).shln(e).notn(256))}function uu(r,e){return r.xor(new Re(1).shln(e))}function cu(r){let e=new Re(1).shln(127);return r.and(e).isZero()?r:r.sub(new Re(1).shln(128))}function lu(r){return r.isNeg()?r.add(new Re(1).shln(128)):r}function mu(r){return r.isNeg()?r.neg():r}function mo(r,e){return new fn(r.toString()).div(fn.pow(2,64)).toDecimalPlaces(e)}function po(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 Ls from"bn.js";import{PublicKey as Fi}from"@solana/web3.js";import{get as fo,set as Ni}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}},yo={},Mi={};function G(r){let e=fo(yo,r);if(!e){let t=fo(Mi,r);e=new bn({name:r,logLevel:t}),Ni(yo,r,e)}return e}import{MINT_SIZE as Tu,TOKEN_PROGRAM_ID as hu,getTransferFeeConfig as Iu,unpackMint as Bu}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 Fi(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 RC from"decimal.js";import Ui from"big.js";import Qt from"bn.js";import vi from"toformat";var Vi=vi,ht=Vi;import Yt from"big.js";import Ei from"bn.js";import Di from"decimal.js-light";import It from"bn.js";var bo=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>=bo||r<=-bo)&&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(Di),Wi={[0]:Bt.ROUND_DOWN,[1]:Bt.ROUND_HALF_UP,[2]:Bt.ROUND_UP},qi={[0]:Yt.roundDown,[1]:Yt.roundHalfUp,[2]:Yt.roundUp},Y=class{constructor(e,t=new Ei(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:Wi[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=qi[n]||1,new An(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Gi=G("Raydium_amount"),go=ht(Ui);function zi(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")):Gi.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]=zi(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 go.DP=this.token.decimals,new go(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Xi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Po}from"@solana/spl-token";var Zt={chainId:101,address:Xi.default.toBase58(),programId:Po.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:Po.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 Ao,SYSVAR_RENT_PUBKEY as Yi}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:Ao.programId,isWritable:!1}),at({pubkey:Yi,isWritable:!1})];function kn({publicKey:r,transformSol:e}){let t=wo(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 wo(r){try{return new ee(r)}catch{return r}}var Tn=new ee("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),St=new ee("SysvarRent111111111111111111111111111111111"),oc=new ee("SysvarC1ock11111111111111111111111111111111"),st=new ee("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Hi=new ee("Sysvar1nstructions1111111111111111111111111"),ji=Ao.programId,ic=new ee("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),rc=new ee("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ac=new ee("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),sc=new ee("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),uc=new ee("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),cc=new ee("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),lc=new ee("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),mc=new ee("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),dc=new ee("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),pc=new ee("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),fc=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)}},le=In;le.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 $i from"bn.js";var ko=new Y(new $i(100)),_e=class extends Y{toSignificant(e=5,t,n){return this.mul(ko).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(ko).toFixed(e,t,n)}};var Ji=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&&Ji.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 OK}from"lodash";import _c from"axios";var To={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"},er=E(L({},To),{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 sl=G("Raydium_Api");import{PublicKey as Sd,SystemProgram as xd}from"@solana/web3.js";import{AccountLayout as Od,createAssociatedTokenAccountIdempotentInstruction as Nd,TOKEN_PROGRAM_ID as Md,TOKEN_2022_PROGRAM_ID as Fd}from"@solana/spl-token";import{PublicKey as dt,sendAndConfirmTransaction as On,SystemProgram as ar,Transaction as Ct,TransactionMessage as Rt,VersionedTransaction as Lt}from"@solana/web3.js";import sr 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 me={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 ho,Keypair as Bo,PublicKey as tr,Transaction as So,TransactionMessage as nr,VersionedTransaction as xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as or}from"@solana/spl-token";var Io=G("Raydium_txUtil"),Ko=1644;function jt(r){let e=[],t=[];return r.microLamports&&(e.push(ho.setComputeUnitPrice({microLamports:r.microLamports})),t.push(me.SetComputeUnitPrice)),r.units&&(e.push(ho.setComputeUnitLimit({units:r.units})),t.push(me.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&&Io.logWithError(`no instructions provided: ${r.toString()}`),e.length<1&&Io.logWithError(`no signers provided:, ${e.toString()}`);let t=new So;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...r);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Ko}catch{return!1}}function Z(r,e){let[t,n]=tr.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=Bo.generate().publicKey.toString()}){let a=new nr({payerKey:e,recentBlockhash:n,instructions:r}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new xo(a).serialize()).toString("base64").length<Ko}catch{return!1}}var ir=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),rr=r=>{let e=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof xo&&(e=ir(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 So&&(t.recentBlockhash||(t.recentBlockhash=or.toBase58()),t.feePayer||(t.feePayer=Bo.generate().publicKey)),e.push(rr(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 sr.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(ar.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new dt(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(me.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,Hn=je=>{ot!==null&&clearInterval(ot),Dt!==null&&this.connection.removeSignatureListener(Dt);let We=q.findIndex(hi=>hi.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),Hn({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,Hn(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 od,SystemProgram as rd}from"@solana/web3.js";import ud from"bn.js";import{createCloseAccountInstruction as dd,createInitializeAccountInstruction as pd,createTransferInstruction as fd,TOKEN_PROGRAM_ID as yd}from"@solana/spl-token";import{Keypair as Gm,PublicKey as zm}from"@solana/web3.js";import Qm from"bn.js";import{TOKEN_PROGRAM_ID as jm}from"@solana/spl-token";import{PublicKey as Ar}from"@solana/web3.js";import No,{isBN as Mo}from"bn.js";import{bits as ur,BitStructure as Zl,blob as cr,Blob as Hl,cstr as jl,f32 as $l,f32be as Jl,f64 as em,f64be as tm,greedy as nm,Layout as lr,ns64 as om,ns64be as im,nu64 as rm,nu64be as am,offset as mr,s16 as sm,s16be as um,s24 as cm,s24be as lm,s32 as dr,s32be as mm,s40 as dm,s40be as pm,s48 as fm,s48be as ym,s8 as bm,seq as pr,struct as gm,Structure as fr,u16 as yr,u16be as Pm,u24 as Am,u24be as wm,u32 as br,u32be as km,u40 as Tm,u40be as hm,u48 as Im,u48be as Bm,u8 as gr,UInt as Pr,union as Sm,Union as xm,unionLayoutDiscriminator as Km,utf8 as Cm}from"@solana/buffer-layout";var tn=lr,Co=fr;var Mn=Pr;var Ro=gr,de=yr;var nn=br;var Le=dr;var Lo=pr;var W=cr;var Fn=ur,Oo=mr;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 No(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 No(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 Fo(r){return new tt(1,!0,r)}function pt(r){return new tt(8,!0,r)}function vo(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 Ar(e),e=>e.toBuffer(),r)}function xe(r){return new Ot(Ro(),wr,kr,r)}function wr(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function kr(r){return r?1:0}function Vo(r,e){let t=nn("length"),n=k([t,B(r,Oo(t,-t.span),"values")]);return new Ot(n,({values:o})=>o,o=>({values:o}),e)}var vn=class extends Co{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:Mo(e)?e.toNumber():new Proxy(e,{get(a,s){if(!n){let u=Reflect.get(a,"count");n=Mo(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 Lo(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 zb,SystemProgram as Xb}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Qb}from"@solana/spl-token";import{PublicKey as qd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Gd}from"@solana/spl-token";import{PublicKey as V}from"@solana/web3.js";var Eo=new V("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Do=new V("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Wo=new V("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Vn=new V("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Qd=new V("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),hr=new V("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qo=new V("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Uo=new V("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Zd=new V("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ir=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Go=new V("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Br=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Sr=new V("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zo=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Hd=new V("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),xr=new V("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),_n=new V("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Kr=new V("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),jd=new V("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Cr=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Rr=new V("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Lr=new V("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),$d=new V("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Jd=new V("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ep=new V("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),tp=new V("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),np=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_