UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 169 kB
var zr=Object.defineProperty,Xr=Object.defineProperties;var Yr=Object.getOwnPropertyDescriptors;var an=Object.getOwnPropertySymbols;var ti=Object.prototype.hasOwnProperty,ni=Object.prototype.propertyIsEnumerable;var ei=(i,e,t)=>e in i?zr(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,v=(i,e)=>{for(var t in e||(e={}))ti.call(e,t)&&ei(i,t,e[t]);if(an)for(var t of an(e))ni.call(e,t)&&ei(i,t,e[t]);return i},q=(i,e)=>Xr(i,Yr(e));var Se=(i,e)=>{var t={};for(var n in i)ti.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&an)for(var n of an(i))e.indexOf(n)<0&&ni.call(i,n)&&(t[n]=i[n]);return t};import{PublicKey as ce}from"@solana/web3.js";import{AccountLayout as ic,MintLayout as Wr,NATIVE_MINT as En,TOKEN_PROGRAM_ID as Pt}from"@solana/spl-token";import{PublicKey as oc}from"@solana/web3.js";import _t from"bn.js";import iR from"decimal.js";import oa from"big.js";import cn from"bn.js";import{get as oi,set as Hr}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}},ii={},Qr={};function Y(i){let e=oi(ii,i);if(!e){let t=oi(Qr,i);e=new Wn({name:i,logLevel:t}),Hr(ii,i,e)}return e}import Zr from"toformat";var jr=Zr,Yt=jr;import un from"big.js";import Jr from"bn.js";import ea from"decimal.js-light";import Ht from"bn.js";var ri=9007199254740991;function j(i){let e=Y("Raydium_parseBigNumberish");if(i instanceof Ht)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ht(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=ri||i<=-ri)&&e.logWithError(`BigNumberish number overflow: ${i}`),new Ht(String(i))):typeof i=="bigint"?new Ht(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new Ht(0))}var sn=Y("module/fraction"),qn=Yt(un),Qt=Yt(ea),ta={[0]:Qt.ROUND_DOWN,[1]:Qt.ROUND_HALF_UP,[2]:Qt.ROUND_UP},na={[0]:un.roundDown,[1]:un.roundHalfUp,[2]:un.roundUp},$=class{constructor(e,t=new Jr(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)||sn.logWithError(`${e} is not an integer.`),e<=0&&sn.logWithError(`${e} is not positive.`),Qt.set({precision:e+1,rounding:ta[n]});let o=new Qt(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)||sn.logWithError(`${e} is not an integer.`),e<0&&sn.logWithError(`${e} is negative.`),qn.DP=e,qn.RM=na[n]||1,new qn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var ia=Y("Raydium_amount"),ai=Yt(oa);function ra(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")):ia.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 cn(0),a=Un.pow(new cn(t.decimals));if(o)r=j(n);else{let c=new cn(0),d=new cn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,m]=ra(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 ai.DP=this.token.decimals,new ai(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as aa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as si}from"@solana/spl-token";var ln={chainId:101,address:aa.default.toBase58(),programId:si.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:si.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 ui,SYSVAR_RENT_PUBKEY as sa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ua}from"@solana/spl-token";function I({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var ca=[I({pubkey:ua,isWritable:!1}),I({pubkey:ui.programId,isWritable:!1}),I({pubkey:sa,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"),De=new se("SysvarRent111111111111111111111111111111111"),Vc=new se("SysvarC1ock11111111111111111111111111111111"),dt=new se("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),la=new se("Sysvar1nstructions1111111111111111111111111"),ma=ui.programId,Ec=new se("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Dc=new se("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Wc=new se("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),qc=new se("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Uc=new se("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Gc=new se("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),zc=new se("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Xc=new se("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Yc=new se("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Hc=new se("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Qc=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)}},le=Yn;le.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}},mn=Hn;mn.SOL=new Hn(ln);import da from"bn.js";var ci=new $(new da(100)),ze=class extends ${toSignificant(e=5,t,n){return this.mul(ci).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(ci).toFixed(e,t,n)}};var pa=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&&pa.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 JK}from"lodash";import Al from"axios";var li={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"},fa=q(v({},li),{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 ql=Y("Raydium_Api");import{PublicKey as bp,SystemProgram as gp}from"@solana/web3.js";import{AccountLayout as Tp,createAssociatedTokenAccountIdempotentInstruction as hp,TOKEN_PROGRAM_ID as Ip,TOKEN_2022_PROGRAM_ID as Bp}from"@solana/spl-token";import{PublicKey as qt,sendAndConfirmTransaction as to,SystemProgram as wa,Transaction as $t,TransactionMessage as Jt,VersionedTransaction as en}from"@solana/web3.js";import ka 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 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 mi,Keypair as pi,PublicKey as ya,Transaction as fi,TransactionMessage as ba,VersionedTransaction as yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ga}from"@solana/spl-token";var di=Y("Raydium_txUtil"),bi=1644;function dn(i){let e=[],t=[];return i.microLamports&&(e.push(mi.setComputeUnitPrice({microLamports:i.microLamports})),t.push(V.SetComputeUnitPrice)),i.units&&(e.push(mi.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 pn(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&&di.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&di.logWithError(`no signers provided:, ${e.toString()}`);let t=new fi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<bi}catch{return!1}}function ee(i,e){let[t,n]=ya.findProgramAddressSync(i,e);return{publicKey:t,nonce:n}}function Zt({instructions:i,payer:e,signers:t}){return eo(i,[e,...t])}function jt({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=pi.generate().publicKey.toString()}){let u=new ba({payerKey:e,recentBlockhash:n,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new yi(u).serialize()).toString("base64").length<bi}catch{return!1}}var Pa=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Aa=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof yi&&(e=Pa(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 fi&&(t.recentBlockhash||(t.recentBlockhash=ga.toBase58()),t.feePayer||(t.feePayer=pi.generate().publicKey)),e.push(Aa(t))}),console.log("simulate tx string:",e),e}var fn=2e3,yn=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 ka.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}=dn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(wa.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),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 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 to(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));Tt(w);let S=await this.signAllTransactions(w);if(m){let L=0,k=[],K=async()=>{if(!S[L])return;let x=await this.connection.sendRawTransaction(S[L].serialize(),{skipPreflight:b});k.push({txId:x,status:"sent",signedTx:S[L]}),f==null||f([...k]),L++;let O=!1,M=null,B=null,U=W=>{M!==null&&clearInterval(M),B!==null&&this.connection.removeSignatureListener(B);let _=k.findIndex(X=>X.txId===x);if(_>-1){if(k[_].status==="error"||k[_].status==="success")return;k[_].status=W.err?"error":"success"}f==null||f([...k]),W.err||K()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var W;if(O){clearInterval(M);return}try{let _=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(O=!0,clearInterval(M),U({err:((W=_.meta)==null?void 0:W.err)||null}),console.log("tx status from getTransaction:",x))}catch(_){O=!0,clearInterval(M),console.error("getTransaction timeout:",_,x)}},fn)),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 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,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(Tt([p]),(L=this.owner)!=null&&L.isKeyPair){let k=await this.connection.sendTransaction(p,{skipPreflight:A});return w&&await pn(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),Tt(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 pn(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)}},fn)),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?dn(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])}),Tt(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 to(this.connection,x,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});K.push(O)}return{txIds:K,signedTxs:a}}return{txIds:await Promise.all(a.map(async k=>await this.connection.sendRawTransaction(k.serialize(),{skipPreflight:w}))),signedTxs:a}}if(this.signAllTransactions){let k=await this.signAllTransactions(a.slice(g,a.length)),K=[...a.slice(0,g),...k];if(y){let x=0,O=[],M=async()=>{if(!K[x])return;x<g&&(O.push({txId:"",status:"success",signedTx:K[x]}),b==null||b([...O]),x++,M());let B=await this.connection.sendRawTransaction(K[x].serialize(),{skipPreflight:w});O.push({txId:B,status:"sent",signedTx:K[x]}),b==null||b([...O]),x++;let U=!1,W=null,_=null,X=z=>{W!==null&&clearInterval(W),_!==null&&this.connection.removeSignatureListener(_);let oe=O.findIndex(J=>J.txId===B);if(oe>-1){if(O[oe].status==="error"||O[oe].status==="success")return;O[oe].status=z.err?"error":"success"}b==null||b([...O]),z.err||M()};this.loopMultiTxStatus&&(W=setInterval(async()=>{var z;if(U){clearInterval(W);return}try{let oe=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(U=!0,clearInterval(W),X({err:((z=oe.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",B))}catch(oe){U=!0,clearInterval(W),console.error("getTransaction timeout:",oe,B)}},fn)),_=this.connection.onSignature(B,z=>{if(U){this.connection.removeSignatureListener(_);return}U=!0,X(z)},"confirmed"),this.connection.getSignatureStatus(B)};return await M(),{txIds:O.map(B=>B.txId),signedTxs:K}}else{let x=[];for(let O=0;O<K.length;O+=1){let M=await this.connection.sendRawTransaction(K[O].serialize(),{skipPreflight:w});x.push(M)}return{txIds:x,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var L;let S=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:u=[],insCountLimit:r=12}=S,a=Se(S,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=v(v({},this.cluster==="devnet"?await 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,K]of Object.entries(m))c[k]=K;let f=t?dn(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)}),Tt(b),(U=this.owner)!=null&&U.isKeyPair){if(K){let W=0,_=[];for(let X of b){if(++W,W<=O){console.log("skip tx: ",W),_.push("tx skipped");continue}let z=await this.connection.sendTransaction(X,{skipPreflight:B});await pn(this.connection,z),_.push(z)}return{txIds:_,signedTxs:b}}return{txIds:await Promise.all(b.map(async W=>await this.connection.sendTransaction(W,{skipPreflight:B}))),signedTxs:b}}if(this.signAllTransactions){let W=await this.signAllTransactions(b.slice(O,b.length)),_=[...b.slice(0,O),...W];if(K){let X=0,z=[],oe=async()=>{if(!_[X])return;if(X<O){z.push({txId:"",status:"success",signedTx:_[X]}),x==null||x([...z]),X++,oe();return}let J=await this.connection.sendTransaction(_[X],{skipPreflight:B});z.push({txId:J,status:"sent",signedTx:_[X]}),x==null||x([...z]),X++;let ge=!1,Fe=null,Ue=null,Ze=ve=>{Fe!==null&&clearInterval(Fe),Ue!==null&&this.connection.removeSignatureListener(Ue);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)}},fn)),Ue=this.connection.onSignature(J,ve=>{if(ge){this.connection.removeSignatureListener(Ue);return}ge=!0,Ze(ve)},"confirmed"),this.connection.getSignatureStatus(J)};return oe(),{txIds:[],signedTxs:_}}else{let X=[];for(let z=0;z<_.length;z+=1){let oe=await this.connection.sendTransaction(_[z],{skipPreflight:B});X.push(oe)}return{txIds:X,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var 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 yn({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 Yd,SystemProgram as Qd}from"@solana/web3.js";import $d from"bn.js";import{createCloseAccountInstruction as np,createInitializeAccountInstruction as op,createTransferInstruction as ip,TOKEN_PROGRAM_ID as rp}from"@solana/spl-token";import{Keypair as Da,PublicKey as Wa}from"@solana/web3.js";import Vd from"bn.js";import{TOKEN_PROGRAM_ID as qa}from"@solana/spl-token";function Ta(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function oo(i,...e){if(!Ta(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 gi(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 gn=i=>new DataView(i.buffer,i.byteOffset,i.byteLength),He=(i,e)=>i<<32-e|i>>>e;var Lm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ha(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=ha(i)),oo(i),i}var bn=class{clone(){return this._cloneInto()}},Om={}.toString;function Pi(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 Ia(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 Ai=(i,e,t)=>i&e^~i&t,wi=(i,e,t)=>i&e^i&t^e&t,Pn=class extends bn{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=gn(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=gn(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),gi(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;Ia(n,o-8,BigInt(this.length*8),u),this.process(n,0);let a=gn(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 Ba=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 Pn{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+Ai(a,c,d)+Ba[m]+ft[m]|0,b=(He(n,2)^He(n,13)^He(n,22))+wi(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 ki=Pi(()=>new ao);import{PublicKey as _a}from"@solana/web3.js";import xi,{isBN as Si}from"bn.js";import{bits as xa,BitStructure as Wm,blob as Sa,Blob as qm,cstr as Um,f32 as Gm,f32be as zm,f64 as Xm,f64be as Ym,greedy as Hm,Layout as Ka,ns64 as Qm,ns64be as Zm,nu64 as jm,nu64be as $m,offset as Ca,s16 as Jm,s16be as ed,s24 as td,s24be as nd,s32 as Ra,s32be as od,s40 as id,s40be as rd,s48 as ad,s48be as sd,s8 as ud,seq as La,struct as cd,Structure as Oa,u16 as Na,u16be as ld,u24 as md,u24be as dd,u32 as Ma,u32be as pd,u40 as fd,u40be as yd,u48 as bd,u48be as gd,u8 as Fa,UInt as va,union as Pd,Union as Ad,unionLayoutDiscriminator as wd,utf8 as kd}from"@solana/buffer-layout";var An=Ka,Ti=Oa;var so=va;var hi=Fa,Pe=Na;var wn=Ma;var fe=Ra;var Ii=La;var G=Sa;var uo=xa,Bi=Ca;var It=class extends An{constructor(t,n,o){super(t,o);this.blob=G(t),this.signed=n}decode(t,n=0){let o=new xi(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 xi(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},kn=class extends An{constructor(t){super(8,t);this._lower=uo(wn(),!1),this._upper=uo(wn(),!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 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 Ki(i){return new It(1,!0,i)}function Ut(i){return new It(8,!0,i)}function Ci(i){return new It(16,!0,i)}var tn=class extends An{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 _a(e),e=>e.toBuffer(),i)}function me(i){return new tn(hi(),Va,Ea,i)}function Va(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Ea(i){return i?1:0}function Ri(i,e){let t=wn("length"),n=C([t,F(i,Bi(t,-t.span),"values")]);return new tn(n,({values:o})=>o,o=>({values:o}),e)}var co=class extends Ti{decode(e,t){return super.decode(e,t)}};function C(i,e,t){return new co(i,e,t)}function F(i,e,t){let n,o=typeof e=="number"?e:Si(e)?e.toNumber():new Proxy(e,{get(u,r){if(!n){let a=Reflect.get(u,"count");n=Si(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 Ii(i,o,t)}var Tn=C([P("mint"),P("owner"),s("amount"),ae("delegateOption"),P("delegate"),R("state"),ae("isNativeOption"),s("isNative"),s("delegatedAmount"),ae("closeAuthorityOption"),P("closeAuthority")]);function We({fromPublicKey:i,programId:e=qa,assignSeed:t}){let n=t?btoa(t).slice(0,32):Da.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ua(i,n,e),seed:n}}function Ua(i,e,t){let n=Buffer.concat([i.toBuffer(),Buffer.from(e),t.toBuffer()]),o=ki(n);return new Wa(o)}import{PublicKey as xA,SystemProgram as SA}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as CA}from"@solana/spl-token";import{PublicKey as za}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xa}from"@solana/spl-token";function H(i,e,t){return ee([i.toBuffer(),(t!=null?t:Xa).toBuffer(),e.toBuffer()],new za("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as D}from"@solana/web3.js";var Oi=new D("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Ni=new D("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Mi=new D("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),lo=new D("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),vp=new D("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Fi=new D("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vi=new D("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),mo=new D("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),_p=new D("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ya=new D("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_i=new D("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ha=new D("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qa=new D("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Bt=new D("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Vp=new D("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Vi=new D("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),po=new D("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Za=new D("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ep=new D("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ja=new D("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$a=new D("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ja=new D("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Dp=new D("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Wp=new D("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),qp=new D("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Up=new D("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Gp=new D("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var nt={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 EA from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as pg,TOKEN_2022_PROGRAM_ID as fg,TOKEN_PROGRAM_ID as yg}from"@solana/spl-token";import{PublicKey as gg}from"@solana/web3.js";import Ag from"bn.js";import kg from"decimal.js";import{TOKEN_PROGRAM_ID as rf}from"@solana/spl-token";import{PublicKey as cf}from"@solana/web3.js";var es=C([ae("mintAuthorityOption"),P("mintAuthority"),s("supply"),R("decimals"),R("isInitialized"),ae("freezeAuthorityOption"),P("freezeAuthority")]);var fo=i=>new le({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{ASSOCIATED_TOK