@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 80.1 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 Xa,TOKEN_PROGRAM_ID as Ya,getTransferFeeConfig as Qa,unpackMint as Za}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 hC 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"),xs=new X("SysvarC1ock11111111111111111111111111111111"),mt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Qo=new X("Sysvar1nstructions1111111111111111111111111"),Zo=Tn.programId,Ks=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Cs=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Rs=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ls=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Os=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ns=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ms=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Fs=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),vs=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Vs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),_s=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)}},ee=Vt;ee.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 BK}from"lodash";import uu 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 Lu=_("Raydium_Api");import{PublicKey as Hl,SystemProgram as jl}from"@solana/web3.js";import{AccountLayout as nm,createAssociatedTokenAccountIdempotentInstruction as om,TOKEN_PROGRAM_ID as im,TOKEN_2022_PROGRAM_ID as rm}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 H={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(H.SetComputeUnitPrice)),o.units&&(t.push(Sn.setComputeUnitLimit({units:o.units})),n.push(H.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(H.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(J=>J.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,J=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),J({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,J(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 J of I){if(++G,G<=R){console.log("skip tx: ",G),q.push("tx skipped");continue}let z=await this.connection.sendTransaction(J,{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 J=0,z=[],ne=async()=>{if(!q[J])return;if(J<R){z.push({txId:"",status:"success",signedTx:q[J]}),S==null||S([...z]),J++,ne();return}let be=await this.connection.sendTransaction(q[J],{skipPreflight:E});z.push({txId:be,status:"sent",signedTx:q[J]}),S==null||S([...z]),J++;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 J=[];for(let z=0;z<q.length;z+=1){let ne=await this.connection.sendTransaction(q[z],{skipPreflight:E});J.push(ne)}return{txIds:J,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 xl,SystemProgram as Cl}from"@solana/web3.js";import Ol from"bn.js";import{createCloseAccountInstruction as vl,createInitializeAccountInstruction as Vl,createTransferInstruction as _l,TOKEN_PROGRAM_ID as El}from"@solana/spl-token";import{Keypair as fl,PublicKey as yl}from"@solana/web3.js";import Pl from"bn.js";import{TOKEN_PROGRAM_ID as kl}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 Ac,blob as si,Blob as wc,cstr as kc,f32 as Tc,f32be as hc,f64 as Ic,f64be as Bc,greedy as Sc,Layout as ui,ns64 as xc,ns64be as Kc,nu64 as Cc,nu64be as Rc,offset as ci,s16 as Lc,s16be as Oc,s24 as Nc,s24be as Mc,s32 as li,s32be as Fc,s40 as vc,s40be as Vc,s48 as _c,s48be as Ec,s8 as Dc,seq as mi,struct as Wc,Structure as di,u16 as pi,u16be as qc,u24 as Uc,u24be as Gc,u32 as fi,u32be as zc,u40 as Xc,u40be as Yc,u48 as Qc,u48be as Zc,u8 as yi,UInt as bi,union as Hc,Union as jc,unionLayoutDiscriminator as $c,utf8 as Jc}from"@solana/buffer-layout";var gt=ui,On=di;var Yt=bi;var Nn=yi,Q=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 Tg,SystemProgram as hg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Bg}from"@solana/spl-token";import{PublicKey as dm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fm}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"),Pm=new x("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ki=new x("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),zn=new x("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Xn=new x("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Am=new x("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ti=new x("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Yn=new x("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),hi=new x("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new x("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Qn=new x("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),wm=new x("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Bi=new x("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),jt=new x("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Si=new x("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),km=new x("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),xi=new x("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ki=new x("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ci=new x("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Tm=new x("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),hm=new x("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Im=new x("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Bm=new x("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Sm=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 Fg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ry,TOKEN_2022_PROGRAM_ID as Ly,TOKEN_PROGRAM_ID as Oy}from"@solana/spl-token";import{PublicKey as My}from"@solana/web3.js";import vy from"bn.js";import _y from"decimal.js";import{TOKEN_PROGRAM_ID as Dm}from"@solana/spl-token";import{PublicKey as Gm}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 $f,TOKEN_2022_PROGRAM_ID as Jf,TOKEN_PROGRAM_ID as ey}from"@solana/spl-token";import{Keypair as oy,PublicKey as iy,SystemProgram as ay,TransactionInstruction as sy}from"@solana/web3.js";import cy 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,nd=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),od=new D(-1);var id=new D("18446744073700000000");var Vi=m([M(8),l("bump"),Q("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Q("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"),Q("observationIndex"),r("poolId"),f(_i,Zn,"observations"),f(e(),4)]),Ei=m([Q("filterPeriod"),Q("decayPeriod"),Q("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"),Q("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)]),ud=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")]),cd=m([M(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(e(),8)]),Xi=m([M(8),r("wallet"),l("nonceIndex"),e("orderNonce"),f(e(),4)]),ld=m([e(),l("bump"),r("owner"),r("poolId"),r("positionId"),r(