@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 80 kB
JavaScript
var So=Object.defineProperty,xo=Object.defineProperties;var Ko=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var gn=Object.prototype.hasOwnProperty,Pn=Object.prototype.propertyIsEnumerable;var bn=(i,t,n)=>t in i?So(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,R=(i,t)=>{for(var n in t||(t={}))gn.call(t,n)&&bn(i,n,t[n]);if(st)for(var n of st(t))Pn.call(t,n)&&bn(i,n,t[n]);return i},F=(i,t)=>xo(i,Ko(t));var me=(i,t)=>{var n={};for(var o in i)gn.call(i,o)&&t.indexOf(o)<0&&(n[o]=i[o]);if(i!=null&&st)for(var o of st(i))t.indexOf(o)<0&&Pn.call(i,o)&&(n[o]=i[o]);return n};import{PublicKey as rt}from"@solana/web3.js";import Io from"bn.js";import{PublicKey as k}from"@solana/web3.js";var An=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),wn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),kn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ct=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),qa=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Co=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Tn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),hn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ua=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ro=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),In=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Lo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Oo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Bn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ga=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),No=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Mo=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Fo=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),vo=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Vo=new k("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Rt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),_o=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),za=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Eo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Do=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Wo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Xa=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ya=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Qa=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Za=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ha=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Ue={IDO_PROGRAM_ID_V1:Mo,IDO_PROGRAM_ID_V2:Fo,IDO_PROGRAM_ID_V3:vo,IDO_PROGRAM_ID_V4:Vo};var Ae={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import{PublicKey as z,SystemProgram as Sn,SYSVAR_RENT_PUBKEY as qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Uo}from"@solana/spl-token";function Ce({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Go=[Ce({pubkey:Uo,isWritable:!1}),Ce({pubkey:Sn.programId,isWritable:!1}),Ce({pubkey:qo,isWritable:!1})];function xn({publicKey:i,transformSol:t}){let n=Lt(i.toString());if(n instanceof z)return t&&n.equals(Te)?ae:n;if(t&&n.toString()===Te.toBase58())return ae;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Lt(i){try{return new z(i)}catch{return i}}var Ot=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),he=new z("SysvarRent111111111111111111111111111111111"),Nt=new z("SysvarC1ock11111111111111111111111111111111"),ut=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),zo=new z("Sysvar1nstructions1111111111111111111111111"),Mt=Sn.programId,ts=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ns=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),os=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),is=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),rs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),as=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ss=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),us=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),cs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ls=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ms=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ae=new z("So11111111111111111111111111111111111111112"),Te=z.default;import{PublicKey as Fa}from"@solana/web3.js";import va from"bn.js";import Oa from"big.js";import xt from"bn.js";import xe from"bn.js";import WC from"decimal.js";import{PublicKey as Xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Kn}from"@solana/spl-token";var ct={chainId:101,address:Xo.default.toBase58(),programId:Kn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Kn.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 Ft}from"@solana/web3.js";var vt=class{constructor({mint:t,decimals:n,symbol:o,name:u,skipMint:m=!1,isToken2022:p=!1}){if(t===Te.toBase58()||t instanceof Ft&&Te.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Ft(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=o||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Ft.default:xn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=vt;J.WSOL=new vt(F(R({},de),{mint:de.address}));var Vt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=o}equals(t){return this===t}},lt=Vt;lt.SOL=new Vt(ct);import dt from"big.js";import $o from"bn.js";import Jo from"decimal.js-light";import{get as Cn,set as Yo}from"lodash";var _t=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},Rn={},Qo={};function v(i){let t=Cn(Rn,i);if(!t){let n=Cn(Qo,i);t=new _t({name:i,logLevel:n}),Yo(Rn,i,t)}return t}import Ge from"bn.js";var Ln=9007199254740991;function Y(i){let t=v("Raydium_parseBigNumberish");if(i instanceof Ge)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ge(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=Ln||i<=-Ln)&&t.logWithError(`BigNumberish number overflow: ${i}`),new Ge(String(i))):typeof i=="bigint"?new Ge(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new Ge(0))}import Zo from"toformat";var Ho=Zo,ze=Ho;var mt=v("module/fraction"),Et=ze(dt),Xe=ze(Jo),ei={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},ti={[0]:dt.roundDown,[1]:dt.roundHalfUp,[2]:dt.roundUp},W=class{constructor(t,n=new $o(1)){this.numerator=Y(t),this.denominator=Y(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let n=t instanceof W?t:new W(Y(t));return this.denominator.eq(n.denominator)?new W(this.numerator.add(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof W?t:new W(Y(t));return this.denominator.eq(n.denominator)?new W(this.numerator.sub(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof W?t:new W(Y(t));return new W(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof W?t:new W(Y(t));return new W(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},o=1){Number.isInteger(t)||mt.logWithError(`${t} is not an integer.`),t<=0&&mt.logWithError(`${t} is not positive.`),Xe.set({precision:t+1,rounding:ei[o]});let u=new Xe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},o=1){return Number.isInteger(t)||mt.logWithError(`${t} is not an integer.`),t<0&&mt.logWithError(`${t} is negative.`),Et.DP=t,Et.RM=ti[o]||1,new Et(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import ni from"bn.js";var On=new W(new ni(100)),ge=class extends W{toSignificant(t=5,n,o){return this.mul(On).toSignificant(t,n,o)}toFixed(t=2,n,o){return this.mul(On).toFixed(t,n,o)}};var oi=v("Raydium_price"),ue=class extends W{constructor(n){let{baseToken:o,quoteToken:u,numerator:m,denominator:p}=n;super(m,p);this.baseToken=o,this.quoteToken=u,this.scalar=new W(Dt(o.decimals),Dt(u.decimals))}get raw(){return new W(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ue({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&oi.logWithError("mul token not equals");let o=super.mul(n);return new ue({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:o.denominator,numerator:o.numerator})}toSignificant(n=this.quoteToken.decimals,o,u){return this.adjusted.toSignificant(n,o,u)}toFixed(n=this.quoteToken.decimals,o,u){return this.adjusted.toFixed(n,o,u)}};import{merge as qK}from"lodash";import gc from"axios";import{PublicKey as ii}from"@solana/web3.js";import{MINT_SIZE as eu,TOKEN_PROGRAM_ID as tu,getTransferFeeConfig as nu,unpackMint as ou}from"@solana/spl-token";var Wt=v("Raydium_accountInfo_util");async function Pe(i,t,n){let{batchRequest:o,commitment:u="confirmed",chunkCount:m=100}=R({batchRequest:!1},n),p=qt(t,m),f=new Array(p.length).fill([]);if(o){let P=p.map(x=>{let K=i._buildArgs([x.map(T=>T.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:K}}),y=qt(P,10);f=(await(await Promise.all(y.map(async x=>await i._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&Wt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${x.error.message}`),x.result.value.map(K=>{if(K){let{data:T,executable:N,lamports:A,owner:w,rentEpoch:S}=K;return T.length!==2&&T[1]!=="base64"&&Wt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:N,lamports:A,owner:new ii(w),rentEpoch:S}}return null})))}else try{f=await Promise.all(p.map(P=>i.getMultipleAccountsInfo(P,u)))}catch(P){P instanceof Error&&Wt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.message}`)}return f.flat()}function qt(i,t=1,n=[]){let o=[...i];if(t<=0)return n;for(;o.length;)n.push(o.splice(0,t));return n}import{PublicKey as wu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tu}from"@solana/spl-token";import{ComputeBudgetProgram as Nn,Keypair as Fn,PublicKey as ri,Transaction as vn,TransactionMessage as ai,VersionedTransaction as Vn}from"@solana/web3.js";var Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as si}from"@solana/spl-token";var Mn=v("Raydium_txUtil"),_n=1644;function pt(i){let t=[],n=[];return i.microLamports&&(t.push(Nn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Z.SetComputeUnitPrice)),i.units&&(t.push(Nn.setComputeUnitLimit({units:i.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(i,t){var o,u;let n=t!=null?t:"confirmed";return(u=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:n})))==null?void 0:u.blockhash}async function ft(i,t){return i.getSignatureStatuses([t]),new Promise((n,o)=>{let u=setTimeout(o,6e4);i.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}o(Object.assign(m.err,{txId:t}))},"confirmed")})}function Ut(i,t){i.length<1&&Mn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&Mn.logWithError(`no signers provided:, ${t.toString()}`);let n=new vn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<_n}catch{return!1}}function pe(i,t){let[n,o]=ri.findProgramAddressSync(i,t);return{publicKey:n,nonce:o}}function Qe({instructions:i,payer:t,signers:n}){return Ut(i,[t,...n])}function Ze({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:o=Fn.generate().publicKey.toString()}){let m=new ai({payerKey:t,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Vn(m).serialize()).toString("base64").length<_n}catch{return!1}}var ui=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),ci=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Vn&&(t=ui(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ie(i){let t=[];return i.forEach(n=>{n instanceof vn&&(n.recentBlockhash||(n.recentBlockhash=si.toBase58()),n.feePayer||(n.feePayer=Fn.generate().publicKey)),t.push(ci(n))}),console.log("simulate tx string:",t),t}import Su from"bn.js";import{PublicKey as Gt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function zt({connection:i,address:t,cluster:n="mainnet"}){let o=await Pe(i,[...new Set(t.map(m=>m.toString()))].map(m=>new Gt(m))),u={};for(let m=0;m<t.length;m++){let p=o[m],f=t[m];if(!p)continue;let P=new Ne({key:f,state:Ne.deserialize(p.data)});u[f.toString()]=P,n==="devnet"?Oe[f.toString()]=P:Le[f.toString()]=P}return u}var Le={},Xt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[t])return Le;let n=new Gt(t),o=await i.getAccountInfo(n);return o&&(Le[t]=new Ne({key:n,state:Ne.deserialize(o.data)})),Le},Oe={},Yt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[t])return Oe;let n=new Gt(t),o=await i.getAccountInfo(n);return o&&(Oe[t]=new Ne({key:n,state:Ne.deserialize(o.data)})),Oe};import{PublicKey as Me,sendAndConfirmTransaction as Qt,SystemProgram as li,Transaction as He,TransactionMessage as je,VersionedTransaction as $e}from"@solana/web3.js";import mi from"axios";var yt=2e3,bt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 o;let t=(await mi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(o=t==null?void 0:t[15])!=null?o:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:o}=pt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(li.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Me(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let o=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:o=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Me.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:o}){return t===0?await this.buildV0(F(R({},n||{}),{lookupTableAddress:o})):this.build(n)}build(t){var o;let n=new He;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:P}=u||{},y=m!=null?m:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=y,this.signers.length&&n.sign(...this.signers),Ie([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Qt(this.connection,n,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let x=await this.signAllTransactions([n]);if(this.signers.length)for(let K of x)try{K.sign(...this.signers)}catch{}return{txId:P?"":await this.connection.sendRawTransaction(x[0].serialize(),{skipPreflight:p}),signedTx:x[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var y;let{extraPreBuildData:n=[],extInfo:o}=t,{transaction:u}=this.build(o),m=n.filter(b=>b.transaction.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],P=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&f.forEach(b=>{b.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:P,execute:async b=>{var S;let{sequentially:x,onTxUpdate:K,skipTxCount:T=0,recentBlockHash:N,skipPreflight:A=!0}=b||{},w=N!=null?N:await Re(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(x){let h=[],V=0;for(let _ of p){if(++V,V<=T)continue;let g=await Qt(this.connection,_,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});h.push(g)}return{txIds:h,signedTxs:p}}return{txIds:await await Promise.all(p.map(async h=>(h.recentBlockhash=w,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:p}}if(this.signAllTransactions){let h=p.map((_,g)=>(_.recentBlockhash=w,f[g].length&&_.sign(...f[g]),_));Ie(h);let V=await this.signAllTransactions(h);if(x){let _=0,g=[],I=async()=>{if(!V[_])return;let B=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:A});g.push({txId:B,status:"sent",signedTx:V[_]}),K==null||K([...g]),_++;let C=!1,L=null,E=null,ie=U=>{L!==null&&clearInterval(L),E!==null&&this.connection.removeSignatureListener(E);let q=g.findIndex($=>$.txId===B);if(q>-1){if(g[q].status==="error"||g[q].status==="success")return;g[q].status=U.err?"error":"success"}K==null||K([...g]),U.err||I()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(C){clearInterval(L);return}try{let q=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(C=!0,clearInterval(L),ie({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",B))}catch(q){C=!0,clearInterval(L),console.error("getTransaction timeout:",q,B)}},yt)),E=this.connection.onSignature(B,U=>{if(C){this.connection.removeSignatureListener(E);return}C=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(B)};return await I(),{txIds:g.map(B=>B.txId),signedTxs:V}}else{let _=[];for(let g=0;g<V.length;g+=1){let I=await this.connection.sendRawTransaction(V[g].serialize(),{skipPreflight:A});_.push(I)}return{txIds:_,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:o}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:o})}async buildV0(t){var A;let N=t||{},{lookupTableCache:n={},lookupTableAddress:o=[],forerunCreate:u,recentBlockhash:m}=N,p=me(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=R(R({},this.cluster==="devnet"?await Yt(this.connection):await Xt(this.connection)),n),P=Array.from(new Set([...o,...this.lookupTableAddress])),y=[];for(let w of P)f[w]===void 0&&y.push(new Me(w));let b=await zt({connection:this.connection,address:y});for(let[w,S]of Object.entries(b))f[w]=S;let x=u?Me.default.toBase58():m!=null?m:await Re(this.connection,this.blockhashCommitment),K=new je({payerKey:this.feePayer,recentBlockhash:x,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(w=>w.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new $e(K);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async w=>{var _;let{skipPreflight:S=!0,sendAndConfirm:h,notSendToRpc:V}=w||{};if(Ie([T]),(_=this.owner)!=null&&_.isKeyPair){let g=await this.connection.sendTransaction(T,{skipPreflight:S});return h&&await ft(this.connection,g),{txId:g,signedTx:T}}if(this.signAllTransactions){let g=await this.signAllTransactions([T]);if(this.signers.length)for(let I of g)try{I.sign(this.signers)}catch{}return{txId:V?"":await this.connection.sendTransaction(g[0],{skipPreflight:S}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var y;let{extraPreBuildData:n=[],buildProps:o}=t,{transaction:u}=await this.buildV0(o),m=n.filter(b=>b.builder.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],P=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&f.forEach(b=>{b.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,x)=>{b.sign(f[x])}),{builder:this,transactions:p,signers:f,instructionTypes:P,buildProps:o,execute:async b=>{var A;let{sequentially:x,onTxUpdate:K,recentBlockHash:T,skipPreflight:N=!0}=b||{};if(T&&p.forEach(w=>w.message.recentBlockhash=T),Ie(p),(A=this.owner)!=null&&A.isKeyPair){if(x){let w=[];for(let S of p){let h=await this.connection.sendTransaction(S,{skipPreflight:N});await ft(this.connection,h),w.push(h)}return{txIds:w,signedTxs:p}}return{txIds:await Promise.all(p.map(async w=>await this.connection.sendTransaction(w,{skipPreflight:N}))),signedTxs:p}}if(this.signAllTransactions){let w=await this.signAllTransactions(p);if(x){let S=0,h=[],V=async()=>{if(!w[S])return;let _=await this.connection.sendTransaction(w[S],{skipPreflight:N});h.push({txId:_,status:"sent",signedTx:w[S]}),K==null||K([...h]),S++;let g=!1,I=null,B=null,C=L=>{I!==null&&clearInterval(I),B!==null&&this.connection.removeSignatureListener(B);let E=h.findIndex(ie=>ie.txId===_);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=L.err?"error":"success"}K==null||K([...h]),L.err||V()};this.loopMultiTxStatus&&(I=setInterval(async()=>{var L;if(g){clearInterval(I);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(g=!0,clearInterval(I),C({err:((L=E.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){g=!0,clearInterval(I),console.error("getTransaction timeout:",E,_)}},yt)),B=this.connection.onSignature(_,L=>{if(g){this.connection.removeSignatureListener(B);return}g=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(_)};return V(),{txIds:[],signedTxs:w}}else{let S=[];for(let h=0;h<w.length;h+=1){let V=await this.connection.sendTransaction(w[h],{skipPreflight:N});S.push(V)}return{txIds:S,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(t){var K;let x=t||{},{splitIns:n=[],computeBudgetConfig:o}=x,u=me(x,["splitIns","computeBudgetConfig"]),m=o?pt(o):{instructions:[],instructionTypes:[]},p=this.signers.reduce((T,N)=>F(R({},T),{[N.publicKey.toBase58()]:N}),{}),f=[],P=[],y=[],b=0;if(this.allInstructions.forEach(T=>{let N=[...y,T],A=o?[...m.instructions,...N]:N,S=[...new Set(N.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(h=>new Me(h));if(T!==n[b]&&y.length<12&&(Qe({instructions:A,payer:this.feePayer,signers:S})||Qe({instructions:N,payer:this.feePayer,signers:S})))y.push(T);else{if(y.length===0)throw Error("item ins too big");b+=T===n[b]?1:0,Qe({instructions:o?[...m.instructions,...y]:[...y],payer:this.feePayer,signers:S})?f.push(new He().add(...m.instructions,...y)):f.push(new He().add(...y)),P.push(Array.from(new Set(y.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(h=>p[h]).filter(h=>h!==void 0)),y=[T]}}),y.length>0){let N=[...new Set(y.map(A=>A.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);Qe({instructions:o?[...m.instructions,...y]:[...y],payer:this.feePayer,signers:N.map(A=>A.publicKey)})?f.push(new He().add(...m.instructions,...y)):f.push(new He().add(...y)),P.push(N)}return f.forEach(T=>T.feePayer=this.feePayer),(K=this.owner)!=null&&K.signer&&P.forEach(T=>{T.some(N=>N.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:f,signers:P,instructionTypes:this.instructionTypes,execute:async T=>{var _;let{sequentially:N,onTxUpdate:A,skipTxCount:w=0,recentBlockHash:S,skipPreflight:h=!0}=T||{},V=S!=null?S:await Re(this.connection,this.blockhashCommitment);if(f.forEach(async(g,I)=>{g.recentBlockhash=V,P[I].length&&g.sign(...P[I])}),Ie(f),(_=this.owner)!=null&&_.isKeyPair){if(N){let g=0,I=[];for(let B of f){if(++g,g<=w){I.push("tx skipped");continue}let C=await Qt(this.connection,B,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});I.push(C)}return{txIds:I,signedTxs:f}}return{txIds:await Promise.all(f.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let g=await this.signAllTransactions(f.slice(w,f.length)),I=[...f.slice(0,w),...g];if(N){let B=0,C=[],L=async()=>{if(!I[B])return;B<w&&(C.push({txId:"",status:"success",signedTx:I[B]}),A==null||A([...C]),B++,L());let E=await this.connection.sendRawTransaction(I[B].serialize(),{skipPreflight:h});C.push({txId:E,status:"sent",signedTx:I[B]}),A==null||A([...C]),B++;let ie=!1,U=null,q=null,$=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let oe=C.findIndex(ye=>ye.txId===E);if(oe>-1){if(C[oe].status==="error"||C[oe].status==="success")return;C[oe].status=G.err?"error":"success"}A==null||A([...C]),G.err||L()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ie){clearInterval(U);return}try{let oe=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(ie=!0,clearInterval(U),$({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",E))}catch(oe){ie=!0,clearInterval(U),console.error("getTransaction timeout:",oe,E)}},yt)),q=this.connection.onSignature(E,G=>{if(ie){this.connection.removeSignatureListener(q);return}ie=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await L(),{txIds:C.map(E=>E.txId),signedTxs:I}}else{let B=[];for(let C=0;C<I.length;C+=1){let L=await this.connection.sendRawTransaction(I[C].serialize(),{skipPreflight:h});B.push(L)}return{txIds:B,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let V=t||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=V,f=me(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),P=R(R({},this.cluster==="devnet"?await Yt(this.connection):await Xt(this.connection)),u),y=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of y)P[g]===void 0&&b.push(new Me(g));let x=await zt({connection:this.connection,address:b});for(let[g,I]of Object.entries(x))P[g]=I;let K=n?pt(n):{instructions:[],instructionTypes:[]},T=await Re(this.connection,this.blockhashCommitment),N=this.signers.reduce((g,I)=>F(R({},g),{[I.publicKey.toBase58()]:I}),{}),A=[],w=[],S=[],h=0;if(this.allInstructions.forEach(g=>{let I=[...S,g],B=n?[...K.instructions,...I]:I;if(g!==o[h]&&S.length<p&&(Ze({instructions:B,payer:this.feePayer,lookupTableAddressAccount:P})||Ze({instructions:I,payer:this.feePayer,lookupTableAddressAccount:P})))S.push(g);else{if(S.length===0)throw Error("item ins too big");h+=g===o[h]?1:0;let C={};for(let L of[...new Set(y)])P[L]!==void 0&&(C[L]=P[L]);if(n&&Ze({instructions:[...K.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:T})){let L=new je({payerKey:this.feePayer,recentBlockhash:T,instructions:[...K.instructions,...S]}).compileToV0Message(Object.values(P));A.push(new $e(L))}else{let L=new je({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S]}).compileToV0Message(Object.values(P));A.push(new $e(L))}w.push(Array.from(new Set(S.map(L=>L.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(L=>N[L]).filter(L=>L!==void 0)),S=[g]}}),S.length>0){let I=[...new Set(S.map(B=>B.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(B=>N[B]).filter(B=>B!==void 0);if(n&&Ze({instructions:[...K.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:T})){let B=new je({payerKey:this.feePayer,recentBlockhash:T,instructions:[...K.instructions,...S]}).compileToV0Message(Object.values(P));A.push(new $e(B))}else{let B=new je({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S]}).compileToV0Message(Object.values(P));A.push(new $e(B))}w.push(I)}return(_=this.owner)!=null&&_.signer&&w.forEach(g=>{g.some(I=>I.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,I)=>{g.sign(w[I])}),{builder:this,transactions:A,buildProps:t,signers:w,instructionTypes:this.instructionTypes,execute:async g=>{var ie;let{sequentially:I,onTxUpdate:B,skipTxCount:C=0,recentBlockHash:L,skipPreflight:E=!0}=g||{};if(A.map(async(U,q)=>{w[q].length&&U.sign(w[q]),L&&(U.message.recentBlockhash=L)}),Ie(A),(ie=this.owner)!=null&&ie.isKeyPair){if(I){let U=0,q=[];for(let $ of A){if(++U,U<=C){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:E});await ft(this.connection,G),q.push(G)}return{txIds:q,signedTxs:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(C,A.length)),q=[...A.slice(0,C),...U];if(I){let $=0,G=[],oe=async()=>{if(!q[$])return;if($<C){G.push({txId:"",status:"success",signedTx:q[$]}),B==null||B([...G]),$++,oe();return}let ye=await this.connection.sendTransaction(q[$],{skipPreflight:E});G.push({txId:ye,status:"sent",signedTx:q[$]}),B==null||B([...G]),$++;let qe=!1,Ke=null,at=null,yn=ke=>{Ke!==null&&clearInterval(Ke),at!==null&&this.connection.removeSignatureListener(at);let be=G.findIndex(Bo=>Bo.txId===ye);if(be>-1){if(G[be].status==="error"||G[be].status==="success")return;G[be].status=ke.err?"error":"success"}B==null||B([...G]),ke.err||oe()};this.loopMultiTxStatus&&(Ke=setInterval(async()=>{var ke;if(qe){clearInterval(Ke);return}try{let be=await this.connection.getTransaction(ye,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(qe=!0,clearInterval(Ke),yn({err:((ke=be.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",ye))}catch(be){qe=!0,clearInterval(Ke),console.error("getTransaction timeout:",be,ye)}},yt)),at=this.connection.onSignature(ye,ke=>{if(qe){this.connection.removeSignatureListener(at);return}qe=!0,yn(ke)},"confirmed"),this.connection.getSignatureStatus(ye)};return oe(),{txIds:[],signedTxs:q}}else{let $=[];for(let G=0;G<q.length;G+=1){let oe=await this.connection.sendTransaction(q[G],{skipPreflight:E});$.push(oe)}return{txIds:$,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import di from"bn.js";var gt=new di(1e6);var En={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"},pi=F(R({},En),{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 Dc=v("Raydium_Api");import{PublicKey as Rm,SystemProgram as Lm}from"@solana/web3.js";import{AccountLayout as vm,createAssociatedTokenAccountIdempotentInstruction as Vm,TOKEN_PROGRAM_ID as _m,TOKEN_2022_PROGRAM_ID as Em}from"@solana/spl-token";var Zt=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),te=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=v(n)}createTxBuilder(t){return this.scope.checkOwner(),new bt({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(Zt(t))}logInfo(...t){this.logger.info(Zt(t))}logAndCreateError(...t){let n=Zt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as sm,SystemProgram as cm}from"@solana/web3.js";import dm from"bn.js";import{createCloseAccountInstruction as bm,createInitializeAccountInstruction as gm,createTransferInstruction as Pm,TOKEN_PROGRAM_ID as Am}from"@solana/spl-token";import{Keypair as Ql,PublicKey as Zl}from"@solana/web3.js";import $l from"bn.js";import{TOKEN_PROGRAM_ID as tm}from"@solana/spl-token";import{PublicKey as Si}from"@solana/web3.js";import zn,{isBN as Xn}from"bn.js";import{bits as fi,BitStructure as el,blob as yi,Blob as tl,cstr as nl,f32 as ol,f32be as il,f64 as rl,f64be as al,greedy as sl,Layout as bi,ns64 as ul,ns64be as cl,nu64 as gi,nu64be as ll,offset as Pi,s16 as ml,s16be as dl,s24 as pl,s24be as fl,s32 as Ai,s32be as yl,s40 as bl,s40be as gl,s48 as Pl,s48be as Al,s8 as wl,seq as wi,struct as kl,Structure as ki,u16 as Ti,u16be as Tl,u24 as hl,u24be as Il,u32 as hi,u32be as Bl,u40 as Sl,u40be as xl,u48 as Kl,u48be as Cl,u8 as Ii,UInt as Bi,union as Rl,Union as Ll,unionLayoutDiscriminator as Ol,utf8 as Nl}from"@solana/buffer-layout";var Pt=bi,Dn=ki;var Ht=Bi;var Wn=Ii,H=Ti;var At=hi;var qn=gi;var ce=Ai;var Un=wi;var M=yi;var jt=fi,Gn=Pi;var Se=class extends Pt{constructor(n,o,u){super(n,u);this.blob=M(n),this.signed=o}decode(n,o=0){let u=new zn(this.blob.decode(n,o),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,o,u=0){return typeof n=="number"&&(n=new zn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,u)}},wt=class extends Pt{constructor(n){super(8,n);this._lower=jt(At(),!1),this._upper=jt(At(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,o=0){let u=this._lower.decode(n,o),m=this._upper.decode(n,o+this._lower.span);return R(R({},u),m)}encode(n,o,u=0){return this._lower.encode(n,o,u)+this._upper.encode(n,o,u+this._lower.span)}};function c(i){return new Ht(1,i)}function X(i){return new Ht(4,i)}function e(i){return new Se(8,!1,i)}function O(i){return new Se(16,!1,i)}function Yn(i){return new Se(1,!0,i)}function Fe(i){return new Se(8,!0,i)}function Qn(i){return new Se(16,!0,i)}var Je=class extends Pt{constructor(n,o,u,m){super(n.span,m);this.layout=n,this.decoder=o,this.encoder=u}decode(n,o){return this.decoder(this.layout.decode(n,o))}encode(n,o,u){return this.layout.encode(this.encoder(n),o,u)}getSpan(n,o){return this.layout.getSpan(n,o)}};function r(i){return new Je(M(32),t=>new Si(t),t=>t.toBuffer(),i)}function se(i){return new Je(Wn(),xi,Ki,i)}function xi(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Ki(i){return i?1:0}function Zn(i,t){let n=At("length"),o=l([n,d(i,Gn(n,-n.span),"values")]);return new Je(o,({values:u})=>u,u=>({values:u}),t)}var $t=class extends Dn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new $t(i,t,n)}function d(i,t,n){let o,u=typeof t=="number"?t:Xn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!o){let f=Reflect.get(m,"count");o=Xn(f)?f.toNumber():f,Reflect.set(m,"count",o)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(o=f),Reflect.set(m,p,f)}});return Un(i,u,n)}var kt=l([r("mint"),r("owner"),e("amount"),X("delegateOption"),r("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as Qg,SystemProgram as Zg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as jg}from"@solana/spl-token";import sP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ny,TOKEN_2022_PROGRAM_ID as My,TOKEN_PROGRAM_ID as Fy}from"@solana/spl-token";import{PublicKey as Vy}from"@solana/web3.js";import Ey from"bn.js";import Wy from"decimal.js";import{TOKEN_PROGRAM_ID as Zm}from"@solana/spl-token";import{PublicKey as Jm}from"@solana/web3.js";var Ri=l([X("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ty,TOKEN_2022_PROGRAM_ID as ny,TOKEN_PROGRAM_ID as oy}from"@solana/spl-token";import{Keypair as ay,PublicKey as sy,SystemProgram as cy,TransactionInstruction as ly}from"@solana/web3.js";import dy from"bn.js";import D from"bn.js";var ve=new D(1).shln(64);var Li=new D(1).shln(128),Jt=new D(1).shln(64).subn(1),Oi=new D(1).shln(128).subn(1);var Ve=new D("4295048016"),_e=new D("79226673521066979257578248091"),Ni=new D("59543866431248"),Mi=new D("184467440737095516"),Fi=new D("15793534762490258745");var en=60,md=new D("18446743708227953217"),vi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var et=3,jn=100;var $n=10,Jn=100,ht=14;var j=new D(0),Ee=new D(1),dd=new D(-1);var pd=new D("18446744073700000000");var Vi=l([M(8),c("bump"),H("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),d(X(),1),r("fundOwner"),d(e(),3)]),_i=l([X("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),eo=l([M(8),se("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),d(_i,jn,"observations"),d(e(),4)]),Ei=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Di=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),tn=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ce("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),M(6),d(Di,et,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ei.replicate("dynamicFeeInfo"),d(e(),46)]),Wi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),qi=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Wi,et,"rewardInfos"),e("recentEpoch"),d(e(),7)]),gd=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),et,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ui=l([ce("tick"),Qn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),et,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(X(),3)]),to=l([M(8),r("poolId"),ce("startTickIndex"),d(Ui,en,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Gi=l([M(8),c("bump"),d(r(),$n,"operationOwners"),d(r(),Jn,"whitelistMints")]),zi=l([M(8),r("poolId"),r("owner"),ce("tick"),se("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),no=l([M(8),r("poolId"),M(8*8*ht,"positiveTickArrayBitmap"),M(8*8*ht,"negativeTickArrayBitmap")]),Pd=l([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),Xi=l([M(8),r("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),Ad=l([e(),c("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),d(e(),8)]),Yi=l([M(8),c("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),d(e(),8)]);import Td from"bn.js";var Nd=Buffer.from("amm_config","utf8"),Qi=Buffer.from("pool","utf8"),Zi=Buffer.from("pool_vault","utf8"),Md=Buffer.from("pool_reward_vault","utf8"),Fd=Buffer.from("position","utf8"),vd=Buffer.from("tick_array","utf8"),Vd=Buffer.from("operation","utf8"),_d=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ed=Buffer.from("observation","utf8"),Dd=Buffer.from("support_mint","utf8"),Wd=Buffer.from("dynamic_fee_config","utf8");var qd=Buffer.from("locked_position","utf8");import{sha256 as lr}from"js-sha256";import Hi from"bn.js";import Xd from"decimal.js";var Qd=new Hi(1).shln(256).subn(1);import dp from"bn.js";import tp from"bn.js";import op from"decimal.js";import gp from"bn.js";import Ap from"decimal.js";import{PublicKey as af}from"@solana/web3.j