@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 80 kB
JavaScript
var Ko=Object.defineProperty,Co=Object.defineProperties;var Ro=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var yn=Object.prototype.hasOwnProperty,bn=Object.prototype.propertyIsEnumerable;var fn=(o,t,n)=>t in o?Ko(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,L=(o,t)=>{for(var n in t||(t={}))yn.call(t,n)&&fn(o,n,t[n]);if(at)for(var n of at(t))bn.call(t,n)&&fn(o,n,t[n]);return o},V=(o,t)=>Co(o,Ro(t));var de=(o,t)=>{var n={};for(var i in o)yn.call(o,i)&&t.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&at)for(var i of at(o))t.indexOf(i)<0&&bn.call(o,i)&&(n[i]=o[i]);return n};import ie from"bn.js";import{PublicKey as No}from"@solana/web3.js";import{get as gn,set as Lo}from"lodash";var Ct=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},Pn={},Oo={};function _(o){let t=gn(Pn,o);if(!t){let n=gn(Oo,o);t=new Ct({name:o,logLevel:n}),Lo(Pn,o,t)}return t}import{MINT_SIZE as za,TOKEN_PROGRAM_ID as Xa,getTransferFeeConfig as Ya,unpackMint as Qa}from"@solana/spl-token";var Rt=_("Raydium_accountInfo_util");async function pe(o,t,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=L({batchRequest:!1},n),d=Lt(t,c),p=new Array(d.length).fill([]);if(i){let g=d.map(K=>{let k=o._buildArgs([K.map(b=>b.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:k}}),P=Lt(g,10);p=(await(await Promise.all(P.map(async K=>await o._rpcBatchRequest(K)))).flat()).map(K=>(K.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${K.error.message}`),K.result.value.map(k=>{if(k){let{data:b,executable:C,lamports:I,owner:A,rentEpoch:T}=k;return b.length!==2&&b[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(b[0],"base64"),executable:C,lamports:I,owner:new No(A),rentEpoch:T}}return null})))}else try{p=await Promise.all(d.map(g=>o.getMultipleAccountsInfo(g,a)))}catch(g){g instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return p.flat()}async function we(o,t,n){let i=await pe(o,t.map(a=>a.pubkey),n);return t.map((a,c)=>V(L({},a),{accountInfo:i[c]}))}import Ke from"bn.js";import wC from"decimal.js";import Wo from"big.js";import ct from"bn.js";import Mo from"toformat";var Fo=Mo,Xe=Fo;import ut from"big.js";import Vo from"bn.js";import _o from"decimal.js-light";import Ye from"bn.js";var An=9007199254740991;function U(o){let t=_("Raydium_parseBigNumberish");if(o instanceof Ye)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ye(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=An||o<=-An)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ye(String(o))):typeof o=="bigint"?new Ye(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ye(0))}var st=_("module/fraction"),Ot=Xe(ut),Qe=Xe(_o),Eo={[0]:Qe.ROUND_DOWN,[1]:Qe.ROUND_HALF_UP,[2]:Qe.ROUND_UP},Do={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},W=class{constructor(t,n=new Vo(1)){this.numerator=U(t),this.denominator=U(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let n=t instanceof W?t:new W(U(t));return this.denominator.eq(n.denominator)?new W(this.numerator.add(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof W?t:new W(U(t));return this.denominator.eq(n.denominator)?new W(this.numerator.sub(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof W?t:new W(U(t));return new W(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof W?t:new W(U(t));return new W(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<=0&&st.logWithError(`${t} is not positive.`),Qe.set({precision:t+1,rounding:Eo[i]});let a=new Qe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return a.toFormat(a.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<0&&st.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=Do[i]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var qo=_("Raydium_amount"),wn=Xe(Wo);function Uo(o,t){let n="0",i="0";if(o.includes(".")){let a=o.split(".");a.length===2?([n,i]=a,i=i.padEnd(t,"0")):qo.logWithError(`invalid number string, num: ${o}`)}else n=o;return[n,i.slice(0,t)||i]}var ae=class extends W{constructor(n,i,a=!0,c){let d=new ct(0),p=Nt.pow(new ct(n.decimals));if(a)d=U(i);else{let g=new ct(0),P=new ct(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[y,K]=Uo(i.toString(),n.decimals);g=U(y),P=U(K)}g=g.mul(p),d=g.add(P)}super(d,p);this.logger=_(c||"TokenAmount"),this.token=n}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(n){return this.token.equals(n.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(n.raw)}lt(n){return this.token.equals(n.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(n.raw)}add(n){return this.token.equals(n.token)||this.logger.logWithError("add token not equals"),new ae(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new ae(this.token,this.raw.sub(n.raw))}toSignificant(n=this.token.decimals,i,a=0){return super.toSignificant(n,i,a)}toFixed(n=this.token.decimals,i,a=0){return n>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(n,i,a)}toExact(n={groupSeparator:""}){return wn.DP=this.token.decimals,new wn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};import{PublicKey as Go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kn}from"@solana/spl-token";var lt={chainId:101,address:Go.default.toBase58(),programId:kn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:kn.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 vt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Tn,SYSVAR_RENT_PUBKEY as zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xo}from"@solana/spl-token";function Re({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Yo=[Re({pubkey:Xo,isWritable:!1}),Re({pubkey:Tn.programId,isWritable:!1}),Re({pubkey:zo,isWritable:!1})];function hn({publicKey:o,transformSol:t}){let n=Mt(o.toString());if(n instanceof X)return t&&n.equals(he)?Pe:n;if(t&&n.toString()===he.toBase58())return Pe;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Mt(o){try{return new X(o)}catch{return o}}var Ft=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ze=new X("SysvarRent111111111111111111111111111111111"),Ss=new X("SysvarC1ock11111111111111111111111111111111"),mt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Qo=new X("Sysvar1nstructions1111111111111111111111111"),Zo=Tn.programId,xs=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ks=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Cs=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Rs=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ls=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Os=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ns=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ms=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Fs=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),vs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Vs=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Pe=new X("So11111111111111111111111111111111111111112"),he=X.default;var Vt=class{constructor({mint:t,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:d=!1}){if(t===he.toBase58()||t instanceof vt&&he.equals(t)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new vt(fe.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=a||t.toString().substring(0,6),this.mint=c?vt.default:hn({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Vt;J.WSOL=new Vt(V(L({},fe),{mint:fe.address}));var _t=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},dt=_t;dt.SOL=new _t(lt);import Ho from"bn.js";var In=new W(new Ho(100)),Ae=class extends W{toSignificant(t=5,n,i){return this.mul(In).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(In).toFixed(t,n,i)}};var jo=_("Raydium_price"),ce=class extends W{constructor(n){let{baseToken:i,quoteToken:a,numerator:c,denominator:d}=n;super(c,d);this.baseToken=i,this.quoteToken=a,this.scalar=new W(Et(i.decimals),Et(a.decimals))}get raw(){return new W(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ce({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&jo.logWithError("mul token not equals");let i=super.mul(n);return new ce({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(n=this.quoteToken.decimals,i,a){return this.adjusted.toSignificant(n,i,a)}toFixed(n=this.quoteToken.decimals,i,a){return this.adjusted.toFixed(n,i,a)}};import{merge as TK}from"lodash";import su from"axios";var Bn={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"},$o=V(L({},Bn),{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 Ru=_("Raydium_Api");import{PublicKey as Zl,SystemProgram as Hl}from"@solana/web3.js";import{AccountLayout as tm,createAssociatedTokenAccountIdempotentInstruction as nm,TOKEN_PROGRAM_ID as om,TOKEN_2022_PROGRAM_ID as im}from"@solana/spl-token";import{PublicKey as Fe,sendAndConfirmTransaction as zt,SystemProgram as ii,Transaction as $e,TransactionMessage as Je,VersionedTransaction as et}from"@solana/web3.js";import ri from"axios";import{PublicKey as Dt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Wt({connection:o,address:t,cluster:n="mainnet"}){let i=await pe(o,[...new Set(t.map(c=>c.toString()))].map(c=>new Dt(c))),a={};for(let c=0;c<t.length;c++){let d=i[c],p=t[c];if(!d)continue;let g=new Ne({key:p,state:Ne.deserialize(d.data)});a[p.toString()]=g,n==="devnet"?Oe[p.toString()]=g:Le[p.toString()]=g}return a}var Le={},qt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[t])return Le;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Le[t]=new Ne({key:n,state:Ne.deserialize(i.data)})),Le},Oe={},Ut=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[t])return Oe;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Oe[t]=new Ne({key:n,state:Ne.deserialize(i.data)})),Oe};var Z={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 Sn,Keypair as Kn,PublicKey as Jo,Transaction as Cn,TransactionMessage as ei,VersionedTransaction as Rn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ti}from"@solana/spl-token";var xn=_("Raydium_txUtil"),Ln=1644;function pt(o){let t=[],n=[];return o.microLamports&&(t.push(Sn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(t.push(Sn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Me(o,t){var i,a;let n=t!=null?t:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function ft(o,t){return o.getSignatureStatuses([t]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(t,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:t}))},"confirmed")})}function Gt(o,t){o.length<1&&xn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&xn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Cn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Ln}catch{return!1}}function se(o,t){let[n,i]=Jo.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function He({instructions:o,payer:t,signers:n}){return Gt(o,[t,...n])}function je({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=Kn.generate().publicKey.toString()}){let c=new ei({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Rn(c).serialize()).toString("base64").length<Ln}catch{return!1}}var ni=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),oi=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Rn&&(t=ni(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ie(o){let t=[];return o.forEach(n=>{n instanceof Cn&&(n.recentBlockhash||(n.recentBlockhash=ti.toBase58()),n.feePayer||(n.feePayer=Kn.generate().publicKey)),t.push(oi(n))}),console.log("simulate tx string:",t),t}var yt=2e3,bt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 i;let t=(await ri.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=pt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ii.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Fe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...d.filter(p=>p!==Fe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(V(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new $e;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var y;let{recentBlockHash:c,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:g}=a||{},P=c!=null?c:await Me(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),Ie([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:p?await zt(this.connection,n,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let K=await this.signAllTransactions([n]);if(this.signers.length)for(let k of K)try{k.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(K[0].serialize(),{skipPreflight:d}),signedTx:K[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var P;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:a}=this.build(i),c=n.filter(y=>y.transaction.instructions.length>0),d=[a,...c.map(y=>y.transaction)],p=[this.signers,...c.map(y=>y.signers)],g=[...this.instructionTypes,...c.map(y=>y.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(y=>{y.some(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:g,execute:async y=>{var T;let{sequentially:K,onTxUpdate:k,skipTxCount:b=0,recentBlockHash:C,skipPreflight:I=!0}=y||{},A=C!=null?C:await Me(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(K){let h=[],F=0;for(let v of d){if(++F,F<=b)continue;let w=await zt(this.connection,v,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});h.push(w)}return{txIds:h,signedTxs:d}}return{txIds:await await Promise.all(d.map(async h=>(h.recentBlockhash=A,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:I})))),signedTxs:d}}if(this.signAllTransactions){let h=d.map((v,w)=>(v.recentBlockhash=A,p[w].length&&v.sign(...p[w]),v));Ie(h);let F=await this.signAllTransactions(h);if(K){let v=0,w=[],B=async()=>{if(!F[v])return;let S=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:I});w.push({txId:S,status:"sent",signedTx:F[v]}),k==null||k([...w]),v++;let R=!1,O=null,E=null,re=G=>{O!==null&&clearInterval(O),E!==null&&this.connection.removeSignatureListener(E);let q=w.findIndex($=>$.txId===S);if(q>-1){if(w[q].status==="error"||w[q].status==="success")return;w[q].status=G.err?"error":"success"}k==null||k([...w]),G.err||B()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var G;if(R){clearInterval(O);return}try{let q=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(R=!0,clearInterval(O),re({err:((G=q.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",S))}catch(q){R=!0,clearInterval(O),console.error("getTransaction timeout:",q,S)}},yt)),E=this.connection.onSignature(S,G=>{if(R){this.connection.removeSignatureListener(E);return}R=!0,re(G)},"confirmed"),this.connection.getSignatureStatus(S)};return await B(),{txIds:w.map(S=>S.txId),signedTxs:F}}else{let v=[];for(let w=0;w<F.length;w+=1){let B=await this.connection.sendRawTransaction(F[w].serialize(),{skipPreflight:I});v.push(B)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var I;let C=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=C,d=de(C,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=L(L({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),P=[];for(let A of g)p[A]===void 0&&P.push(new Fe(A));let y=await Wt({connection:this.connection,address:P});for(let[A,T]of Object.entries(y))p[A]=T;let K=a?Fe.default.toBase58():c!=null?c:await Me(this.connection,this.blockhashCommitment),k=new Je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((I=this.owner)==null?void 0:I.signer)&&!this.signers.some(A=>A.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let b=new et(k);return b.sign(this.signers),{builder:this,transaction:b,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async A=>{var v;let{skipPreflight:T=!0,sendAndConfirm:h,notSendToRpc:F}=A||{};if(Ie([b]),(v=this.owner)!=null&&v.isKeyPair){let w=await this.connection.sendTransaction(b,{skipPreflight:T});return h&&await ft(this.connection,w),{txId:w,signedTx:b}}if(this.signAllTransactions){let w=await this.signAllTransactions([b]);if(this.signers.length)for(let B of w)try{B.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(w[0],{skipPreflight:T}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var P;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:a}=await this.buildV0(i),c=n.filter(y=>y.builder.instructions.length>0),d=[a,...c.map(y=>y.transaction)],p=[this.signers,...c.map(y=>y.signers)],g=[...this.instructionTypes,...c.map(y=>y.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(y=>{y.some(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(y,K)=>{y.sign(p[K])}),{builder:this,transactions:d,signers:p,instructionTypes:g,buildProps:i,execute:async y=>{var I;let{sequentially:K,onTxUpdate:k,recentBlockHash:b,skipPreflight:C=!0}=y||{};if(b&&d.forEach(A=>A.message.recentBlockhash=b),Ie(d),(I=this.owner)!=null&&I.isKeyPair){if(K){let A=[];for(let T of d){let h=await this.connection.sendTransaction(T,{skipPreflight:C});await ft(this.connection,h),A.push(h)}return{txIds:A,signedTxs:d}}return{txIds:await Promise.all(d.map(async A=>await this.connection.sendTransaction(A,{skipPreflight:C}))),signedTxs:d}}if(this.signAllTransactions){let A=await this.signAllTransactions(d);if(K){let T=0,h=[],F=async()=>{if(!A[T])return;let v=await this.connection.sendTransaction(A[T],{skipPreflight:C});h.push({txId:v,status:"sent",signedTx:A[T]}),k==null||k([...h]),T++;let w=!1,B=null,S=null,R=O=>{B!==null&&clearInterval(B),S!==null&&this.connection.removeSignatureListener(S);let E=h.findIndex(re=>re.txId===v);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=O.err?"error":"success"}k==null||k([...h]),O.err||F()};this.loopMultiTxStatus&&(B=setInterval(async()=>{var O;if(w){clearInterval(B);return}try{let E=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(w=!0,clearInterval(B),R({err:((O=E.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",v))}catch(E){w=!0,clearInterval(B),console.error("getTransaction timeout:",E,v)}},yt)),S=this.connection.onSignature(v,O=>{if(w){this.connection.removeSignatureListener(S);return}w=!0,R(O)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:A}}else{let T=[];for(let h=0;h<A.length;h+=1){let F=await this.connection.sendTransaction(A[h],{skipPreflight:C});T.push(F)}return{txIds:T,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var k;let K=t||{},{splitIns:n=[],computeBudgetConfig:i}=K,a=de(K,["splitIns","computeBudgetConfig"]),c=i?pt(i):{instructions:[],instructionTypes:[]},d=this.signers.reduce((b,C)=>V(L({},b),{[C.publicKey.toBase58()]:C}),{}),p=[],g=[],P=[],y=0;if(this.allInstructions.forEach(b=>{let C=[...P,b],I=i?[...c.instructions,...C]:C,T=[...new Set(C.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Fe(h));if(b!==n[y]&&P.length<12&&(He({instructions:I,payer:this.feePayer,signers:T})||He({instructions:C,payer:this.feePayer,signers:T})))P.push(b);else{if(P.length===0)throw Error("item ins too big");y+=b===n[y]?1:0,He({instructions:i?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:T})?p.push(new $e().add(...c.instructions,...P)):p.push(new $e().add(...P)),g.push(Array.from(new Set(P.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>d[h]).filter(h=>h!==void 0)),P=[b]}}),P.length>0){let C=[...new Set(P.map(I=>I.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat()).values()].map(I=>d[I]).filter(I=>I!==void 0);He({instructions:i?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:C.map(I=>I.publicKey)})?p.push(new $e().add(...c.instructions,...P)):p.push(new $e().add(...P)),g.push(C)}return p.forEach(b=>b.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&g.forEach(b=>{b.some(C=>C.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),{builder:this,transactions:p,signers:g,instructionTypes:this.instructionTypes,execute:async b=>{var v;let{sequentially:C,onTxUpdate:I,skipTxCount:A=0,recentBlockHash:T,skipPreflight:h=!0}=b||{},F=T!=null?T:await Me(this.connection,this.blockhashCommitment);if(p.forEach(async(w,B)=>{w.recentBlockhash=F,g[B].length&&w.sign(...g[B])}),Ie(p),(v=this.owner)!=null&&v.isKeyPair){if(C){let w=0,B=[];for(let S of p){if(++w,w<=A){B.push("tx skipped");continue}let R=await zt(this.connection,S,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});B.push(R)}return{txIds:B,signedTxs:p}}return{txIds:await Promise.all(p.map(async w=>await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let w=await this.signAllTransactions(p.slice(A,p.length)),B=[...p.slice(0,A),...w];if(C){let S=0,R=[],O=async()=>{if(!B[S])return;S<A&&(R.push({txId:"",status:"success",signedTx:B[S]}),I==null||I([...R]),S++,O());let E=await this.connection.sendRawTransaction(B[S].serialize(),{skipPreflight:h});R.push({txId:E,status:"sent",signedTx:B[S]}),I==null||I([...R]),S++;let re=!1,G=null,q=null,$=z=>{G!==null&&clearInterval(G),q!==null&&this.connection.removeSignatureListener(q);let ne=R.findIndex(be=>be.txId===E);if(ne>-1){if(R[ne].status==="error"||R[ne].status==="success")return;R[ne].status=z.err?"error":"success"}I==null||I([...R]),z.err||O()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var z;if(re){clearInterval(G);return}try{let ne=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(re=!0,clearInterval(G),$({err:((z=ne.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",E))}catch(ne){re=!0,clearInterval(G),console.error("getTransaction timeout:",ne,E)}},yt)),q=this.connection.onSignature(E,z=>{if(re){this.connection.removeSignatureListener(q);return}re=!0,$(z)},"confirmed"),this.connection.getSignatureStatus(E)};return await O(),{txIds:R.map(E=>E.txId),signedTxs:B}}else{let S=[];for(let R=0;R<B.length;R+=1){let O=await this.connection.sendRawTransaction(B[R].serialize(),{skipPreflight:h});S.push(O)}return{txIds:S,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:d=12}=F,p=de(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=L(L({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),a),P=Array.from(new Set([...this.lookupTableAddress,...c])),y=[];for(let w of P)g[w]===void 0&&y.push(new Fe(w));let K=await Wt({connection:this.connection,address:y});for(let[w,B]of Object.entries(K))g[w]=B;let k=n?pt(n):{instructions:[],instructionTypes:[]},b=await Me(this.connection,this.blockhashCommitment),C=this.signers.reduce((w,B)=>V(L({},w),{[B.publicKey.toBase58()]:B}),{}),I=[],A=[],T=[],h=0;if(this.allInstructions.forEach(w=>{let B=[...T,w],S=n?[...k.instructions,...B]:B;if(w!==i[h]&&T.length<d&&(je({instructions:S,payer:this.feePayer,lookupTableAddressAccount:g})||je({instructions:B,payer:this.feePayer,lookupTableAddressAccount:g})))T.push(w);else{if(T.length===0)throw Error("item ins too big");h+=w===i[h]?1:0;let R={};for(let O of[...new Set(P)])g[O]!==void 0&&(R[O]=g[O]);if(n&&je({instructions:[...k.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:b})){let O=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...k.instructions,...T]}).compileToV0Message(Object.values(g));I.push(new et(O))}else{let O=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...T]}).compileToV0Message(Object.values(g));I.push(new et(O))}A.push(Array.from(new Set(T.map(O=>O.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(O=>C[O]).filter(O=>O!==void 0)),T=[w]}}),T.length>0){let B=[...new Set(T.map(S=>S.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(S=>C[S]).filter(S=>S!==void 0);if(n&&je({instructions:[...k.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:b})){let S=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...k.instructions,...T]}).compileToV0Message(Object.values(g));I.push(new et(S))}else{let S=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...T]}).compileToV0Message(Object.values(g));I.push(new et(S))}A.push(B)}return(v=this.owner)!=null&&v.signer&&A.forEach(w=>{w.some(B=>B.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),I.forEach((w,B)=>{w.sign(A[B])}),{builder:this,transactions:I,buildProps:t,signers:A,instructionTypes:this.instructionTypes,execute:async w=>{var re;let{sequentially:B,onTxUpdate:S,skipTxCount:R=0,recentBlockHash:O,skipPreflight:E=!0}=w||{};if(I.map(async(G,q)=>{A[q].length&&G.sign(A[q]),O&&(G.message.recentBlockhash=O)}),Ie(I),(re=this.owner)!=null&&re.isKeyPair){if(B){let G=0,q=[];for(let $ of I){if(++G,G<=R){console.log("skip tx: ",G),q.push("tx skipped");continue}let z=await this.connection.sendTransaction($,{skipPreflight:E});await ft(this.connection,z),q.push(z)}return{txIds:q,signedTxs:I}}return{txIds:await Promise.all(I.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:E}))),signedTxs:I}}if(this.signAllTransactions){let G=await this.signAllTransactions(I.slice(R,I.length)),q=[...I.slice(0,R),...G];if(B){let $=0,z=[],ne=async()=>{if(!q[$])return;if($<R){z.push({txId:"",status:"success",signedTx:q[$]}),S==null||S([...z]),$++,ne();return}let be=await this.connection.sendTransaction(q[$],{skipPreflight:E});z.push({txId:be,status:"sent",signedTx:q[$]}),S==null||S([...z]),$++;let Ge=!1,Ce=null,rt=null,pn=Te=>{Ce!==null&&clearInterval(Ce),rt!==null&&this.connection.removeSignatureListener(rt);let ge=z.findIndex(xo=>xo.txId===be);if(ge>-1){if(z[ge].status==="error"||z[ge].status==="success")return;z[ge].status=Te.err?"error":"success"}S==null||S([...z]),Te.err||ne()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var Te;if(Ge){clearInterval(Ce);return}try{let ge=await this.connection.getTransaction(be,{commitment:"confirmed",maxSupportedTransactionVersion:0});ge&&(Ge=!0,clearInterval(Ce),pn({err:((Te=ge.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",be))}catch(ge){Ge=!0,clearInterval(Ce),console.error("getTransaction timeout:",ge,be)}},yt)),rt=this.connection.onSignature(be,Te=>{if(Ge){this.connection.removeSignatureListener(rt);return}Ge=!0,pn(Te)},"confirmed"),this.connection.getSignatureStatus(be)};return ne(),{txIds:[],signedTxs:q}}else{let $=[];for(let z=0;z<q.length;z+=1){let ne=await this.connection.sendTransaction(q[z],{skipPreflight:E});$.push(ne)}return{txIds:$,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Xt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new bt({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(Xt(t))}logInfo(...t){this.logger.info(Xt(t))}logAndCreateError(...t){let n=Xt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Sl,SystemProgram as Kl}from"@solana/web3.js";import Ll from"bn.js";import{createCloseAccountInstruction as Fl,createInitializeAccountInstruction as vl,createTransferInstruction as Vl,TOKEN_PROGRAM_ID as _l}from"@solana/spl-token";import{Keypair as pl,PublicKey as fl}from"@solana/web3.js";import gl from"bn.js";import{TOKEN_PROGRAM_ID as wl}from"@solana/spl-token";import{PublicKey as gi}from"@solana/web3.js";import vn,{isBN as Vn}from"bn.js";import{bits as ai,BitStructure as Pc,blob as si,Blob as Ac,cstr as wc,f32 as kc,f32be as Tc,f64 as hc,f64be as Ic,greedy as Bc,Layout as ui,ns64 as Sc,ns64be as xc,nu64 as Kc,nu64be as Cc,offset as ci,s16 as Rc,s16be as Lc,s24 as Oc,s24be as Nc,s32 as li,s32be as Mc,s40 as Fc,s40be as vc,s48 as Vc,s48be as _c,s8 as Ec,seq as mi,struct as Dc,Structure as di,u16 as pi,u16be as Wc,u24 as qc,u24be as Uc,u32 as fi,u32be as Gc,u40 as zc,u40be as Xc,u48 as Yc,u48be as Qc,u8 as yi,UInt as bi,union as Zc,Union as Hc,unionLayoutDiscriminator as jc,utf8 as $c}from"@solana/buffer-layout";var gt=ui,On=di;var Yt=bi;var Nn=yi,H=pi;var Pt=fi;var le=li;var Mn=mi;var M=si;var Qt=ai,Fn=ci;var Se=class extends gt{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new vn(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new vn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},At=class extends gt{constructor(n){super(8,n);this._lower=Qt(Pt(),!1),this._upper=Qt(Pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),c=this._upper.decode(n,i+this._lower.span);return L(L({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function l(o){return new Yt(1,o)}function Y(o){return new Yt(4,o)}function e(o){return new Se(8,!1,o)}function N(o){return new Se(16,!1,o)}function _n(o){return new Se(1,!0,o)}function ve(o){return new Se(8,!0,o)}function En(o){return new Se(16,!0,o)}var tt=class extends gt{constructor(n,i,a,c){super(n.span,c);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new tt(M(32),t=>new gi(t),t=>t.toBuffer(),o)}function ue(o){return new tt(Nn(),Pi,Ai,o)}function Pi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ai(o){return o?1:0}function Dn(o,t){let n=Pt("length"),i=m([n,f(o,Fn(n,-n.span),"values")]);return new tt(i,({values:a})=>a,a=>({values:a}),t)}var Zt=class extends On{decode(t,n){return super.decode(t,n)}};function m(o,t,n){return new Zt(o,t,n)}function f(o,t,n){let i,a=typeof t=="number"?t:Vn(t)?t.toNumber():new Proxy(t,{get(c,d){if(!i){let p=Reflect.get(c,"count");i=Vn(p)?p.toNumber():p,Reflect.set(c,"count",i)}return Reflect.get(c,d)},set(c,d,p){return d==="count"&&(i=p),Reflect.set(c,d,p)}});return Mn(o,a,n)}var Ve=m([r("mint"),r("owner"),e("amount"),Y("delegateOption"),r("delegate"),l("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as Pg,SystemProgram as Ag}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as kg}from"@solana/spl-token";import{PublicKey as mm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pm}from"@solana/spl-token";import{PublicKey as x}from"@solana/web3.js";var qn=new x("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Un=new x("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Gn=new x("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ht=new x("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),gm=new x("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ki=new x("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),zn=new x("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Xn=new x("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Pm=new x("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ti=new x("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Yn=new x("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),hi=new x("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new x("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Qn=new x("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Am=new x("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Bi=new x("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),jt=new x("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Si=new x("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),wm=new x("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),xi=new x("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ki=new x("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ci=new x("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),km=new x("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Tm=new x("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),hm=new x("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Im=new x("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Bm=new x("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ke={OPEN_BOOK_PROGRAM:new x("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new x("Ray1111111111111111111111111111111111111111"),AMM_V4:new x("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new x("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new x("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new x("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new x("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new x("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new x("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new x("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new x("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new x("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:x.default,Router:new x("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new x("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new x("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new x("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new x("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new x("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new x("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new x("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new x("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new x("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new x("Ray1111111111111111111111111111111111111111")};import Lg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Sy,TOKEN_2022_PROGRAM_ID as xy,TOKEN_PROGRAM_ID as Ky}from"@solana/spl-token";import{PublicKey as Ry}from"@solana/web3.js";import Oy from"bn.js";import My from"decimal.js";import{TOKEN_PROGRAM_ID as Em}from"@solana/spl-token";import{PublicKey as Um}from"@solana/web3.js";var Ri=m([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Qf,TOKEN_2022_PROGRAM_ID as Zf,TOKEN_PROGRAM_ID as Hf}from"@solana/spl-token";import{Keypair as Jf,PublicKey as ey,SystemProgram as ny,TransactionInstruction as oy}from"@solana/web3.js";import ry from"bn.js";import D from"bn.js";var _e=new D(1).shln(64);var Li=new D(1).shln(128),$t=new D(1).shln(64).subn(1),Oi=new D(1).shln(128).subn(1);var Ee=new D("4295048016"),De=new D("79226673521066979257578248091"),Ni=new D("59543866431248"),Mi=new D("184467440737095516"),Fi=new D("15793534762490258745");var Jt=60,td=new D("18446743708227953217"),vi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var nt=3,Zn=100;var Hn=10,jn=100,kt=14;var j=new D(0),We=new D(1),nd=new D(-1);var od=new D("18446744073700000000");var Vi=m([M(8),l("bump"),H("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),f(Y(),1),r("fundOwner"),f(e(),3)]),_i=m([Y("blockTimestamp"),ve("tickCumulative"),f(e(),4)]),$n=m([M(8),ue("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),f(_i,Zn,"observations"),f(e(),4)]),Ei=m([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),le("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),f(l(),46)]),Di=m([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),N("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),N("growthGlobalX64")]),en=m([M(8),l("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),H("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),le("tickCurrent"),Y(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(N(),4),l("status"),l("feeOn"),M(6),f(Di,nt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ei.replicate("dynamicFeeInfo"),f(e(),46)]),Wi=m([N("growthInsideLastX64"),e("rewardAmountOwed")]),qi=m([M(8),l("bump"),r("nftMint"),r("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Wi,nt,"rewardInfos"),e("recentEpoch"),f(e(),7)]),sd=m([M(8),l("bump"),r("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(N(),nt,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Ui=m([le("tick"),En("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),f(N(),nt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),N("unfilledRatioX64"),f(Y(),3)]),Jn=m([M(8),r("poolId"),le("startTickIndex"),f(Ui,Jt,"ticks"),l("initializedTickCount"),e("recentEpoch"),f(l(),107)]),Gi=m([M(8),l("bump"),f(r(),Hn,"operationOwners"),f(r(),jn,"whitelistMints")]),zi=m([M(8),r("poolId"),r("owner"),le("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),N("unfilledRatioX64"),f(e(),4)]),eo=m([M(8),r("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),ud=m([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(e(),8)]),Xi=m([M(8),r("wallet"),l("nonceIndex"),e("orderNonce"),f(e(),4)]),cd=m([e(),l("bump"),r("owner"),r("poolId"),r("positionId"),r("n