UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 87.4 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 ls}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 Ts,TOKEN_PROGRAM_ID as hs,getTransferFeeConfig as Is,unpackMint as Bs}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 Ce from"bn.js";import RR from"decimal.js";import Zo from"big.js";import qs from"bn.js";import Uo from"toformat";var Go=Uo,Ze=Go;import ft from"big.js";import Yo from"bn.js";import Xo 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(Xo),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 Yo(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 js=E("Raydium_amount"),$s=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 Y,SystemProgram as Kn,SYSVAR_RENT_PUBKEY as Jo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ei}from"@solana/spl-token";function Le({pubkey:i,isSigner:e=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:e}}var ti=[Le({pubkey:ei,isWritable:!1}),Le({pubkey:Kn.programId,isWritable:!1}),Le({pubkey:Jo,isWritable:!1})];function Cn({publicKey:i,transformSol:e}){let n=Rn(i.toString());if(n instanceof Y)return e&&n.equals(Te)?ie:n;if(e&&n.toString()===Te.toBase58())return ie;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Rn(i){try{return new Y(i)}catch{return i}}var Wt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oe=new Y("SysvarRent111111111111111111111111111111111"),ni=new Y("SysvarC1ock11111111111111111111111111111111"),bt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),oi=new Y("Sysvar1nstructions1111111111111111111111111"),Ln=Kn.programId,au=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),su=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),uu=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),cu=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),lu=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),mu=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),du=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),pu=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),fu=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),yu=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),bu=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ie=new Y("So11111111111111111111111111111111111111112"),Te=Y.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 Ku=new G(new ii(100));var Mu=E("Raydium_price");import{merge as RC}from"lodash";import Uu 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 dc=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 Ne(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"),Yt=new I("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Vc=new I("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),pi=new I("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qn=new I("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Un=new I("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ec=new I("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),fi=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Gn=new I("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),yi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),bi=new I("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zn=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Dc=new I("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),gi=new I("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Pi=new I("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ai=new I("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),wi=new I("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ki=new I("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Xt=new I("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ti=new I("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Wc=new I("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),hi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new I("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Bi=new I("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),qc=new I("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Uc=new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Gc=new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),zc=new I("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Yc=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 Yi from"bn.js";import{TOKEN_PROGRAM_ID as Xi}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 Yn(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 Zc=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()}},jc={}.toString;function Xn(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),Yn(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=Xn(()=>new jt);import{PublicKey as qi}from"@solana/web3.js";import no,{isBN as oo}from"bn.js";import{bits as Ri,BitStructure as al,blob as Li,Blob as sl,cstr as ul,f32 as cl,f32be as ll,f64 as ml,f64be as dl,greedy as pl,Layout as Oi,ns64 as fl,ns64be as yl,nu64 as Ni,nu64be as bl,offset as Mi,s16 as gl,s16be as Pl,s24 as Al,s24be as wl,s32 as Fi,s32be as kl,s40 as Tl,s40be as hl,s48 as Il,s48be as Bl,s8 as xl,seq as vi,struct as Sl,Structure as _i,u16 as Vi,u16be as Kl,u24 as Cl,u24be as Rl,u32 as Ei,u32be as Ll,u40 as Ol,u40be as Nl,u48 as Ml,u48be as Fl,u8 as Di,UInt as Wi,union as vl,Union as _l,unionLayoutDiscriminator as Vl,utf8 as El}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 X(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 Me(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"),X("delegateOption"),a("delegate"),p("state"),X("isNativeOption"),t("isNative"),t("delegatedAmount"),X("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 Yi(String(e.lamports)),isNative:!0,programId:e.owner}),{tokenAccounts:o,tokenAccountRawInfos:r}}function xe({fromPublicKey:i,programId:e=Xi,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 Fe}from"@solana/spl-token";function tn(i){let{mint:e,tokenAccount:n,owner:o,programId:r=Fe}=i;return Ji(n,e,o,r)}function ve(i){let{tokenAccount:e,payer:n,multiSigners:o=[],owner:r,programId:c=Fe}=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:Fe});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:Fe}),tn({mint:new Hi(ce.address),tokenAccount:y.publicKey,owner:c,programId:Fe})],instructionTypes:[W.CreateAccount,W.InitAccount],endInstructionTypes:l?[]:[W.CloseAccount],endInstructions:l?[]:[ve({tokenAccount:y.publicKey,payer:r,owner:c})]}}function co({source:i,destination:e,owner:n,amount:o,multiSigners:r=[],tokenProgram:c=Fe}){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 Nm}from"@solana/spl-token";import{PublicKey as _m}from"@solana/web3.js";var tr=f([X("mintAuthorityOption"),a("mintAuthority"),t("supply"),p("decimals"),p("isInitialized"),X("freezeAuthorityOption"),a("freezeAuthority")]);import{PublicKey as We,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 De}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 De({key:m,state:De.deserialize(l.data)});r[m.toString()]=d,n==="devnet"?Ee[m.toString()]=d:Ve[m.toString()]=d}return r}var Ve={},rn=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ve[e])return Ve;let n=new nn(e),o=await i.getAccountInfo(n);return o&&(Ve[e]=new De({key:n,state:De.deserialize(o.data)})),Ve},Ee={},an=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ee[e])return Ee;let n=new nn(e),o=await i.getAccountInfo(n);return o&&(Ee[e]=new De({key:n,state:De.deserialize(o.data)})),Ee};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 We(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!==We.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 Ne(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 Ne(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 We(B));let b=await on({connection:this.connection,address:y});for(let[B,C]of Object.entries(b))m[B]=C;let g=r?We.default.toBase58():c!=null?c:await Ne(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 We(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 Ne(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 We(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 Ne(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,Re=null,mt=null,wn=ke=>{Re!==null&&clearInterval(Re),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&&(Re=setInterval(async()=>{var ke;if(Qe){clearInterval(Re);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(Qe=!0,clearInterval(Re),wn({err:((ke=ye.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){Qe=!0,clearInterval(Re),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