UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 107 kB
var Ti=Object.defineProperty,hi=Object.defineProperties;var Ii=Object.getOwnPropertyDescriptors;var It=Object.getOwnPropertySymbols;var $n=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable;var jn=(i,e,t)=>e in i?Ti(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,v=(i,e)=>{for(var t in e||(e={}))$n.call(e,t)&&jn(i,t,e[t]);if(It)for(var t of It(e))Jn.call(e,t)&&jn(i,t,e[t]);return i},q=(i,e)=>hi(i,Ii(e));var xe=(i,e)=>{var t={};for(var o in i)$n.call(i,o)&&e.indexOf(o)<0&&(t[o]=i[o]);if(i!=null&&It)for(var o of It(i))e.indexOf(o)<0&&Jn.call(i,o)&&(t[o]=i[o]);return t};import{PublicKey as Z,SystemProgram as Cs}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as wi}from"@solana/spl-token";import{PublicKey as Si}from"@solana/web3.js";import{get as eo,set as Bi}from"lodash";var en=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(o=>typeof o=="object"?JSON.stringify(o):o).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}},to={},xi={};function H(i){let e=eo(to,i);if(!e){let t=eo(xi,i);e=new en({name:i,logLevel:t}),Bi(to,i,e)}return e}import{MINT_SIZE as Ds,TOKEN_PROGRAM_ID as Ws,getTransferFeeConfig as qs,unpackMint as Us}from"@solana/spl-token";var tn=H("Raydium_accountInfo_util");async function Pe(i,e,t){let{batchRequest:o,commitment:r="confirmed",chunkCount:s=100}=v({batchRequest:!1},t),c=nn(e,s),u=new Array(c.length).fill([]);if(o){let b=c.map(m=>{let y=i._buildArgs([m.map(w=>w.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:y}}),l=nn(b,10);u=(await(await Promise.all(l.map(async m=>await i._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${m.error.message}`),m.result.value.map(y=>{if(y){let{data:w,executable:P,lamports:A,owner:k,rentEpoch:x}=y;return w.length!==2&&w[1]!=="base64"&&tn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:P,lamports:A,owner:new Si(k),rentEpoch:x}}return null})))}else try{u=await Promise.all(c.map(b=>i.getMultipleAccountsInfo(b,r)))}catch(b){b instanceof Error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return u.flat()}import Ue from"bn.js";import UC from"decimal.js";import Fi from"big.js";import St from"bn.js";import Ki from"toformat";var Ci=Ki,it=Ci;import xt from"big.js";import Li from"bn.js";import Oi from"decimal.js-light";import rt from"bn.js";var no=9007199254740991;function D(i){let e=H("Raydium_parseBigNumberish");if(i instanceof rt)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new rt(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=no||i<=-no)&&e.logWithError(`BigNumberish number overflow: ${i}`),new rt(String(i))):typeof i=="bigint"?new rt(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new rt(0))}var Bt=H("module/fraction"),on=it(xt),at=it(Oi),Ni={[0]:at.ROUND_DOWN,[1]:at.ROUND_HALF_UP,[2]:at.ROUND_UP},Mi={[0]:xt.roundDown,[1]:xt.roundHalfUp,[2]:xt.roundUp},j=class{constructor(e,t=new Li(1)){this.numerator=D(e),this.denominator=D(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new j(this.denominator,this.numerator)}add(e){let t=e instanceof j?e:new j(D(e));return this.denominator.eq(t.denominator)?new j(this.numerator.add(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof j?e:new j(D(e));return this.denominator.eq(t.denominator)?new j(this.numerator.sub(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof j?e:new j(D(e));return new j(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof j?e:new j(D(e));return new j(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},o=1){Number.isInteger(e)||Bt.logWithError(`${e} is not an integer.`),e<=0&&Bt.logWithError(`${e} is not positive.`),at.set({precision:e+1,rounding:Ni[o]});let r=new at(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},o=1){return Number.isInteger(e)||Bt.logWithError(`${e} is not an integer.`),e<0&&Bt.logWithError(`${e} is negative.`),on.DP=e,on.RM=Mi[o]||1,new on(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var vi=H("Raydium_amount"),oo=it(Fi);function _i(i,e){let t="0",o="0";if(i.includes(".")){let r=i.split(".");r.length===2?([t,o]=r,o=o.padEnd(e,"0")):vi.logWithError(`invalid number string, num: ${i}`)}else t=i;return[t,o.slice(0,e)||o]}var pe=class extends j{constructor(t,o,r=!0,s){let c=new St(0),u=rn.pow(new St(t.decimals));if(r)c=D(o);else{let b=new St(0),l=new St(0);if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"){let[d,m]=_i(o.toString(),t.decimals);b=D(d),l=D(m)}b=b.mul(u),c=b.add(l)}super(c,u);this.logger=H(s||"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 pe(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new pe(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,o,r=0){return super.toSignificant(t,o,r)}toFixed(t=this.token.decimals,o,r=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,o,r)}toExact(t={groupSeparator:""}){return oo.DP=this.token.decimals,new oo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Vi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as io}from"@solana/spl-token";var Kt={chainId:101,address:Vi.default.toBase58(),programId:io.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},se={chainId:101,address:"So11111111111111111111111111111111111111112",programId:io.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 ln}from"@solana/web3.js";import{PublicKey as J,SystemProgram as ro,SYSVAR_RENT_PUBKEY as Ei}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Di}from"@solana/spl-token";function g({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var an=[g({pubkey:Di,isWritable:!1}),g({pubkey:ro.programId,isWritable:!1}),g({pubkey:Ei,isWritable:!1})];function sn({publicKey:i,transformSol:e}){let t=un(i.toString());if(t instanceof J)return e&&t.equals(ie)?le:t;if(e&&t.toString()===ie.toBase58())return le;if(typeof t=="string"){if(t===J.default.toBase58())return J.default;try{return new J(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function un(i){try{return new J(i)}catch{return i}}var cn=new J("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),st=new J("SysvarRent111111111111111111111111111111111"),ku=new J("SysvarC1ock11111111111111111111111111111111"),Ct=new J("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Wi=new J("Sysvar1nstructions1111111111111111111111111"),qi=ro.programId,Tu=new J("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),hu=new J("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Iu=new J("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Bu=new J("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),xu=new J("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Su=new J("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ku=new J("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Cu=new J("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ru=new J("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Lu=new J("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ou=new J("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new J("So11111111111111111111111111111111111111112"),ie=J.default;function Oe(i){return sn({publicKey:i,transformSol:!0})}var mn=class{constructor({mint:e,decimals:t,symbol:o,name:r,skipMint:s=!1,isToken2022:c=!1}){if(e===ie.toBase58()||e instanceof ln&&ie.equals(e)){this.decimals=se.decimals,this.symbol=se.symbol,this.name=se.name,this.mint=new ln(se.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=s?ln.default:sn({publicKey:e}),this.isToken2022=c}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ae=mn;ae.WSOL=new mn(q(v({},se),{mint:se.address}));var dn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},Rt=dn;Rt.SOL=new dn(Kt);import Ui from"bn.js";var ao=new j(new Ui(100)),Ke=class extends j{toSignificant(e=5,t,o){return this.mul(ao).toSignificant(e,t,o)}toFixed(e=2,t,o){return this.mul(ao).toFixed(e,t,o)}};var Gi=H("Raydium_price"),Ae=class extends j{constructor(t){let{baseToken:o,quoteToken:r,numerator:s,denominator:c}=t;super(s,c);this.baseToken=o,this.quoteToken=r,this.scalar=new j(pn(o.decimals),pn(r.decimals))}get raw(){return new j(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ae({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Gi.logWithError("mul token not equals");let o=super.mul(t);return new Ae({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:o.denominator,numerator:o.numerator})}toSignificant(t=this.quoteToken.decimals,o,r){return this.adjusted.toSignificant(t,o,r)}toFixed(t=this.quoteToken.decimals,o,r){return this.adjusted.toFixed(t,o,r)}};import{merge as zK}from"lodash";import nc from"axios";var so={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"},zi=q(v({},so),{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 Bc=H("Raydium_Api");import{PublicKey as Xm,SystemProgram as Ym}from"@solana/web3.js";import{AccountLayout as $m,createAssociatedTokenAccountIdempotentInstruction as Jm,TOKEN_PROGRAM_ID as ed,TOKEN_2022_PROGRAM_ID as td}from"@solana/spl-token";import{PublicKey as Qe,sendAndConfirmTransaction as An,SystemProgram as ji,Transaction as lt,TransactionMessage as mt,VersionedTransaction as dt}from"@solana/web3.js";import $i from"axios";import{PublicKey as fn,AddressLookupTableAccount as Ye}from"@solana/web3.js";async function yn({connection:i,address:e,cluster:t="mainnet"}){let o=await Pe(i,[...new Set(e.map(s=>s.toString()))].map(s=>new fn(s))),r={};for(let s=0;s<e.length;s++){let c=o[s],u=e[s];if(!c)continue;let b=new Ye({key:u,state:Ye.deserialize(c.data)});r[u.toString()]=b,t==="devnet"?Xe[u.toString()]=b:ze[u.toString()]=b}return r}var ze={},bn=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(ze[e])return ze;let t=new fn(e),o=await i.getAccountInfo(t);return o&&(ze[e]=new Ye({key:t,state:Ye.deserialize(o.data)})),ze},Xe={},gn=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Xe[e])return Xe;let t=new fn(e),o=await i.getAccountInfo(t);return o&&(Xe[e]=new Ye({key:t,state:Ye.deserialize(o.data)})),Xe};var U={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 uo,Keypair as lo,PublicKey as Xi,Transaction as mo,TransactionMessage as Yi,VersionedTransaction as po}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Hi}from"@solana/spl-token";var co=H("Raydium_txUtil"),fo=1644;function Lt(i){let e=[],t=[];return i.microLamports&&(e.push(uo.setComputeUnitPrice({microLamports:i.microLamports})),t.push(U.SetComputeUnitPrice)),i.units&&(e.push(uo.setComputeUnitLimit({units:i.units})),t.push(U.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function He(i,e){var o,r;let t=e!=null?e:"confirmed";return(r=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:t})))==null?void 0:r.blockhash}async function Ot(i,e){return i.getSignatureStatuses([e]),new Promise((t,o)=>{let r=setTimeout(o,6e4);i.onSignature(e,s=>{if(clearTimeout(r),!s.err){t("");return}o(Object.assign(s.err,{txId:e}))},"confirmed")})}function Pn(i,e){i.length<1&&co.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&co.logWithError(`no signers provided:, ${e.toString()}`);let t=new mo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<fo}catch{return!1}}function me(i,e){let[t,o]=Xi.findProgramAddressSync(i,e);return{publicKey:t,nonce:o}}function ut({instructions:i,payer:e,signers:t}){return Pn(i,[e,...t])}function ct({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=lo.generate().publicKey.toString()}){let s=new Yi({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new po(s).serialize()).toString("base64").length<fo}catch{return!1}}var Qi=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Zi=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof po&&(e=Qi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ee(i){let e=[];return i.forEach(t=>{t instanceof mo&&(t.recentBlockhash||(t.recentBlockhash=Hi.toBase58()),t.feePayer||(t.feePayer=lo.generate().publicKey)),e.push(Zi(t))}),console.log("simulate tx string:",e),e}var Nt=2e3,Mt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var o;let e=(await $i.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(o=e==null?void 0:e[15])!=null?o:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:o}=Lt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(ji.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Qe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(U.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let o=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:o=[],instructionTypes:r=[],endInstructionTypes:s=[],lookupTableAddress:c=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...r),this.endInstructionTypes.push(...s),this.lookupTableAddress.push(...c.filter(u=>u!==Qe.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:o}){return e===0?await this.buildV0(q(v({},t||{}),{lookupTableAddress:o})):this.build(t)}build(e){var o;let t=new lt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(r=>r.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var d;let{recentBlockHash:s,skipPreflight:c=!0,sendAndConfirm:u,notSendToRpc:b}=r||{},l=s!=null?s:await He(this.connection,this.blockhashCommitment);if(t.recentBlockhash=l,this.signers.length&&t.sign(...this.signers),Ee([t]),(d=this.owner)!=null&&d.isKeyPair)return{txId:u?await An(this.connection,t,this.signers.find(y=>y.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:c}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:c}),signedTx:t};if(this.signAllTransactions){let m=await this.signAllTransactions([t]);if(this.signers.length)for(let y of m)try{y.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:c}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var l;let{extraPreBuildData:t=[],extInfo:o}=e,{transaction:r}=this.build(o),s=t.filter(d=>d.transaction.instructions.length>0),c=[r,...s.map(d=>d.transaction)],u=[this.signers,...s.map(d=>d.signers)],b=[...this.instructionTypes,...s.map(d=>d.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&u.forEach(d=>{d.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:c,signers:u,instructionTypes:b,execute:async d=>{var x;let{sequentially:m,onTxUpdate:y,skipTxCount:w=0,recentBlockHash:P,skipPreflight:A=!0}=d||{},k=P!=null?P:await He(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(m){let S=[],N=0;for(let O of c){if(++N,N<=w)continue;let I=await An(this.connection,O,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});S.push(I)}return{txIds:S,signedTxs:c}}return{txIds:await await Promise.all(c.map(async S=>(S.recentBlockhash=k,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:A})))),signedTxs:c}}if(this.signAllTransactions){let S=c.map((O,I)=>(O.recentBlockhash=k,u[I].length&&O.sign(...u[I]),O));Ee(S);let N=await this.signAllTransactions(S);if(m){let O=0,I=[],K=async()=>{if(!N[O])return;let C=await this.connection.sendRawTransaction(N[O].serialize(),{skipPreflight:A});I.push({txId:C,status:"sent",signedTx:N[O]}),y==null||y([...I]),O++;let M=!1,R=null,L=null,Y=_=>{R!==null&&clearInterval(R),L!==null&&this.connection.removeSignatureListener(L);let E=I.findIndex(V=>V.txId===C);if(E>-1){if(I[E].status==="error"||I[E].status==="success")return;I[E].status=_.err?"error":"success"}y==null||y([...I]),_.err||K()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var _;if(M){clearInterval(R);return}try{let E=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(M=!0,clearInterval(R),Y({err:((_=E.meta)==null?void 0:_.err)||null}),console.log("tx status from getTransaction:",C))}catch(E){M=!0,clearInterval(R),console.error("getTransaction timeout:",E,C)}},Nt)),L=this.connection.onSignature(C,_=>{if(M){this.connection.removeSignatureListener(L);return}M=!0,Y(_)},"confirmed"),this.connection.getSignatureStatus(C)};return await K(),{txIds:I.map(C=>C.txId),signedTxs:N}}else{let O=[];for(let I=0;I<N.length;I+=1){let K=await this.connection.sendRawTransaction(N[I].serialize(),{skipPreflight:A});O.push(K)}return{txIds:O,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:o}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})}async buildV0(e){var A;let P=e||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:r,recentBlockhash:s}=P,c=xe(P,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=v(v({},this.cluster==="devnet"?await gn(this.connection):await bn(this.connection)),t),b=Array.from(new Set([...o,...this.lookupTableAddress])),l=[];for(let k of b)u[k]===void 0&&l.push(new Qe(k));let d=await yn({connection:this.connection,address:l});for(let[k,x]of Object.entries(d))u[k]=x;let m=r?Qe.default.toBase58():s!=null?s:await He(this.connection,this.blockhashCommitment),y=new mt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(k=>k.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new dt(y);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async k=>{var O;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:N}=k||{};if(Ee([w]),(O=this.owner)!=null&&O.isKeyPair){let I=await this.connection.sendTransaction(w,{skipPreflight:x});return S&&await Ot(this.connection,I),{txId:I,signedTx:w}}if(this.signAllTransactions){let I=await this.signAllTransactions([w]);if(this.signers.length)for(let K of I)try{K.sign(this.signers)}catch{}return{txId:N?"":await this.connection.sendTransaction(I[0],{skipPreflight:x}),signedTx:I[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}async buildV0MultiTx(e){var l;let{extraPreBuildData:t=[],buildProps:o}=e,{transaction:r}=await this.buildV0(o),s=t.filter(d=>d.builder.instructions.length>0),c=[r,...s.map(d=>d.transaction)],u=[this.signers,...s.map(d=>d.signers)],b=[...this.instructionTypes,...s.map(d=>d.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&u.forEach(d=>{d.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),c.forEach(async(d,m)=>{d.sign(u[m])}),{builder:this,transactions:c,signers:u,instructionTypes:b,buildProps:o,execute:async d=>{var A;let{sequentially:m,onTxUpdate:y,recentBlockHash:w,skipPreflight:P=!0}=d||{};if(w&&c.forEach(k=>k.message.recentBlockhash=w),Ee(c),(A=this.owner)!=null&&A.isKeyPair){if(m){let k=[];for(let x of c){let S=await this.connection.sendTransaction(x,{skipPreflight:P});await Ot(this.connection,S),k.push(S)}return{txIds:k,signedTxs:c}}return{txIds:await Promise.all(c.map(async k=>await this.connection.sendTransaction(k,{skipPreflight:P}))),signedTxs:c}}if(this.signAllTransactions){let k=await this.signAllTransactions(c);if(m){let x=0,S=[],N=async()=>{if(!k[x])return;let O=await this.connection.sendTransaction(k[x],{skipPreflight:P});S.push({txId:O,status:"sent",signedTx:k[x]}),y==null||y([...S]),x++;let I=!1,K=null,C=null,M=R=>{K!==null&&clearInterval(K),C!==null&&this.connection.removeSignatureListener(C);let L=S.findIndex(Y=>Y.txId===O);if(L>-1){if(S[L].status==="error"||S[L].status==="success")return;S[L].status=R.err?"error":"success"}y==null||y([...S]),R.err||N()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var R;if(I){clearInterval(K);return}try{let L=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});L&&(I=!0,clearInterval(K),M({err:((R=L.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",O))}catch(L){I=!0,clearInterval(K),console.error("getTransaction timeout:",L,O)}},Nt)),C=this.connection.onSignature(O,R=>{if(I){this.connection.removeSignatureListener(C);return}I=!0,M(R)},"confirmed"),this.connection.getSignatureStatus(O)};return N(),{txIds:[],signedTxs:k}}else{let x=[];for(let S=0;S<k.length;S+=1){let N=await this.connection.sendTransaction(k[S],{skipPreflight:P});x.push(N)}return{txIds:x,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var y;let m=e||{},{splitIns:t=[],computeBudgetConfig:o}=m,r=xe(m,["splitIns","computeBudgetConfig"]),s=o?Lt(o):{instructions:[],instructionTypes:[]},c=this.signers.reduce((w,P)=>q(v({},w),{[P.publicKey.toBase58()]:P}),{}),u=[],b=[],l=[],d=0;if(this.allInstructions.forEach(w=>{let P=[...l,w],A=o?[...s.instructions,...P]:P,x=[...new Set(P.map(S=>S.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(S=>new Qe(S));if(w!==t[d]&&l.length<12&&(ut({instructions:A,payer:this.feePayer,signers:x})||ut({instructions:P,payer:this.feePayer,signers:x})))l.push(w);else{if(l.length===0)throw Error("item ins too big");d+=w===t[d]?1:0,ut({instructions:o?[...s.instructions,...l]:[...l],payer:this.feePayer,signers:x})?u.push(new lt().add(...s.instructions,...l)):u.push(new lt().add(...l)),b.push(Array.from(new Set(l.map(S=>S.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(S=>c[S]).filter(S=>S!==void 0)),l=[w]}}),l.length>0){let P=[...new Set(l.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(A=>c[A]).filter(A=>A!==void 0);ut({instructions:o?[...s.instructions,...l]:[...l],payer:this.feePayer,signers:P.map(A=>A.publicKey)})?u.push(new lt().add(...s.instructions,...l)):u.push(new lt().add(...l)),b.push(P)}return u.forEach(w=>w.feePayer=this.feePayer),(y=this.owner)!=null&&y.signer&&b.forEach(w=>{w.some(P=>P.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:u,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var O;let{sequentially:P,onTxUpdate:A,skipTxCount:k=0,recentBlockHash:x,skipPreflight:S=!0}=w||{},N=x!=null?x:await He(this.connection,this.blockhashCommitment);if(u.forEach(async(I,K)=>{I.recentBlockhash=N,b[K].length&&I.sign(...b[K])}),Ee(u),(O=this.owner)!=null&&O.isKeyPair){if(P){let I=0,K=[];for(let C of u){if(++I,I<=k){K.push("tx skipped");continue}let M=await An(this.connection,C,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});K.push(M)}return{txIds:K,signedTxs:u}}return{txIds:await Promise.all(u.map(async I=>await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:S}))),signedTxs:u}}if(this.signAllTransactions){let I=await this.signAllTransactions(u.slice(k,u.length)),K=[...u.slice(0,k),...I];if(P){let C=0,M=[],R=async()=>{if(!K[C])return;C<k&&(M.push({txId:"",status:"success",signedTx:K[C]}),A==null||A([...M]),C++,R());let L=await this.connection.sendRawTransaction(K[C].serialize(),{skipPreflight:S});M.push({txId:L,status:"sent",signedTx:K[C]}),A==null||A([...M]),C++;let Y=!1,_=null,E=null,V=X=>{_!==null&&clearInterval(_),E!==null&&this.connection.removeSignatureListener(E);let $=M.findIndex(ge=>ge.txId===L);if($>-1){if(M[$].status==="error"||M[$].status==="success")return;M[$].status=X.err?"error":"success"}A==null||A([...M]),X.err||R()};this.loopMultiTxStatus&&(_=setInterval(async()=>{var X;if(Y){clearInterval(_);return}try{let $=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});$&&(Y=!0,clearInterval(_),V({err:((X=$.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",L))}catch($){Y=!0,clearInterval(_),console.error("getTransaction timeout:",$,L)}},Nt)),E=this.connection.onSignature(L,X=>{if(Y){this.connection.removeSignatureListener(E);return}Y=!0,V(X)},"confirmed"),this.connection.getSignatureStatus(L)};return await R(),{txIds:M.map(L=>L.txId),signedTxs:K}}else{let C=[];for(let M=0;M<K.length;M+=1){let R=await this.connection.sendRawTransaction(K[M].serialize(),{skipPreflight:S});C.push(R)}return{txIds:C,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var O;let N=e||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:r={},lookupTableAddress:s=[],insCountLimit:c=12}=N,u=xe(N,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=v(v({},this.cluster==="devnet"?await gn(this.connection):await bn(this.connection)),r),l=Array.from(new Set([...this.lookupTableAddress,...s])),d=[];for(let I of l)b[I]===void 0&&d.push(new Qe(I));let m=await yn({connection:this.connection,address:d});for(let[I,K]of Object.entries(m))b[I]=K;let y=t?Lt(t):{instructions:[],instructionTypes:[]},w=await He(this.connection,this.blockhashCommitment),P=this.signers.reduce((I,K)=>q(v({},I),{[K.publicKey.toBase58()]:K}),{}),A=[],k=[],x=[],S=0;if(this.allInstructions.forEach(I=>{let K=[...x,I],C=t?[...y.instructions,...K]:K;if(I!==o[S]&&x.length<c&&(ct({instructions:C,payer:this.feePayer,lookupTableAddressAccount:b})||ct({instructions:K,payer:this.feePayer,lookupTableAddressAccount:b})))x.push(I);else{if(x.length===0)throw Error("item ins too big");S+=I===o[S]?1:0;let M={};for(let R of[...new Set(l)])b[R]!==void 0&&(M[R]=b[R]);if(t&&ct({instructions:[...y.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let R=new mt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...y.instructions,...x]}).compileToV0Message(Object.values(b));A.push(new dt(R))}else{let R=new mt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...x]}).compileToV0Message(Object.values(b));A.push(new dt(R))}k.push(Array.from(new Set(x.map(R=>R.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat())).map(R=>P[R]).filter(R=>R!==void 0)),x=[I]}}),x.length>0){let K=[...new Set(x.map(C=>C.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat()).values()].map(C=>P[C]).filter(C=>C!==void 0);if(t&&ct({instructions:[...y.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let C=new mt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...y.instructions,...x]}).compileToV0Message(Object.values(b));A.push(new dt(C))}else{let C=new mt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...x]}).compileToV0Message(Object.values(b));A.push(new dt(C))}k.push(K)}return(O=this.owner)!=null&&O.signer&&k.forEach(I=>{I.some(K=>K.publicKey.equals(this.owner.publicKey))||I.push(this.owner.signer)}),A.forEach((I,K)=>{I.sign(k[K])}),{builder:this,transactions:A,buildProps:e,signers:k,instructionTypes:this.instructionTypes,execute:async I=>{var Y;let{sequentially:K,onTxUpdate:C,skipTxCount:M=0,recentBlockHash:R,skipPreflight:L=!0}=I||{};if(A.map(async(_,E)=>{k[E].length&&_.sign(k[E]),R&&(_.message.recentBlockhash=R)}),Ee(A),(Y=this.owner)!=null&&Y.isKeyPair){if(K){let _=0,E=[];for(let V of A){if(++_,_<=M){console.log("skip tx: ",_),E.push("tx skipped");continue}let X=await this.connection.sendTransaction(V,{skipPreflight:L});await Ot(this.connection,X),E.push(X)}return{txIds:E,signedTxs:A}}return{txIds:await Promise.all(A.map(async _=>await this.connection.sendTransaction(_,{skipPreflight:L}))),signedTxs:A}}if(this.signAllTransactions){let _=await this.signAllTransactions(A.slice(M,A.length)),E=[...A.slice(0,M),..._];if(K){let V=0,X=[],$=async()=>{if(!E[V])return;if(V<M){X.push({txId:"",status:"success",signedTx:E[V]}),C==null||C([...X]),V++,$();return}let ge=await this.connection.sendTransaction(E[V],{skipPreflight:L});X.push({txId:ge,status:"sent",signedTx:E[V]}),C==null||C([...X]),V++;let Le=!1,Ge=null,ht=null,Zn=Ve=>{Ge!==null&&clearInterval(Ge),ht!==null&&this.connection.removeSignatureListener(ht);let Se=X.findIndex(ki=>ki.txId===ge);if(Se>-1){if(X[Se].status==="error"||X[Se].status==="success")return;X[Se].status=Ve.err?"error":"success"}C==null||C([...X]),Ve.err||$()};this.loopMultiTxStatus&&(Ge=setInterval(async()=>{var Ve;if(Le){clearInterval(Ge);return}try{let Se=await this.connection.getTransaction(ge,{commitment:"confirmed",maxSupportedTransactionVersion:0});Se&&(Le=!0,clearInterval(Ge),Zn({err:((Ve=Se.meta)==null?void 0:Ve.err)||null}),console.log("tx status from getTransaction:",ge))}catch(Se){Le=!0,clearInterval(Ge),console.error("getTransaction timeout:",Se,ge)}},Nt)),ht=this.connection.onSignature(ge,Ve=>{if(Le){this.connection.removeSignatureListener(ht);return}Le=!0,Zn(Ve)},"confirmed"),this.connection.getSignatureStatus(ge)};return $(),{txIds:[],signedTxs:E}}else{let V=[];for(let X=0;X<E.length;X+=1){let $=await this.connection.sendTransaction(E[X],{skipPreflight:L});V.push($)}return{txIds:V,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var wn=(...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=H(t)}createTxBuilder(e){return this.scope.checkOwner(),new Mt({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(wn(e))}logInfo(...e){this.logger.info(wn(e))}logAndCreateError(...e){let t=wn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as kr,SystemProgram as Tr}from"@solana/web3.js";import hr from"bn.js";import{createCloseAccountInstruction as Ir,createInitializeAccountInstruction as Br,createTransferInstruction as vm,TOKEN_PROGRAM_ID as ft}from"@solana/spl-token";import{Keypair as gr,PublicKey as Pr}from"@solana/web3.js";import km from"bn.js";import{TOKEN_PROGRAM_ID as Ar}from"@solana/spl-token";function Ji(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function kn(i,...e){if(!Ji(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 Tn(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 yo(i,e){kn(i);let t=e.outputLen;if(i.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var vt=i=>new DataView(i.buffer,i.byteOffset,i.byteLength),we=(i,e)=>i<<32-e|i>>>e;var fl=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function er(i){if(typeof i!="string")throw new Error(`utf8ToBytes expected string, got ${typeof i}`);return new Uint8Array(new TextEncoder().encode(i))}function hn(i){return typeof i=="string"&&(i=er(i)),kn(i),i}var Ft=class{clone(){return this._cloneInto()}},yl={}.toString;function bo(i){let e=o=>i().update(hn(o)).digest(),t=i();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>i(),e}function tr(i,e,t,o){if(typeof i.setBigUint64=="function")return i.setBigUint64(e,t,o);let r=BigInt(32),s=BigInt(4294967295),c=Number(t>>r&s),u=Number(t&s),b=o?4:0,l=o?0:4;i.setUint32(e+b,c,o),i.setUint32(e+l,u,o)}var go=(i,e,t)=>i&e^~i&t,Po=(i,e,t)=>i&e^i&t^e&t,_t=class extends Ft{constructor(e,t,o,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=o,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=vt(this.buffer)}update(e){Tn(this);let{view:t,buffer:o,blockLen:r}=this;e=hn(e);let s=e.length;for(let c=0;c<s;){let u=Math.min(r-this.pos,s-c);if(u===r){let b=vt(e);for(;r<=s-c;c+=r)this.process(b,c);continue}o.set(e.subarray(c,c+u),this.pos),this.pos+=u,c+=u,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Tn(this),yo(e,this),this.finished=!0;let{buffer:t,view:o,blockLen:r,isLE:s}=this,{pos:c}=this;t[c++]=128,this.buffer.subarray(c).fill(0),this.padOffset>r-c&&(this.process(o,0),c=0);for(let m=c;m<r;m++)t[m]=0;tr(o,r-8,BigInt(this.length*8),s),this.process(o,0);let u=vt(e),b=this.outputLen;if(b%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let l=b/4,d=this.get();if(l>d.length)throw new Error("_sha2: outputLen bigger than state");for(let m=0;m<l;m++)u.setUint32(4*m,d[m],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let o=e.slice(0,t);return this.destroy(),o}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:o,length:r,finished:s,destroyed:c,pos:u}=this;return e.length=r,e.pos=u,e.finished=s,e.destroyed=c,r%t&&e.buffer.set(o),e}};var nr=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]),Ne=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Me=new Uint32Array(64),In=class extends _t{constructor(){super(64,32,8,!1),this.A=Ne[0]|0,this.B=Ne[1]|0,this.C=Ne[2]|0,this.D=Ne[3]|0,this.E=Ne[4]|0,this.F=Ne[5]|0,this.G=Ne[6]|0,this.H=Ne[7]|0}get(){let{A:e,B:t,C:o,D:r,E:s,F:c,G:u,H:b}=this;return[e,t,o,r,s,c,u,b]}set(e,t,o,r,s,c,u,b){this.A=e|0,this.B=t|0,this.C=o|0,this.D=r|0,this.E=s|0,this.F=c|0,this.G=u|0,this.H=b|0}process(e,t){for(let m=0;m<16;m++,t+=4)Me[m]=e.getUint32(t,!1);for(let m=16;m<64;m++){let y=Me[m-15],w=Me[m-2],P=we(y,7)^we(y,18)^y>>>3,A=we(w,17)^we(w,19)^w>>>10;Me[m]=A+Me[m-7]+P+Me[m-16]|0}let{A:o,B:r,C:s,D:c,E:u,F:b,G:l,H:d}=this;for(let m=0;m<64;m++){let y=we(u,6)^we(u,11)^we(u,25),w=d+y+go(u,b,l)+nr[m]+Me[m]|0,A=(we(o,2)^we(o,13)^we(o,22))+Po(o,r,s)|0;d=l,l=b,b=u,u=c+w|0,c=s,s=r,r=o,o=w+A|0}o=o+this.A|0,r=r+this.B|0,s=s+this.C|0,c=c+this.D|0,u=u+this.E|0,b=b+this.F|0,l=l+this.G|0,d=d+this.H|0,this.set(o,r,s,c,u,b,l,d)}roundClean(){Me.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Ao=bo(()=>new In);import{PublicKey as fr}from"@solana/web3.js";import Io,{isBN as Bo}from"bn.js";import{bits as or,BitStructure as Il,blob as ir,Blob as Bl,cstr as xl,f32 as Sl,f32be as Kl,f64 as Cl,f64be as Rl,greedy as Ll,Layout as rr,ns64 as Ol,ns64be as Nl,nu64 as Ml,nu64be as Fl,offset as ar,s16 as vl,s16be as _l,s24 as Vl,s24be as El,s32 as sr,s32be as Dl,s40 as Wl,s40be as ql,s48 as Ul,s48be as Gl,s8 as zl,seq as ur,struct as Xl,Structure as cr,u16 as lr,u16be as Yl,u24 as Hl,u24be as Ql,u32 as mr,u32be as Zl,u40 as jl,u40be as $l,u48 as Jl,u48be as em,u8 as dr,UInt as pr,union as tm,Union as nm,unionLayoutDiscriminator as om,utf8 as im}from"@solana/buffer-layout";var Vt=rr,wo=cr;var Bn=pr;var ko=dr,te=lr;var Et=mr;var ke=sr;var To=ur;var G=ir;var xn=or,ho=ar;var We=class extends Vt{constructor(t,o,r){super(t,r);this.blob=G(t),this.signed=o}decode(t,o=0){let r=new Io(this.blob.decode(t,o),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,o,r=0){return typeof t=="number"&&(t=new Io(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,r)}},Dt=class extends Vt{constructor(t){super(8,t);this._lower=xn(Et(),!1),this._upper=xn(Et(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,o=0){let r=this._lower.decode(t,o),s=this._upper.decode(t,o+this._lower.span);return v(v({},r),s)}encode(t,o,r=0){return this._lower.encode(t,o,r)+this._upper.encode(t,o,r+this._lower.span)}};function T(i){return new Bn(1,i)}function ee(i){return new Bn(4,i)}function n(i){return new We(8,!1,i)}function W(i){return new We(16,!1,i)}function xo(i){return new We(1,!0,i)}function Ze(i){return new We(8,!0,i)}function So(i){return new We(16,!0,i)}var pt=class extends Vt{constructor(t,o,r,s){super(t.span,s);this.layout=t,this.decoder=o,this.encoder=r}decode(t,o){return this.decoder(this.layout.decode(t,o))}encode(t,o,r){return this.layout.encode(this.encoder(t),o,r)}getSpan(t,o){return this.layout.getSpan(t,o)}};function a(i){return new pt(G(32),e=>new fr(e),e=>e.toBuffer(),i)}function ye(i){return new pt(ko(),yr,br,i)}function yr(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function br(i){return i?1:0}function Ko(i,e){let t=Et("length"),o=h([t,B(i,ho(t,-t.span),"values")]);return new pt(o,({values:r})=>r,r=>({values:r}),e)}var Sn=class extends wo{decode(e,t){return super.decode(e,t)}};function h(i,e,t){return new Sn(i,e,t)}function B(i,e,t){let o,r=typeof e=="number"?e:Bo(e)?e.toNumber():new Proxy(e,{get(s,c){if(!o){let u=Reflect.get(s,"count");o=Bo(u)?u.toNumber():u,Reflect.set(s,"count",o)}return Reflect.get(s,c)},set(s,c,u){return c==="count"&&(o=u),Reflect.set(s,c,u)}});return To(i,r,t)}var je=h([a("mint"),a("owner"),n("amount"),ee("delegateOption"),a("delegate"),T("state"),ee("isNativeOption"),n("isNative"),n("delegatedAmount"),ee("closeAuthorityOption"),a("closeAuthority")]);function qe({fromPublicKey:i,programId:e=Ar,assignSeed:t}){let o=t?btoa(t).slice(0,32):gr.generate().publicKey.toBase58().slice(0,32);return{publicKey:wr(i,o,e),seed:o}}function wr(i,e,t){let o=Buffer.concat([i.toBuffer(),Buffer.from(e),t.toBuffer()]),r=Ao(o);return new Pr(r)}function Co(i){let{mint:e,tokenAccount:t,owner:o,programId:r=ft}=i;return Br(t,e,o,r)}function Kn(i){let{tokenAccount:e,payer:t,multiSigners:o=[],owner:r,programId:s=ft}=i;return Ir(e,t,r,o,s)}async function yt(i){let{connection:e,amount:t,commitment:o,payer:r,owner:s,skipCloseAccount:c}=i,u=await e.getMinimumBalanceForRentExemption(je.span,o),b=D(t).add(new hr(u)),l=qe({fromPublicKey:r,programId:ft});return{addresses:{newAccount:l.publicKey},signers:[],instructions:[Tr.createAccountWithSeed({fromPubkey:r,basePubkey:r,seed:l.seed,newAccountPubkey:l.publicKey,lamports:b.toNumber(),space:je.span,programId:ft}),Co({mint:new kr(se.address),tokenAccount:l.publicKey,owner:s,programId:ft})],instructionTypes:[U.CreateAccount,U.InitAccount],endInstructionTypes:c?[]:[U.CloseAccount],endInstructions:c?[]:[Kn({tokenAccount:l.publicKey,payer:r,owner:s})]}}import{PublicKey as xw}from"@solana/web3.js";import{AccountLayout as Cw,MintLayout as Rw,NATIVE_MINT as Lw,TOKEN_PROGRAM_ID as Nw}from"@solana/spl-token";import{PublicKey as xr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Sr}from"@solana/spl-token";function de(i,e,t){return me([i.toBuffer(),(t!=null?t:Sr).toBuffer(),e.toBuffer()],new xr("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import dd from"bn.js";import{PublicKey as Rn}from"@solana/web3.js";import{PublicKey as F}from"@solana/web3.js";var Ro=new F("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Lo=new F("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Oo=new F("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),bt=new F("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),hd=new F("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Kr=new F("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),No=new F("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Mo=new F("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Id=new F("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Cr=new F("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Fo=new F("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Rr=new F("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Lr=new F("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),vo=new F("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Bd=new F("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Or=new F("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Cn=new F("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Nr=new F("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),xd=new F("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Mr=new F("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Fr=new F("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),vr=new F("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Sd=new F("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Kd=new F("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Cd=new F("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Rd=new F("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ld=new F("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ce={OPEN_BOOK_PROGRAM:new F("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new F("Ray1111111111111111111111111111111111111111"),AMM_V4:new F("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new F("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new F("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new F("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new F("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PRO