UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 125 kB
var xi=Object.defineProperty,Ki=Object.defineProperties;var Ci=Object.getOwnPropertyDescriptors;var Wt=Object.getOwnPropertySymbols;var Jn=Object.prototype.hasOwnProperty,eo=Object.prototype.propertyIsEnumerable;var $n=(r,e,t)=>e in r?xi(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,L=(r,e)=>{for(var t in e||(e={}))Jn.call(e,t)&&$n(r,t,e[t]);if(Wt)for(var t of Wt(e))eo.call(e,t)&&$n(r,t,e[t]);return r},E=(r,e)=>Ki(r,Ci(e));var Me=(r,e)=>{var t={};for(var n in r)Jn.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&&eo.call(r,n)&&(t[n]=r[n]);return t};import Re from"bn.js";import yn from"decimal.js";import Y from"bn.js";var X=new Y(1).shln(64),rt=64,pn=new Y(1).shln(128),Ue=new Y(1).shln(64).subn(1),qt=new Y(1).shln(128).subn(1),Ie=-443636,Be=443636,Fe=new Y("4295048016"),ve=new Y("79226673521066979257578248091"),to=new Y("59543866431248"),no=new Y("184467440737095516"),oo=new Y("15793534762490258745"),io=16,Ut=512,Pe=60,Gs=new Y("18446743708227953217"),ro=[{bit:0,factor:new Y("fffcb933bd6fb800",16)},{bit:1,factor:new Y("fff97272373d4000",16)},{bit:2,factor:new Y("fff2e50f5f657000",16)},{bit:3,factor:new Y("ffe5caca7e10f000",16)},{bit:4,factor:new Y("ffcb9843d60f7000",16)},{bit:5,factor:new Y("ff973b41fa98e800",16)},{bit:6,factor:new Y("ff2ea16466c9b000",16)},{bit:7,factor:new Y("fe5dee046a9a3800",16)},{bit:8,factor:new Y("fcbe86c7900bb000",16)},{bit:9,factor:new Y("f987a7253ac65800",16)},{bit:10,factor:new Y("f3392b0822bb6000",16)},{bit:11,factor:new Y("e7159475a2caf000",16)},{bit:12,factor:new Y("d097f3bdfd2f2000",16)},{bit:13,factor:new Y("a9f746462d9f8000",16)},{bit:14,factor:new Y("70d869a156f31c00",16)},{bit:15,factor:new Y("31be135f97ed3200",16)},{bit:16,factor:new Y("9aa508b5b85a500",16)},{bit:17,factor:new Y("5d6af8dedc582c",16)},{bit:18,factor:new Y("2216e584f5fa",16)}],Ge=1e6,zs=1e5,fn=(n=>(n[n.FromInput=0]="FromInput",n[n.TokenOnlyA=1]="TokenOnlyA",n[n.TokenOnlyB=2]="TokenOnlyB",n))(fn||{}),Gt=1e5,ht=1e4,ao=1e4,so=1e5,Ys=60,It=3,uo=100,Xs=15,co=10,lo=100,at=14,Ri=(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))(Ri||{}),Li=(t=>(t[t.Enable=0]="Enable",t[t.Disable=1]="Disable",t))(Li||{}),Oi=(o=>(o[o.Uninitialized=0]="Uninitialized",o[o.Initialized=1]="Initialized",o[o.Opening=2]="Opening",o[o.Ended=3]="Ended",o))(Oi||{}),Ni=(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))(Ni||{}),Mi=(o=>(o[o.UpdateOperationOwner=0]="UpdateOperationOwner",o[o.RemoveOperationOwner=1]="RemoveOperationOwner",o[o.UpdateWhitelistMint=2]="UpdateWhitelistMint",o[o.RemoveWhitelistMint=3]="RemoveWhitelistMint",o))(Mi||{}),C=new Y(0),Ae=new Y(1),Qs=new Y(-1),Fi={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 Zs(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 Hs=2,js=new Y("18446744073700000000");function bn(r){return new Re(1).shln(r).subn(1)}function nu(r,e,t){let n=r.add(e),o=bn(t);if(n.gt(o))throw new Error(`Addition overflow: result exceeds ${t} bits`);return n}function ou(r,e){if(r.lt(e))throw new Error("Subtraction underflow");return r.sub(e)}function iu(r,e,t){let n=r.mul(e),o=bn(t);if(n.gt(o))throw new Error(`Multiplication overflow: result exceeds ${t} bits`);return n}function ru(r,e){let t=r.mul(e),n=t.and(bn(128)),o=t.shrn(128);return[n,o]}function Z(r,e,t){if(t.isZero())throw new Error("Division by zero");return r.mul(e).div(t)}function H(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 au(r,e,t,n){return n?H(r,e,t):Z(r,e,t)}function zt(r,e){return r.div(e).add(r.mod(e).isZero()?C:Ae)}function su(r,e){let t=r.add(e);return t.gt(qt)?qt:t}function uu(r,e){return r.gt(e)?r.sub(e):new Re(0)}function cu(r,e){let t=r.mul(e);if(t.gt(qt))throw new Error("U128 multiplication overflow");return t}var lu=new Re(1).shln(256).subn(1);function mu(r,e,t){if(t.isZero())throw new Error("Division by zero");return r.mul(e).div(t)}function du(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 mo(r){return r.isZero()?-1:r.bitLength()-1}function pu(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 fu(r,e){return r.testn(e)}function yu(r,e){return r.or(new Re(1).shln(e))}function bu(r,e){return r.and(new Re(1).shln(e).notn(256))}function gu(r,e){return r.xor(new Re(1).shln(e))}function Pu(r){let e=new Re(1).shln(127);return r.and(e).isZero()?r:r.sub(new Re(1).shln(128))}function Au(r){return r.isNeg()?r.add(new Re(1).shln(128)):r}function wu(r){return r.isNeg()?r.neg():r}function po(r,e){return new yn(r.toString()).div(yn.pow(2,64)).toDecimalPlaces(e)}function fo(r){return new Re(r.mul(yn.pow(2,64)).floor().toFixed())}function ye(r,e){return r.add(pn).sub(e).mod(pn)}import Ws from"bn.js";import{PublicKey as _i}from"@solana/web3.js";import{get as yo,set as vi}from"lodash";var gn=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}},bo={},Vi={};function G(r){let e=yo(bo,r);if(!e){let t=yo(Vi,r);e=new gn({name:r,logLevel:t}),vi(bo,r,e)}return e}import{MINT_SIZE as Lu,TOKEN_PROGRAM_ID as Ou,getTransferFeeConfig as Nu,unpackMint as Mu}from"@solana/spl-token";var Pn=G("Raydium_accountInfo_util");async function ke(r,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:a=100}=L({batchRequest:!1},t),s=An(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=An(c,10);u=(await(await Promise.all(l.map(async p=>await r._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&Pn.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"&&Pn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(g[0],"base64"),executable:h,lamports:A,owner:new _i(T),rentEpoch:S}}return null})))}else try{u=await Promise.all(s.map(c=>r.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&Pn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return u.flat()}async function ze(r,e,t){let n=await ke(r,e.map(o=>o.pubkey),t);return e.map((o,a)=>E(L({},o),{accountInfo:n[a]}))}import ot from"bn.js";import lR from"decimal.js";import Yi from"big.js";import Qt from"bn.js";import Ei from"toformat";var Di=Ei,Bt=Di;import Xt from"big.js";import qi from"bn.js";import Ui from"decimal.js-light";import St from"bn.js";var go=9007199254740991;function re(r){let e=G("Raydium_parseBigNumberish");if(r instanceof St)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new St(r);e.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&e.logWithError(`BigNumberish number underflow: ${r}`),(r>=go||r<=-go)&&e.logWithError(`BigNumberish number overflow: ${r}`),new St(String(r))):typeof r=="bigint"?new St(r.toString()):(e.error(`invalid BigNumberish value: ${r}`),new St(0))}var Yt=G("module/fraction"),wn=Bt(Xt),xt=Bt(Ui),Gi={[0]:xt.ROUND_DOWN,[1]:xt.ROUND_HALF_UP,[2]:xt.ROUND_UP},zi={[0]:Xt.roundDown,[1]:Xt.roundHalfUp,[2]:Xt.roundUp},Q=class{constructor(e,t=new qi(1)){this.numerator=re(e),this.denominator=re(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Q(this.denominator,this.numerator)}add(e){let t=e instanceof Q?e:new Q(re(e));return this.denominator.eq(t.denominator)?new Q(this.numerator.add(t.numerator),this.denominator):new Q(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Q?e:new Q(re(e));return this.denominator.eq(t.denominator)?new Q(this.numerator.sub(t.numerator),this.denominator):new Q(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Q?e:new Q(re(e));return new Q(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Q?e:new Q(re(e));return new Q(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Yt.logWithError(`${e} is not an integer.`),e<=0&&Yt.logWithError(`${e} is not positive.`),xt.set({precision:e+1,rounding:Gi[n]});let o=new xt(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)||Yt.logWithError(`${e} is not an integer.`),e<0&&Yt.logWithError(`${e} is negative.`),wn.DP=e,wn.RM=zi[n]||1,new wn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Xi=G("Raydium_amount"),Po=Bt(Yi);function Qi(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")):Xi.logWithError(`invalid number string, num: ${r}`)}else t=r;return[t,n.slice(0,e)||n]}var ae=class extends Q{constructor(t,n,o=!0,a){let s=new Qt(0),u=kn.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]=Qi(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 Po.DP=this.token.decimals,new Po(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Zi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ao}from"@solana/spl-token";var Zt={chainId:101,address:Zi.default.toBase58(),programId:Ao.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},_e={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Ao.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 In}from"@solana/web3.js";import{PublicKey as ee,SystemProgram as wo,SYSVAR_RENT_PUBKEY as Hi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ji}from"@solana/spl-token";function st({pubkey:r,isSigner:e=!1,isWritable:t=!0}){return{pubkey:r,isWritable:t,isSigner:e}}var $i=[st({pubkey:ji,isWritable:!1}),st({pubkey:wo.programId,isWritable:!1}),st({pubkey:Hi,isWritable:!1})];function Tn({publicKey:r,transformSol:e}){let t=ko(r.toString());if(t instanceof ee)return e&&t.equals(Je)?Ve:t;if(e&&t.toString()===Je.toBase58())return Ve;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 ko(r){try{return new ee(r)}catch{return r}}var hn=new ee("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ut=new ee("SysvarRent111111111111111111111111111111111"),Ji=new ee("SysvarC1ock11111111111111111111111111111111"),ct=new ee("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),er=new ee("Sysvar1nstructions1111111111111111111111111"),To=wo.programId,dc=new ee("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),pc=new ee("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),fc=new ee("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),yc=new ee("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),bc=new ee("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),gc=new ee("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Pc=new ee("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ac=new ee("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),wc=new ee("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),kc=new ee("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Tc=new ee("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ve=new ee("So11111111111111111111111111111111111111112"),Je=ee.default;function Qe(r){return Tn({publicKey:r,transformSol:!0})}var Bn=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:a=!1,isToken2022:s=!1}){if(e===Je.toBase58()||e instanceof In&&Je.equals(e)){this.decimals=_e.decimals,this.symbol=_e.symbol,this.name=_e.name,this.mint=new In(_e.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=a?In.default:Tn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},le=Bn;le.WSOL=new Bn(E(L({},_e),{mint:_e.address}));var Sn=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=Sn;Ht.SOL=new Sn(Zt);import tr from"bn.js";var ho=new Q(new tr(100)),Ee=class extends Q{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 nr=G("Raydium_price"),Se=class extends Q{constructor(t){let{baseToken:n,quoteToken:o,numerator:a,denominator:s}=t;super(a,s);this.baseToken=n,this.quoteToken=o,this.scalar=new Q(xn(n.decimals),xn(o.decimals))}get raw(){return new Q(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&&nr.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 lC}from"lodash";import Yc 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_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",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"},or=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 yl=G("Raydium_Api");import{PublicKey as Nd,SystemProgram as Md}from"@solana/web3.js";import{AccountLayout as Ed,createAssociatedTokenAccountIdempotentInstruction as Dd,TOKEN_PROGRAM_ID as Wd,TOKEN_2022_PROGRAM_ID as qd}from"@solana/spl-token";import{PublicKey as ft,sendAndConfirmTransaction as Nn,SystemProgram as cr,Transaction as Rt,TransactionMessage as Lt,VersionedTransaction as Ot}from"@solana/web3.js";import lr from"axios";import{PublicKey as Kn,AddressLookupTableAccount as dt}from"@solana/web3.js";async function Cn({connection:r,address:e,cluster:t="mainnet"}){let n=await ke(r,[...new Set(e.map(a=>a.toString()))].map(a=>new Kn(a))),o={};for(let a=0;a<e.length;a++){let s=n[a],u=e[a];if(!s)continue;let c=new dt({key:u,state:dt.deserialize(s.data)});o[u.toString()]=c,t==="devnet"?mt[u.toString()]=c:lt[u.toString()]=c}return o}var lt={},Rn=async r=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(lt[e])return lt;let t=new Kn(e),n=await r.getAccountInfo(t);return n&&(lt[e]=new dt({key:t,state:dt.deserialize(n.data)})),lt},mt={},Ln=async r=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(mt[e])return mt;let t=new Kn(e),n=await r.getAccountInfo(t);return n&&(mt[e]=new dt({key:t,state:dt.deserialize(n.data)})),mt};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 Bo,Keypair as xo,PublicKey as ir,Transaction as Ko,TransactionMessage as rr,VersionedTransaction as Co}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ar}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(me.SetComputeUnitPrice)),r.units&&(e.push(Bo.setComputeUnitLimit({units:r.units})),t.push(me.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function pt(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 On(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 j(r,e){let[t,n]=ir.findProgramAddressSync(r,e);return{publicKey:t,nonce:n}}function Kt({instructions:r,payer:e,signers:t}){return On(r,[e,...t])}function Ct({instructions:r,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=xo.generate().publicKey.toString()}){let a=new rr({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 sr=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),ur=r=>{let e=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Co&&(e=sr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function et(r){let e=[];return r.forEach(t=>{t instanceof Ko&&(t.recentBlockhash||(t.recentBlockhash=ar.toBase58()),t.feePayer||(t.feePayer=xo.generate().publicKey)),e.push(ur(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 lr.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(cr.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new ft(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!==ft.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 Rt;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 pt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=l,this.signers.length&&t.sign(...this.signers),et([t]),(m=this.owner)!=null&&m.isKeyPair)return{txId:u?await Nn(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 pt(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(p){let x=[],F=0;for(let V of s){if(++F,F<=g)continue;let b=await Nn(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));et(x);let F=await this.signAllTransactions(x);if(p){let V=0,b=[],I=async()=>{if(!F[V])return;let K=await this.connection.sendRawTransaction(F[V].serialize(),{skipPreflight:A});b.push({txId:K,status:"sent",signedTx:F[V]}),P==null||P([...b]),V++;let O=!1,R=null,_=null,J=U=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let N=b.findIndex($=>$.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),J({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,J(U)},"confirmed"),this.connection.getSignatureStatus(K)};return await I(),{txIds:b.map(K=>K.txId),signedTxs:F}}else{let V=[];for(let b=0;b<F.length;b+=1){let I=await this.connection.sendRawTransaction(F[b].serialize(),{skipPreflight:A});V.push(I)}return{txIds:V,signedTxs:F}}}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=Me(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=L(L({},this.cluster==="devnet"?await Ln(this.connection):await Rn(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),l=[];for(let T of c)u[T]===void 0&&l.push(new ft(T));let m=await Cn({connection:this.connection,address:l});for(let[T,S]of Object.entries(m))u[T]=S;let p=o?ft.default.toBase58():a!=null?a:await pt(this.connection,this.blockhashCommitment),P=new Lt({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 Ot(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:F}=T||{};if(et([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:F?"":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),et(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=[],F=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(J=>J.txId===V);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=R.err?"error":"success"}P==null||P([...x]),R.err||F()};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 F(),{txIds:[],signedTxs:T}}else{let S=[];for(let x=0;x<T.length;x+=1){let F=await this.connection.sendTransaction(T[x],{skipPreflight:h});S.push(F)}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=Me(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(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new ft(x));if(g!==t[m]&&l.length<12&&(Kt({instructions:A,payer:this.feePayer,signers:S})||Kt({instructions:h,payer:this.feePayer,signers:S})))l.push(g);else{if(l.length===0)throw Error("item ins too big");m+=g===t[m]?1:0,Kt({instructions:n?[...a.instructions,...l]:[...l],payer:this.feePayer,signers:S})?u.push(new Rt().add(...a.instructions,...l)):u.push(new Rt().add(...l)),c.push(Array.from(new Set(l.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.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);Kt({instructions:n?[...a.instructions,...l]:[...l],payer:this.feePayer,signers:h.map(A=>A.publicKey)})?u.push(new Rt().add(...a.instructions,...l)):u.push(new Rt().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||{},F=S!=null?S:await pt(this.connection,this.blockhashCommitment);if(u.forEach(async(b,I)=>{b.recentBlockhash=F,c[I].length&&b.sign(...c[I])}),et(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 Nn(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 J=!1,U=null,N=null,$=q=>{U!==null&&clearInterval(U),N!==null&&this.connection.removeSignatureListener(N);let oe=O.findIndex(he=>he.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(J){clearInterval(U);return}try{let oe=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(J=!0,clearInterval(U),$({err:((q=oe.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",_))}catch(oe){J=!0,clearInterval(U),console.error("getTransaction timeout:",oe,_)}},Jt)),N=this.connection.onSignature(_,q=>{if(J){this.connection.removeSignatureListener(N);return}J=!0,$(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 F=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:a=[],insCountLimit:s=12}=F,u=Me(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=L(L({},this.cluster==="devnet"?await Ln(this.connection):await Rn(this.connection)),o),l=Array.from(new Set([...this.lookupTableAddress,...a])),m=[];for(let b of l)c[b]===void 0&&m.push(new ft(b));let p=await Cn({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 pt(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&&(Ct({instructions:K,payer:this.feePayer,lookupTableAddressAccount:c})||Ct({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&&Ct({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let R=new Lt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Ot(R))}else{let R=new Lt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Ot(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&&Ct({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let K=new Lt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Ot(K))}else{let K=new Lt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Ot(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 J;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)}),et(A),(J=this.owner)!=null&&J.isKeyPair){if(I){let U=0,N=[];for(let $ of A){if(++U,U<=O){console.log("skip tx: ",U),N.push("tx skipped");continue}let q=await this.connection.sendTransaction($,{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 $=0,q=[],oe=async()=>{if(!N[$])return;if($<O){q.push({txId:"",status:"success",signedTx:N[$]}),K==null||K([...q]),$++,oe();return}let he=await this.connection.sendTransaction(N[$],{skipPreflight:_});q.push({txId:he,status:"sent",signedTx:N[$]}),K==null||K([...q]),$++;let Tt=!1,it=null,Dt=null,jn=$e=>{it!==null&&clearInterval(it),Dt!==null&&this.connection.removeSignatureListener(Dt);let qe=q.findIndex(Si=>Si.txId===he);if(qe>-1){if(q[qe].status==="error"||q[qe].status==="success")return;q[qe].status=$e.err?"error":"success"}K==null||K([...q]),$e.err||oe()};this.loopMultiTxStatus&&(it=setInterval(async()=>{var $e;if(Tt){clearInterval(it);return}try{let qe=await this.connection.getTransaction(he,{commitment:"confirmed",maxSupportedTransactionVersion:0});qe&&(Tt=!0,clearInterval(it),jn({err:(($e=qe.meta)==null?void 0:$e.err)||null}),console.log("tx status from getTransaction:",he))}catch(qe){Tt=!0,clearInterval(it),console.error("getTransaction timeout:",qe,he)}},Jt)),Dt=this.connection.onSignature(he,$e=>{if(Tt){this.connection.removeSignatureListener(Dt);return}Tt=!0,jn($e)},"confirmed"),this.connection.getSignatureStatus(he)};return oe(),{txIds:[],signedTxs:N}}else{let $=[];for(let q=0;q<N.length;q+=1){let oe=await this.connection.sendTransaction(N[q],{skipPreflight:_});$.push(oe)}return{txIds:$,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var Mn=(...r)=>r.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ge=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(Mn(e))}logInfo(...e){this.logger.info(Mn(e))}logAndCreateError(...e){let t=Mn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as ld,SystemProgram as dd}from"@solana/web3.js";import yd from"bn.js";import{createCloseAccountInstruction as Ad,createInitializeAccountInstruction as wd,createTransferInstruction as kd,TOKEN_PROGRAM_ID as Td}from"@solana/spl-token";import{Keypair as jm,PublicKey as $m}from"@solana/web3.js";import td from"bn.js";import{TOKEN_PROGRAM_ID as id}from"@solana/spl-token";import{PublicKey as hr}from"@solana/web3.js";import vo,{isBN as Vo}from"bn.js";import{bits as mr,BitStructure as om,blob as dr,Blob as im,cstr as rm,f32 as am,f32be as sm,f64 as um,f64be as cm,greedy as lm,Layout as pr,ns64 as mm,ns64be as dm,nu64 as fr,nu64be as pm,offset as yr,s16 as fm,s16be as ym,s24 as bm,s24be as gm,s32 as br,s32be as Pm,s40 as Am,s40be as wm,s48 as km,s48be as Tm,s8 as hm,seq as gr,struct as Im,Structure as Pr,u16 as Ar,u16be as Bm,u24 as Sm,u24be as xm,u32 as wr,u32be as Km,u40 as Cm,u40be as Rm,u48 as Lm,u48be as Om,u8 as kr,UInt as Tr,union as Nm,Union as Mm,unionLayoutDiscriminator as Fm,utf8 as vm}from"@solana/buffer-layout";var tn=pr,Lo=Pr;var Fn=Tr;var Oo=kr,de=Ar;var nn=wr;var No=fr;var Le=br;var Mo=gr;var W=dr;var vn=mr,Fo=yr;var nt=class extends tn{constructor(t,n,o){super(t,o);this.blob=W(t),this.signed=n}decode(t,n=0){let o=new vo(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new vo(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},on=class extends tn{constructor(t){super(8,t);this._lower=vn(nn(),!1),this._upper=vn(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 Fn(1,r)}function te(r){return new Fn(4,r)}function i(r){return new nt(8,!1,r)}function D(r){return new nt(16,!1,r)}function _o(r){return new nt(1,!0,r)}function yt(r){return new nt(8,!0,r)}function Eo(r){return new nt(16,!0,r)}var Nt=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 Nt(W(32),e=>new hr(e),e=>e.toBuffer(),r)}function xe(r){return new Nt(Oo(),Ir,Br,r)}function Ir(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function Br(r){return r?1:0}function Do(r,e){let t=nn("length"),n=k([t,B(r,Fo(t,-t.span),"values")]);return new Nt(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 Mo(r,o,t)}var rn=k([d("mint"),d("owner"),i("amount"),te("delegateOption"),d("delegate"),w("state"),te("isNativeOption"),i("isNative"),i("delegatedAmount"),te("closeAuthorityOption"),d("closeAuthority")]);import{PublicKey as $b,SystemProgram as Jb}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as tg}from"@solana/spl-token";import{PublicKey as Zd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jd}from"@solana/spl-token";import{PublicKey as M}from"@solana/web3.js";var qo=new M("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Uo=new M("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Go=new M("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),_n=new M("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),tp=new M("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),xr=new M("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),zo=new M("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Yo=new M("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),np=new M("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Kr=new M("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xo=new M("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Cr=new M("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Rr=new M("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Qo=new M("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),op=new M("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Lr=new M("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Or=new M("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Nr=new M("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Mr=new M("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Fr=new M("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),En=new M("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),vr=new M("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ip=new M("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Vr=new M("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),_r=new M("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Er=new M("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),rp=new M("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ap=new M("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),sp=new M("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),up=new M("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),cp=new M("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Mt={IDO_PROGRAM_ID_V1:Or,IDO_PROGRAM_ID_V2:Nr,IDO_PROGRAM_ID_V3:Mr,IDO_PROGRAM_ID_V4:Fr};var Ze={OPEN_BOOK_PROGRAM:new M("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new M("Ray1111111111111111111111111111111111111111"),AMM_V4:new M("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new M("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new M("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new M("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new M("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new M("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new M("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new M("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new M("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new M("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:M.default,Router:new M("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new M("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJ