UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

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