@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 86.8 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 Ja}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 ms,TOKEN_PROGRAM_ID as ds,getTransferFeeConfig as ps,unpackMint as fs}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 $C from"decimal.js";import Yo from"big.js";import Ls 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 Ds=V("Raydium_amount"),Ws=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"),Qs=new X("SysvarC1ock11111111111111111111111111111111"),yt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Jo=new X("Sysvar1nstructions1111111111111111111111111"),ei=Sn.programId,Zs=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),js=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),$s=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Js=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),eu=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),tu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),nu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ou=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),iu=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ru=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),au=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 Pu=new G(new ti(100));var Iu=V("Raydium_price");import{merge as eC}from"lodash";import Nu 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 nc=V("Raydium_Api");import{PublicKey as oP,SystemProgram as iP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as aP}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"),Kc=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),li=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Dn=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Wn=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Cc=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),mi=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qn=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),di=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pi=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Un=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rc=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fi=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xt=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),yi=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Lc=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Oc=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Nc=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Mc=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Fc=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vc=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 Dc=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()}},Wc={}.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 Zc,blob as Ii,Blob as jc,cstr as $c,f32 as Jc,f32be as el,f64 as tl,f64be as nl,greedy as ol,Layout as Bi,ns64 as il,ns64be as rl,nu64 as al,nu64be as sl,offset as xi,s16 as ul,s16be as cl,s24 as ll,s24be as ml,s32 as Si,s32be as dl,s40 as pl,s40be as fl,s48 as yl,s48be as bl,s8 as gl,seq as Ki,struct as Pl,Structure as Ci,u16 as Ri,u16be as Al,u24 as wl,u24be as kl,u32 as Li,u32be as Tl,u40 as hl,u40be as Il,u48 as Bl,u48be as xl,u8 as Oi,UInt as Ni,union as Sl,Union as Kl,unionLayoutDiscriminator as Cl,utf8 as Rl}from"@solana/buffer-layout";var Tt=Bi,Qn=Ci;var jt=Ni;var Zn=Oi,H=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 bP 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 My,TOKEN_2022_PROGRAM_ID as Fy,TOKEN_PROGRAM_ID as vy}from"@solana/spl-token";import{PublicKey as Vy}from"@solana/web3.js";import Dy from"bn.js";import qy from"decimal.js";import{TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";import{PublicKey as Km}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($=>$.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,$=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),$({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,$(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 $ of h){if(++U,U<=O){console.log("skip tx: ",U),q.push("tx skipped");continue}let z=await this.connection.sendTransaction($,{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 $=0,z=[],ne=async()=>{if(!q[$])return;if($<O){z.push({txId:"",status:"success",signedTx:q[$]}),S==null||S([...z]),$++,ne();return}let fe=await this.connection.sendTransaction(q[$],{skipPreflight:_});z.push({txId:fe,status:"sent",signedTx:q[$]}),S==null||S([...z]),$++;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 $=[];for(let z=0;z<q.length;z+=1){let ne=await this.connection.sendTransaction(q[z],{skipPreflight:_});$.push(ne)}return{txIds:$,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 ny,TOKEN_2022_PROGRAM_ID as oy,TOKEN_PROGRAM_ID as iy}from"@solana/spl-token";import{Keypair as sy,PublicKey as uy,SystemProgram as ly,TransactionInstruction as my}from"@solana/web3.js";import py 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(