UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 171 kB
var Hr=Object.defineProperty,Qr=Object.defineProperties;var Zr=Object.getOwnPropertyDescriptors;var sn=Object.getOwnPropertySymbols;var ii=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable;var oi=(i,e,t)=>e in i?Hr(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,v=(i,e)=>{for(var t in e||(e={}))ii.call(e,t)&&oi(i,t,e[t]);if(sn)for(var t of sn(e))ri.call(e,t)&&oi(i,t,e[t]);return i},q=(i,e)=>Qr(i,Zr(e));var Se=(i,e)=>{var t={};for(var n in i)ii.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&&ri.call(i,n)&&(t[n]=i[n]);return t};import{PublicKey as me}from"@solana/web3.js";import{AccountLayout as uc,MintLayout as Gr,NATIVE_MINT as En,TOKEN_PROGRAM_ID as Pt}from"@solana/spl-token";import{PublicKey as sc}from"@solana/web3.js";import _t from"bn.js";import sR from"decimal.js";import aa from"big.js";import ln from"bn.js";import{get as ai,set as jr}from"lodash";var Wn=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}},si={},$r={};function Y(i){let e=ai(si,i);if(!e){let t=ai($r,i);e=new Wn({name:i,logLevel:t}),jr(si,i,e)}return e}import Jr from"toformat";var ea=Jr,Ht=ea;import cn from"big.js";import na from"bn.js";import oa from"decimal.js-light";import Qt from"bn.js";var ui=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>=ui||i<=-ui)&&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"),qn=Ht(cn),Zt=Ht(oa),ia={[0]:Zt.ROUND_DOWN,[1]:Zt.ROUND_HALF_UP,[2]:Zt.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.`),Zt.set({precision:e+1,rounding:ia[n]});let o=new Zt(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.`),qn.DP=e,qn.RM=ra[n]||1,new qn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var sa=Y("Raydium_amount"),ci=Ht(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=Un.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 ci.DP=this.token.decimals,new ci(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as ca}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as li}from"@solana/spl-token";var mn={chainId:101,address:ca.default.toBase58(),programId:li.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:li.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 Xn}from"@solana/web3.js";import{PublicKey as se,SystemProgram as mi,SYSVAR_RENT_PUBKEY as la}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ma}from"@solana/spl-token";function B({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var da=[B({pubkey:ma,isWritable:!1}),B({pubkey:mi.programId,isWritable:!1}),B({pubkey:la,isWritable:!1})];function Gn({publicKey:i,transformSol:e}){let t=zn(i.toString());if(t instanceof se)return e&&t.equals(wt)?Ge:t;if(e&&t.toString()===wt.toBase58())return Ge;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 zn(i){try{return new se(i)}catch{return i}}var mt=new se("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),_e=new se("SysvarRent111111111111111111111111111111111"),qc=new se("SysvarC1ock11111111111111111111111111111111"),dt=new se("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),pa=new se("Sysvar1nstructions1111111111111111111111111"),fa=mi.programId,Uc=new se("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Gc=new se("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),zc=new se("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Xc=new se("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Yc=new se("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Hc=new se("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Qc=new se("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Zc=new se("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),jc=new se("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),$c=new se("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Jc=new se("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ge=new se("So11111111111111111111111111111111111111112"),wt=se.default;function kt(i){return Gn({publicKey:i,transformSol:!0})}var Yn=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:u=!1,isToken2022:r=!1}){if(e===wt.toBase58()||e instanceof Xn&&wt.equals(e)){this.decimals=Je.decimals,this.symbol=Je.symbol,this.name=Je.name,this.mint=new Xn(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?Xn.default:Gn({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},de=Yn;de.WSOL=new Yn(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 di=new $(new ya(100)),ze=class extends ${toSignificant(e=5,t,n){return this.mul(di).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(di).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 $(Qn(n.decimals),Qn(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 nC}from"lodash";import hl from"axios";var pi={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},ga=q(v({},pi),{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 Xl=Y("Raydium_Api");import{PublicKey as wp,SystemProgram as kp}from"@solana/web3.js";import{AccountLayout as xp,createAssociatedTokenAccountIdempotentInstruction as Sp,TOKEN_PROGRAM_ID as Kp,TOKEN_2022_PROGRAM_ID as Cp}from"@solana/spl-token";import{PublicKey as qt,sendAndConfirmTransaction as to,SystemProgram as ha,Transaction as Jt,TransactionMessage as en,VersionedTransaction as tn}from"@solana/web3.js";import Ia from"axios";import{PublicKey as Zn,AddressLookupTableAccount as Dt}from"@solana/web3.js";async function jn({connection:i,address:e,cluster:t="mainnet"}){let n=await Ye(i,[...new Set(e.map(u=>u.toString()))].map(u=>new Zn(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={},$n=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Vt[e])return Vt;let t=new Zn(e),n=await i.getAccountInfo(t);return n&&(Vt[e]=new Dt({key:t,state:Dt.deserialize(n.data)})),Vt},Et={},Jn=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Et[e])return Et;let t=new Zn(e),n=await i.getAccountInfo(t);return n&&(Et[e]=new Dt({key:t,state:Dt.deserialize(n.data)})),Et};var _={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 fi,Keypair as bi,PublicKey as Pa,Transaction as gi,TransactionMessage as Aa,VersionedTransaction as Pi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wa}from"@solana/spl-token";var yi=Y("Raydium_txUtil"),Ai=1644;function pn(i){let e=[],t=[];return i.microLamports&&(e.push(fi.setComputeUnitPrice({microLamports:i.microLamports})),t.push(_.SetComputeUnitPrice)),i.units&&(e.push(fi.setComputeUnitLimit({units:i.units})),t.push(_.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 eo(i,e){i.length<1&&yi.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&yi.logWithError(`no signers provided:, ${e.toString()}`);let t=new gi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Ai}catch{return!1}}function J(i,e){let[t,n]=Pa.findProgramAddressSync(i,e);return{publicKey:t,nonce:n}}function jt({instructions:i,payer:e,signers:t}){return eo(i,[e,...t])}function $t({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=bi.generate().publicKey.toString()}){let u=new Aa({payerKey:e,recentBlockhash:n,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Pi(u).serialize()).toString("base64").length<Ai}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 Pi&&(e=ka(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Tt(i){let e=[];return i.forEach(t=>{t instanceof gi&&(t.recentBlockhash||(t.recentBlockhash=wa.toBase58()),t.feePayer||(t.feePayer=bi.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(_.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 Jt;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),Tt([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await to(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 P;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((P=this.owner)!=null&&P.isKeyPair){if(m){let w=[],I=0;for(let C of r){if(++I,I<=p)continue;let k=await to(this.connection,C,this.signers.find(x=>x.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((C,k)=>(C.recentBlockhash=g,a[k].length&&C.sign(...a[k]),C));Tt(w);let I=await this.signAllTransactions(w);if(m){let C=0,k=[],x=async()=>{if(!I[C])return;let S=await this.connection.sendRawTransaction(I[C].serialize(),{skipPreflight:b});k.push({txId:S,status:"sent",signedTx:I[C]}),f==null||f([...k]),C++;let O=!1,M=null,K=null,U=W=>{M!==null&&clearInterval(M),K!==null&&this.connection.removeSignatureListener(K);let V=k.findIndex(X=>X.txId===S);if(V>-1){if(k[V].status==="error"||k[V].status==="success")return;k[V].status=W.err?"error":"success"}f==null||f([...k]),W.err||x()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var W;if(O){clearInterval(M);return}try{let V=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(O=!0,clearInterval(M),U({err:((W=V.meta)==null?void 0:W.err)||null}),console.log("tx status from getTransaction:",S))}catch(V){O=!0,clearInterval(M),console.error("getTransaction timeout:",V,S)}},yn)),K=this.connection.onSignature(S,W=>{if(O){this.connection.removeSignatureListener(K);return}O=!0,U(W)},"confirmed"),this.connection.getSignatureStatus(S)};return await x(),{txIds:k.map(S=>S.txId),signedTxs:I}}else{let C=[];for(let k=0;k<I.length;k+=1){let x=await this.connection.sendRawTransaction(I[k].serialize(),{skipPreflight:b});C.push(x)}return{txIds:C,signedTxs:I}}}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 Jn(this.connection):await $n(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 jn({connection:this.connection,address:d});for(let[g,P]of Object.entries(l))a[g]=P;let m=o?qt.default.toBase58():u!=null?u:await Wt(this.connection,this.blockhashCommitment),f=new en({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 tn(f);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var C;let{skipPreflight:P=!0,sendAndConfirm:w,notSendToRpc:I}=g||{};if(Tt([p]),(C=this.owner)!=null&&C.isKeyPair){let k=await this.connection.sendTransaction(p,{skipPreflight:P});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 x of k)try{x.sign(this.signers)}catch{}return{txId:I?"":await this.connection.sendTransaction(k[0],{skipPreflight:P}),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),Tt(r),(b=this.owner)!=null&&b.isKeyPair){if(m){let g=[];for(let P of r){let w=await this.connection.sendTransaction(P,{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 P=0,w=[],I=async()=>{if(!g[P])return;let C=await this.connection.sendTransaction(g[P],{skipPreflight:y});w.push({txId:C,status:"sent",signedTx:g[P]}),f==null||f([...w]),P++;let k=!1,x=null,S=null,O=M=>{x!==null&&clearInterval(x),S!==null&&this.connection.removeSignatureListener(S);let K=w.findIndex(U=>U.txId===C);if(K>-1){if(w[K].status==="error"||w[K].status==="success")return;w[K].status=M.err?"error":"success"}f==null||f([...w]),M.err||I()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var M;if(k){clearInterval(x);return}try{let K=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});K&&(k=!0,clearInterval(x),O({err:((M=K.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",C))}catch(K){k=!0,clearInterval(x),console.error("getTransaction timeout:",K,C)}},yn)),S=this.connection.onSignature(C,M=>{if(k){this.connection.removeSignatureListener(S);return}k=!0,O(M)},"confirmed"),this.connection.getSignatureStatus(C)};return I(),{txIds:[],signedTxs:g}}else{let P=[];for(let w=0;w<g.length;w+=1){let I=await this.connection.sendTransaction(g[w],{skipPreflight:y});P.push(I)}return{txIds:P,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,P=[...new Set(y.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(w=>new qt(w));if(p!==t[l]&&d.length<12&&(jt({instructions:b,payer:this.feePayer,signers:P})||jt({instructions:y,payer:this.feePayer,signers:P})))d.push(p);else{if(d.length===0)throw Error("item ins too big");l+=p===t[l]?1:0,jt({instructions:n?[...u.instructions,...d]:[...d],payer:this.feePayer,signers:P})?a.push(new Jt().add(...u.instructions,...d)):a.push(new Jt().add(...d)),c.push(Array.from(new Set(d.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.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);jt({instructions:n?[...u.instructions,...d]:[...d],payer:this.feePayer,signers:y.map(b=>b.publicKey)})?a.push(new Jt().add(...u.instructions,...d)):a.push(new Jt().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 C;let{sequentially:y,onTxUpdate:b,skipTxCount:g=0,recentBlockHash:P,skipPreflight:w=!0}=p||{},I=P!=null?P:await Wt(this.connection,this.blockhashCommitment);if(a.forEach(async(k,x)=>{k.recentBlockhash=I,c[x].length&&k.sign(...c[x])}),Tt(a),(C=this.owner)!=null&&C.isKeyPair){if(y){let k=0,x=[];for(let S of a){if(++k,k<=g){x.push("tx skipped");continue}let O=await to(this.connection,S,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});x.push(O)}return{txIds:x,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)),x=[...a.slice(0,g),...k];if(y){let S=0,O=[],M=async()=>{if(!x[S])return;S<g&&(O.push({txId:"",status:"success",signedTx:x[S]}),b==null||b([...O]),S++,M());let K=await this.connection.sendRawTransaction(x[S].serialize(),{skipPreflight:w});O.push({txId:K,status:"sent",signedTx:x[S]}),b==null||b([...O]),S++;let U=!1,W=null,V=null,X=z=>{W!==null&&clearInterval(W),V!==null&&this.connection.removeSignatureListener(V);let oe=O.findIndex(te=>te.txId===K);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(K,{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:",K))}catch(oe){U=!0,clearInterval(W),console.error("getTransaction timeout:",oe,K)}},yn)),V=this.connection.onSignature(K,z=>{if(U){this.connection.removeSignatureListener(V);return}U=!0,X(z)},"confirmed"),this.connection.getSignatureStatus(K)};return await M(),{txIds:O.map(K=>K.txId),signedTxs:x}}else{let S=[];for(let O=0;O<x.length;O+=1){let M=await this.connection.sendRawTransaction(x[O].serialize(),{skipPreflight:w});S.push(M)}return{txIds:S,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var C;let I=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:u=[],insCountLimit:r=12}=I,a=Se(I,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=v(v({},this.cluster==="devnet"?await Jn(this.connection):await $n(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 jn({connection:this.connection,address:l});for(let[k,x]of Object.entries(m))c[k]=x;let f=t?pn(t):{instructions:[],instructionTypes:[]},p=await Wt(this.connection,this.blockhashCommitment),y=this.signers.reduce((k,x)=>q(v({},k),{[x.publicKey.toBase58()]:x}),{}),b=[],g=[],P=[],w=0;if(this.allInstructions.forEach(k=>{let x=[...P,k],S=t?[...f.instructions,...x]:x;if(k!==n[w]&&P.length<r&&($t({instructions:S,payer:this.feePayer,lookupTableAddressAccount:c})||$t({instructions:x,payer:this.feePayer,lookupTableAddressAccount:c})))P.push(k);else{if(P.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&&$t({instructions:[...f.instructions,...P],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:p})){let M=new en({payerKey:this.feePayer,recentBlockhash:p,instructions:[...f.instructions,...P]}).compileToV0Message(Object.values(c));b.push(new tn(M))}else{let M=new en({payerKey:this.feePayer,recentBlockhash:p,instructions:[...P]}).compileToV0Message(Object.values(c));b.push(new tn(M))}g.push(Array.from(new Set(P.map(M=>M.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat())).map(M=>y[M]).filter(M=>M!==void 0)),P=[k]}}),P.length>0){let x=[...new Set(P.map(S=>S.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(S=>y[S]).filter(S=>S!==void 0);if(t&&$t({instructions:[...f.instructions,...P],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:p})){let S=new en({payerKey:this.feePayer,recentBlockhash:p,instructions:[...f.instructions,...P]}).compileToV0Message(Object.values(c));b.push(new tn(S))}else{let S=new en({payerKey:this.feePayer,recentBlockhash:p,instructions:[...P]}).compileToV0Message(Object.values(c));b.push(new tn(S))}g.push(x)}return(C=this.owner)!=null&&C.signer&&g.forEach(k=>{k.some(x=>x.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),b.forEach((k,x)=>{k.sign(g[x])}),{builder:this,transactions:b,buildProps:e,signers:g,instructionTypes:this.instructionTypes,execute:async k=>{var U;let{sequentially:x,onTxUpdate:S,skipTxCount:O=0,recentBlockHash:M,skipPreflight:K=!0}=k||{};if(b.map(async(W,V)=>{g[V].length&&W.sign(g[V]),M&&(W.message.recentBlockhash=M)}),Tt(b),(U=this.owner)!=null&&U.isKeyPair){if(x){let W=0,V=[];for(let X of b){if(++W,W<=O){console.log("skip tx: ",W),V.push("tx skipped");continue}let z=await this.connection.sendTransaction(X,{skipPreflight:K});await fn(this.connection,z),V.push(z)}return{txIds:V,signedTxs:b}}return{txIds:await Promise.all(b.map(async W=>await this.connection.sendTransaction(W,{skipPreflight:K}))),signedTxs:b}}if(this.signAllTransactions){let W=await this.signAllTransactions(b.slice(O,b.length)),V=[...b.slice(0,O),...W];if(x){let X=0,z=[],oe=async()=>{if(!V[X])return;if(X<O){z.push({txId:"",status:"success",signedTx:V[X]}),S==null||S([...z]),X++,oe();return}let te=await this.connection.sendTransaction(V[X],{skipPreflight:K});z.push({txId:te,status:"sent",signedTx:V[X]}),S==null||S([...z]),X++;let Pe=!1,Fe=null,Ue=null,Ze=ve=>{Fe!==null&&clearInterval(Fe),Ue!==null&&this.connection.removeSignatureListener(Ue);let Te=z.findIndex(je=>je.txId===te);if(Te>-1){if(z[Te].status==="error"||z[Te].status==="success")return;z[Te].status=ve.err?"error":"success"}S==null||S([...z]),ve.err||oe()};this.loopMultiTxStatus&&(Fe=setInterval(async()=>{var ve;if(Pe){clearInterval(Fe);return}try{let Te=await this.connection.getTransaction(te,{commitment:"confirmed",maxSupportedTransactionVersion:0});Te&&(Pe=!0,clearInterval(Fe),Ze({err:((ve=Te.meta)==null?void 0:ve.err)||null}),console.log("tx status from getTransaction:",te))}catch(Te){Pe=!0,clearInterval(Fe),console.error("getTransaction timeout:",Te,te)}},yn)),Ue=this.connection.onSignature(te,ve=>{if(Pe){this.connection.removeSignatureListener(Ue);return}Pe=!0,Ze(ve)},"confirmed"),this.connection.getSignatureStatus(te)};return oe(),{txIds:[],signedTxs:V}}else{let X=[];for(let z=0;z<V.length;z+=1){let oe=await this.connection.sendTransaction(V[z],{skipPreflight:K});X.push(oe)}return{txIds:X,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var no=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Le=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(no(e))}logInfo(...e){this.logger.info(no(e))}logAndCreateError(...e){let t=no(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as jd,SystemProgram as Jd}from"@solana/web3.js";import np from"bn.js";import{createCloseAccountInstruction as ap,createInitializeAccountInstruction as sp,createTransferInstruction as up,TOKEN_PROGRAM_ID as cp}from"@solana/spl-token";import{Keypair as Ua,PublicKey as Ga}from"@solana/web3.js";import qd from"bn.js";import{TOKEN_PROGRAM_ID as za}from"@solana/spl-token";function Ba(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function oo(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 io(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 wi(i,e){oo(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),He=(i,e)=>i<<32-e|i>>>e;var Fm=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 ro(i){return typeof i=="string"&&(i=xa(i)),oo(i),i}var gn=class{clone(){return this._cloneInto()}},vm={}.toString;function ki(i){let e=n=>i().update(ro(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 Ti=(i,e,t)=>i&e^~i&t,hi=(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){io(this);let{view:t,buffer:n,blockLen:o}=this;e=ro(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){io(this),wi(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),ao=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=He(f,7)^He(f,18)^f>>>3,b=He(p,17)^He(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=He(a,6)^He(a,11)^He(a,25),p=l+f+Ti(a,c,d)+Ka[m]+ft[m]|0,b=(He(n,2)^He(n,13)^He(n,22))+hi(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 Ii=ki(()=>new ao);import{PublicKey as Da}from"@solana/web3.js";import Ci,{isBN as Ri}from"bn.js";import{bits as Ca,BitStructure as zm,blob as Ra,Blob as Xm,cstr as Ym,f32 as Hm,f32be as Qm,f64 as Zm,f64be as jm,greedy as $m,Layout as La,ns64 as Jm,ns64be as ed,nu64 as td,nu64be as nd,offset as Oa,s16 as od,s16be as id,s24 as rd,s24be as ad,s32 as Na,s32be as sd,s40 as ud,s40be as cd,s48 as ld,s48be as md,s8 as dd,seq as Ma,struct as pd,Structure as Fa,u16 as va,u16be as fd,u24 as yd,u24be as bd,u32 as _a,u32be as gd,u40 as Pd,u40be as Ad,u48 as wd,u48be as kd,u8 as Va,UInt as Ea,union as Td,Union as hd,unionLayoutDiscriminator as Id,utf8 as Bd}from"@solana/buffer-layout";var wn=La,Bi=Fa;var so=Ea;var xi=Va,pe=va;var kn=_a;var ye=Na;var Si=Ma;var G=Ra;var uo=Ca,Ki=Oa;var It=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=uo(kn(),!1),this._upper=uo(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 L(i){return new so(1,i)}function ae(i){return new so(4,i)}function s(i){return new It(8,!1,i)}function E(i){return new It(16,!1,i)}function Li(i){return new It(1,!0,i)}function Ut(i){return new It(8,!0,i)}function Oi(i){return new It(16,!0,i)}var nn=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 A(i){return new nn(G(32),e=>new Da(e),e=>e.toBuffer(),i)}function ce(i){return new nn(xi(),Wa,qa,i)}function Wa(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function qa(i){return i?1:0}function Ni(i,e){let t=kn("length"),n=R([t,F(i,Ki(t,-t.span),"values")]);return new nn(n,({values:o})=>o,o=>({values:o}),e)}var co=class extends Bi{decode(e,t){return super.decode(e,t)}};function R(i,e,t){return new co(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=R([A("mint"),A("owner"),s("amount"),ae("delegateOption"),A("delegate"),L("state"),ae("isNativeOption"),s("isNative"),s("delegatedAmount"),ae("closeAuthorityOption"),A("closeAuthority")]);function We({fromPublicKey:i,programId:e=za,assignSeed:t}){let n=t?btoa(t).slice(0,32):Ua.generate().publicKey.toBase58().slice(0,32);return{publicKey:Xa(i,n,e),seed:n}}function Xa(i,e,t){let n=Buffer.concat([i.toBuffer(),Buffer.from(e),t.toBuffer()]),o=Ii(n);return new Ga(o)}import{PublicKey as RA,SystemProgram as LA}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as NA}from"@solana/spl-token";import{PublicKey as Ha}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qa}from"@solana/spl-token";function H(i,e,t){return J([i.toBuffer(),(t!=null?t:Qa).toBuffer(),e.toBuffer()],new Ha("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as D}from"@solana/web3.js";var Fi=new D("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),vi=new D("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),_i=new D("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),lo=new D("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Dp=new D("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Vi=new D("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ei=new D("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),mo=new D("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Wp=new D("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Za=new D("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Di=new D("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ja=new D("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$a=new D("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Bt=new D("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qp=new D("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Wi=new D("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),po=new D("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ja=new D("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Up=new D("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),es=new D("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ts=new D("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ns=new D("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Gp=new D("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),zp=new D("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Xp=new D("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Yp=new D("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Hp=new D("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ot={OPEN_BOOK_PROGRAM:new D("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new D("Ray1111111111111111111111111111111111111111"),AMM_V4:new D("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new D("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new D("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new D("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new D("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new D("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new D("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new D("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new D("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new D("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:D.default,Router:new D("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new D("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new D("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new D("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new D("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new D("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new D("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new D("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new D("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new D("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new D("Ray1111111111111111111111111111111111111111")};import UA from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as gg,TOKEN_2022_PROGRAM_ID as Pg,TOKEN_PROGRAM_ID as Ag}from"@solana/spl-token";import{PublicKey as kg}from"@solana/web3.js";import hg from"bn.js";import Bg from"decimal.js";import{TOKEN_PROGRAM_ID as cf}from"@solana/spl-token";import{PublicKey as pf}from"@solana/web3.js";var os=R([ae("mintAuthorityOption"),A("mintAuthority"),s("supply"),L("decimals"),L("isInitialized"),ae("freezeAuthorityOption"),A("freezeAuthority")]);var fo=i=>new de({mint:i.address,decimals:i.decimals,symbol:i.symbol,name:i.name});var yt=o=>{var u=o,{address:i,programId:e,decimals:t}=u,n=Se(u,["address","programId","decimals"]);return v({chainId:101,address:kt(i).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:n.extensions||{}},n)};import{ASSOCI