@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 79.9 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"),Ua=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Co=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Tn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),hn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ga=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ro=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),In=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Lo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Oo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Bn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),za=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"),Ya=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Eo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Do=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Wo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Xa=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Qa=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Za=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Ha=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ja=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 Re({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Go=[Re({pubkey:Uo,isWritable:!1}),Re({pubkey:Sn.programId,isWritable:!1}),Re({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,ns=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),os=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),is=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),rs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),as=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ss=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),us=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),cs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ls=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ms=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ds=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 xt from"bn.js";import Ke from"bn.js";import _C from"decimal.js";import{PublicKey as Yo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Kn}from"@solana/spl-token";var ct={chainId:101,address:Yo.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 Xo}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}),Xo(Rn,i,t)}return t}import Ge from"bn.js";var Ln=9007199254740991;function X(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),Ye=ze(Jo),ei={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},ti={[0]:dt.roundDown,[1]:dt.roundHalfUp,[2]:dt.roundUp},W=class{constructor(t,n=new $o(1)){this.numerator=X(t),this.denominator=X(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(X(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(X(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(X(t));return new W(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof W?t:new W(X(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.`),Ye.set({precision:t+1,rounding:ei[o]});let u=new Ye(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 EK}from"lodash";import Pc from"axios";import{PublicKey as ii}from"@solana/web3.js";import{MINT_SIZE as tu,TOKEN_PROGRAM_ID as nu,getTransferFeeConfig as ou,unpackMint as iu}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 ku}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hu}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 Le(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 xu from"bn.js";import{PublicKey as Gt,AddressLookupTableAccount as Me}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 Me({key:f,state:Me.deserialize(p.data)});u[f.toString()]=P,n==="devnet"?Ne[f.toString()]=P:Oe[f.toString()]=P}return u}var Oe={},Yt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Oe[t])return Oe;let n=new Gt(t),o=await i.getAccountInfo(n);return o&&(Oe[t]=new Me({key:n,state:Me.deserialize(o.data)})),Oe},Ne={},Xt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ne[t])return Ne;let n=new Gt(t),o=await i.getAccountInfo(n);return o&&(Ne[t]=new Me({key:n,state:Me.deserialize(o.data)})),Ne};import{PublicKey as Fe,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 Fe(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!==Fe.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 Le(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 Le(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 Xt(this.connection):await Yt(this.connection)),n),P=Array.from(new Set([...o,...this.lookupTableAddress])),y=[];for(let w of P)f[w]===void 0&&y.push(new Fe(w));let b=await zt({connection:this.connection,address:y});for(let[w,S]of Object.entries(b))f[w]=S;let x=u?Fe.default.toBase58():m!=null?m:await Le(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 Fe(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 Le(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 Xt(this.connection):await Yt(this.connection)),u),y=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of y)P[g]===void 0&&b.push(new Fe(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 Le(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,Ce=null,at=null,yn=ke=>{Ce!==null&&clearInterval(Ce),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&&(Ce=setInterval(async()=>{var ke;if(qe){clearInterval(Ce);return}try{let be=await this.connection.getTransaction(ye,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(qe=!0,clearInterval(Ce),yn({err:((ke=be.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",ye))}catch(be){qe=!0,clearInterval(Ce),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 Wc=v("Raydium_Api");import{PublicKey as Lm,SystemProgram as Om}from"@solana/web3.js";import{AccountLayout as Vm,createAssociatedTokenAccountIdempotentInstruction as _m,TOKEN_PROGRAM_ID as Em,TOKEN_2022_PROGRAM_ID as Dm}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 um,SystemProgram as lm}from"@solana/web3.js";import pm from"bn.js";import{createCloseAccountInstruction as gm,createInitializeAccountInstruction as Pm,createTransferInstruction as Am,TOKEN_PROGRAM_ID as wm}from"@solana/spl-token";import{Keypair as Zl,PublicKey as Hl}from"@solana/web3.js";import Jl from"bn.js";import{TOKEN_PROGRAM_ID as nm}from"@solana/spl-token";import{PublicKey as Si}from"@solana/web3.js";import zn,{isBN as Yn}from"bn.js";import{bits as fi,BitStructure as tl,blob as yi,Blob as nl,cstr as ol,f32 as il,f32be as rl,f64 as al,f64be as sl,greedy as ul,Layout as bi,ns64 as cl,ns64be as ll,nu64 as gi,nu64be as ml,offset as Pi,s16 as dl,s16be as pl,s24 as fl,s24be as yl,s32 as Ai,s32be as bl,s40 as gl,s40be as Pl,s48 as Al,s48be as wl,s8 as kl,seq as wi,struct as Tl,Structure as ki,u16 as Ti,u16be as hl,u24 as Il,u24be as Bl,u32 as hi,u32be as Sl,u40 as xl,u40be as Kl,u48 as Cl,u48be as Rl,u8 as Ii,UInt as Bi,union as Ll,Union as Ol,unionLayoutDiscriminator as Nl,utf8 as Ml}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 Y(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 Xn(i){return new Se(1,!0,i)}function ve(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:Yn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!o){let f=Reflect.get(m,"count");o=Yn(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"),Y("delegateOption"),r("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("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 Hm}from"@solana/spl-token";import{PublicKey as ed}from"@solana/web3.js";var Ri=l([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("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 xe=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,dd=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),pd=new D(-1);var fd=new D("18446744073700000000");var Vi=l([M(8),c("bump"),H("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),d(Y(),1),r("fundOwner"),d(e(),3)]),_i=l([Y("blockTimestamp"),ve("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"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),Y("volatilityReference"),Y("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"),Y(),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)]),Pd=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(Y(),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")]),Ad=l([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),d(e(),8)]),Yi=l([M(8),r("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),wd=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 hd from"bn.js";var Md=Buffer.from("amm_config","utf8"),Qi=Buffer.from("pool","utf8"),Zi=Buffer.from("pool_vault","utf8"),Fd=Buffer.from("pool_reward_vault","utf8"),vd=Buffer.from("position","utf8"),Vd=Buffer.from("tick_array","utf8"),_d=Buffer.from("operation","utf8"),Ed=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Dd=Buffer.from("observation","utf8"),Wd=Buffer.from("support_mint","utf8"),qd=Buffer.from("dynamic_fee_config","utf8");var Ud=Buffer.from("locked_position","utf8");import{sha256 as mr}from"js-sha256";import Hi from"bn.js";import Xd from"decimal.js";var Zd=new Hi(1).shln(256).subn(1);import pp from"bn.js";import np from"bn.js";import ip from"decimal.js";import kp from"bn.js";import hp from"decimal.js";import{PublicKey as af}from"@solana/web3.j