@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 107 kB
JavaScript
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 Ks}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 Es,TOKEN_PROGRAM_ID as Ds,getTransferFeeConfig as Ws,unpackMint as qs}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 DC 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(oe)?le:t;if(e&&t.toString()===oe.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"),wu=new J("SysvarC1ock11111111111111111111111111111111"),Ct=new J("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Wi=new J("Sysvar1nstructions1111111111111111111111111"),qi=ro.programId,ku=new J("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Tu=new J("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),hu=new J("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Iu=new J("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Bu=new J("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),xu=new J("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Su=new J("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ku=new J("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Cu=new J("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ru=new J("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Lu=new J("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new J("So11111111111111111111111111111111111111112"),oe=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===oe.toBase58()||e instanceof ln&&oe.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)}},re=mn;re.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 qK}from"lodash";import tc 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 Ic=H("Raydium_Api");import{PublicKey as zm,SystemProgram as Xm}from"@solana/web3.js";import{AccountLayout as jm,createAssociatedTokenAccountIdempotentInstruction as $m,TOKEN_PROGRAM_ID as Jm,TOKEN_2022_PROGRAM_ID as ed}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 Fm,TOKEN_PROGRAM_ID as ft}from"@solana/spl-token";import{Keypair as gr,PublicKey as Pr}from"@solana/web3.js";import wm 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 pl=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()}},fl={}.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 hl,blob as ir,Blob as Il,cstr as Bl,f32 as xl,f32be as Sl,f64 as Kl,f64be as Cl,greedy as Rl,Layout as rr,ns64 as Ll,ns64be as Ol,nu64 as Nl,nu64be as Ml,offset as ar,s16 as Fl,s16be as vl,s24 as _l,s24be as Vl,s32 as sr,s32be as El,s40 as Dl,s40be as Wl,s48 as ql,s48be as Ul,s8 as Gl,seq as ur,struct as zl,Structure as cr,u16 as lr,u16be as Xl,u24 as Yl,u24be as Hl,u32 as mr,u32be as Ql,u40 as Zl,u40be as jl,u48 as $l,u48be as Jl,u8 as dr,UInt as pr,union as em,Union as tm,unionLayoutDiscriminator as nm,utf8 as om}from"@solana/buffer-layout";var Vt=rr,wo=cr;var Bn=pr;var ko=dr,ie=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 Tw}from"@solana/web3.js";import{AccountLayout as Bw,MintLayout as xw,NATIVE_MINT as Sw,TOKEN_PROGRAM_ID as Cw}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 md 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"),Td=new F("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Kr=new F("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),No=new F("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Mo=new F("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),hd=new F("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Cr=new F("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Fo=new F("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Rr=new F("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Lr=new F("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),vo=new F("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Id=new F("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Or=new F("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Cn=new F("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Nr=new F("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bd=new F("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Mr=new F("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Fr=new F("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),vr=new F("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),xd=new F("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Sd=new F("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Kd=new F("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Cd=new F("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Rd=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