@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 79.3 kB
JavaScript
var Bo=Object.defineProperty,So=Object.defineProperties;var xo=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var dn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable;var mn=(i,t,n)=>t in i?Bo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,R=(i,t)=>{for(var n in t||(t={}))dn.call(t,n)&&mn(i,n,t[n]);if(st)for(var n of st(t))pn.call(t,n)&&mn(i,n,t[n]);return i},F=(i,t)=>So(i,xo(t));var me=(i,t)=>{var n={};for(var o in i)dn.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 ho from"bn.js";import{PublicKey as k}from"@solana/web3.js";var fn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),yn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),bn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ct=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),qa=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ko=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),gn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Pn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ua=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Co=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),An=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ro=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Lo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),wn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ga=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Oo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),No=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Mo=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Fo=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),vo=new k("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Rt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Vo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),za=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),_o=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Eo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Do=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:No,IDO_PROGRAM_ID_V2:Mo,IDO_PROGRAM_ID_V3:Fo,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 kn,SYSVAR_RENT_PUBKEY as Wo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";function Ke({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Uo=[Ke({pubkey:qo,isWritable:!1}),Ke({pubkey:kn.programId,isWritable:!1}),Ke({pubkey:Wo,isWritable:!1})];function Tn({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"),Ce=new z("SysvarRent111111111111111111111111111111111"),hn=new z("SysvarC1ock11111111111111111111111111111111"),ut=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Go=new z("Sysvar1nstructions1111111111111111111111111"),In=kn.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 va}from"@solana/web3.js";import Va from"bn.js";import Na from"big.js";import Kt from"bn.js";import Se from"bn.js";import tR from"decimal.js";import{PublicKey as zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bn}from"@solana/spl-token";var ct={chainId:101,address:zo.default.toBase58(),programId:Bn.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:Bn.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 Nt}from"@solana/web3.js";var Mt=class{constructor({mint:t,decimals:n,symbol:o,name:u,skipMint:m=!1,isToken2022:f=!1}){if(t===Te.toBase58()||t instanceof Nt&&Te.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Nt(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?Nt.default:Tn({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Mt;J.WSOL=new Mt(F(R({},de),{mint:de.address}));var Ft=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=Ft;lt.SOL=new Ft(ct);import dt from"big.js";import jo from"bn.js";import $o from"decimal.js-light";import{get as Sn,set as Xo}from"lodash";var vt=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}},xn={},Yo={};function v(i){let t=Sn(xn,i);if(!t){let n=Sn(Yo,i);t=new vt({name:i,logLevel:n}),Xo(xn,i,t)}return t}import Ge from"bn.js";var Kn=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>=Kn||i<=-Kn)&&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 Qo from"toformat";var Zo=Qo,ze=Zo;var mt=v("module/fraction"),Vt=ze(dt),Xe=ze($o),Jo={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},ei={[0]:dt.roundDown,[1]:dt.roundHalfUp,[2]:dt.roundUp},W=class{constructor(t,n=new jo(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:Jo[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.`),Vt.DP=t,Vt.RM=ei[o]||1,new Vt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import ti from"bn.js";var Cn=new W(new ti(100)),ge=class extends W{toSignificant(t=5,n,o){return this.mul(Cn).toSignificant(t,n,o)}toFixed(t=2,n,o){return this.mul(Cn).toFixed(t,n,o)}};var ni=v("Raydium_price"),ue=class extends W{constructor(n){let{baseToken:o,quoteToken:u,numerator:m,denominator:f}=n;super(m,f);this.baseToken=o,this.quoteToken=u,this.scalar=new W(_t(o.decimals),_t(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&&ni.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 nC}from"lodash";import gc from"axios";import{PublicKey as oi}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 Et=v("Raydium_accountInfo_util");async function Pe(i,t,n){let{batchRequest:o,commitment:u="confirmed",chunkCount:m=100}=R({batchRequest:!1},n),f=Dt(t,m),p=new Array(f.length).fill([]);if(o){let P=f.map(x=>{let K=i._buildArgs([x.map(T=>T.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:K}}),y=Dt(P,10);p=(await(await Promise.all(y.map(async x=>await i._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&Et.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"&&Et.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:N,lamports:A,owner:new oi(w),rentEpoch:S}}return null})))}else try{p=await Promise.all(f.map(P=>i.getMultipleAccountsInfo(P,u)))}catch(P){P instanceof Error&&Et.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.message}`)}return p.flat()}function Dt(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 Rn,Keypair as On,PublicKey as ii,Transaction as Nn,TransactionMessage as ri,VersionedTransaction as Mn}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 ai}from"@solana/spl-token";var Ln=v("Raydium_txUtil"),Fn=1644;function pt(i){let t=[],n=[];return i.microLamports&&(t.push(Rn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Z.SetComputeUnitPrice)),i.units&&(t.push(Rn.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 Wt(i,t){i.length<1&&Ln.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&Ln.logWithError(`no signers provided:, ${t.toString()}`);let n=new Nn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Fn}catch{return!1}}function pe(i,t){let[n,o]=ii.findProgramAddressSync(i,t);return{publicKey:n,nonce:o}}function Qe({instructions:i,payer:t,signers:n}){return Wt(i,[t,...n])}function Ze({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:o=On.generate().publicKey.toString()}){let m=new ri({payerKey:t,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Mn(m).serialize()).toString("base64").length<Fn}catch{return!1}}var si=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),ui=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Mn&&(t=si(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function he(i){let t=[];return i.forEach(n=>{n instanceof Nn&&(n.recentBlockhash||(n.recentBlockhash=ai.toBase58()),n.feePayer||(n.feePayer=On.generate().publicKey)),t.push(ui(n))}),console.log("simulate tx string:",t),t}import Su from"bn.js";import{PublicKey as qt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Ut({connection:i,address:t,cluster:n="mainnet"}){let o=await Pe(i,[...new Set(t.map(m=>m.toString()))].map(m=>new qt(m))),u={};for(let m=0;m<t.length;m++){let f=o[m],p=t[m];if(!f)continue;let P=new Ne({key:p,state:Ne.deserialize(f.data)});u[p.toString()]=P,n==="devnet"?Oe[p.toString()]=P:Le[p.toString()]=P}return u}var Le={},Gt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[t])return Le;let n=new qt(t),o=await i.getAccountInfo(n);return o&&(Le[t]=new Ne({key:n,state:Ne.deserialize(o.data)})),Le},Oe={},zt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[t])return Oe;let n=new qt(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 Xt,SystemProgram as ci,Transaction as He,TransactionMessage as je,VersionedTransaction as $e}from"@solana/web3.js";import li 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 li.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(ci.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:f=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...f.filter(p=>p!==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:f=!0,sendAndConfirm:p,notSendToRpc:P}=u||{},y=m!=null?m:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=y,this.signers.length&&n.sign(...this.signers),he([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Xt(this.connection,n,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:f}),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:f}),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),f=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],P=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&p.forEach(b=>{b.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:f,signers:p,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 f){if(++V,V<=T)continue;let g=await Xt(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:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=w,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:f}}if(this.signAllTransactions){let h=f.map((_,g)=>(_.recentBlockhash=w,p[g].length&&_.sign(...p[g]),_));he(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,f=me(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=R(R({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),n),P=Array.from(new Set([...o,...this.lookupTableAddress])),y=[];for(let w of P)p[w]===void 0&&y.push(new Me(w));let b=await Ut({connection:this.connection,address:y});for(let[w,S]of Object.entries(b))p[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(p));((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(he([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:f||{}}}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),f=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],P=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&p.forEach(b=>{b.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,x)=>{b.sign(p[x])}),{builder:this,transactions:f,signers:p,instructionTypes:P,buildProps:o,execute:async b=>{var A;let{sequentially:x,onTxUpdate:K,recentBlockHash:T,skipPreflight:N=!0}=b||{};if(T&&f.forEach(w=>w.message.recentBlockhash=T),he(f),(A=this.owner)!=null&&A.isKeyPair){if(x){let w=[];for(let S of f){let h=await this.connection.sendTransaction(S,{skipPreflight:N});await ft(this.connection,h),w.push(h)}return{txIds:w,signedTxs:f}}return{txIds:await Promise.all(f.map(async w=>await this.connection.sendTransaction(w,{skipPreflight:N}))),signedTxs:f}}if(this.signAllTransactions){let w=await this.signAllTransactions(f);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:[]},f=this.signers.reduce((T,N)=>F(R({},T),{[N.publicKey.toBase58()]:N}),{}),p=[],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})?p.push(new He().add(...m.instructions,...y)):p.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=>f[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=>f[A]).filter(A=>A!==void 0);Qe({instructions:o?[...m.instructions,...y]:[...y],payer:this.feePayer,signers:N.map(A=>A.publicKey)})?p.push(new He().add(...m.instructions,...y)):p.push(new He().add(...y)),P.push(N)}return p.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:p,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(p.forEach(async(g,I)=>{g.recentBlockhash=V,P[I].length&&g.sign(...P[I])}),he(p),(_=this.owner)!=null&&_.isKeyPair){if(N){let g=0,I=[];for(let B of p){if(++g,g<=w){I.push("tx skipped");continue}let C=await Xt(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:p}}return{txIds:await Promise.all(p.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let g=await this.signAllTransactions(p.slice(w,p.length)),I=[...p.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:f=12}=V,p=me(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),P=R(R({},this.cluster==="devnet"?await zt(this.connection):await Gt(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 Ut({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<f&&(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)}),he(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,xe=null,at=null,ln=ke=>{xe!==null&&clearInterval(xe),at!==null&&this.connection.removeSignatureListener(at);let be=G.findIndex(Io=>Io.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&&(xe=setInterval(async()=>{var ke;if(qe){clearInterval(xe);return}try{let be=await this.connection.getTransaction(ye,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(qe=!0,clearInterval(xe),ln({err:((ke=be.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",ye))}catch(be){qe=!0,clearInterval(xe),console.error("getTransaction timeout:",be,ye)}},yt)),at=this.connection.onSignature(ye,ke=>{if(qe){this.connection.removeSignatureListener(at);return}qe=!0,ln(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:p||{}}}};import mi from"bn.js";var gt=new mi(1e6);var vn={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"},di=F(R({},vn),{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 Yt=(...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(Yt(t))}logInfo(...t){this.logger.info(Yt(t))}logAndCreateError(...t){let n=Yt(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 Bi}from"@solana/web3.js";import qn,{isBN as Un}from"bn.js";import{bits as pi,BitStructure as el,blob as fi,Blob as tl,cstr as nl,f32 as ol,f32be as il,f64 as rl,f64be as al,greedy as sl,Layout as yi,ns64 as ul,ns64be as cl,nu64 as bi,nu64be as ll,offset as gi,s16 as ml,s16be as dl,s24 as pl,s24be as fl,s32 as Pi,s32be as yl,s40 as bl,s40be as gl,s48 as Pl,s48be as Al,s8 as wl,seq as Ai,struct as kl,Structure as wi,u16 as ki,u16be as Tl,u24 as hl,u24be as Il,u32 as Ti,u32be as Bl,u40 as Sl,u40be as xl,u48 as Kl,u48be as Cl,u8 as hi,UInt as Ii,union as Rl,Union as Ll,unionLayoutDiscriminator as Ol,utf8 as Nl}from"@solana/buffer-layout";var Pt=yi,Vn=wi;var Qt=Ii;var _n=hi,H=ki;var At=Ti;var En=bi;var ce=Pi;var Dn=Ai;var M=fi;var Zt=pi,Wn=gi;var Be=class extends Pt{constructor(n,o,u){super(n,u);this.blob=M(n),this.signed=o}decode(n,o=0){let u=new qn(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 qn(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=Zt(At(),!1),this._upper=Zt(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 Qt(1,i)}function X(i){return new Qt(4,i)}function e(i){return new Be(8,!1,i)}function O(i){return new Be(16,!1,i)}function Gn(i){return new Be(1,!0,i)}function Fe(i){return new Be(8,!0,i)}function zn(i){return new Be(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 Bi(t),t=>t.toBuffer(),i)}function se(i){return new Je(_n(),Si,xi,i)}function Si(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function xi(i){return i?1:0}function Xn(i,t){let n=At("length"),o=l([n,d(i,Wn(n,-n.span),"values")]);return new Je(o,({values:u})=>u,u=>({values:u}),t)}var Ht=class extends Vn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Ht(i,t,n)}function d(i,t,n){let o,u=typeof t=="number"?t:Un(t)?t.toNumber():new Proxy(t,{get(m,f){if(!o){let p=Reflect.get(m,"count");o=Un(p)?p.toNumber():p,Reflect.set(m,"count",o)}return Reflect.get(m,f)},set(m,f,p){return f==="count"&&(o=p),Reflect.set(m,f,p)}});return Dn(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 Ci=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 Ri=new D(1).shln(128),jt=new D(1).shln(64).subn(1),Li=new D(1).shln(128).subn(1);var Ve=new D("4295048016"),_e=new D("79226673521066979257578248091"),Oi=new D("59543866431248"),Ni=new D("184467440737095516"),Mi=new D("15793534762490258745");var $t=60,md=new D("18446743708227953217"),Fi=[{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,Qn=100;var Zn=10,Hn=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)]),Vi=l([X("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),jn=l([M(8),se("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),d(Vi,Qn,"observations"),d(e(),4)]),_i=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ei=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),Jt=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(Ei,et,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),_i.replicate("dynamicFeeInfo"),d(e(),46)]),Di=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Wi=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Di,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)]),qi=l([ce("tick"),zn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),et,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(X(),3)]),$n=l([M(8),r("poolId"),ce("startTickIndex"),d(qi,$t,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Ui=l([M(8),c("bump"),d(r(),Zn,"operationOwners"),d(r(),Hn,"whitelistMints")]),Gi=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)]),Jn=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)]),zi=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)]),Xi=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"),Yi=Buffer.from("pool","utf8"),Qi=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 cr}from"js-sha256";import Zi from"bn.js";import Xd from"decimal.js";var Qd=new Zi(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