UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 169 kB
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 bc,MintLayout as Gr,NATIVE_MINT as Dn,TOKEN_PROGRAM_ID as gt}from"@solana/spl-token";import{PublicKey as yc}from"@solana/web3.js";import _t from"bn.js";import ER 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 X(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,Xt=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=X("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=X("module/fraction"),Un=Xt(cn),Ht=Xt(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=X("Raydium_amount"),si=Xt(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=X(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 Xn}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=Yn(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 Yn(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,Zc=new se("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),jc=new se("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),$c=new se("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Jc=new se("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),el=new se("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),tl=new se("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),nl=new se("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ol=new se("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),il=new se("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),rl=new se("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),al=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 Xn&&At.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: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=X("Raydium_price"),Ye=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 Ye({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 Ye({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 OC}from"lodash";import Rl 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 Jl=X("Raydium_Api");import{PublicKey as xp,SystemProgram as Sp}from"@solana/web3.js";import{AccountLayout as Op,createAssociatedTokenAccountIdempotentInstruction as Np,TOKEN_PROGRAM_ID as Mp,TOKEN_2022_PROGRAM_ID as Fp}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 Xe(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=X("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(Y=>Y.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,Y=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),Y({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,Y(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 Y of b){if(++W,W<=O){console.log("skip tx: ",W),_.push("tx skipped");continue}let z=await this.connection.sendTransaction(Y,{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 Y=0,z=[],oe=async()=>{if(!_[Y])return;if(Y<O){z.push({txId:"",status:"success",signedTx:_[Y]}),x==null||x([...z]),Y++,oe();return}let J=await this.connection.sendTransaction(_[Y],{skipPreflight:B});z.push({txId:J,status:"sent",signedTx:_[Y]}),x==null||x([...z]),Y++;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 Y=[];for(let z=0;z<_.length;z+=1){let oe=await this.connection.sendTransaction(_[z],{skipPreflight:B});Y.push(oe)}return{txIds:Y,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=X(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 op,SystemProgram as rp}from"@solana/web3.js";import up from"bn.js";import{createCloseAccountInstruction as dp,createInitializeAccountInstruction as pp,createTransferInstruction as fp,TOKEN_PROGRAM_ID as yp}from"@solana/spl-token";import{Keypair as Ga,PublicKey as za}from"@solana/web3.js";import Qd from"bn.js";import{TOKEN_PROGRAM_ID as Ya}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 qm=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()}},Um={}.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 $m,blob as Ra,Blob as Jm,cstr as ed,f32 as td,f32be as nd,f64 as od,f64be as id,greedy as rd,Layout as La,ns64 as ad,ns64be as sd,nu64 as Oa,nu64be as ud,offset as Na,s16 as cd,s16be as ld,s24 as md,s24be as dd,s32 as Ma,s32be as pd,s40 as fd,s40be as yd,s48 as bd,s48be as gd,s8 as Pd,seq as Fa,struct as Ad,Structure as va,u16 as _a,u16be as wd,u24 as kd,u24be as Td,u32 as Va,u32be as hd,u40 as Id,u40be as Bd,u48 as xd,u48be as Sd,u8 as Ea,UInt as Da,union as Kd,Union as Cd,unionLayoutDiscriminator as Rd,utf8 as Ld}from"@solana/buffer-layout";var wn=La,Ii=va;var uo=Da;var Bi=Ea,Pe=_a;var kn=Va;var xi=Oa;var ye=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=Ya,assignSeed:t}){let n=t?btoa(t).slice(0,32):Ga.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=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"),Yp=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"),Qp=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"),Hp=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),rs=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),as=new E("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ss=new E("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Zp=new E("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),jp=new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),$p=new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Jp=new E("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ef=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 yf}from"@solana/spl-token";import{PublicKey as Af}from"@solana/web3.js";var us=C([ae("mintAuthorityOption"),P("mintAuthority"),s("supply"),R("decimals"),R("isInitialized"),ae("freezeAut