UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 87.5 kB
var _o=Object.defineProperty,Vo=Object.defineProperties;var Eo=Object.getOwnPropertyDescriptors;var dt=Object.getOwnPropertySymbols;var Tn=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable;var kn=(i,e,n)=>e in i?_o(i,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[e]=n,L=(i,e)=>{for(var n in e||(e={}))Tn.call(e,n)&&kn(i,n,e[n]);if(dt)for(var n of dt(e))hn.call(e,n)&&kn(i,n,e[n]);return i},V=(i,e)=>Vo(i,Eo(e));var se=(i,e)=>{var n={};for(var o in i)Tn.call(i,o)&&e.indexOf(o)<0&&(n[o]=i[o]);if(i!=null&&dt)for(var o of dt(i))e.indexOf(o)<0&&hn.call(i,o)&&(n[o]=i[o]);return n};import{PublicKey as vt,SystemProgram as cs}from"@solana/web3.js";import{PublicKey as qo}from"@solana/web3.js";import{get as In,set as Do}from"lodash";var _t=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}},Bn={},Wo={};function E(i){let e=In(Bn,i);if(!e){let n=In(Wo,i);e=new _t({name:i,logLevel:n}),Do(Bn,i,e)}return e}import{MINT_SIZE as ks,TOKEN_PROGRAM_ID as Ts,getTransferFeeConfig as hs,unpackMint as Is}from"@solana/spl-token";var Vt=E("Raydium_accountInfo_util");async function be(i,e,n){let{batchRequest:o,commitment:r="confirmed",chunkCount:c=100}=L({batchRequest:!1},n),l=Et(e,c),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=Et(d,10);m=(await(await Promise.all(y.map(async g=>await i._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Vt.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:B,rentEpoch:C}=T;return w.length!==2&&w[1]!=="base64"&&Vt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:k,lamports:h,owner:new qo(B),rentEpoch:C}}return null})))}else try{m=await Promise.all(l.map(d=>i.getMultipleAccountsInfo(d,r)))}catch(d){d instanceof Error&&Vt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.message}`)}return m.flat()}import Ke from"bn.js";import NR from"decimal.js";import Zo from"big.js";import Ws from"bn.js";import Uo from"toformat";var Go=Uo,Ze=Go;import ft from"big.js";import Xo from"bn.js";import Yo from"decimal.js-light";import je from"bn.js";var xn=9007199254740991;function J(i){let e=E("Raydium_parseBigNumberish");if(i instanceof je)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new je(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=xn||i<=-xn)&&e.logWithError(`BigNumberish number overflow: ${i}`),new je(String(i))):typeof i=="bigint"?new je(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new je(0))}var pt=E("module/fraction"),Dt=Ze(ft),$e=Ze(Yo),Qo={[0]:$e.ROUND_DOWN,[1]:$e.ROUND_HALF_UP,[2]:$e.ROUND_UP},Ho={[0]:ft.roundDown,[1]:ft.roundHalfUp,[2]:ft.roundUp},G=class{constructor(e,n=new Xo(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)||pt.logWithError(`${e} is not an integer.`),e<=0&&pt.logWithError(`${e} is not positive.`),$e.set({precision:e+1,rounding:Qo[o]});let r=new $e(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)||pt.logWithError(`${e} is not an integer.`),e<0&&pt.logWithError(`${e} is negative.`),Dt.DP=e,Dt.RM=Ho[o]||1,new Dt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Zs=E("Raydium_amount"),js=Ze(Zo);import{PublicKey as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Sn}from"@solana/spl-token";var yt={chainId:101,address:$o.default.toBase58(),programId:Sn.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:Sn.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 qt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Kn,SYSVAR_RENT_PUBKEY as Jo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ei}from"@solana/spl-token";function Re({pubkey:i,isSigner:e=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:e}}var ti=[Re({pubkey:ei,isWritable:!1}),Re({pubkey:Kn.programId,isWritable:!1}),Re({pubkey:Jo,isWritable:!1})];function Cn({publicKey:i,transformSol:e}){let n=Rn(i.toString());if(n instanceof X)return e&&n.equals(Te)?ie:n;if(e&&n.toString()===Te.toBase58())return ie;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 Rn(i){try{return new X(i)}catch{return i}}var Wt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Le=new X("SysvarRent111111111111111111111111111111111"),ni=new X("SysvarC1ock11111111111111111111111111111111"),bt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),oi=new X("Sysvar1nstructions1111111111111111111111111"),Ln=Kn.programId,ru=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),au=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),su=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),uu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),cu=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),lu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),mu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),du=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),pu=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),fu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),yu=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ie=new X("So11111111111111111111111111111111111111112"),Te=X.default;var Ut=class{constructor({mint:e,decimals:n,symbol:o,name:r,skipMint:c=!1,isToken2022:l=!1}){if(e===Te.toBase58()||e instanceof qt&&Te.equals(e)){this.decimals=ce.decimals,this.symbol=ce.symbol,this.name=ce.name,this.mint=new qt(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=c?qt.default:Cn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=Ut;ee.WSOL=new Ut(V(L({},ce),{mint:ce.address}));var Gt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=o}equals(e){return this===e}},gt=Gt;gt.SOL=new Gt(yt);import ii from"bn.js";var Su=new G(new ii(100));var Nu=E("Raydium_price");import{merge as NC}from"lodash";import qu from"axios";var On={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},ri=V(L({},On),{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 mc=E("Raydium_Api");import{PublicKey as rP,SystemProgram as aP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as uP}from"@solana/spl-token";import{PublicKey as mi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as di}from"@solana/spl-token";import{ComputeBudgetProgram as Nn,Keypair as Fn,PublicKey as ai,Transaction as vn,TransactionMessage as si,VersionedTransaction as _n}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 ui}from"@solana/spl-token";var Mn=E("Raydium_txUtil"),Vn=1644;function Pt(i){let e=[],n=[];return i.microLamports&&(e.push(Nn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(W.SetComputeUnitPrice)),i.units&&(e.push(Nn.setComputeUnitLimit({units:i.units})),n.push(W.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Oe(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 At(i,e){return i.getSignatureStatuses([e]),new Promise((n,o)=>{let r=setTimeout(o,6e4);i.onSignature(e,c=>{if(clearTimeout(r),!c.err){n("");return}o(Object.assign(c.err,{txId:e}))},"confirmed")})}function zt(i,e){i.length<1&&Mn.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&Mn.logWithError(`no signers provided:, ${e.toString()}`);let n=new vn;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]=ai.findProgramAddressSync(i,e);return{publicKey:n,nonce:o}}function Je({instructions:i,payer:e,signers:n}){return zt(i,[e,...n])}function et({instructions:i,payer:e,lookupTableAddressAccount:n,recentBlockhash:o=Fn.generate().publicKey.toString()}){let c=new si({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new _n(c).serialize()).toString("base64").length<Vn}catch{return!1}}var ci=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),li=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof _n&&(e=ci(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 vn&&(n.recentBlockhash||(n.recentBlockhash=ui.toBase58()),n.feePayer||(n.feePayer=Fn.generate().publicKey)),e.push(li(n))}),console.log("simulate tx string:",e),e}function ae(i,e,n){return le([i.toBuffer(),(n!=null?n:di).toBuffer(),e.toBuffer()],new mi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as I}from"@solana/web3.js";var En=new I("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Dn=new I("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Wn=new I("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xt=new I("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),_c=new I("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),pi=new I("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qn=new I("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Un=new I("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Vc=new I("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),fi=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Gn=new I("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),yi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),bi=new I("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zn=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ec=new I("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),gi=new I("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Pi=new I("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ai=new I("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),wi=new I("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ki=new I("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Yt=new I("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ti=new I("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Dc=new I("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),hi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new I("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Bi=new I("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Wc=new I("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),qc=new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Uc=new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Gc=new I("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),zc=new I("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),tt={IDO_PROGRAM_ID_V1:Pi,IDO_PROGRAM_ID_V2:Ai,IDO_PROGRAM_ID_V3:wi,IDO_PROGRAM_ID_V4:ki};var ge={OPEN_BOOK_PROGRAM:new I("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new I("Ray1111111111111111111111111111111111111111"),AMM_V4:new I("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new I("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new I("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new I("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new I("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new I("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new I("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new I("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new I("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new I("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:I.default,Router:new I("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new I("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new I("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new I("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new I("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new I("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new I("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new I("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new I("Ray1111111111111111111111111111111111111111")};import{Keypair as zi,PublicKey as so}from"@solana/web3.js";import Xi from"bn.js";import{TOKEN_PROGRAM_ID as Yi}from"@solana/spl-token";function xi(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function Qt(i,...e){if(!xi(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 Xn(i,e){Qt(i);let n=e.outputLen;if(i.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var kt=i=>new DataView(i.buffer,i.byteOffset,i.byteLength),me=(i,e)=>i<<32-e|i>>>e;var Hc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Si(i){if(typeof i!="string")throw new Error(`utf8ToBytes expected string, got ${typeof i}`);return new Uint8Array(new TextEncoder().encode(i))}function Zt(i){return typeof i=="string"&&(i=Si(i)),Qt(i),i}var wt=class{clone(){return this._cloneInto()}},Zc={}.toString;function Yn(i){let e=o=>i().update(Zt(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),c=BigInt(4294967295),l=Number(n>>r&c),m=Number(n&c),d=o?4:0,y=o?0:4;i.setUint32(e+d,l,o),i.setUint32(e+y,m,o)}var Qn=(i,e,n)=>i&e^~i&n,Hn=(i,e,n)=>i&e^i&n^e&n,Tt=class extends wt{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=kt(this.buffer)}update(e){Ht(this);let{view:n,buffer:o,blockLen:r}=this;e=Zt(e);let c=e.length;for(let l=0;l<c;){let m=Math.min(r-this.pos,c-l);if(m===r){let d=kt(e);for(;r<=c-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),Xn(e,this),this.finished=!0;let{buffer:n,view:o,blockLen:r,isLE:c}=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),c),this.process(o,0);let m=kt(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],c)}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:c,destroyed:l,pos:m}=this;return e.length=r,e.pos=m,e.finished=c,e.destroyed=l,r%n&&e.buffer.set(o),e}};var Ci=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),jt=class extends Tt{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:c,F:l,G:m,H:d}=this;return[e,n,o,r,c,l,m,d]}set(e,n,o,r,c,l,m,d){this.A=e|0,this.B=n|0,this.C=o|0,this.D=r|0,this.E=c|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:c,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+Qn(m,d,y)+Ci[g]+Ae[g]|0,h=(me(o,2)^me(o,13)^me(o,22))+Hn(o,r,c)|0;b=y,y=d,d=m,m=l+w|0,l=c,c=r,r=o,o=w+h|0}o=o+this.A|0,r=r+this.B|0,c=c+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,c,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 Zn=Yn(()=>new jt);import{PublicKey as qi}from"@solana/web3.js";import no,{isBN as oo}from"bn.js";import{bits as Ri,BitStructure as rl,blob as Li,Blob as al,cstr as sl,f32 as ul,f32be as cl,f64 as ll,f64be as ml,greedy as dl,Layout as Oi,ns64 as pl,ns64be as fl,nu64 as Ni,nu64be as yl,offset as Mi,s16 as bl,s16be as gl,s24 as Pl,s24be as Al,s32 as Fi,s32be as wl,s40 as kl,s40be as Tl,s48 as hl,s48be as Il,s8 as Bl,seq as vi,struct as xl,Structure as _i,u16 as Vi,u16be as Sl,u24 as Kl,u24be as Cl,u32 as Ei,u32be as Rl,u40 as Ll,u40be as Ol,u48 as Nl,u48be as Ml,u8 as Di,UInt as Wi,union as Fl,Union as vl,unionLayoutDiscriminator as _l,utf8 as Vl}from"@solana/buffer-layout";var ht=Oi,jn=_i;var $t=Wi;var $n=Di,H=Vi;var It=Ei;var Jn=Ni;var de=Fi;var eo=vi;var v=Li;var Jt=Ri,to=Mi;var Ie=class extends ht{constructor(n,o,r){super(n,r);this.blob=v(n),this.signed=o}decode(n,o=0){let r=new no(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 no(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,r)}},Bt=class extends ht{constructor(n){super(8,n);this._lower=Jt(It(),!1),this._upper=Jt(It(),!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),c=this._upper.decode(n,o+this._lower.span);return L(L({},r),c)}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 $t(1,i)}function Y(i){return new $t(4,i)}function t(i){return new Ie(8,!1,i)}function M(i){return new Ie(16,!1,i)}function io(i){return new Ie(1,!0,i)}function Ne(i){return new Ie(8,!0,i)}function ro(i){return new Ie(16,!0,i)}var nt=class extends ht{constructor(n,o,r,c){super(n.span,c);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 nt(v(32),e=>new qi(e),e=>e.toBuffer(),i)}function ue(i){return new nt($n(),Ui,Gi,i)}function Ui(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Gi(i){return i?1:0}function ao(i,e){let n=It("length"),o=f([n,A(i,to(n,-n.span),"values")]);return new nt(o,({values:r})=>r,r=>({values:r}),e)}var en=class extends jn{decode(e,n){return super.decode(e,n)}};function f(i,e,n){return new en(i,e,n)}function A(i,e,n){let o,r=typeof e=="number"?e:oo(e)?e.toNumber():new Proxy(e,{get(c,l){if(!o){let m=Reflect.get(c,"count");o=oo(m)?m.toNumber():m,Reflect.set(c,"count",o)}return Reflect.get(c,l)},set(c,l,m){return l==="count"&&(o=m),Reflect.set(c,l,m)}});return eo(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 uo({owner:i,solAccountResp:e,tokenAccountResp:n}){let o=[],r=[];for(let{pubkey:c,account:l}of n.value){let m=Be.decode(l.data),{mint:d,amount:y}=m;o.push({publicKey:c,mint:d,amount:y,isAssociated:ae(i,d,l.owner).publicKey.equals(c),isNative:!1,programId:l.owner}),r.push({pubkey:c,accountInfo:m,programId:l.owner})}return e&&o.push({mint:so.default,amount:new Xi(String(e.lamports)),isNative:!0,programId:e.owner}),{tokenAccounts:o,tokenAccountRawInfos:r}}function xe({fromPublicKey:i,programId:e=Yi,assignSeed:n}){let o=n?btoa(n).slice(0,32):zi.generate().publicKey.toBase58().slice(0,32);return{publicKey:Qi(i,o,e),seed:o}}function Qi(i,e,n){let o=Buffer.concat([i.toBuffer(),Buffer.from(e),n.toBuffer()]),r=Zn(o);return new so(r)}import PP from"decimal.js";import{PublicKey as Hi,SystemProgram as Zi}from"@solana/web3.js";import ji from"bn.js";import{createCloseAccountInstruction as $i,createInitializeAccountInstruction as Ji,createTransferInstruction as er,TOKEN_PROGRAM_ID as Me}from"@solana/spl-token";function tn(i){let{mint:e,tokenAccount:n,owner:o,programId:r=Me}=i;return Ji(n,e,o,r)}function Fe(i){let{tokenAccount:e,payer:n,multiSigners:o=[],owner:r,programId:c=Me}=i;return $i(e,n,r,o,c)}async function ot(i){let{connection:e,amount:n,commitment:o,payer:r,owner:c,skipCloseAccount:l}=i,m=await e.getMinimumBalanceForRentExemption(Be.span,o),d=J(n).add(new ji(m)),y=xe({fromPublicKey:r,programId:Me});return{addresses:{newAccount:y.publicKey},signers:[],instructions:[Zi.createAccountWithSeed({fromPubkey:r,basePubkey:r,seed:y.seed,newAccountPubkey:y.publicKey,lamports:d.toNumber(),space:Be.span,programId:Me}),tn({mint:new Hi(ce.address),tokenAccount:y.publicKey,owner:c,programId:Me})],instructionTypes:[W.CreateAccount,W.InitAccount],endInstructionTypes:l?[]:[W.CloseAccount],endInstructions:l?[]:[Fe({tokenAccount:y.publicKey,payer:r,owner:c})]}}function co({source:i,destination:e,owner:n,amount:o,multiSigners:r=[],tokenProgram:c=Me}){return er(i,e,n,BigInt(String(o)),r,c)}import{createAssociatedTokenAccountIdempotentInstruction as vy,TOKEN_2022_PROGRAM_ID as _y,TOKEN_PROGRAM_ID as Vy}from"@solana/spl-token";import{PublicKey as Dy}from"@solana/web3.js";import qy from"bn.js";import Gy from"decimal.js";import{TOKEN_PROGRAM_ID as Om}from"@solana/spl-token";import{PublicKey as vm}from"@solana/web3.js";var tr=f([Y("mintAuthorityOption"),a("mintAuthority"),t("supply"),p("decimals"),p("isInitialized"),Y("freezeAuthorityOption"),a("freezeAuthority")]);import{PublicKey as De,sendAndConfirmTransaction as sn,SystemProgram as nr,Transaction as it,TransactionMessage as rt,VersionedTransaction as at}from"@solana/web3.js";import or from"axios";import{PublicKey as nn,AddressLookupTableAccount as Ee}from"@solana/web3.js";async function on({connection:i,address:e,cluster:n="mainnet"}){let o=await be(i,[...new Set(e.map(c=>c.toString()))].map(c=>new nn(c))),r={};for(let c=0;c<e.length;c++){let l=o[c],m=e[c];if(!l)continue;let d=new Ee({key:m,state:Ee.deserialize(l.data)});r[m.toString()]=d,n==="devnet"?Ve[m.toString()]=d:_e[m.toString()]=d}return r}var _e={},rn=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(_e[e])return _e;let n=new nn(e),o=await i.getAccountInfo(n);return o&&(_e[e]=new Ee({key:n,state:Ee.deserialize(o.data)})),_e},Ve={},an=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ve[e])return Ve;let n=new nn(e),o=await i.getAccountInfo(n);return o&&(Ve[e]=new Ee({key:n,state:Ee.deserialize(o.data)})),Ve};var xt=2e3,St=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 or.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}=Pt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(nr.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new De(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:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...r),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(m=>m!==De.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:o}){return e===0?await this.buildV0(V(L({},n||{}),{lookupTableAddress:o})):this.build(n)}build(e){var o;let n=new it;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:c,skipPreflight:l=!0,sendAndConfirm:m,notSendToRpc:d}=r||{},y=c!=null?c:await Oe(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 sn(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),c=n.filter(b=>b.transaction.instructions.length>0),l=[r,...c.map(b=>b.transaction)],m=[this.signers,...c.map(b=>b.signers)],d=[...this.instructionTypes,...c.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 C;let{sequentially:g,onTxUpdate:T,skipTxCount:w=0,recentBlockHash:k,skipPreflight:h=!0}=b||{},B=k!=null?k:await Oe(this.connection,this.blockhashCommitment);if((C=this.owner)!=null&&C.isKeyPair){if(g){let x=[],R=0;for(let F of l){if(++R,R<=w)continue;let P=await sn(this.connection,F,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});x.push(P)}return{txIds:x,signedTxs:l}}return{txIds:await await Promise.all(l.map(async x=>(x.recentBlockhash=B,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:h})))),signedTxs:l}}if(this.signAllTransactions){let x=l.map((F,P)=>(F.recentBlockhash=B,m[P].length&&F.sign(...m[P]),F));he(x);let R=await this.signAllTransactions(x);if(g){let F=0,P=[],S=async()=>{if(!R[F])return;let K=await this.connection.sendRawTransaction(R[F].serialize(),{skipPreflight:h});P.push({txId:K,status:"sent",signedTx:R[F]}),T==null||T([...P]),F++;let O=!1,N=null,_=null,re=U=>{N!==null&&clearInterval(N),_!==null&&this.connection.removeSignatureListener(_);let q=P.findIndex(j=>j.txId===K);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||S()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var U;if(O){clearInterval(N);return}try{let q=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(O=!0,clearInterval(N),re({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",K))}catch(q){O=!0,clearInterval(N),console.error("getTransaction timeout:",q,K)}},xt)),_=this.connection.onSignature(K,U=>{if(O){this.connection.removeSignatureListener(_);return}O=!0,re(U)},"confirmed"),this.connection.getSignatureStatus(K)};return await S(),{txIds:P.map(K=>K.txId),signedTxs:R}}else{let F=[];for(let P=0;P<R.length;P+=1){let S=await this.connection.sendRawTransaction(R[P].serialize(),{skipPreflight:h});F.push(S)}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:c}=k,l=se(k,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=L(L({},this.cluster==="devnet"?await an(this.connection):await rn(this.connection)),n),d=Array.from(new Set([...o,...this.lookupTableAddress])),y=[];for(let B of d)m[B]===void 0&&y.push(new De(B));let b=await on({connection:this.connection,address:y});for(let[B,C]of Object.entries(b))m[B]=C;let g=r?De.default.toBase58():c!=null?c:await Oe(this.connection,this.blockhashCommitment),T=new rt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(B=>B.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new at(T);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async B=>{var F;let{skipPreflight:C=!0,sendAndConfirm:x,notSendToRpc:R}=B||{};if(he([w]),(F=this.owner)!=null&&F.isKeyPair){let P=await this.connection.sendTransaction(w,{skipPreflight:C});return x&&await At(this.connection,P),{txId:P,signedTx:w}}if(this.signAllTransactions){let P=await this.signAllTransactions([w]);if(this.signers.length)for(let S of P)try{S.sign(this.signers)}catch{}return{txId:R?"":await this.connection.sendTransaction(P[0],{skipPreflight:C}),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),c=n.filter(b=>b.builder.instructions.length>0),l=[r,...c.map(b=>b.transaction)],m=[this.signers,...c.map(b=>b.signers)],d=[...this.instructionTypes,...c.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(B=>B.message.recentBlockhash=w),he(l),(h=this.owner)!=null&&h.isKeyPair){if(g){let B=[];for(let C of l){let x=await this.connection.sendTransaction(C,{skipPreflight:k});await At(this.connection,x),B.push(x)}return{txIds:B,signedTxs:l}}return{txIds:await Promise.all(l.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:k}))),signedTxs:l}}if(this.signAllTransactions){let B=await this.signAllTransactions(l);if(g){let C=0,x=[],R=async()=>{if(!B[C])return;let F=await this.connection.sendTransaction(B[C],{skipPreflight:k});x.push({txId:F,status:"sent",signedTx:B[C]}),T==null||T([...x]),C++;let P=!1,S=null,K=null,O=N=>{S!==null&&clearInterval(S),K!==null&&this.connection.removeSignatureListener(K);let _=x.findIndex(re=>re.txId===F);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=N.err?"error":"success"}T==null||T([...x]),N.err||R()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var N;if(P){clearInterval(S);return}try{let _=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(P=!0,clearInterval(S),O({err:((N=_.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",F))}catch(_){P=!0,clearInterval(S),console.error("getTransaction timeout:",_,F)}},xt)),K=this.connection.onSignature(F,N=>{if(P){this.connection.removeSignatureListener(K);return}P=!0,O(N)},"confirmed"),this.connection.getSignatureStatus(F)};return R(),{txIds:[],signedTxs:B}}else{let C=[];for(let x=0;x<B.length;x+=1){let R=await this.connection.sendTransaction(B[x],{skipPreflight:k});C.push(R)}return{txIds:C,signedTxs:B}}}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"]),c=o?Pt(o):{instructions:[],instructionTypes:[]},l=this.signers.reduce((w,k)=>V(L({},w),{[k.publicKey.toBase58()]:k}),{}),m=[],d=[],y=[],b=0;if(this.allInstructions.forEach(w=>{let k=[...y,w],h=o?[...c.instructions,...k]:k,C=[...new Set(k.map(x=>x.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(x=>new De(x));if(w!==n[b]&&y.length<12&&(Je({instructions:h,payer:this.feePayer,signers:C})||Je({instructions:k,payer:this.feePayer,signers:C})))y.push(w);else{if(y.length===0)throw Error("item ins too big");b+=w===n[b]?1:0,Je({instructions:o?[...c.instructions,...y]:[...y],payer:this.feePayer,signers:C})?m.push(new it().add(...c.instructions,...y)):m.push(new it().add(...y)),d.push(Array.from(new Set(y.map(x=>x.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat())).map(x=>l[x]).filter(x=>x!==void 0)),y=[w]}}),y.length>0){let k=[...new Set(y.map(h=>h.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(h=>l[h]).filter(h=>h!==void 0);Je({instructions:o?[...c.instructions,...y]:[...y],payer:this.feePayer,signers:k.map(h=>h.publicKey)})?m.push(new it().add(...c.instructions,...y)):m.push(new it().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:B=0,recentBlockHash:C,skipPreflight:x=!0}=w||{},R=C!=null?C:await Oe(this.connection,this.blockhashCommitment);if(m.forEach(async(P,S)=>{P.recentBlockhash=R,d[S].length&&P.sign(...d[S])}),he(m),(F=this.owner)!=null&&F.isKeyPair){if(k){let P=0,S=[];for(let K of m){if(++P,P<=B){S.push("tx skipped");continue}let O=await sn(this.connection,K,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});S.push(O)}return{txIds:S,signedTxs:m}}return{txIds:await Promise.all(m.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:x}))),signedTxs:m}}if(this.signAllTransactions){let P=await this.signAllTransactions(m.slice(B,m.length)),S=[...m.slice(0,B),...P];if(k){let K=0,O=[],N=async()=>{if(!S[K])return;K<B&&(O.push({txId:"",status:"success",signedTx:S[K]}),h==null||h([...O]),K++,N());let _=await this.connection.sendRawTransaction(S[K].serialize(),{skipPreflight:x});O.push({txId:_,status:"sent",signedTx:S[K]}),h==null||h([...O]),K++;let re=!1,U=null,q=null,j=z=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let oe=O.findIndex(fe=>fe.txId===_);if(oe>-1){if(O[oe].status==="error"||O[oe].status==="success")return;O[oe].status=z.err?"error":"success"}h==null||h([...O]),z.err||N()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var z;if(re){clearInterval(U);return}try{let oe=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(re=!0,clearInterval(U),j({err:((z=oe.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",_))}catch(oe){re=!0,clearInterval(U),console.error("getTransaction timeout:",oe,_)}},xt)),q=this.connection.onSignature(_,z=>{if(re){this.connection.removeSignatureListener(q);return}re=!0,j(z)},"confirmed"),this.connection.getSignatureStatus(_)};return await N(),{txIds:O.map(_=>_.txId),signedTxs:S}}else{let K=[];for(let O=0;O<S.length;O+=1){let N=await this.connection.sendRawTransaction(S[O].serialize(),{skipPreflight:x});K.push(N)}return{txIds:K,signedTxs:S}}}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:c=[],insCountLimit:l=12}=R,m=se(R,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),d=L(L({},this.cluster==="devnet"?await an(this.connection):await rn(this.connection)),r),y=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let P of y)d[P]===void 0&&b.push(new De(P));let g=await on({connection:this.connection,address:b});for(let[P,S]of Object.entries(g))d[P]=S;let T=n?Pt(n):{instructions:[],instructionTypes:[]},w=await Oe(this.connection,this.blockhashCommitment),k=this.signers.reduce((P,S)=>V(L({},P),{[S.publicKey.toBase58()]:S}),{}),h=[],B=[],C=[],x=0;if(this.allInstructions.forEach(P=>{let S=[...C,P],K=n?[...T.instructions,...S]:S;if(P!==o[x]&&C.length<l&&(et({instructions:K,payer:this.feePayer,lookupTableAddressAccount:d})||et({instructions:S,payer:this.feePayer,lookupTableAddressAccount:d})))C.push(P);else{if(C.length===0)throw Error("item ins too big");x+=P===o[x]?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,...C],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:w})){let N=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...T.instructions,...C]}).compileToV0Message(Object.values(d));h.push(new at(N))}else{let N=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...C]}).compileToV0Message(Object.values(d));h.push(new at(N))}B.push(Array.from(new Set(C.map(N=>N.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(N=>k[N]).filter(N=>N!==void 0)),C=[P]}}),C.length>0){let S=[...new Set(C.map(K=>K.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(K=>k[K]).filter(K=>K!==void 0);if(n&&et({instructions:[...T.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:w})){let K=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...T.instructions,...C]}).compileToV0Message(Object.values(d));h.push(new at(K))}else{let K=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...C]}).compileToV0Message(Object.values(d));h.push(new at(K))}B.push(S)}return(F=this.owner)!=null&&F.signer&&B.forEach(P=>{P.some(S=>S.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),h.forEach((P,S)=>{P.sign(B[S])}),{builder:this,transactions:h,buildProps:e,signers:B,instructionTypes:this.instructionTypes,execute:async P=>{var re;let{sequentially:S,onTxUpdate:K,skipTxCount:O=0,recentBlockHash:N,skipPreflight:_=!0}=P||{};if(h.map(async(U,q)=>{B[q].length&&U.sign(B[q]),N&&(U.message.recentBlockhash=N)}),he(h),(re=this.owner)!=null&&re.isKeyPair){if(S){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 At(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(S){let j=0,z=[],oe=async()=>{if(!q[j])return;if(j<O){z.push({txId:"",status:"success",signedTx:q[j]}),K==null||K([...z]),j++,oe();return}let fe=await this.connection.sendTransaction(q[j],{skipPreflight:_});z.push({txId:fe,status:"sent",signedTx:q[j]}),K==null||K([...z]),j++;let Qe=!1,Ce=null,mt=null,wn=ke=>{Ce!==null&&clearInterval(Ce),mt!==null&&this.connection.removeSignatureListener(mt);let ye=z.findIndex(vo=>vo.txId===fe);if(ye>-1){if(z[ye].status==="error"||z[ye].status==="success")return;z[ye].status=ke.err?"error":"success"}K==null||K([...z]),ke.err||oe()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var ke;if(Qe){clearInterval(Ce);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(Qe=!0,clearInterval(Ce),wn({err:((ke=ye.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){Qe=!0,clearInterval(Ce),console.error("getTransaction timeout:",ye,fe)}},xt)),mt=this.connection.onSignature(fe,ke=>{if(Qe){this.connection.removeSignatureListener(mt);return}Qe=!0,wn(ke)},"confirmed"),this.connection.getSignatureStatus(fe)};return oe(),{txIds:[],signedTxs:q}}else{let j=[];for(let z=0;z<q.length;z+=1){let oe=await this.connection.sendTransaction(q[z],{skipPreflight:_});j.push(oe)}return{txIds:j,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var un=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),te=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=E(n)}createTxBuilder(e){return this.scope.checkOwner(),new St({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(un(e))}logInfo(...e){this.logger.info(un(e))}logAndCreateError(...e){let n=un(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{ASSOCIATED_TOKEN_PROGRAM_ID as iy,TOKEN_2022_PROGRAM_ID as ry,TOKEN_PROGRAM_ID as ay}from"@solana/spl-token";import{Keypair a