@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 86.7 kB
JavaScript
var Mo=Object.defineProperty,Fo=Object.defineProperties;var vo=Object.getOwnPropertyDescriptors;var mt=Object.getOwnPropertySymbols;var kn=Object.prototype.hasOwnProperty,Tn=Object.prototype.propertyIsEnumerable;var wn=(i,e,n)=>e in i?Mo(i,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[e]=n,L=(i,e)=>{for(var n in e||(e={}))kn.call(e,n)&&wn(i,n,e[n]);if(mt)for(var n of mt(e))Tn.call(e,n)&&wn(i,n,e[n]);return i},D=(i,e)=>Fo(i,vo(e));var se=(i,e)=>{var n={};for(var o in i)kn.call(i,o)&&e.indexOf(o)<0&&(n[o]=i[o]);if(i!=null&&mt)for(var o of mt(i))e.indexOf(o)<0&&Tn.call(i,o)&&(n[o]=i[o]);return n};import{PublicKey as Ft,SystemProgram as $a}from"@solana/web3.js";import{PublicKey as Eo}from"@solana/web3.js";import{get as hn,set as _o}from"lodash";var vt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},In={},Vo={};function V(i){let e=hn(In,i);if(!e){let n=hn(Vo,i);e=new vt({name:i,logLevel:n}),_o(In,i,e)}return e}import{MINT_SIZE as ls,TOKEN_PROGRAM_ID as ms,getTransferFeeConfig as ds,unpackMint as ps}from"@solana/spl-token";var _t=V("Raydium_accountInfo_util");async function be(i,e,n){let{batchRequest:o,commitment:r="confirmed",chunkCount:s=100}=L({batchRequest:!1},n),l=Vt(e,s),m=new Array(l.length).fill([]);if(o){let d=l.map(g=>{let T=i._buildArgs([g.map(w=>w.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:T}}),y=Vt(d,10);m=(await(await Promise.all(y.map(async g=>await i._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&_t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(T=>{if(T){let{data:w,executable:k,lamports:h,owner:I,rentEpoch:K}=T;return w.length!==2&&w[1]!=="base64"&&_t.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:k,lamports:h,owner:new Eo(I),rentEpoch:K}}return null})))}else try{m=await Promise.all(l.map(d=>i.getMultipleAccountsInfo(d,r)))}catch(d){d instanceof Error&&_t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.message}`)}return m.flat()}import Ke from"bn.js";import QC from"decimal.js";import Yo from"big.js";import Rs from"bn.js";import Do from"toformat";var Wo=Do,Qe=Wo;import pt from"big.js";import Uo from"bn.js";import Go from"decimal.js-light";import Ze from"bn.js";var Bn=9007199254740991;function J(i){let e=V("Raydium_parseBigNumberish");if(i instanceof Ze)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ze(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=Bn||i<=-Bn)&&e.logWithError(`BigNumberish number overflow: ${i}`),new Ze(String(i))):typeof i=="bigint"?new Ze(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new Ze(0))}var dt=V("module/fraction"),Et=Qe(pt),je=Qe(Go),zo={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},Xo={[0]:pt.roundDown,[1]:pt.roundHalfUp,[2]:pt.roundUp},G=class{constructor(e,n=new Uo(1)){this.numerator=J(e),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new G(this.denominator,this.numerator)}add(e){let n=e instanceof G?e:new G(J(e));return this.denominator.eq(n.denominator)?new G(this.numerator.add(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof G?e:new G(J(e));return this.denominator.eq(n.denominator)?new G(this.numerator.sub(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof G?e:new G(J(e));return new G(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof G?e:new G(J(e));return new G(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},o=1){Number.isInteger(e)||dt.logWithError(`${e} is not an integer.`),e<=0&&dt.logWithError(`${e} is not positive.`),je.set({precision:e+1,rounding:zo[o]});let r=new je(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},o=1){return Number.isInteger(e)||dt.logWithError(`${e} is not an integer.`),e<0&&dt.logWithError(`${e} is negative.`),Et.DP=e,Et.RM=Xo[o]||1,new Et(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Es=V("Raydium_amount"),Ds=Qe(Yo);import{PublicKey as Qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xn}from"@solana/spl-token";var ft={chainId:101,address:Qo.default.toBase58(),programId:xn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ce={chainId:101,address:"So11111111111111111111111111111111111111112",programId:xn.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 Wt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Sn,SYSVAR_RENT_PUBKEY as Zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jo}from"@solana/spl-token";function Re({pubkey:i,isSigner:e=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:e}}var $o=[Re({pubkey:jo,isWritable:!1}),Re({pubkey:Sn.programId,isWritable:!1}),Re({pubkey:Zo,isWritable:!1})];function Kn({publicKey:i,transformSol:e}){let n=Cn(i.toString());if(n instanceof X)return e&&n.equals(Te)?re:n;if(e&&n.toString()===Te.toBase58())return re;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Cn(i){try{return new X(i)}catch{return i}}var Dt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),$e=new X("SysvarRent111111111111111111111111111111111"),Hs=new X("SysvarC1ock11111111111111111111111111111111"),yt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Jo=new X("Sysvar1nstructions1111111111111111111111111"),ei=Sn.programId,Qs=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Zs=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),js=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),$s=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Js=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),eu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),tu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),nu=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ou=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),iu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ru=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),re=new X("So11111111111111111111111111111111111111112"),Te=X.default;var qt=class{constructor({mint:e,decimals:n,symbol:o,name:r,skipMint:s=!1,isToken2022:l=!1}){if(e===Te.toBase58()||e instanceof Wt&&Te.equals(e)){this.decimals=ce.decimals,this.symbol=ce.symbol,this.name=ce.name,this.mint=new Wt(ce.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=o||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=s?Wt.default:Kn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=qt;ee.WSOL=new qt(D(L({},ce),{mint:ce.address}));var Ut=class{constructor({decimals:e,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=o}equals(e){return this===e}},bt=Ut;bt.SOL=new Ut(ft);import ti from"bn.js";var gu=new G(new ti(100));var hu=V("Raydium_price");import{merge as jK}from"lodash";import Ou from"axios";var Rn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},ni=D(L({},Rn),{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 tc=V("Raydium_Api");import{PublicKey as Jg,SystemProgram as eP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as nP}from"@solana/spl-token";import{PublicKey as ui}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ci}from"@solana/spl-token";import{ComputeBudgetProgram as Ln,Keypair as Nn,PublicKey as oi,Transaction as Mn,TransactionMessage as ii,VersionedTransaction as Fn}from"@solana/web3.js";var W={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 ri}from"@solana/spl-token";var On=V("Raydium_txUtil"),vn=1644;function gt(i){let e=[],n=[];return i.microLamports&&(e.push(Ln.setComputeUnitPrice({microLamports:i.microLamports})),n.push(W.SetComputeUnitPrice)),i.units&&(e.push(Ln.setComputeUnitLimit({units:i.units})),n.push(W.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Le(i,e){var o,r;let n=e!=null?e:"confirmed";return(r=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:n})))==null?void 0:r.blockhash}async function Pt(i,e){return i.getSignatureStatuses([e]),new Promise((n,o)=>{let r=setTimeout(o,6e4);i.onSignature(e,s=>{if(clearTimeout(r),!s.err){n("");return}o(Object.assign(s.err,{txId:e}))},"confirmed")})}function Gt(i,e){i.length<1&&On.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&On.logWithError(`no signers provided:, ${e.toString()}`);let n=new Mn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<vn}catch{return!1}}function le(i,e){let[n,o]=oi.findProgramAddressSync(i,e);return{publicKey:n,nonce:o}}function Je({instructions:i,payer:e,signers:n}){return Gt(i,[e,...n])}function et({instructions:i,payer:e,lookupTableAddressAccount:n,recentBlockhash:o=Nn.generate().publicKey.toString()}){let s=new ii({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Fn(s).serialize()).toString("base64").length<vn}catch{return!1}}var ai=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),si=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Fn&&(e=ai(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function he(i){let e=[];return i.forEach(n=>{n instanceof Mn&&(n.recentBlockhash||(n.recentBlockhash=ri.toBase58()),n.feePayer||(n.feePayer=Nn.generate().publicKey)),e.push(si(n))}),console.log("simulate tx string:",e),e}function ae(i,e,n){return le([i.toBuffer(),(n!=null?n:ci).toBuffer(),e.toBuffer()],new ui("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as C}from"@solana/web3.js";var _n=new C("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Vn=new C("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),En=new C("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),zt=new C("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Sc=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),li=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Dn=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Wn=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Kc=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),mi=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qn=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),di=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pi=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Un=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Cc=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fi=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xt=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),yi=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Rc=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Lc=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Oc=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Nc=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Mc=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Fc=new C("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ge={OPEN_BOOK_PROGRAM:new C("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new C("Ray1111111111111111111111111111111111111111"),AMM_V4:new C("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new C("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new C("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new C("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new C("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new C("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new C("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new C("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:C.default,Router:new C("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new C("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new C("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new C("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new C("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new C("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new C("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new C("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new C("Ray1111111111111111111111111111111111111111")};import{Keypair as _i,PublicKey as io}from"@solana/web3.js";import Vi from"bn.js";import{TOKEN_PROGRAM_ID as Ei}from"@solana/spl-token";function Ai(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function Yt(i,...e){if(!Ai(i))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(i.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${i.length}`)}function Ht(i,e=!0){if(i.destroyed)throw new Error("Hash instance has been destroyed");if(e&&i.finished)throw new Error("Hash#digest() has already been called")}function Gn(i,e){Yt(i);let n=e.outputLen;if(i.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var wt=i=>new DataView(i.buffer,i.byteOffset,i.byteLength),me=(i,e)=>i<<32-e|i>>>e;var Ec=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function wi(i){if(typeof i!="string")throw new Error(`utf8ToBytes expected string, got ${typeof i}`);return new Uint8Array(new TextEncoder().encode(i))}function Qt(i){return typeof i=="string"&&(i=wi(i)),Yt(i),i}var At=class{clone(){return this._cloneInto()}},Dc={}.toString;function zn(i){let e=o=>i().update(Qt(o)).digest(),n=i();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>i(),e}function ki(i,e,n,o){if(typeof i.setBigUint64=="function")return i.setBigUint64(e,n,o);let r=BigInt(32),s=BigInt(4294967295),l=Number(n>>r&s),m=Number(n&s),d=o?4:0,y=o?0:4;i.setUint32(e+d,l,o),i.setUint32(e+y,m,o)}var Xn=(i,e,n)=>i&e^~i&n,Yn=(i,e,n)=>i&e^i&n^e&n,kt=class extends At{constructor(e,n,o,r){super(),this.blockLen=e,this.outputLen=n,this.padOffset=o,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=wt(this.buffer)}update(e){Ht(this);let{view:n,buffer:o,blockLen:r}=this;e=Qt(e);let s=e.length;for(let l=0;l<s;){let m=Math.min(r-this.pos,s-l);if(m===r){let d=wt(e);for(;r<=s-l;l+=r)this.process(d,l);continue}o.set(e.subarray(l,l+m),this.pos),this.pos+=m,l+=m,this.pos===r&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Ht(this),Gn(e,this),this.finished=!0;let{buffer:n,view:o,blockLen:r,isLE:s}=this,{pos:l}=this;n[l++]=128,this.buffer.subarray(l).fill(0),this.padOffset>r-l&&(this.process(o,0),l=0);for(let g=l;g<r;g++)n[g]=0;ki(o,r-8,BigInt(this.length*8),s),this.process(o,0);let m=wt(e),d=this.outputLen;if(d%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let y=d/4,b=this.get();if(y>b.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<y;g++)m.setUint32(4*g,b[g],s)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let o=e.slice(0,n);return this.destroy(),o}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:o,length:r,finished:s,destroyed:l,pos:m}=this;return e.length=r,e.pos=m,e.finished=s,e.destroyed=l,r%n&&e.buffer.set(o),e}};var Ti=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Pe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ae=new Uint32Array(64),Zt=class extends kt{constructor(){super(64,32,8,!1),this.A=Pe[0]|0,this.B=Pe[1]|0,this.C=Pe[2]|0,this.D=Pe[3]|0,this.E=Pe[4]|0,this.F=Pe[5]|0,this.G=Pe[6]|0,this.H=Pe[7]|0}get(){let{A:e,B:n,C:o,D:r,E:s,F:l,G:m,H:d}=this;return[e,n,o,r,s,l,m,d]}set(e,n,o,r,s,l,m,d){this.A=e|0,this.B=n|0,this.C=o|0,this.D=r|0,this.E=s|0,this.F=l|0,this.G=m|0,this.H=d|0}process(e,n){for(let g=0;g<16;g++,n+=4)Ae[g]=e.getUint32(n,!1);for(let g=16;g<64;g++){let T=Ae[g-15],w=Ae[g-2],k=me(T,7)^me(T,18)^T>>>3,h=me(w,17)^me(w,19)^w>>>10;Ae[g]=h+Ae[g-7]+k+Ae[g-16]|0}let{A:o,B:r,C:s,D:l,E:m,F:d,G:y,H:b}=this;for(let g=0;g<64;g++){let T=me(m,6)^me(m,11)^me(m,25),w=b+T+Xn(m,d,y)+Ti[g]+Ae[g]|0,h=(me(o,2)^me(o,13)^me(o,22))+Yn(o,r,s)|0;b=y,y=d,d=m,m=l+w|0,l=s,s=r,r=o,o=w+h|0}o=o+this.A|0,r=r+this.B|0,s=s+this.C|0,l=l+this.D|0,m=m+this.E|0,d=d+this.F|0,y=y+this.G|0,b=b+this.H|0,this.set(o,r,s,l,m,d,y,b)}roundClean(){Ae.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Hn=zn(()=>new Zt);import{PublicKey as Mi}from"@solana/web3.js";import Jn,{isBN as eo}from"bn.js";import{bits as hi,BitStructure as Qc,blob as Ii,Blob as Zc,cstr as jc,f32 as $c,f32be as Jc,f64 as el,f64be as tl,greedy as nl,Layout as Bi,ns64 as ol,ns64be as il,nu64 as rl,nu64be as al,offset as xi,s16 as sl,s16be as ul,s24 as cl,s24be as ll,s32 as Si,s32be as ml,s40 as dl,s40be as pl,s48 as fl,s48be as yl,s8 as bl,seq as Ki,struct as gl,Structure as Ci,u16 as Ri,u16be as Pl,u24 as Al,u24be as wl,u32 as Li,u32be as kl,u40 as Tl,u40be as hl,u48 as Il,u48be as Bl,u8 as Oi,UInt as Ni,union as xl,Union as Sl,unionLayoutDiscriminator as Kl,utf8 as Cl}from"@solana/buffer-layout";var Tt=Bi,Qn=Ci;var jt=Ni;var Zn=Oi,Q=Ri;var ht=Li;var de=Si;var jn=Ki;var v=Ii;var $t=hi,$n=xi;var Ie=class extends Tt{constructor(n,o,r){super(n,r);this.blob=v(n),this.signed=o}decode(n,o=0){let r=new Jn(this.blob.decode(n,o),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(n,o,r=0){return typeof n=="number"&&(n=new Jn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,r)}},It=class extends Tt{constructor(n){super(8,n);this._lower=$t(ht(),!1),this._upper=$t(ht(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,o=0){let r=this._lower.decode(n,o),s=this._upper.decode(n,o+this._lower.span);return L(L({},r),s)}encode(n,o,r=0){return this._lower.encode(n,o,r)+this._upper.encode(n,o,r+this._lower.span)}};function p(i){return new jt(1,i)}function Y(i){return new jt(4,i)}function t(i){return new Ie(8,!1,i)}function M(i){return new Ie(16,!1,i)}function to(i){return new Ie(1,!0,i)}function Oe(i){return new Ie(8,!0,i)}function no(i){return new Ie(16,!0,i)}var tt=class extends Tt{constructor(n,o,r,s){super(n.span,s);this.layout=n,this.decoder=o,this.encoder=r}decode(n,o){return this.decoder(this.layout.decode(n,o))}encode(n,o,r){return this.layout.encode(this.encoder(n),o,r)}getSpan(n,o){return this.layout.getSpan(n,o)}};function a(i){return new tt(v(32),e=>new Mi(e),e=>e.toBuffer(),i)}function ue(i){return new tt(Zn(),Fi,vi,i)}function Fi(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function vi(i){return i?1:0}function oo(i,e){let n=ht("length"),o=f([n,A(i,$n(n,-n.span),"values")]);return new tt(o,({values:r})=>r,r=>({values:r}),e)}var Jt=class extends Qn{decode(e,n){return super.decode(e,n)}};function f(i,e,n){return new Jt(i,e,n)}function A(i,e,n){let o,r=typeof e=="number"?e:eo(e)?e.toNumber():new Proxy(e,{get(s,l){if(!o){let m=Reflect.get(s,"count");o=eo(m)?m.toNumber():m,Reflect.set(s,"count",o)}return Reflect.get(s,l)},set(s,l,m){return l==="count"&&(o=m),Reflect.set(s,l,m)}});return jn(i,r,n)}var Be=f([a("mint"),a("owner"),t("amount"),Y("delegateOption"),a("delegate"),p("state"),Y("isNativeOption"),t("isNative"),t("delegatedAmount"),Y("closeAuthorityOption"),a("closeAuthority")]);function ro({owner:i,solAccountResp:e,tokenAccountResp:n}){let o=[],r=[];for(let{pubkey:s,account:l}of n.value){let m=Be.decode(l.data),{mint:d,amount:y}=m;o.push({publicKey:s,mint:d,amount:y,isAssociated:ae(i,d,l.owner).publicKey.equals(s),isNative:!1,programId:l.owner}),r.push({pubkey:s,accountInfo:m,programId:l.owner})}return e&&o.push({mint:io.default,amount:new Vi(String(e.lamports)),isNative:!0,programId:e.owner}),{tokenAccounts:o,tokenAccountRawInfos:r}}function xe({fromPublicKey:i,programId:e=Ei,assignSeed:n}){let o=n?btoa(n).slice(0,32):_i.generate().publicKey.toBase58().slice(0,32);return{publicKey:Di(i,o,e),seed:o}}function Di(i,e,n){let o=Buffer.concat([i.toBuffer(),Buffer.from(e),n.toBuffer()]),r=Hn(o);return new io(r)}import dP from"decimal.js";import{PublicKey as Wi,SystemProgram as qi}from"@solana/web3.js";import Ui from"bn.js";import{createCloseAccountInstruction as Gi,createInitializeAccountInstruction as zi,createTransferInstruction as Xi,TOKEN_PROGRAM_ID as Ne}from"@solana/spl-token";function en(i){let{mint:e,tokenAccount:n,owner:o,programId:r=Ne}=i;return zi(n,e,o,r)}function Me(i){let{tokenAccount:e,payer:n,multiSigners:o=[],owner:r,programId:s=Ne}=i;return Gi(e,n,r,o,s)}async function nt(i){let{connection:e,amount:n,commitment:o,payer:r,owner:s,skipCloseAccount:l}=i,m=await e.getMinimumBalanceForRentExemption(Be.span,o),d=J(n).add(new Ui(m)),y=xe({fromPublicKey:r,programId:Ne});return{addresses:{newAccount:y.publicKey},signers:[],instructions:[qi.createAccountWithSeed({fromPubkey:r,basePubkey:r,seed:y.seed,newAccountPubkey:y.publicKey,lamports:d.toNumber(),space:Be.span,programId:Ne}),en({mint:new Wi(ce.address),tokenAccount:y.publicKey,owner:s,programId:Ne})],instructionTypes:[W.CreateAccount,W.InitAccount],endInstructionTypes:l?[]:[W.CloseAccount],endInstructions:l?[]:[Me({tokenAccount:y.publicKey,payer:r,owner:s})]}}function ao({source:i,destination:e,owner:n,amount:o,multiSigners:r=[],tokenProgram:s=Ne}){return Xi(i,e,n,BigInt(String(o)),r,s)}import{createAssociatedTokenAccountIdempotentInstruction as Ry,TOKEN_2022_PROGRAM_ID as Ly,TOKEN_PROGRAM_ID as Oy}from"@solana/spl-token";import{PublicKey as My}from"@solana/web3.js";import vy from"bn.js";import Vy from"decimal.js";import{TOKEN_PROGRAM_ID as hm}from"@solana/spl-token";import{PublicKey as Sm}from"@solana/web3.js";var Yi=f([Y("mintAuthorityOption"),a("mintAuthority"),t("supply"),p("decimals"),p("isInitialized"),Y("freezeAuthorityOption"),a("freezeAuthority")]);import{PublicKey as Ee,sendAndConfirmTransaction as an,SystemProgram as Hi,Transaction as ot,TransactionMessage as it,VersionedTransaction as rt}from"@solana/web3.js";import Qi from"axios";import{PublicKey as tn,AddressLookupTableAccount as Ve}from"@solana/web3.js";async function nn({connection:i,address:e,cluster:n="mainnet"}){let o=await be(i,[...new Set(e.map(s=>s.toString()))].map(s=>new tn(s))),r={};for(let s=0;s<e.length;s++){let l=o[s],m=e[s];if(!l)continue;let d=new Ve({key:m,state:Ve.deserialize(l.data)});r[m.toString()]=d,n==="devnet"?_e[m.toString()]=d:ve[m.toString()]=d}return r}var ve={},on=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(ve[e])return ve;let n=new tn(e),o=await i.getAccountInfo(n);return o&&(ve[e]=new Ve({key:n,state:Ve.deserialize(o.data)})),ve},_e={},rn=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(_e[e])return _e;let n=new tn(e),o=await i.getAccountInfo(n);return o&&(_e[e]=new Ve({key:n,state:Ve.deserialize(o.data)})),_e};var Bt=2e3,xt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var o;let e=(await Qi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(o=e==null?void 0:e[15])!=null?o:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:o}=gt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(Hi.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Ee(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(W.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let o=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:o=[],instructionTypes:r=[],endInstructionTypes:s=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...r),this.endInstructionTypes.push(...s),this.lookupTableAddress.push(...l.filter(m=>m!==Ee.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:o}){return e===0?await this.buildV0(D(L({},n||{}),{lookupTableAddress:o})):this.build(n)}build(e){var o;let n=new ot;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(r=>r.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 r=>{var b;let{recentBlockHash:s,skipPreflight:l=!0,sendAndConfirm:m,notSendToRpc:d}=r||{},y=s!=null?s:await Le(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:m?await an(this.connection,n,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),signedTx:n};if(this.signAllTransactions){let g=await this.signAllTransactions([n]);if(this.signers.length)for(let T of g)try{T.sign(...this.signers)}catch{}return{txId:d?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:l}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var y;let{extraPreBuildData:n=[],extInfo:o}=e,{transaction:r}=this.build(o),s=n.filter(b=>b.transaction.instructions.length>0),l=[r,...s.map(b=>b.transaction)],m=[this.signers,...s.map(b=>b.signers)],d=[...this.instructionTypes,...s.map(b=>b.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&m.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:m,instructionTypes:d,execute:async b=>{var K;let{sequentially:g,onTxUpdate:T,skipTxCount:w=0,recentBlockHash:k,skipPreflight:h=!0}=b||{},I=k!=null?k:await Le(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(g){let B=[],R=0;for(let F of l){if(++R,R<=w)continue;let P=await an(this.connection,F,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});B.push(P)}return{txIds:B,signedTxs:l}}return{txIds:await await Promise.all(l.map(async B=>(B.recentBlockhash=I,await this.connection.sendRawTransaction(B.serialize(),{skipPreflight:h})))),signedTxs:l}}if(this.signAllTransactions){let B=l.map((F,P)=>(F.recentBlockhash=I,m[P].length&&F.sign(...m[P]),F));he(B);let R=await this.signAllTransactions(B);if(g){let F=0,P=[],x=async()=>{if(!R[F])return;let S=await this.connection.sendRawTransaction(R[F].serialize(),{skipPreflight:h});P.push({txId:S,status:"sent",signedTx:R[F]}),T==null||T([...P]),F++;let O=!1,N=null,_=null,ie=U=>{N!==null&&clearInterval(N),_!==null&&this.connection.removeSignatureListener(_);let q=P.findIndex(j=>j.txId===S);if(q>-1){if(P[q].status==="error"||P[q].status==="success")return;P[q].status=U.err?"error":"success"}T==null||T([...P]),U.err||x()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var U;if(O){clearInterval(N);return}try{let q=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(O=!0,clearInterval(N),ie({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",S))}catch(q){O=!0,clearInterval(N),console.error("getTransaction timeout:",q,S)}},Bt)),_=this.connection.onSignature(S,U=>{if(O){this.connection.removeSignatureListener(_);return}O=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(S)};return await x(),{txIds:P.map(S=>S.txId),signedTxs:R}}else{let F=[];for(let P=0;P<R.length;P+=1){let x=await this.connection.sendRawTransaction(R[P].serialize(),{skipPreflight:h});F.push(x)}return{txIds:F,signedTxs:R}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:o}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})}async buildV0(e){var h;let k=e||{},{lookupTableCache:n={},lookupTableAddress:o=[],forerunCreate:r,recentBlockhash:s}=k,l=se(k,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=L(L({},this.cluster==="devnet"?await rn(this.connection):await on(this.connection)),n),d=Array.from(new Set([...o,...this.lookupTableAddress])),y=[];for(let I of d)m[I]===void 0&&y.push(new Ee(I));let b=await nn({connection:this.connection,address:y});for(let[I,K]of Object.entries(b))m[I]=K;let g=r?Ee.default.toBase58():s!=null?s:await Le(this.connection,this.blockhashCommitment),T=new it({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new rt(T);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var F;let{skipPreflight:K=!0,sendAndConfirm:B,notSendToRpc:R}=I||{};if(he([w]),(F=this.owner)!=null&&F.isKeyPair){let P=await this.connection.sendTransaction(w,{skipPreflight:K});return B&&await Pt(this.connection,P),{txId:P,signedTx:w}}if(this.signAllTransactions){let P=await this.signAllTransactions([w]);if(this.signers.length)for(let x of P)try{x.sign(this.signers)}catch{}return{txId:R?"":await this.connection.sendTransaction(P[0],{skipPreflight:K}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var y;let{extraPreBuildData:n=[],buildProps:o}=e,{transaction:r}=await this.buildV0(o),s=n.filter(b=>b.builder.instructions.length>0),l=[r,...s.map(b=>b.transaction)],m=[this.signers,...s.map(b=>b.signers)],d=[...this.instructionTypes,...s.map(b=>b.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&m.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(b,g)=>{b.sign(m[g])}),{builder:this,transactions:l,signers:m,instructionTypes:d,buildProps:o,execute:async b=>{var h;let{sequentially:g,onTxUpdate:T,recentBlockHash:w,skipPreflight:k=!0}=b||{};if(w&&l.forEach(I=>I.message.recentBlockhash=w),he(l),(h=this.owner)!=null&&h.isKeyPair){if(g){let I=[];for(let K of l){let B=await this.connection.sendTransaction(K,{skipPreflight:k});await Pt(this.connection,B),I.push(B)}return{txIds:I,signedTxs:l}}return{txIds:await Promise.all(l.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:k}))),signedTxs:l}}if(this.signAllTransactions){let I=await this.signAllTransactions(l);if(g){let K=0,B=[],R=async()=>{if(!I[K])return;let F=await this.connection.sendTransaction(I[K],{skipPreflight:k});B.push({txId:F,status:"sent",signedTx:I[K]}),T==null||T([...B]),K++;let P=!1,x=null,S=null,O=N=>{x!==null&&clearInterval(x),S!==null&&this.connection.removeSignatureListener(S);let _=B.findIndex(ie=>ie.txId===F);if(_>-1){if(B[_].status==="error"||B[_].status==="success")return;B[_].status=N.err?"error":"success"}T==null||T([...B]),N.err||R()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var N;if(P){clearInterval(x);return}try{let _=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(P=!0,clearInterval(x),O({err:((N=_.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",F))}catch(_){P=!0,clearInterval(x),console.error("getTransaction timeout:",_,F)}},Bt)),S=this.connection.onSignature(F,N=>{if(P){this.connection.removeSignatureListener(S);return}P=!0,O(N)},"confirmed"),this.connection.getSignatureStatus(F)};return R(),{txIds:[],signedTxs:I}}else{let K=[];for(let B=0;B<I.length;B+=1){let R=await this.connection.sendTransaction(I[B],{skipPreflight:k});K.push(R)}return{txIds:K,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var T;let g=e||{},{splitIns:n=[],computeBudgetConfig:o}=g,r=se(g,["splitIns","computeBudgetConfig"]),s=o?gt(o):{instructions:[],instructionTypes:[]},l=this.signers.reduce((w,k)=>D(L({},w),{[k.publicKey.toBase58()]:k}),{}),m=[],d=[],y=[],b=0;if(this.allInstructions.forEach(w=>{let k=[...y,w],h=o?[...s.instructions,...k]:k,K=[...new Set(k.map(B=>B.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(B=>new Ee(B));if(w!==n[b]&&y.length<12&&(Je({instructions:h,payer:this.feePayer,signers:K})||Je({instructions:k,payer:this.feePayer,signers:K})))y.push(w);else{if(y.length===0)throw Error("item ins too big");b+=w===n[b]?1:0,Je({instructions:o?[...s.instructions,...y]:[...y],payer:this.feePayer,signers:K})?m.push(new ot().add(...s.instructions,...y)):m.push(new ot().add(...y)),d.push(Array.from(new Set(y.map(B=>B.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat())).map(B=>l[B]).filter(B=>B!==void 0)),y=[w]}}),y.length>0){let k=[...new Set(y.map(h=>h.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(h=>l[h]).filter(h=>h!==void 0);Je({instructions:o?[...s.instructions,...y]:[...y],payer:this.feePayer,signers:k.map(h=>h.publicKey)})?m.push(new ot().add(...s.instructions,...y)):m.push(new ot().add(...y)),d.push(k)}return m.forEach(w=>w.feePayer=this.feePayer),(T=this.owner)!=null&&T.signer&&d.forEach(w=>{w.some(k=>k.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:m,signers:d,instructionTypes:this.instructionTypes,execute:async w=>{var F;let{sequentially:k,onTxUpdate:h,skipTxCount:I=0,recentBlockHash:K,skipPreflight:B=!0}=w||{},R=K!=null?K:await Le(this.connection,this.blockhashCommitment);if(m.forEach(async(P,x)=>{P.recentBlockhash=R,d[x].length&&P.sign(...d[x])}),he(m),(F=this.owner)!=null&&F.isKeyPair){if(k){let P=0,x=[];for(let S of m){if(++P,P<=I){x.push("tx skipped");continue}let O=await an(this.connection,S,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:B});x.push(O)}return{txIds:x,signedTxs:m}}return{txIds:await Promise.all(m.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:B}))),signedTxs:m}}if(this.signAllTransactions){let P=await this.signAllTransactions(m.slice(I,m.length)),x=[...m.slice(0,I),...P];if(k){let S=0,O=[],N=async()=>{if(!x[S])return;S<I&&(O.push({txId:"",status:"success",signedTx:x[S]}),h==null||h([...O]),S++,N());let _=await this.connection.sendRawTransaction(x[S].serialize(),{skipPreflight:B});O.push({txId:_,status:"sent",signedTx:x[S]}),h==null||h([...O]),S++;let ie=!1,U=null,q=null,j=z=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let ne=O.findIndex(fe=>fe.txId===_);if(ne>-1){if(O[ne].status==="error"||O[ne].status==="success")return;O[ne].status=z.err?"error":"success"}h==null||h([...O]),z.err||N()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var z;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(U),j({err:((z=ne.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,_)}},Bt)),q=this.connection.onSignature(_,z=>{if(ie){this.connection.removeSignatureListener(q);return}ie=!0,j(z)},"confirmed"),this.connection.getSignatureStatus(_)};return await N(),{txIds:O.map(_=>_.txId),signedTxs:x}}else{let S=[];for(let O=0;O<x.length;O+=1){let N=await this.connection.sendRawTransaction(x[O].serialize(),{skipPreflight:B});S.push(N)}return{txIds:S,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var F;let R=e||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:r={},lookupTableAddress:s=[],insCountLimit:l=12}=R,m=se(R,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),d=L(L({},this.cluster==="devnet"?await rn(this.connection):await on(this.connection)),r),y=Array.from(new Set([...this.lookupTableAddress,...s])),b=[];for(let P of y)d[P]===void 0&&b.push(new Ee(P));let g=await nn({connection:this.connection,address:b});for(let[P,x]of Object.entries(g))d[P]=x;let T=n?gt(n):{instructions:[],instructionTypes:[]},w=await Le(this.connection,this.blockhashCommitment),k=this.signers.reduce((P,x)=>D(L({},P),{[x.publicKey.toBase58()]:x}),{}),h=[],I=[],K=[],B=0;if(this.allInstructions.forEach(P=>{let x=[...K,P],S=n?[...T.instructions,...x]:x;if(P!==o[B]&&K.length<l&&(et({instructions:S,payer:this.feePayer,lookupTableAddressAccount:d})||et({instructions:x,payer:this.feePayer,lookupTableAddressAccount:d})))K.push(P);else{if(K.length===0)throw Error("item ins too big");B+=P===o[B]?1:0;let O={};for(let N of[...new Set(y)])d[N]!==void 0&&(O[N]=d[N]);if(n&&et({instructions:[...T.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:w})){let N=new it({payerKey:this.feePayer,recentBlockhash:w,instructions:[...T.instructions,...K]}).compileToV0Message(Object.values(d));h.push(new rt(N))}else{let N=new it({payerKey:this.feePayer,recentBlockhash:w,instructions:[...K]}).compileToV0Message(Object.values(d));h.push(new rt(N))}I.push(Array.from(new Set(K.map(N=>N.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(N=>k[N]).filter(N=>N!==void 0)),K=[P]}}),K.length>0){let x=[...new Set(K.map(S=>S.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(S=>k[S]).filter(S=>S!==void 0);if(n&&et({instructions:[...T.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:w})){let S=new it({payerKey:this.feePayer,recentBlockhash:w,instructions:[...T.instructions,...K]}).compileToV0Message(Object.values(d));h.push(new rt(S))}else{let S=new it({payerKey:this.feePayer,recentBlockhash:w,instructions:[...K]}).compileToV0Message(Object.values(d));h.push(new rt(S))}I.push(x)}return(F=this.owner)!=null&&F.signer&&I.forEach(P=>{P.some(x=>x.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),h.forEach((P,x)=>{P.sign(I[x])}),{builder:this,transactions:h,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:x,onTxUpdate:S,skipTxCount:O=0,recentBlockHash:N,skipPreflight:_=!0}=P||{};if(h.map(async(U,q)=>{I[q].length&&U.sign(I[q]),N&&(U.message.recentBlockhash=N)}),he(h),(ie=this.owner)!=null&&ie.isKeyPair){if(x){let U=0,q=[];for(let j of h){if(++U,U<=O){console.log("skip tx: ",U),q.push("tx skipped");continue}let z=await this.connection.sendTransaction(j,{skipPreflight:_});await Pt(this.connection,z),q.push(z)}return{txIds:q,signedTxs:h}}return{txIds:await Promise.all(h.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:_}))),signedTxs:h}}if(this.signAllTransactions){let U=await this.signAllTransactions(h.slice(O,h.length)),q=[...h.slice(0,O),...U];if(x){let j=0,z=[],ne=async()=>{if(!q[j])return;if(j<O){z.push({txId:"",status:"success",signedTx:q[j]}),S==null||S([...z]),j++,ne();return}let fe=await this.connection.sendTransaction(q[j],{skipPreflight:_});z.push({txId:fe,status:"sent",signedTx:q[j]}),S==null||S([...z]),j++;let Ye=!1,Ce=null,lt=null,An=ke=>{Ce!==null&&clearInterval(Ce),lt!==null&&this.connection.removeSignatureListener(lt);let ye=z.findIndex(No=>No.txId===fe);if(ye>-1){if(z[ye].status==="error"||z[ye].status==="success")return;z[ye].status=ke.err?"error":"success"}S==null||S([...z]),ke.err||ne()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var ke;if(Ye){clearInterval(Ce);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(Ye=!0,clearInterval(Ce),An({err:((ke=ye.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){Ye=!0,clearInterval(Ce),console.error("getTransaction timeout:",ye,fe)}},Bt)),lt=this.connection.onSignature(fe,ke=>{if(Ye){this.connection.removeSignatureListener(lt);return}Ye=!0,An(ke)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:q}}else{let j=[];for(let z=0;z<q.length;z+=1){let ne=await this.connection.sendTransaction(q[z],{skipPreflight:_});j.push(ne)}return{txIds:j,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var sn=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),oe=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=V(n)}createTxBuilder(e){return this.scope.checkOwner(),new xt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(sn(e))}logInfo(...e){this.logger.info(sn(e))}logAndCreateError(...e){let n=sn(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{ASSOCIATED_TOKEN_PROGRAM_ID as $f,TOKEN_2022_PROGRAM_ID as Jf,TOKEN_PROGRAM_ID as ey}from"@solana/spl-token";import{Keypair as oy,PublicKey as iy,SystemProgram as ay,TransactionInstruction as sy}from"@solana/web3.js";import cy from"bn.js";import E from"bn.js";var De=new E(1).shln(64);var Zi=new E(1).shln(128),un=new E(1).shln(64).subn(1),ji=new E(1).shln(128).subn(1);var We=new E("4295048016"),qe=new E("79226673521066979257578248091"),$i=new E("59543866431248"),Ji=new E("184467440737095516"),er=new E(