@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 169 kB
JavaScript
var Qr=Object.defineProperty,Hr=Object.defineProperties;var Zr=Object.getOwnPropertyDescriptors;var sn=Object.getOwnPropertySymbols;var ni=Object.prototype.hasOwnProperty,oi=Object.prototype.propertyIsEnumerable;var ti=(i,e,t)=>e in i?Qr(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,v=(i,e)=>{for(var t in e||(e={}))ni.call(e,t)&&ti(i,t,e[t]);if(sn)for(var t of sn(e))oi.call(e,t)&&ti(i,t,e[t]);return i},q=(i,e)=>Hr(i,Zr(e));var Se=(i,e)=>{var t={};for(var n in i)ni.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&sn)for(var n of sn(i))e.indexOf(n)<0&&oi.call(i,n)&&(t[n]=i[n]);return t};import{PublicKey as ce}from"@solana/web3.js";import{AccountLayout as yc,MintLayout as Gr,NATIVE_MINT as Dn,TOKEN_PROGRAM_ID as gt}from"@solana/spl-token";import{PublicKey as fc}from"@solana/web3.js";import _t from"bn.js";import qR from"decimal.js";import aa from"big.js";import ln from"bn.js";import{get as ii,set as jr}from"lodash";var qn=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 t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}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}},ri={},$r={};function Y(i){let e=ii(ri,i);if(!e){let t=ii($r,i);e=new qn({name:i,logLevel:t}),jr(ri,i,e)}return e}import Jr from"toformat";var ea=Jr,Yt=ea;import cn from"big.js";import na from"bn.js";import oa from"decimal.js-light";import Qt from"bn.js";var ai=9007199254740991;function j(i){let e=Y("Raydium_parseBigNumberish");if(i instanceof Qt)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Qt(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=ai||i<=-ai)&&e.logWithError(`BigNumberish number overflow: ${i}`),new Qt(String(i))):typeof i=="bigint"?new Qt(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new Qt(0))}var un=Y("module/fraction"),Un=Yt(cn),Ht=Yt(oa),ia={[0]:Ht.ROUND_DOWN,[1]:Ht.ROUND_HALF_UP,[2]:Ht.ROUND_UP},ra={[0]:cn.roundDown,[1]:cn.roundHalfUp,[2]:cn.roundUp},$=class{constructor(e,t=new na(1)){this.numerator=j(e),this.denominator=j(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new $(this.denominator,this.numerator)}add(e){let t=e instanceof $?e:new $(j(e));return this.denominator.eq(t.denominator)?new $(this.numerator.add(t.numerator),this.denominator):new $(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof $?e:new $(j(e));return this.denominator.eq(t.denominator)?new $(this.numerator.sub(t.numerator),this.denominator):new $(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof $?e:new $(j(e));return new $(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof $?e:new $(j(e));return new $(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||un.logWithError(`${e} is not an integer.`),e<=0&&un.logWithError(`${e} is not positive.`),Ht.set({precision:e+1,rounding:ia[n]});let o=new Ht(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||un.logWithError(`${e} is not an integer.`),e<0&&un.logWithError(`${e} is negative.`),Un.DP=e,Un.RM=ra[n]||1,new Un(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var sa=Y("Raydium_amount"),si=Yt(aa);function ua(i,e){let t="0",n="0";if(i.includes(".")){let o=i.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):sa.logWithError(`invalid number string, num: ${i}`)}else t=i;return[t,n.slice(0,e)||n]}var Ke=class extends ${constructor(t,n,o=!0,u){let r=new ln(0),a=Gn.pow(new ln(t.decimals));if(o)r=j(n);else{let c=new ln(0),d=new ln(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,m]=ua(n.toString(),t.decimals);c=j(l),d=j(m)}c=c.mul(a),r=c.add(d)}super(r,a);this.logger=Y(u||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new Ke(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Ke(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return si.DP=this.token.decimals,new si(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as ca}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ui}from"@solana/spl-token";var mn={chainId:101,address:ca.default.toBase58(),programId:ui.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Je={chainId:101,address:"So11111111111111111111111111111111111111112",programId:ui.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 Yn}from"@solana/web3.js";import{PublicKey as se,SystemProgram as ci,SYSVAR_RENT_PUBKEY as la}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ma}from"@solana/spl-token";function I({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var da=[I({pubkey:ma,isWritable:!1}),I({pubkey:ci.programId,isWritable:!1}),I({pubkey:la,isWritable:!1})];function zn({publicKey:i,transformSol:e}){let t=Xn(i.toString());if(t instanceof se)return e&&t.equals(At)?We:t;if(e&&t.toString()===At.toBase58())return We;if(typeof t=="string"){if(t===se.default.toBase58())return se.default;try{return new se(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Xn(i){try{return new se(i)}catch{return i}}var mt=new se("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),_e=new se("SysvarRent111111111111111111111111111111111"),pa=new se("SysvarC1ock11111111111111111111111111111111"),dt=new se("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),fa=new se("Sysvar1nstructions1111111111111111111111111"),li=ci.programId,Hc=new se("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Zc=new se("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),jc=new se("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),$c=new se("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Jc=new se("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),el=new se("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),tl=new se("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),nl=new se("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ol=new se("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),il=new se("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),rl=new se("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),We=new se("So11111111111111111111111111111111111111112"),At=se.default;function wt(i){return zn({publicKey:i,transformSol:!0})}var Qn=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:u=!1,isToken2022:r=!1}){if(e===At.toBase58()||e instanceof Yn&&At.equals(e)){this.decimals=Je.decimals,this.symbol=Je.symbol,this.name=Je.name,this.mint=new Yn(Je.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=u?Yn.default:zn({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},le=Qn;le.WSOL=new Qn(q(v({},Je),{mint:Je.address}));var Hn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},dn=Hn;dn.SOL=new Hn(mn);import ya from"bn.js";var mi=new $(new ya(100)),ze=class extends ${toSignificant(e=5,t,n){return this.mul(mi).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(mi).toFixed(e,t,n)}};var ba=Y("Raydium_price"),Xe=class extends ${constructor(t){let{baseToken:n,quoteToken:o,numerator:u,denominator:r}=t;super(u,r);this.baseToken=n,this.quoteToken=o,this.scalar=new $(Zn(n.decimals),Zn(o.decimals))}get raw(){return new $(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Xe({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&ba.logWithError("mul token not equals");let n=super.mul(t);return new Xe({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(t,n,o)}toFixed(t=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(t,n,o)}};import{merge as FC}from"lodash";import Cl from"axios";var di={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"},ga=q(v({},di),{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 $l=Y("Raydium_Api");import{PublicKey as Bp,SystemProgram as xp}from"@solana/web3.js";import{AccountLayout as Lp,createAssociatedTokenAccountIdempotentInstruction as Op,TOKEN_PROGRAM_ID as Np,TOKEN_2022_PROGRAM_ID as Mp}from"@solana/spl-token";import{PublicKey as qt,sendAndConfirmTransaction as no,SystemProgram as ha,Transaction as $t,TransactionMessage as Jt,VersionedTransaction as en}from"@solana/web3.js";import Ia from"axios";import{PublicKey as jn,AddressLookupTableAccount as Dt}from"@solana/web3.js";async function $n({connection:i,address:e,cluster:t="mainnet"}){let n=await Ye(i,[...new Set(e.map(u=>u.toString()))].map(u=>new jn(u))),o={};for(let u=0;u<e.length;u++){let r=n[u],a=e[u];if(!r)continue;let c=new Dt({key:a,state:Dt.deserialize(r.data)});o[a.toString()]=c,t==="devnet"?Et[a.toString()]=c:Vt[a.toString()]=c}return o}var Vt={},Jn=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Vt[e])return Vt;let t=new jn(e),n=await i.getAccountInfo(t);return n&&(Vt[e]=new Dt({key:t,state:Dt.deserialize(n.data)})),Vt},Et={},eo=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Et[e])return Et;let t=new jn(e),n=await i.getAccountInfo(t);return n&&(Et[e]=new Dt({key:t,state:Dt.deserialize(n.data)})),Et};var V={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{ComputeBudgetProgram as pi,Keypair as yi,PublicKey as Pa,Transaction as bi,TransactionMessage as Aa,VersionedTransaction as gi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wa}from"@solana/spl-token";var fi=Y("Raydium_txUtil"),Pi=1644;function pn(i){let e=[],t=[];return i.microLamports&&(e.push(pi.setComputeUnitPrice({microLamports:i.microLamports})),t.push(V.SetComputeUnitPrice)),i.units&&(e.push(pi.setComputeUnitLimit({units:i.units})),t.push(V.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Wt(i,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=i.getLatestBlockhash)==null?void 0:n.call(i,{commitment:t})))==null?void 0:o.blockhash}async function fn(i,e){return i.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);i.onSignature(e,u=>{if(clearTimeout(o),!u.err){t("");return}n(Object.assign(u.err,{txId:e}))},"confirmed")})}function to(i,e){i.length<1&&fi.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&fi.logWithError(`no signers provided:, ${e.toString()}`);let t=new bi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Pi}catch{return!1}}function ee(i,e){let[t,n]=Pa.findProgramAddressSync(i,e);return{publicKey:t,nonce:n}}function Zt({instructions:i,payer:e,signers:t}){return to(i,[e,...t])}function jt({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=yi.generate().publicKey.toString()}){let u=new Aa({payerKey:e,recentBlockhash:n,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new gi(u).serialize()).toString("base64").length<Pi}catch{return!1}}var ka=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Ta=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof gi&&(e=ka(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function kt(i){let e=[];return i.forEach(t=>{t instanceof bi&&(t.recentBlockhash||(t.recentBlockhash=wa.toBase58()),t.feePayer||(t.feePayer=yi.generate().publicKey)),e.push(Ta(t))}),console.log("simulate tx string:",e),e}var yn=2e3,bn=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 n;let e=(await Ia.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=pn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(ha.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new qt(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(V.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:o=[],endInstructionTypes:u=[],lookupTableAddress:r=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...o),this.endInstructionTypes.push(...u),this.lookupTableAddress.push(...r.filter(a=>a!==qt.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(q(v({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new $t;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var l;let{recentBlockHash:u,skipPreflight:r=!0,sendAndConfirm:a,notSendToRpc:c}=o||{},d=u!=null?u:await Wt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=d,this.signers.length&&t.sign(...this.signers),kt([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await no(this.connection,t,this.signers.find(f=>f.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:r}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:r}),signedTx:t};if(this.signAllTransactions){let m=await this.signAllTransactions([t]);if(this.signers.length)for(let f of m)try{f.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:r}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var d;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:o}=this.build(n),u=t.filter(l=>l.transaction.instructions.length>0),r=[o,...u.map(l=>l.transaction)],a=[this.signers,...u.map(l=>l.signers)],c=[...this.instructionTypes,...u.map(l=>l.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:r,signers:a,instructionTypes:c,execute:async l=>{var A;let{sequentially:m,onTxUpdate:f,skipTxCount:p=0,recentBlockHash:y,skipPreflight:b=!0}=l||{},g=y!=null?y:await Wt(this.connection,this.blockhashCommitment);if((A=this.owner)!=null&&A.isKeyPair){if(m){let w=[],S=0;for(let L of r){if(++S,S<=p)continue;let k=await no(this.connection,L,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});w.push(k)}return{txIds:w,signedTxs:r}}return{txIds:await await Promise.all(r.map(async w=>(w.recentBlockhash=g,await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:b})))),signedTxs:r}}if(this.signAllTransactions){let w=r.map((L,k)=>(L.recentBlockhash=g,a[k].length&&L.sign(...a[k]),L));kt(w);let S=await this.signAllTransactions(w);if(m){let L=0,k=[],K=async()=>{if(!S[L])return;let x=await this.connection.sendRawTransaction(S[L].serialize(),{skipPreflight:b});k.push({txId:x,status:"sent",signedTx:S[L]}),f==null||f([...k]),L++;let O=!1,M=null,B=null,U=W=>{M!==null&&clearInterval(M),B!==null&&this.connection.removeSignatureListener(B);let _=k.findIndex(X=>X.txId===x);if(_>-1){if(k[_].status==="error"||k[_].status==="success")return;k[_].status=W.err?"error":"success"}f==null||f([...k]),W.err||K()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var W;if(O){clearInterval(M);return}try{let _=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(O=!0,clearInterval(M),U({err:((W=_.meta)==null?void 0:W.err)||null}),console.log("tx status from getTransaction:",x))}catch(_){O=!0,clearInterval(M),console.error("getTransaction timeout:",_,x)}},yn)),B=this.connection.onSignature(x,W=>{if(O){this.connection.removeSignatureListener(B);return}O=!0,U(W)},"confirmed"),this.connection.getSignatureStatus(x)};return await K(),{txIds:k.map(x=>x.txId),signedTxs:S}}else{let L=[];for(let k=0;k<S.length;k+=1){let K=await this.connection.sendRawTransaction(S[k].serialize(),{skipPreflight:b});L.push(K)}return{txIds:L,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var b;let y=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:u}=y,r=Se(y,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=v(v({},this.cluster==="devnet"?await eo(this.connection):await Jn(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),d=[];for(let g of c)a[g]===void 0&&d.push(new qt(g));let l=await $n({connection:this.connection,address:d});for(let[g,A]of Object.entries(l))a[g]=A;let m=o?qt.default.toBase58():u!=null?u:await Wt(this.connection,this.blockhashCommitment),f=new Jt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((b=this.owner)==null?void 0:b.signer)&&!this.signers.some(g=>g.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new en(f);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var L;let{skipPreflight:A=!0,sendAndConfirm:w,notSendToRpc:S}=g||{};if(kt([p]),(L=this.owner)!=null&&L.isKeyPair){let k=await this.connection.sendTransaction(p,{skipPreflight:A});return w&&await fn(this.connection,k),{txId:k,signedTx:p}}if(this.signAllTransactions){let k=await this.signAllTransactions([p]);if(this.signers.length)for(let K of k)try{K.sign(this.signers)}catch{}return{txId:S?"":await this.connection.sendTransaction(k[0],{skipPreflight:A}),signedTx:k[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async buildV0MultiTx(e){var d;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:o}=await this.buildV0(n),u=t.filter(l=>l.builder.instructions.length>0),r=[o,...u.map(l=>l.transaction)],a=[this.signers,...u.map(l=>l.signers)],c=[...this.instructionTypes,...u.map(l=>l.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),r.forEach(async(l,m)=>{l.sign(a[m])}),{builder:this,transactions:r,signers:a,instructionTypes:c,buildProps:n,execute:async l=>{var b;let{sequentially:m,onTxUpdate:f,recentBlockHash:p,skipPreflight:y=!0}=l||{};if(p&&r.forEach(g=>g.message.recentBlockhash=p),kt(r),(b=this.owner)!=null&&b.isKeyPair){if(m){let g=[];for(let A of r){let w=await this.connection.sendTransaction(A,{skipPreflight:y});await fn(this.connection,w),g.push(w)}return{txIds:g,signedTxs:r}}return{txIds:await Promise.all(r.map(async g=>await this.connection.sendTransaction(g,{skipPreflight:y}))),signedTxs:r}}if(this.signAllTransactions){let g=await this.signAllTransactions(r);if(m){let A=0,w=[],S=async()=>{if(!g[A])return;let L=await this.connection.sendTransaction(g[A],{skipPreflight:y});w.push({txId:L,status:"sent",signedTx:g[A]}),f==null||f([...w]),A++;let k=!1,K=null,x=null,O=M=>{K!==null&&clearInterval(K),x!==null&&this.connection.removeSignatureListener(x);let B=w.findIndex(U=>U.txId===L);if(B>-1){if(w[B].status==="error"||w[B].status==="success")return;w[B].status=M.err?"error":"success"}f==null||f([...w]),M.err||S()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var M;if(k){clearInterval(K);return}try{let B=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});B&&(k=!0,clearInterval(K),O({err:((M=B.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",L))}catch(B){k=!0,clearInterval(K),console.error("getTransaction timeout:",B,L)}},yn)),x=this.connection.onSignature(L,M=>{if(k){this.connection.removeSignatureListener(x);return}k=!0,O(M)},"confirmed"),this.connection.getSignatureStatus(L)};return S(),{txIds:[],signedTxs:g}}else{let A=[];for(let w=0;w<g.length;w+=1){let S=await this.connection.sendTransaction(g[w],{skipPreflight:y});A.push(S)}return{txIds:A,signedTxs:g}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var f;let m=e||{},{splitIns:t=[],computeBudgetConfig:n}=m,o=Se(m,["splitIns","computeBudgetConfig"]),u=n?pn(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((p,y)=>q(v({},p),{[y.publicKey.toBase58()]:y}),{}),a=[],c=[],d=[],l=0;if(this.allInstructions.forEach(p=>{let y=[...d,p],b=n?[...u.instructions,...y]:y,A=[...new Set(y.map(w=>w.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(w=>new qt(w));if(p!==t[l]&&d.length<12&&(Zt({instructions:b,payer:this.feePayer,signers:A})||Zt({instructions:y,payer:this.feePayer,signers:A})))d.push(p);else{if(d.length===0)throw Error("item ins too big");l+=p===t[l]?1:0,Zt({instructions:n?[...u.instructions,...d]:[...d],payer:this.feePayer,signers:A})?a.push(new $t().add(...u.instructions,...d)):a.push(new $t().add(...d)),c.push(Array.from(new Set(d.map(w=>w.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat())).map(w=>r[w]).filter(w=>w!==void 0)),d=[p]}}),d.length>0){let y=[...new Set(d.map(b=>b.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(b=>r[b]).filter(b=>b!==void 0);Zt({instructions:n?[...u.instructions,...d]:[...d],payer:this.feePayer,signers:y.map(b=>b.publicKey)})?a.push(new $t().add(...u.instructions,...d)):a.push(new $t().add(...d)),c.push(y)}return a.forEach(p=>p.feePayer=this.feePayer),(f=this.owner)!=null&&f.signer&&c.forEach(p=>{p.some(y=>y.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async p=>{var L;let{sequentially:y,onTxUpdate:b,skipTxCount:g=0,recentBlockHash:A,skipPreflight:w=!0}=p||{},S=A!=null?A:await Wt(this.connection,this.blockhashCommitment);if(a.forEach(async(k,K)=>{k.recentBlockhash=S,c[K].length&&k.sign(...c[K])}),kt(a),(L=this.owner)!=null&&L.isKeyPair){if(y){let k=0,K=[];for(let x of a){if(++k,k<=g){K.push("tx skipped");continue}let O=await no(this.connection,x,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});K.push(O)}return{txIds:K,signedTxs:a}}return{txIds:await Promise.all(a.map(async k=>await this.connection.sendRawTransaction(k.serialize(),{skipPreflight:w}))),signedTxs:a}}if(this.signAllTransactions){let k=await this.signAllTransactions(a.slice(g,a.length)),K=[...a.slice(0,g),...k];if(y){let x=0,O=[],M=async()=>{if(!K[x])return;x<g&&(O.push({txId:"",status:"success",signedTx:K[x]}),b==null||b([...O]),x++,M());let B=await this.connection.sendRawTransaction(K[x].serialize(),{skipPreflight:w});O.push({txId:B,status:"sent",signedTx:K[x]}),b==null||b([...O]),x++;let U=!1,W=null,_=null,X=z=>{W!==null&&clearInterval(W),_!==null&&this.connection.removeSignatureListener(_);let oe=O.findIndex(J=>J.txId===B);if(oe>-1){if(O[oe].status==="error"||O[oe].status==="success")return;O[oe].status=z.err?"error":"success"}b==null||b([...O]),z.err||M()};this.loopMultiTxStatus&&(W=setInterval(async()=>{var z;if(U){clearInterval(W);return}try{let oe=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(U=!0,clearInterval(W),X({err:((z=oe.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",B))}catch(oe){U=!0,clearInterval(W),console.error("getTransaction timeout:",oe,B)}},yn)),_=this.connection.onSignature(B,z=>{if(U){this.connection.removeSignatureListener(_);return}U=!0,X(z)},"confirmed"),this.connection.getSignatureStatus(B)};return await M(),{txIds:O.map(B=>B.txId),signedTxs:K}}else{let x=[];for(let O=0;O<K.length;O+=1){let M=await this.connection.sendRawTransaction(K[O].serialize(),{skipPreflight:w});x.push(M)}return{txIds:x,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var L;let S=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:u=[],insCountLimit:r=12}=S,a=Se(S,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=v(v({},this.cluster==="devnet"?await eo(this.connection):await Jn(this.connection)),o),d=Array.from(new Set([...this.lookupTableAddress,...u])),l=[];for(let k of d)c[k]===void 0&&l.push(new qt(k));let m=await $n({connection:this.connection,address:l});for(let[k,K]of Object.entries(m))c[k]=K;let f=t?pn(t):{instructions:[],instructionTypes:[]},p=await Wt(this.connection,this.blockhashCommitment),y=this.signers.reduce((k,K)=>q(v({},k),{[K.publicKey.toBase58()]:K}),{}),b=[],g=[],A=[],w=0;if(this.allInstructions.forEach(k=>{let K=[...A,k],x=t?[...f.instructions,...K]:K;if(k!==n[w]&&A.length<r&&(jt({instructions:x,payer:this.feePayer,lookupTableAddressAccount:c})||jt({instructions:K,payer:this.feePayer,lookupTableAddressAccount:c})))A.push(k);else{if(A.length===0)throw Error("item ins too big");w+=k===n[w]?1:0;let O={};for(let M of[...new Set(d)])c[M]!==void 0&&(O[M]=c[M]);if(t&&jt({instructions:[...f.instructions,...A],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:p})){let M=new Jt({payerKey:this.feePayer,recentBlockhash:p,instructions:[...f.instructions,...A]}).compileToV0Message(Object.values(c));b.push(new en(M))}else{let M=new Jt({payerKey:this.feePayer,recentBlockhash:p,instructions:[...A]}).compileToV0Message(Object.values(c));b.push(new en(M))}g.push(Array.from(new Set(A.map(M=>M.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat())).map(M=>y[M]).filter(M=>M!==void 0)),A=[k]}}),A.length>0){let K=[...new Set(A.map(x=>x.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(x=>y[x]).filter(x=>x!==void 0);if(t&&jt({instructions:[...f.instructions,...A],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:p})){let x=new Jt({payerKey:this.feePayer,recentBlockhash:p,instructions:[...f.instructions,...A]}).compileToV0Message(Object.values(c));b.push(new en(x))}else{let x=new Jt({payerKey:this.feePayer,recentBlockhash:p,instructions:[...A]}).compileToV0Message(Object.values(c));b.push(new en(x))}g.push(K)}return(L=this.owner)!=null&&L.signer&&g.forEach(k=>{k.some(K=>K.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),b.forEach((k,K)=>{k.sign(g[K])}),{builder:this,transactions:b,buildProps:e,signers:g,instructionTypes:this.instructionTypes,execute:async k=>{var U;let{sequentially:K,onTxUpdate:x,skipTxCount:O=0,recentBlockHash:M,skipPreflight:B=!0}=k||{};if(b.map(async(W,_)=>{g[_].length&&W.sign(g[_]),M&&(W.message.recentBlockhash=M)}),kt(b),(U=this.owner)!=null&&U.isKeyPair){if(K){let W=0,_=[];for(let X of b){if(++W,W<=O){console.log("skip tx: ",W),_.push("tx skipped");continue}let z=await this.connection.sendTransaction(X,{skipPreflight:B});await fn(this.connection,z),_.push(z)}return{txIds:_,signedTxs:b}}return{txIds:await Promise.all(b.map(async W=>await this.connection.sendTransaction(W,{skipPreflight:B}))),signedTxs:b}}if(this.signAllTransactions){let W=await this.signAllTransactions(b.slice(O,b.length)),_=[...b.slice(0,O),...W];if(K){let X=0,z=[],oe=async()=>{if(!_[X])return;if(X<O){z.push({txId:"",status:"success",signedTx:_[X]}),x==null||x([...z]),X++,oe();return}let J=await this.connection.sendTransaction(_[X],{skipPreflight:B});z.push({txId:J,status:"sent",signedTx:_[X]}),x==null||x([...z]),X++;let ge=!1,Fe=null,Ge=null,Ze=ve=>{Fe!==null&&clearInterval(Fe),Ge!==null&&this.connection.removeSignatureListener(Ge);let Te=z.findIndex(je=>je.txId===J);if(Te>-1){if(z[Te].status==="error"||z[Te].status==="success")return;z[Te].status=ve.err?"error":"success"}x==null||x([...z]),ve.err||oe()};this.loopMultiTxStatus&&(Fe=setInterval(async()=>{var ve;if(ge){clearInterval(Fe);return}try{let Te=await this.connection.getTransaction(J,{commitment:"confirmed",maxSupportedTransactionVersion:0});Te&&(ge=!0,clearInterval(Fe),Ze({err:((ve=Te.meta)==null?void 0:ve.err)||null}),console.log("tx status from getTransaction:",J))}catch(Te){ge=!0,clearInterval(Fe),console.error("getTransaction timeout:",Te,J)}},yn)),Ge=this.connection.onSignature(J,ve=>{if(ge){this.connection.removeSignatureListener(Ge);return}ge=!0,Ze(ve)},"confirmed"),this.connection.getSignatureStatus(J)};return oe(),{txIds:[],signedTxs:_}}else{let X=[];for(let z=0;z<_.length;z+=1){let oe=await this.connection.sendTransaction(_[z],{skipPreflight:B});X.push(oe)}return{txIds:X,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var oo=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Ce=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=Y(t)}createTxBuilder(e){return this.scope.checkOwner(),new bn({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(oo(e))}logInfo(...e){this.logger.info(oo(e))}logAndCreateError(...e){let t=oo(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as np,SystemProgram as ip}from"@solana/web3.js";import sp from"bn.js";import{createCloseAccountInstruction as mp,createInitializeAccountInstruction as dp,createTransferInstruction as pp,TOKEN_PROGRAM_ID as fp}from"@solana/spl-token";import{Keypair as Ga,PublicKey as za}from"@solana/web3.js";import Yd from"bn.js";import{TOKEN_PROGRAM_ID as Xa}from"@solana/spl-token";function Ba(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function io(i,...e){if(!Ba(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 ro(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 Ai(i,e){io(i);let t=e.outputLen;if(i.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Pn=i=>new DataView(i.buffer,i.byteOffset,i.byteLength),Qe=(i,e)=>i<<32-e|i>>>e;var Wm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function xa(i){if(typeof i!="string")throw new Error(`utf8ToBytes expected string, got ${typeof i}`);return new Uint8Array(new TextEncoder().encode(i))}function ao(i){return typeof i=="string"&&(i=xa(i)),io(i),i}var gn=class{clone(){return this._cloneInto()}},qm={}.toString;function wi(i){let e=n=>i().update(ao(n)).digest(),t=i();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>i(),e}function Sa(i,e,t,n){if(typeof i.setBigUint64=="function")return i.setBigUint64(e,t,n);let o=BigInt(32),u=BigInt(4294967295),r=Number(t>>o&u),a=Number(t&u),c=n?4:0,d=n?0:4;i.setUint32(e+c,r,n),i.setUint32(e+d,a,n)}var ki=(i,e,t)=>i&e^~i&t,Ti=(i,e,t)=>i&e^i&t^e&t,An=class extends gn{constructor(e,t,n,o){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Pn(this.buffer)}update(e){ro(this);let{view:t,buffer:n,blockLen:o}=this;e=ao(e);let u=e.length;for(let r=0;r<u;){let a=Math.min(o-this.pos,u-r);if(a===o){let c=Pn(e);for(;o<=u-r;r+=o)this.process(c,r);continue}n.set(e.subarray(r,r+a),this.pos),this.pos+=a,r+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){ro(this),Ai(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:u}=this,{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>o-r&&(this.process(n,0),r=0);for(let m=r;m<o;m++)t[m]=0;Sa(n,o-8,BigInt(this.length*8),u),this.process(n,0);let a=Pn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let d=c/4,l=this.get();if(d>l.length)throw new Error("_sha2: outputLen bigger than state");for(let m=0;m<d;m++)a.setUint32(4*m,l[m],u)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:u,destroyed:r,pos:a}=this;return e.length=o,e.pos=a,e.finished=u,e.destroyed=r,o%t&&e.buffer.set(n),e}};var Ka=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]),pt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ft=new Uint32Array(64),so=class extends An{constructor(){super(64,32,8,!1),this.A=pt[0]|0,this.B=pt[1]|0,this.C=pt[2]|0,this.D=pt[3]|0,this.E=pt[4]|0,this.F=pt[5]|0,this.G=pt[6]|0,this.H=pt[7]|0}get(){let{A:e,B:t,C:n,D:o,E:u,F:r,G:a,H:c}=this;return[e,t,n,o,u,r,a,c]}set(e,t,n,o,u,r,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=u|0,this.F=r|0,this.G=a|0,this.H=c|0}process(e,t){for(let m=0;m<16;m++,t+=4)ft[m]=e.getUint32(t,!1);for(let m=16;m<64;m++){let f=ft[m-15],p=ft[m-2],y=Qe(f,7)^Qe(f,18)^f>>>3,b=Qe(p,17)^Qe(p,19)^p>>>10;ft[m]=b+ft[m-7]+y+ft[m-16]|0}let{A:n,B:o,C:u,D:r,E:a,F:c,G:d,H:l}=this;for(let m=0;m<64;m++){let f=Qe(a,6)^Qe(a,11)^Qe(a,25),p=l+f+ki(a,c,d)+Ka[m]+ft[m]|0,b=(Qe(n,2)^Qe(n,13)^Qe(n,22))+Ti(n,o,u)|0;l=d,d=c,c=a,a=r+p|0,r=u,u=o,o=n,n=p+b|0}n=n+this.A|0,o=o+this.B|0,u=u+this.C|0,r=r+this.D|0,a=a+this.E|0,c=c+this.F|0,d=d+this.G|0,l=l+this.H|0,this.set(n,o,u,r,a,c,d,l)}roundClean(){ft.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var hi=wi(()=>new so);import{PublicKey as Wa}from"@solana/web3.js";import Ci,{isBN as Ri}from"bn.js";import{bits as Ca,BitStructure as jm,blob as Ra,Blob as $m,cstr as Jm,f32 as ed,f32be as td,f64 as nd,f64be as od,greedy as id,Layout as La,ns64 as rd,ns64be as ad,nu64 as Oa,nu64be as sd,offset as Na,s16 as ud,s16be as cd,s24 as ld,s24be as md,s32 as Ma,s32be as dd,s40 as pd,s40be as fd,s48 as yd,s48be as bd,s8 as gd,seq as Fa,struct as Pd,Structure as va,u16 as _a,u16be as Ad,u24 as wd,u24be as kd,u32 as Va,u32be as Td,u40 as hd,u40be as Id,u48 as Bd,u48be as xd,u8 as Ea,UInt as Da,union as Sd,Union as Kd,unionLayoutDiscriminator as Cd,utf8 as Rd}from"@solana/buffer-layout";var wn=La,Ii=va;var uo=Da;var Bi=Ea,Pe=_a;var kn=Va;var xi=Oa;var fe=Ma;var Si=Fa;var G=Ra;var co=Ca,Ki=Na;var ht=class extends wn{constructor(t,n,o){super(t,o);this.blob=G(t),this.signed=n}decode(t,n=0){let o=new Ci(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new Ci(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},Tn=class extends wn{constructor(t){super(8,t);this._lower=co(kn(),!1),this._upper=co(kn(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let o=this._lower.decode(t,n),u=this._upper.decode(t,n+this._lower.span);return v(v({},o),u)}encode(t,n,o=0){return this._lower.encode(t,n,o)+this._upper.encode(t,n,o+this._lower.span)}};function R(i){return new uo(1,i)}function ae(i){return new uo(4,i)}function s(i){return new ht(8,!1,i)}function D(i){return new ht(16,!1,i)}function Li(i){return new ht(1,!0,i)}function Ut(i){return new ht(8,!0,i)}function Oi(i){return new ht(16,!0,i)}var tn=class extends wn{constructor(t,n,o,u){super(t.span,u);this.layout=t,this.decoder=n,this.encoder=o}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,o){return this.layout.encode(this.encoder(t),n,o)}getSpan(t,n){return this.layout.getSpan(t,n)}};function P(i){return new tn(G(32),e=>new Wa(e),e=>e.toBuffer(),i)}function me(i){return new tn(Bi(),qa,Ua,i)}function qa(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Ua(i){return i?1:0}function Ni(i,e){let t=kn("length"),n=C([t,F(i,Ki(t,-t.span),"values")]);return new tn(n,({values:o})=>o,o=>({values:o}),e)}var lo=class extends Ii{decode(e,t){return super.decode(e,t)}};function C(i,e,t){return new lo(i,e,t)}function F(i,e,t){let n,o=typeof e=="number"?e:Ri(e)?e.toNumber():new Proxy(e,{get(u,r){if(!n){let a=Reflect.get(u,"count");n=Ri(a)?a.toNumber():a,Reflect.set(u,"count",n)}return Reflect.get(u,r)},set(u,r,a){return r==="count"&&(n=a),Reflect.set(u,r,a)}});return Si(i,o,t)}var hn=C([P("mint"),P("owner"),s("amount"),ae("delegateOption"),P("delegate"),R("state"),ae("isNativeOption"),s("isNative"),s("delegatedAmount"),ae("closeAuthorityOption"),P("closeAuthority")]);function qe({fromPublicKey:i,programId:e=Xa,assignSeed:t}){let n=t?btoa(t).slice(0,32):Ga.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ya(i,n,e),seed:n}}function Ya(i,e,t){let n=Buffer.concat([i.toBuffer(),Buffer.from(e),t.toBuffer()]),o=hi(n);return new za(o)}import{PublicKey as OA,SystemProgram as NA}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as FA}from"@solana/spl-token";import{PublicKey as Ha}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Za}from"@solana/spl-token";function Q(i,e,t){return ee([i.toBuffer(),(t!=null?t:Za).toBuffer(),e.toBuffer()],new Ha("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as E}from"@solana/web3.js";var Fi=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),vi=new E("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),_i=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),mo=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),zp=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Vi=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ei=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),po=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Xp=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ja=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Di=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),$a=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ja=new E("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),It=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Yp=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Wi=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),es=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ts=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ns=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),os=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),fo=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),is=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Qp=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),rs=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),as=new E("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ss=new E("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Hp=new E("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Zp=new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),jp=new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),$p=new E("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Jp=new E("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),nn={IDO_PROGRAM_ID_V1:es,IDO_PROGRAM_ID_V2:ts,IDO_PROGRAM_ID_V3:ns,IDO_PROGRAM_ID_V4:os};var ot={OPEN_BOOK_PROGRAM:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new E("Ray1111111111111111111111111111111111111111"),AMM_V4:new E("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new E("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new E("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new E("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new E("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new E("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new E("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new E("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new E("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new E("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:E.default,Router:new E("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new E("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new E("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new E("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new E("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new E("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new E("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new E("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new E("Ray1111111111111111111111111111111111111111")};import zA from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ag,TOKEN_2022_PROGRAM_ID as wg,TOKEN_PROGRAM_ID as kg}from"@solana/spl-token";import{PublicKey as hg}from"@solana/web3.js";import Bg from"bn.js";import Sg from"decimal.js";import{TOKEN_PROGRAM_ID as ff}from"@solana/spl-token";import{PublicKey as Pf}from"@solana/web3.js";var us=C([ae("mintAuthorityOption"),P("mintAuthority"),s("supply"),R("decimals"),R("isInitialized"),ae("freezeAut