UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 84.9 kB
var So=Object.defineProperty,Ko=Object.defineProperties;var xo=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var Pn=Object.prototype.hasOwnProperty,An=Object.prototype.propertyIsEnumerable;var gn=(o,t,n)=>t in o?So(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,L=(o,t)=>{for(var n in t||(t={}))Pn.call(t,n)&&gn(o,n,t[n]);if(st)for(var n of st(t))An.call(t,n)&&gn(o,n,t[n]);return o},E=(o,t)=>Ko(o,xo(t));var de=(o,t)=>{var n={};for(var i in o)Pn.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&&An.call(o,i)&&(n[i]=o[i]);return n};import{ASSOCIATED_TOKEN_PROGRAM_ID as Ma,TOKEN_PROGRAM_ID as Ie}from"@solana/spl-token";import{PublicKey as z,SystemProgram as Io,SYSVAR_RENT_PUBKEY as Fa,TransactionInstruction as ge}from"@solana/web3.js";import{PublicKey as Lo}from"@solana/web3.js";import{get as wn,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}},kn={},Ro={};function D(o){let t=wn(kn,o);if(!t){let n=wn(Ro,o);t=new Lt({name:o,logLevel:n}),Co(kn,o,t)}return t}import{MINT_SIZE as Za,TOKEN_PROGRAM_ID as $a,getTransferFeeConfig as ja,unpackMint as Ja}from"@solana/spl-token";var Ot=D("Raydium_accountInfo_util");async function we(o,t,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:d=100}=L({batchRequest:!1},n),c=Nt(t,d),y=new Array(c.length).fill([]);if(i){let f=c.map(w=>{let C=o._buildArgs([w.map(x=>x.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:C}}),A=Nt(f,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:x,executable:M,lamports:k,owner:I,rentEpoch:K}=C;return x.length!==2&&x[1]!=="base64"&&Ot.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(x[0],"base64"),executable:M,lamports:k,owner:new Lo(I),rentEpoch:K}}return null})))}else try{y=await Promise.all(c.map(f=>o.getMultipleAccountsInfo(f,a)))}catch(f){f instanceof Error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.message}`)}return y.flat()}import Le from"bn.js";import pR from"decimal.js";import Eo from"big.js";import lt from"bn.js";import Oo from"toformat";var No=Oo,He=No;import ct from"big.js";import Fo from"bn.js";import vo from"decimal.js-light";import Qe from"bn.js";var Tn=9007199254740991;function G(o){let t=D("Raydium_parseBigNumberish");if(o instanceof Qe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Qe(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=Tn||o<=-Tn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Qe(String(o))):typeof o=="bigint"?new Qe(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Qe(0))}var ut=D("module/fraction"),Mt=He(ct),Ze=He(vo),_o={[0]:Ze.ROUND_DOWN,[1]:Ze.ROUND_HALF_UP,[2]:Ze.ROUND_UP},Vo={[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.`),Ze.set({precision:t+1,rounding:_o[i]});let a=new Ze(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=Vo[i]||1,new Mt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Do=D("Raydium_amount"),hn=He(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,d){let c=new lt(0),y=Ft.pow(new lt(n.decimals));if(a)c=G(i);else{let f=new lt(0),A=new lt(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[g,w]=Wo(i.toString(),n.decimals);f=G(g),A=G(w)}f=f.mul(y),c=f.add(A)}super(c,y);this.logger=D(d||"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 hn.DP=this.token.decimals,new hn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};import{PublicKey as qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as In}from"@solana/spl-token";var mt={chainId:101,address:qo.default.toBase58(),programId:In.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:In.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 H,SystemProgram as Bn,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:Bn.programId,isWritable:!1}),l({pubkey:Uo,isWritable:!1})];function Sn({publicKey:o,transformSol:t}){let n=vt(o.toString());if(n instanceof H)return t&&n.equals(Se)?ke:n;if(t&&n.toString()===Se.toBase58())return ke;if(typeof n=="string"){if(n===H.default.toBase58())return H.default;try{return new H(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function vt(o){try{return new H(o)}catch{return o}}var _t=new H("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ne=new H("SysvarRent111111111111111111111111111111111"),Ls=new H("SysvarC1ock11111111111111111111111111111111"),dt=new H("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Xo=new H("Sysvar1nstructions1111111111111111111111111"),Yo=Bn.programId,Os=new H("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ns=new H("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ms=new H("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Fs=new H("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),vs=new H("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),_s=new H("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Vs=new H("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Es=new H("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ds=new H("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ws=new H("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),qs=new H("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ke=new H("So11111111111111111111111111111111111111112"),Se=H.default;var Et=class{constructor({mint:t,decimals:n,symbol:i,name:a,skipMint:d=!1,isToken2022:c=!1}){if(t===Se.toBase58()||t instanceof Vt&&Se.equals(t)){this.decimals=pe.decimals,this.symbol=pe.symbol,this.name=pe.name,this.mint=new Vt(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=d?Vt.default:Sn({publicKey:t}),this.isToken2022=c}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ne=Et;ne.WSOL=new Et(E(L({},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 Ho from"bn.js";var Kn=new q(new Ho(100)),Te=class extends q{toSignificant(t=5,n,i){return this.mul(Kn).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(Kn).toFixed(t,n,i)}};var Qo=D("Raydium_price"),ce=class extends q{constructor(n){let{baseToken:i,quoteToken:a,numerator:d,denominator:c}=n;super(d,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&&Qo.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 yC}from"lodash";import du 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"},Zo=E(L({},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 Fu=D("Raydium_Api");import{PublicKey as em,SystemProgram as tm}from"@solana/web3.js";import{AccountLayout as am,createAssociatedTokenAccountIdempotentInstruction as sm,TOKEN_PROGRAM_ID as um,TOKEN_2022_PROGRAM_ID as cm}from"@solana/spl-token";import{PublicKey as Ve,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(d=>d.toString()))].map(d=>new qt(d))),a={};for(let d=0;d<t.length;d++){let c=i[d],y=t[d];if(!c)continue;let f=new ve({key:y,state:ve.deserialize(c.data)});a[y.toString()]=f,n==="devnet"?Fe[y.toString()]=f:Me[y.toString()]=f}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 $={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 Cn,Keypair as Ln,PublicKey as $o,Transaction as On,TransactionMessage as jo,VersionedTransaction as Nn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jo}from"@solana/spl-token";var Rn=D("Raydium_txUtil"),Mn=1644;function ft(o){let t=[],n=[];return o.microLamports&&(t.push(Cn.setComputeUnitPrice({microLamports:o.microLamports})),n.push($.SetComputeUnitPrice)),o.units&&(t.push(Cn.setComputeUnitLimit({units:o.units})),n.push($.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function _e(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,d=>{if(clearTimeout(a),!d.err){n("");return}i(Object.assign(d.err,{txId:t}))},"confirmed")})}function Xt(o,t){o.length<1&&Rn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Rn.logWithError(`no signers provided:, ${t.toString()}`);let n=new On;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Mn}catch{return!1}}function fe(o,t){let[n,i]=$o.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function $e({instructions:o,payer:t,signers:n}){return Xt(o,[t,...n])}function je({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=Ln.generate().publicKey.toString()}){let d=new jo({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Nn(d).serialize()).toString("base64").length<Mn}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 Nn&&(t=ei(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ke(o){let t=[];return o.forEach(n=>{n instanceof On&&(n.recentBlockhash||(n.recentBlockhash=Jo.toBase58()),n.feePayer||(n.feePayer=Ln.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 Ve(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push($.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:d=[],lookupTableAddress:c=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...c.filter(y=>y!==Ve.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(E(L({},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 g;let{recentBlockHash:d,skipPreflight:c=!0,sendAndConfirm:y,notSendToRpc:f}=a||{},A=d!=null?d:await _e(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Ke([n]),(g=this.owner)!=null&&g.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:f?"":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),d=n.filter(g=>g.transaction.instructions.length>0),c=[a,...d.map(g=>g.transaction)],y=[this.signers,...d.map(g=>g.signers)],f=[...this.instructionTypes,...d.map(g=>g.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&y.forEach(g=>{g.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:c,signers:y,instructionTypes:f,execute:async g=>{var K;let{sequentially:w,onTxUpdate:C,skipTxCount:x=0,recentBlockHash:M,skipPreflight:k=!0}=g||{},I=M!=null?M:await _e(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(w){let B=[],_=0;for(let V of c){if(++_,_<=x)continue;let P=await Yt(this.connection,V,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((V,P)=>(V.recentBlockhash=I,y[P].length&&V.sign(...y[P]),V));Ke(B);let _=await this.signAllTransactions(B);if(w){let V=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]),V++;let R=!1,N=null,v=null,ae=X=>{N!==null&&clearInterval(N),v!==null&&this.connection.removeSignatureListener(v);let U=P.findIndex(te=>te.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&&(N=setInterval(async()=>{var X;if(R){clearInterval(N);return}try{let U=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:1});U&&(R=!0,clearInterval(N),ae({err:((X=U.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",h))}catch(U){R=!0,clearInterval(N),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:_}}else{let V=[];for(let P=0;P<_.length;P+=1){let T=await this.connection.sendRawTransaction(_[P].serialize(),{skipPreflight:k});V.push(T)}return{txIds:V,signedTxs:_}}}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:d}=M,c=de(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),y=L(L({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),n),f=Array.from(new Set([...i,...this.lookupTableAddress])),A=[];for(let I of f)y[I]===void 0&&A.push(new Ve(I));let g=await Ut({connection:this.connection,address:A});for(let[I,K]of Object.entries(g))y[I]=K;let w=a?Ve.default.toBase58():d!=null?d:await _e(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 x=new tt(C);return x.sign(this.signers),{builder:this,transaction:x,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var V;let{skipPreflight:K=!0,sendAndConfirm:B,notSendToRpc:_}=I||{};if(Ke([x]),(V=this.owner)!=null&&V.isKeyPair){let P=await this.connection.sendTransaction(x,{skipPreflight:K});return B&&await yt(this.connection,P),{txId:P,signedTx:x}}if(this.signAllTransactions){let P=await this.signAllTransactions([x]);if(this.signers.length)for(let T of P)try{T.sign(this.signers)}catch{}return{txId:_?"":await this.connection.sendTransaction(P[0],{skipPreflight:K}),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),d=n.filter(g=>g.builder.instructions.length>0),c=[a,...d.map(g=>g.transaction)],y=[this.signers,...d.map(g=>g.signers)],f=[...this.instructionTypes,...d.map(g=>g.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&y.forEach(g=>{g.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),c.forEach(async(g,w)=>{g.sign(y[w])}),{builder:this,transactions:c,signers:y,instructionTypes:f,buildProps:i,execute:async g=>{var k;let{sequentially:w,onTxUpdate:C,recentBlockHash:x,skipPreflight:M=!0}=g||{};if(x&&c.forEach(I=>I.message.recentBlockhash=x),Ke(c),(k=this.owner)!=null&&k.isKeyPair){if(w){let I=[];for(let K of c){let B=await this.connection.sendTransaction(K,{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 K=0,B=[],_=async()=>{if(!I[K])return;let V=await this.connection.sendTransaction(I[K],{skipPreflight:M});B.push({txId:V,status:"sent",signedTx:I[K]}),C==null||C([...B]),K++;let P=!1,T=null,h=null,R=N=>{T!==null&&clearInterval(T),h!==null&&this.connection.removeSignatureListener(h);let v=B.findIndex(ae=>ae.txId===V);if(v>-1){if(B[v].status==="error"||B[v].status==="success")return;B[v].status=N.err?"error":"success"}C==null||C([...B]),N.err||_()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var N;if(P){clearInterval(T);return}try{let v=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});v&&(P=!0,clearInterval(T),R({err:((N=v.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",V))}catch(v){P=!0,clearInterval(T),console.error("getTransaction timeout:",v,V)}},bt)),h=this.connection.onSignature(V,N=>{if(P){this.connection.removeSignatureListener(h);return}P=!0,R(N)},"confirmed"),this.connection.getSignatureStatus(V)};return _(),{txIds:[],signedTxs:I}}else{let K=[];for(let B=0;B<I.length;B+=1){let _=await this.connection.sendTransaction(I[B],{skipPreflight:M});K.push(_)}return{txIds:K,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"]),d=i?ft(i):{instructions:[],instructionTypes:[]},c=this.signers.reduce((x,M)=>E(L({},x),{[M.publicKey.toBase58()]:M}),{}),y=[],f=[],A=[],g=0;if(this.allInstructions.forEach(x=>{let M=[...A,x],k=i?[...d.instructions,...M]:M,K=[...new Set(M.map(B=>B.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat()).values()].map(B=>new Ve(B));if(x!==n[g]&&A.length<12&&($e({instructions:k,payer:this.feePayer,signers:K})||$e({instructions:M,payer:this.feePayer,signers:K})))A.push(x);else{if(A.length===0)throw Error("item ins too big");g+=x===n[g]?1:0,$e({instructions:i?[...d.instructions,...A]:[...A],payer:this.feePayer,signers:K})?y.push(new Je().add(...d.instructions,...A)):y.push(new Je().add(...A)),f.push(Array.from(new Set(A.map(B=>B.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(B=>c[B]).filter(B=>B!==void 0)),A=[x]}}),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);$e({instructions:i?[...d.instructions,...A]:[...A],payer:this.feePayer,signers:M.map(k=>k.publicKey)})?y.push(new Je().add(...d.instructions,...A)):y.push(new Je().add(...A)),f.push(M)}return y.forEach(x=>x.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&f.forEach(x=>{x.some(M=>M.publicKey.equals(this.owner.publicKey))||x.push(this.owner.signer)}),{builder:this,transactions:y,signers:f,instructionTypes:this.instructionTypes,execute:async x=>{var V;let{sequentially:M,onTxUpdate:k,skipTxCount:I=0,recentBlockHash:K,skipPreflight:B=!0}=x||{},_=K!=null?K:await _e(this.connection,this.blockhashCommitment);if(y.forEach(async(P,T)=>{P.recentBlockhash=_,f[T].length&&P.sign(...f[T])}),Ke(y),(V=this.owner)!=null&&V.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(N=>N.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=[],N=async()=>{if(!T[h])return;h<I&&(R.push({txId:"",status:"success",signedTx:T[h]}),k==null||k([...R]),h++,N());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,te=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||N()};this.loopMultiTxStatus&&(X=setInterval(async()=>{var Y;if(ae){clearInterval(X);return}try{let ie=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});ie&&(ae=!0,clearInterval(X),te({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,te(Y)},"confirmed"),this.connection.getSignatureStatus(v)};return await N(),{txIds:R.map(v=>v.txId),signedTxs:T}}else{let h=[];for(let R=0;R<T.length;R+=1){let N=await this.connection.sendRawTransaction(T[R].serialize(),{skipPreflight:B});h.push(N)}return{txIds:h,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(t){var V;let _=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:d=[],insCountLimit:c=12}=_,y=de(_,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),f=L(L({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),a),A=Array.from(new Set([...this.lookupTableAddress,...d])),g=[];for(let P of A)f[P]===void 0&&g.push(new Ve(P));let w=await Ut({connection:this.connection,address:g});for(let[P,T]of Object.entries(w))f[P]=T;let C=n?ft(n):{instructions:[],instructionTypes:[]},x=await _e(this.connection,this.blockhashCommitment),M=this.signers.reduce((P,T)=>E(L({},P),{[T.publicKey.toBase58()]:T}),{}),k=[],I=[],K=[],B=0;if(this.allInstructions.forEach(P=>{let T=[...K,P],h=n?[...C.instructions,...T]:T;if(P!==i[B]&&K.length<c&&(je({instructions:h,payer:this.feePayer,lookupTableAddressAccount:f})||je({instructions:T,payer:this.feePayer,lookupTableAddressAccount:f})))K.push(P);else{if(K.length===0)throw Error("item ins too big");B+=P===i[B]?1:0;let R={};for(let N of[...new Set(A)])f[N]!==void 0&&(R[N]=f[N]);if(n&&je({instructions:[...C.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:f,recentBlockhash:x})){let N=new et({payerKey:this.feePayer,recentBlockhash:x,instructions:[...C.instructions,...K]}).compileToV0Message(Object.values(f));k.push(new tt(N))}else{let N=new et({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(f));k.push(new tt(N))}I.push(Array.from(new Set(K.map(N=>N.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(N=>M[N]).filter(N=>N!==void 0)),K=[P]}}),K.length>0){let T=[...new Set(K.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&&je({instructions:[...C.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:f,recentBlockhash:x})){let h=new et({payerKey:this.feePayer,recentBlockhash:x,instructions:[...C.instructions,...K]}).compileToV0Message(Object.values(f));k.push(new tt(h))}else{let h=new et({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(f));k.push(new tt(h))}I.push(T)}return(V=this.owner)!=null&&V.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:N,skipPreflight:v=!0}=P||{};if(k.map(async(X,U)=>{I[U].length&&X.sign(I[U]),N&&(X.message.recentBlockhash=N)}),Ke(k),(ae=this.owner)!=null&&ae.isKeyPair){if(T){let X=0,U=[];for(let te of k){if(++X,X<=R){console.log("skip tx: ",X),U.push("tx skipped");continue}let Y=await this.connection.sendTransaction(te,{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 te=0,Y=[],ie=async()=>{if(!U[te])return;if(te<R){Y.push({txId:"",status:"success",signedTx:U[te]}),h==null||h([...Y]),te++,ie();return}let Pe=await this.connection.sendTransaction(U[te],{skipPreflight:v});Y.push({txId:Pe,status:"sent",signedTx:U[te]}),h==null||h([...Y]),te++;let Xe=!1,Oe=null,at=null,bn=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:1});Ae&&(Xe=!0,clearInterval(Oe),bn({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,bn(Be)},"confirmed"),this.connection.getSignatureStatus(Pe)};return ie(),{txIds:[],signedTxs:U}}else{let te=[];for(let Y=0;Y<U.length;Y+=1){let ie=await this.connection.sendTransaction(U[Y],{skipPreflight:v});te.push(ie)}return{txIds:te,signedTxs:U}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}};var Ht=(...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(Ht(t))}logInfo(...t){this.logger.info(Ht(t))}logAndCreateError(...t){let n=Ht(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ll,SystemProgram as Nl}from"@solana/web3.js";import vl from"bn.js";import{createCloseAccountInstruction as Dl,createInitializeAccountInstruction as Wl,createTransferInstruction as ql,TOKEN_PROGRAM_ID as Ul}from"@solana/spl-token";import{Keypair as Pl,PublicKey as Al}from"@solana/web3.js";import Tl from"bn.js";import{TOKEN_PROGRAM_ID as Bl}from"@solana/spl-token";import{PublicKey as yi}from"@solana/web3.js";import En,{isBN as Dn}from"bn.js";import{bits as ii,BitStructure as hc,blob as ri,Blob as Ic,cstr as Bc,f32 as Sc,f32be as Kc,f64 as xc,f64be as Cc,greedy as Rc,Layout as ai,ns64 as Lc,ns64be as Oc,nu64 as Nc,nu64be as Mc,offset as si,s16 as Fc,s16be as vc,s24 as _c,s24be as Vc,s32 as ui,s32be as Ec,s40 as Dc,s40be as Wc,s48 as qc,s48be as Uc,s8 as Gc,seq as ci,struct as zc,Structure as li,u16 as mi,u16be as Xc,u24 as Yc,u24be as Hc,u32 as di,u32be as Qc,u40 as Zc,u40be as $c,u48 as jc,u48be as Jc,u8 as pi,UInt as fi,union as el,Union as tl,unionLayoutDiscriminator as nl,utf8 as ol}from"@solana/buffer-layout";var Pt=ai,Fn=li;var Qt=fi;var vn=pi,Z=mi;var At=di;var le=ui;var _n=ci;var F=ri;var Zt=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 En(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 En(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=Zt(At(),!1),this._upper=Zt(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),d=this._upper.decode(n,i+this._lower.span);return L(L({},a),d)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function m(o){return new Qt(1,o)}function Q(o){return new Qt(4,o)}function e(o){return new Ce(8,!1,o)}function O(o){return new Ce(16,!1,o)}function Wn(o){return new Ce(1,!0,o)}function Ee(o){return new Ce(8,!0,o)}function qn(o){return new Ce(16,!0,o)}var nt=class extends Pt{constructor(n,i,a,d){super(n.span,d);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(vn(),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 jt(o,t){let n=At("length"),i=p([n,b(o,Vn(n,-n.span),"values")]);return new nt(i,({values:a})=>a,a=>({values:a}),t)}var $t=class extends Fn{decode(t,n){return super.decode(t,n)}};function p(o,t,n){return new $t(o,t,n)}function b(o,t,n){let i,a=typeof t=="number"?t:Dn(t)?t.toNumber():new Proxy(t,{get(d,c){if(!i){let y=Reflect.get(d,"count");i=Dn(y)?y.toNumber():y,Reflect.set(d,"count",i)}return Reflect.get(d,c)},set(d,c,y){return c==="count"&&(i=y),Reflect.set(d,c,y)}});return _n(o,a,n)}var kt=p([r("mint"),r("owner"),e("amount"),Q("delegateOption"),r("delegate"),m("state"),Q("isNativeOption"),e("isNative"),e("delegatedAmount"),Q("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as jg,SystemProgram as Jg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as tP}from"@solana/spl-token";import{PublicKey as bm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pm}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"),Jt=new S("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Tm=new S("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ai=new S("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Yn=new S("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Hn=new S("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),hm=new S("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),wi=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qn=new S("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ki=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ti=new S("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),De=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Im=new S("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),hi=new S("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),en=new S("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ii=new S("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bm=new S("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Bi=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Si=new S("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ki=new S("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Sm=new S("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Km=new S("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),xm=new S("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Cm=new S("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Rm=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 mP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Fy,TOKEN_2022_PROGRAM_ID as vy,TOKEN_PROGRAM_ID as _y}from"@solana/spl-token";import{PublicKey as Ey}from"@solana/web3.js";import Wy from"bn.js";import Uy from"decimal.js";import{TOKEN_PROGRAM_ID as Gm}from"@solana/spl-token";import{PublicKey as Hm}from"@solana/web3.js";var xi=p([Q("mintAuthorityOption"),r("mintAuthority"),e("supply"),m("decimals"),m("isInitialized"),Q("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ny,TOKEN_2022_PROGRAM_ID as oy,TOKEN_PROGRAM_ID as iy}from"@solana/spl-token";import{Keypair as sy,PublicKey as uy,SystemProgram as ly,TransactionInstruction as my}from"@solana/web3.js";import py from"bn.js";import W from"bn.js";var We=new W(1).shln(64);var Ci=new W(1).shln(128),tn=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 nn=60,ad=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,Zn=100;var $n=10,jn=100,ht=14;var j=new W(0),Re=new W(1),sd=new W(-1);var ud=new W("18446744073700000000");var Fi=p([F(8),m("bump"),Z("index"),r("owner"),Q("protocolFeeRate"),Q("tradeFeeRate"),Z("tickSpacing"),Q("fundFeeRate"),b(Q(),1),r("fundOwner"),b(e(),3)]),vi=p([Q("blockTimestamp"),Ee("tickCumulative"),b(e(),4)]),Jn=p([F(8),ue("initialized"),e("recentEpoch"),Z("observationIndex"),r("poolId"),b(vi,Zn,"observations"),b(e(),4)]),_i=p([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),le("tickSpacingIndexReference"),Q("volatilityReference"),Q("volatilityAccumulator"),e("lastUpdateTimestamp"),b(m(),46)]),Vi=p([m("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),on=p([F(8),m("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),Z("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),le("tickCurrent"),Q(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),b(O(),4),m("status"),m("feeOn"),F(6),b(Vi,ot,"rewardInfos"),F(8*16,"tickArrayBitmap"),b(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),_i.replicate("dynamicFeeInfo"),b(e(),46)]),Ei=p([O("growthInsideLastX64"),e("rewardAmountOwed")]),Di=p([F(8),m("bump"),r("nftMint"),r("poolId"),le("tickLower"),le("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(Ei,ot,"rewardInfos"),e("recentEpoch"),b(e(),7)]),dd=p([F(8),m("bump"),r("poolId"),le("tickLower"),le("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(O(),ot,"rewardGrowthInside"),e("recentEpoch"),b(e(),7)]),Wi=p([le("tick"),qn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),b(O(),ot,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),b(Q(),3)]),eo=p([F(8),r("poolId"),le("startTickIndex"),b(Wi,nn,"ticks"),m("initializedTickCount"),e("recentEpoch"),b(m(),107)]),qi=p([F(8),m("bump"),b(r(),$n,"operationOwners"),b(r(),jn,"whitelistMints")]),Ui=p([F(8),r("poolId"),r("owner"),le("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),b(e(),4)]),to=p([F(8),r("poolId"),F(8*8*ht,"positiveTickArrayBitmap"),F(8*8*ht,"negativeTickArrayBitmap")]),pd=p([F(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),b(e(),8)]),Gi=p([F(8),r("wallet"),m("nonceIndex"),e("orderNonce"),b(e(),4)]),fd=p([e(),m("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),b(e(),8)]),zi=p([F(8),m("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),b(e(),8)]);import gd from"bn.js";var xd=Buffer.from("amm_config","utf8"),Yi=Buffer.from("pool","utf8"),Hi=Buffer.from("pool_vault","utf8"),Cd=Buffer.from("pool_reward_vault","utf8"),Rd=Buffer.from("position","utf8"),Ld=Buffer.from("tick_array","utf8"),Od=Buffer.from("operation","utf8"),Nd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Md=Buffer.from("observation","utf8"),Fd=Buffer.from("support_mint","utf8"),vd=Buffer.from("dynamic_fee_config","utf8"),_d=Buffer.from("permission","utf8");var Vd=Buffer.from("locked_position","utf8");import{sha256 as cr}from"js-sha256";import Qi from"bn.js";import qd from"decimal.js";var Gd=new Qi(1).shln(256).subn(1);import up from"bn.js";import $d from"bn.js";import Jd from"decimal.js";import pp from"bn.js";import yp from"decimal.js";import{PublicKey as tf}from"@solana/web3.js";import of from"bn.js";import{TOKEN_2022_PROGRAM_ID as df,TOKEN_PROGRAM_ID as pf}from"@solana/spl-token";import gf from"decimal.js";import Gp from"bn.js";import Lp from"bn.js";import xf from"bn.js";function ee(o){let t=`global:${o}`;return Buffer.from(cr.digest(t)).slice(0,8)}Jn.span;var Ty=D("Raydium_Clmm"),hy={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),createPermissionedPool:ee("create_permissioned_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as un}from"@solana/web3.js";var pr=p([m("instruction")]),fr=p([m("instruction")]),yr=p([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),b(e(),15,"padding")]),br=p([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),gr=p([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),m("option"),r("rewardVaultB"),F(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),Pr=p([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),b(yr,5,"rewardInfos"),r("creator"),r(),b(e(),32,"padding")]),Ar=new Proxy(br,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return E(L({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,t,n)}}),wr=new Proxy(gr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return E(L({},a),{version:5,rewardInfos:[{rewardVault:a.rewardVaultA,totalReward:a.totalRewardA,perSlotReward:a.perSlotRewardA,perShareReward:a.perShareRewardA},{rewardVault:a.rewardVaultB,totalReward:a.totalRewardB,perSlotReward:a.perSlotRewardB,perShareReward:a.perShareRewardB}]})}:Reflect.get(o,t,n)}}),uo=new Proxy(Pr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return E(L({},a),{version:6,rewardInfos:a.rewardInfos.map(d=>{var c;return E(L({},d),{rewardType:((c=Object.entries(rt).find(y=>String(y[1])===d.rewardType.toString()))!=null?c:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),kr=p([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Tr=p([m("instruction"),e("nonce"),b(kr,5,"rewardTimeInfo")]),hr=p([m("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),Ir=p([m("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Pb=p([e("state"),r("id"),r("owner"),e("deposited"),b(e(),1,"rewardDebts")]),co=p([e("state"),r("id"),r("owner"),e("deposited"),b(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),b(e(),15)]),Ab=p([e("state"),r("id"),r("owner"),e("deposited"),b(e(),2,"rewardDebts")]),Br=p([e("state"),r("id"),r("owner"),e("deposited"),b(O(),2,"rewardDebts"),b(e(),17)]),Sr=p([e(),e("state"),r("id"),r("owner"),e("deposited"),b(O(),5,"rewardDebts"),b(e(),16)]),Kr=p([m("instruction"),e("amount")]),xr=p([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Wn("digitShift"),b(m(),7,"reserved1"),b(e(),7,"reserved2")]),Cr=p([F(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),b(m(),32,"reserved1"),b(xr,4,"votingMints"),Ee("timeOffset"),m("bump"),b(m(),7,"reserved2"),b(e(),11,"reserved3")]),Rr=p([Ee("startTime"),Ee("endTime"),m("kind"),b(m(),15,"reserved")]),Lr=p([b(Rr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),m("votingMintConfigIdx"),b(m(),29,"reserved")]),Or=p([F(8),r("voterAuthority"),r("registrar"),b(Lr,32,"deposits"),m("voterBump"),m("voterWweightRecordBump"),b(m(),94,"reserved")]);import{NATIVE_MINT as xb}from"@solana/spl-token";var Cb=D("Raydium_farm_config"),Nr=new un("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Mr=new un("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Rb=new un("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var rt={"Standard SPL":0,"Option tokens":1},lo={[Gn.toString()]:3,[zn.toString()]:4,[Xn.toString()]:5,[Jt.toString()]:6,[he.FARM_PROGRAM_ID_V3.toString()]:3,[he.FARM_PROGRAM_ID_V4.toString()]:4,[he.FARM_PROGRAM_ID_V5.toString()]:5,[he.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as pg,SystemProgram as fg,SYSVAR_CLOCK_PUBKEY as yg,SYSVAR_RENT_PUBKEY as bg,TransactionInstruction as gg}from"@solana/web3.js";import Ag from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as kg,createAssociatedTokenAccountIdempotentInstruction as Tg,TOKEN_PROGRAM_ID as hg}from"@solana/spl-token";import Ub from"bn.js";import{PublicKey as Fr}from"@solana/web3.js";import vr from"bn.js";function _r(o){return typeof o=="object"&&o!==null&&![ne,se,Fr,q,vr,ce,Te].some(t=>typeof t=="object"&&o instanceof t)}function be(o){return typeof o=="string"?vt(o):Array.isArray(o)?o.map(t=>be(t)):_r(o)?Object.fromEntries(Object.entries(o).map(([t,n])=>[t,be(n)])):o}var ng=D("Raydium.farm.util");var Mg=D("Raydium_farm_instruction"),Fg={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import TP from"bn.js";import{PublicKey as sw}from"@solana/web3.js";import{AccountLayout as lw,MintLayout as mw,NATIVE_MINT as dw,TOKEN_PROGRAM_ID as fw}from"@solana/spl-token";import BP from"bn.js";import po from"bn.js";var zr=new po(25),Xr=new po(1e4);var cn=p([m("instruction"),e("amountIn"),e("minAmountOut")]),ln=p([m("instruction"),e("maxAmountIn"),e("amountOut")]),UP=p([m("instruction"),m("nonce")]),mn=p([m("instruction"),m("nonce"),e("startTime")]),fo=p([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),e("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),e("lpReserve"),b(e(),3,"padding")]),GP=p([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),b(e(),64,"padding")]),dn=p([m("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),pn=p([m("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Yr=p([e("fee")]);var Hr=5e4,Qr=p([e("x"),e("y"),e("price")]),HP=p([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),b(Qr,Hr,"DataElement")]);import{PublicKey as aA}from"@solana/web3.js";import uA from"decimal.js";import{TOKEN_PROGRAM_ID as lA}from"@solana/spl-token";import{PublicKey as jP}from"@solana/web3.js";var tA=D("Raydium_liquidity_serum");import Mw from"bn.js";import vw from"decimal.js";import{TOKEN_PROGRAM_ID as _A}from"@solana/spl-token";import{PublicKey as EA}from"@solana/web3.js";import WA from"bn.js";import{SystemProgram as IA,SYSVAR_RENT_PUBKEY as BA,Transaction as SA,TransactionInstruction as KA}from"@solana/web3.js";import{createInitializeAccountInstruction as CA,TOKEN_PROGRAM_ID as RA}from"@solana/spl-token";function Zr(o="accountFlags"){let t=new wt(o);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var $r=p([F(5),Zr("accountFlags"),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),F(7)]);import{PublicKey as lT}from"@solana/web3.js";import{AccountLayout as dT,NATIVE_MINT as pT,TOKEN_2022_PROGRAM_ID as fT,TOKEN_PROGRAM_ID as yT,createAssociatedTokenAccountIdempotentInstruction as bT}from"@solana/spl-token";import ak from"bn.js";import ra from"bn.js";var Xw=new ra(0);import jw from"bn.js";import aa from"bn.js";var St=new aa(1e6);import IT from"bn.js";import ST from"decimal.js";import{PublicKey as Sk,TransactionInstruction as Kk,Keypair as Ck,SystemProgram as Rk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ok,TOKEN_2022_PROGRAM_ID as Nk,TOKEN_PROGRAM_ID as Mk}from"@solana/spl-token";var mk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),dk=Buffer.from("amm_config","utf8"),pk=Buffer.from("pool","utf8"),fk=Buffer.from("pool_lp_mint","utf8"),yk=Buffer.from("pool_vault","utf8"),bk=Buffer.from("observation","utf8"),gk=Buffer.from("permission","utf8"),Pk=Buffer.from("support_mint","utf8"),Ak=Buffer.from("creator_fee_share","utf8");var wk=Buffer.from("locked_liquidity","utf8");var Wk=D("Raydium_cpmm"),qk={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};var ca=p([F(8),m("bump"),ue("disableCreatePool"),Z("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),b(e(),14)]),go=p([F(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),m("bump"),m("status"),m("lpDecimals"),m("mintDecimalA"),m("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),m("feeOn"),ue("enableCreatorFee"),b(m(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),b(e(),28)]),zk=p([F(8),r("configId"),b(e(),30)]),Xk=p([F(8),m("bump"),r("creator"),r("ammConfig"),e("shareRate"),b(e(),8)]);import{PublicKey as VK,SystemProgram as EK}from"@solana/web3.js";import{createTransferInstruction as WK,TOKEN_PROGRAM_ID as qK,TOKEN_2022_PROGRAM_ID as UK,createAssociatedTokenAccountIdempotentInstruction as GK,createSyncNativeInstruction as XK,createTransferCheckedInstruction as YK}from"@solana/spl-token";import Ra from"bn.js";import ZK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Mh,TOKEN_2022_PROGRAM_ID as Fh,TOKEN_PROGRAM_ID as vh}from"@solana/spl-token";import{SystemProgram as Dh,TransactionInstruction as Wh}from"@solana/web3.js";import da from"bn.js";var Ah=Buffer.from("vault_auth_seed","utf8"),wh=Buffer.from("global_config","utf8"),kh=Buffer.from("pool_vesting","utf8"),Th=Buffer.from("platform_config","utf8"),hh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Ih=Buffer.from("creator_fee_vault_auth_seed","utf8"),Bh=Buffer.from("platform_global_access","utf8"),Sh=Buffer.from("platform_allow_config","utf8"),Kh=Buffer.from("platform_curve_rule","utf8");var Gh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var zh=new da("18446744073709551615");var pa=p([e(),e("epoch"),m("curveType"),Z("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),b(e(),16)]),fa=p([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),ya=p([e(),e("epoch"),m("bump"),m("status"),m("mintDecimalsA"),m("mintDecimalsB"),m("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),fa.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),m("mintProgramFlag"),m("cpmmCreatorFeeOn"),e("platformVestingShare"),b(m(),54)]),Qh=p([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),b(e(),8)]),ba=p([m("migrateType"),m("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Zh=p([e("epoch"),m("index"),r("configId"),ba.replicate("bondingCurveParam"),b(e(),50)]),Ao=p([e(),e("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),b(m(),64,"name"),b(m(),256,"web"),b(m(),256,"img"),r("cpConfigId"),e("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),e("platformVestingScale"),r("platformCpCreator"),m("restrictGlobalConfig"),m("restrictCurveParam"),r("curveRuleManager"),b(m(),78)]),ga=p([m("field"),m("op"),O("value")]),Pa=p([Z("groupId"),e("epoch"),jt(ga,"constraints")]),Aa=p([e(),m("bump"),m("version"),r("platformId"),r("configId"),e("epoch"),b(e(),8),jt(Pa,"groups")]);import{TOKEN_2022_PROGRAM_ID as Jh,TOKEN_PROGRAM_ID as eI}from"@solana/spl-token";import wa from"bn.js";var dI=new wa(1e6);import bI from"bn.js";import PI from"decimal.js";import ZI from"bn.js";import jI from"decimal.js";import II from"bn.js";import SI from"decimal.js";import vI from"bn.js";import VI from"decimal.js";import To from"bn.js";import fn from"decimal.js";var xt=class{static _multipler(t){return new fn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new fn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:t,decimalA:n,decimalB:i}){let a=t.mul(this._multipler(i)).div(this._multipler(n));return new To(a.mul(this._Q64).toFixed(0))}};xt._Q64=new fn(new To(1).shln(64).toString());import{NATIVE_MINT as pS,TOKEN_2022_PROGRAM_ID as fS,TOKEN_PROGRAM_ID as yS,createAssociatedTokenAccountIdempotentInstruction as gS,createSyncNativeInstruction as PS,getTransferFeeConfig as AS,unpackMint as wS}from"@solana/spl-token";import J from"bn.js";import{PublicKey as Ka,SystemProgram as hS}from"@solana/web3.js";import RS from"decimal.js";var LS={initPriceX64:new J("515752397214619"),supply:new J(1e15),totalSellA:new J(7931e11),totalFundRaisingB:new J(85e9),totalFundRaisingBUSD:new J(125e8),totalLockedAmount:new J("0"),cliffPeriod:new J("0"),unlockPeriod:new J("0"),decimals:6,virtualA:new J("1073471847374405"),virtualB:new J("30050573465"),realA:new J(0),realB:new J(0),protocolFee:new J(0),platformId:new Ka("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new J(0),cliffPeriod:new J(0),unlockPeriod:new J(0),startTime:new J(0),totalAllocatedShare:new J(0)}},OS=new J(1e4);var xa={[Yn.toBase58()]:3};var Ca=p([F(5),F(8),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),F(7)]);import{PublicKey as nK}from"@solana/web3.js";var sK=D("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as bK,TOKEN_2022_PROGRAM_ID as gK,TOKEN_PROGRAM_ID as PK}from"@solana/spl-token";import{PublicKey as wK,SystemProgram as kK,TransactionInstruction as TK}from"@solana/web3.js";import IK from"bn.js";var Sx=new Ra(0);import{PublicKey as La,Transaction as yn,TransactionInstruction as Oa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Na}from"@solana/spl-token";import ho from"bn.js";var oe=class extends re{static getPdaPoolId(t,n){return fe([oe.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,i,a){return fe([oe.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new ho(a).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:a,chainTime:d}){if(i.length===0)return[];let c=i.map(g=>oe.getPdaPoolId(n,g).publicKey),y=[];for(let g=0;g<oe.VERSION_PROJECT.length;g++)y.push(...c.map(w=>oe.getPdaOwnerId(n,w,a,g).publicKey));let f=await we(t,[...c,...y]),A=[];for(let g=0;g<f.length;g++){let w=Math.floor(g/i.length),C=g%i.length,x=c[C],M=y[g],k=f[C],I=f[i.length+g];if(!(k&&I)||k.data.length!==oe.POOL_LAYOUT.span||I.data.length!==oe.OWNER_LAYOUT.span)continue;let K=oe.POOL_LAYOUT.decode(k.data),B=oe.OWNER_LAYOUT.decode(I.data),_=K.openTime.toNumber(),V=K.endTime.toNumber(),P=B.tokenInfo.map(R=>R.debtAmount.gt(new ho(0))).filter(R=>!R).length!==3,T=d>_&&d<V&&K.status===1,h=P&&T;A.push({programId:n,poolId:x,ammId:K.ammId,ownerAccountId:M,snapshotLpAmount:B.lpAmount,project:oe.VERSION_PROJECT[w],openTime:_,endTime:V,canClaim:h,canClaimErrorType:P?T?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((R,N)=>({mintAddress:R.mintAddress,mintVault:R.mintVault,mintDecimals:R.mintDecimals,perLpLoss:R.perLpLoss,debtAmount:B.tokenInfo[N].debtAmount.add(B.tokenInfo[N].claimedAmount)}))})}return A}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),d=n.wallet||this.scope.ownerPubKey,c=[];for(let A of t.tokenInfo){let{account:g,instructionParams:w}=await this.scope.account.getOrCreateTokenAccount({mint:A.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:A.mintAddress.equals(ne.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!A.mintAddress.equals(ne.WSOL.mint),associatedOnly:A.mintAddress.equals(ne.WSOL.mint)?!1:n.associatedOnly});w&&a.addInstruction(w),c.push(g)}a.addInstruction({instructions:[oe.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:d,ownerPda:t.ownerAccountId,claimAddress:c}})]});let{transaction:y,signers:f}=a.build();return[{transaction:y,signer:f}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),d=n.wallet||this.scope.ownerPubKey,c={};for(let g of t){let w=[];for(let C of g.tokenInfo){let{account:x,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:C.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:C.mintAddress.equals(ne.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!C.mintAddress.equals(ne.WSOL.mint),associatedOnly:C.mintAddress.equals(ne.WSOL.mint)?!1:n.associatedOnly});M&&a.addInstruction(M),x&&(c[C.mintAddress.toString()]=x,w.push(x))}a.addInstruction({instructions:[oe.makeClaimInstruction({programId:g.programId,poolInfo:g,ownerInfo:{wallet:d,ownerPda:g.ownerAccountId,claimAddress:w}})]})}let{transaction:y,signers:f}=a.build(),A=a.allInstructions;return Xt(A,[d,...f.map(g=>g.publicKey)])?[{transaction:y,signer:f}]:[{transaction:new yn().add(...A.slice(0,a.AllTxData.instructions.length-1)),signer:f},{transaction:new yn().add(...A.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new yn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let a=p([]),d=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(f=>({pubkey:f,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:f})=>({pubkey:f,isSigner:!1,isWritable:!0})),{pubkey:Na,isSigner:!1,isWritable:!1}],c=Buffer.alloc(a.span);a.encode({},c);let y=Buffer.from([10,66,208,184,161,6,191,98,...c]);return new Oa({keys:d,programId:t,data:y})}},me=oe;me.CLAIMED_NUM=3,me.POOL_LAYOUT=p([F(8),m("bump"),m("status"),e("openTime"),e("endTime"),r("ammId"),b(p([m("mintDecimals"),r("mintAddress"),r("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),oe.CLAIMED_NUM,"tokenInfo"),b(e(),10,"padding")]),me.OWNER_LAYOUT=p([F(8),m("bump"),m("version"),r("poolId"),r("owner"),e("lpAmount"),b(p([r("mintAddress"),e("debtAmount"),e("claimedAmount")]),oe.CLAIMED_NUM,"tokenInfo"),b(e(),4,"padding")]),me.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new La(t)),me.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},me.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as Ux}from"@solana/web3.js";import{getTransferFeeConfig as zx,MintLayout as Xx,TOKEN_2022_PROGRAM_ID as Yx,TOKEN_PROGRAM_ID as Hx,unpackMint as Qx}from"@solana/spl-token";var hR=new Le(2),IR=new Le(3),BR=new Le(5),Ft=new Le(10),SR=new Le(100),KR=new Le(1e3),xR=new Le(1e4);function Wt(o){return Ft.pow(G(o))}function Nt(o,t=1,n=[]){let i=[...o];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}import Ct from"bn.js";var Rt=D("Raydium_liquidity_instruction");function na(o){let{poolInfo:t,poolKeys:n,userKeys:i,baseAmountIn:a,quoteAmountIn:d,fixedSide:c,otherAmountMin:y,modelDataPubKey:f=De}=o,A=Buffer.alloc(dn.span);dn.encode({instruction:3,baseAmountIn:G(a),quoteAmountIn:G(d),otherAmountMin:G(y),fixedSide:c==="base"?j:Re},A);let g=[l({pubkey:Ie,isWritable:!1}),l({pubkey:new z(t.id)}),l({pubkey:new z(n.authority),isWritable:!1}),l({pubkey:new z(n.openOrders),isWritable:!1}),l({pubkey:new z(n.targetOrders)}),l({pubkey:new z(t.lpMint.address)}),l({pubkey:new z(n.vault.A)}),l({pubkey:new z(n.vault.B)})];return t.pooltype.includes("StablePool")&&g.push(l({pubkey:f})),g.push(l({pubkey:new z(t.marketId),isWritable:!1}),l({pubkey:i.baseTokenAccount}),l({pubkey:i.quoteTokenAccount}),l({pubkey:i.lpTokenAccount}),l({pubkey:i.owner,isWritable:!1,isSigner:!0}),l({pubkey:new z(n.marketEventQueue),isWritable:!1})),new ge({programId:new z(t.programId),keys:g,data:A})}function oa(o){let{poolInfo:t,poolKeys:n,userKeys:i,lpAmount:a,baseAmountMin:d,quoteAmountMin:c,modelDataPubKey:y=De}=o,f=be(n),A=4;if(t.pooltype.includes("StablePool")&&(A=5),A===4||A===5){let g=Buffer.alloc(pn.span);pn.encode({instruction:4,lpAmount:G(a),baseAmountMin:G(d),quoteAmountMin:G(c)},g);let w=[l({pubkey:Ie,isWritable:!1}),l({pubkey:f.id}),l({pubkey:f.authority,isWritable:!1}),l({pubkey:f.openOrders}),l({pubkey:f.targetOrders}),l({pubkey:f.mintLp.address}),l({pubkey:f.vault.A}),l({pubkey:f.vault.B})];return A===5?w.push(l({pubkey:y})):(w.push(l({pubkey:f.id})),w.push(l({pubkey:f.id}))),w.push(l({pubkey:f.marketProgramId,isWritable:!1}),l({pubkey:f.marketId}),l({pubkey:f.marketBaseVault}),l({pubkey:f.marketQuoteVault}),l({pubkey:f.marketAuthority,isWritable:!1}),l({pubkey:i.lpTokenAccount}),l({pubkey:i.baseTokenAccount}),l({pubkey:i.quoteTokenAccount}),l({pubkey:i.owner,isWritable:!1,isSigner:!0}),l({pubkey:f.marketEventQueue}),l({pubkey:f.marketBids}),l({pubkey:f.marketAsks})),new ge({programId:f.programId,keys:w,data:g})}return new ge({programId:f.programId,keys:[]})}function ia({programId:o,ammId:t,ammAuthority:n,ammOpenOrders:i,lpMint:a,coinMint:d,pcMint:c,coinVault:y,pcVault:f,withdrawQueue:A,ammTargetOrders:g,poolTempLp:w,marketProgramId:C,marketId:x,userWallet:M,userCoinVault:k,userPcVault:I,userLpVault:K,nonce:B,openTime:_,coinAmount:V,pcAmount:P,ammConfigId:T,feeDestinationId:h}){let R=p([m("instruction"),m("nonce"),e("openTime"),e("pcAmount"),e("coinAmount")]),N=[{pubkey:Ie,isSigner:!1,isWritable:!1},{pubkey:Ma,isSigner:!1,isWritable:!1},{pubkey:Io.programId,isSigner:!1,isWritable:!1},{pubkey:Ne,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:T,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:C,isSigner:!1,isWritable:!1},{pubkey:x,isSigner:!1,isWritable:!1},{pubkey:M,isSigner:!0,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!0},{pubkey:I,isSigner:!1,isWritable:!0},{pubkey:K,isSigner:!1,isWritable:!0}],v=Buffer.alloc(R.span);return R.encode({instruction:1,nonce:B,openTime:_,coinAmount:V,pcAmount:P},v),{instruction:new ge({keys:N,programId:o,data:v}),instructionType:$.AmmV4CreatePool}}function sL(o){let t=p([m("instruction"),m("simulateType")]),n=Buffer.alloc(t.span);t.encode({instruction:12,simulateType:0},n);let i=[l({pubkey:new z(o.id),isWritable:!1}),l({pubkey:new z(o.authority),isWritable:!1}),l({pubkey:new z(o.openOrders),isWritable:!1}),l({pubkey:new z(o.vault.A),isWritable:!1}),l({pubkey:new z(o.vault.B),isWritable:!1}),l({pubkey:new z(o.mintLp.address),isWritable:!1}),l({pubkey:new z(o.marketId),isWritable:!1}),l({pubkey:new z(o.marketEventQueue),isWritable:!1})];return new ge({programId:new z(o.programId),keys:i,data:n})}function va({poolKeys:o,userKeys:t,amountIn:n,minAmountOut:i,modelDataPubKey:a=De},d){let c=be(o),y=Buffer.alloc(cn.span);cn.encode({instruction:9,amountIn:G(n),minAmountOut:G(i)},y);let f=[l({pubkey:Ie,isWritable:!1}),l({pubkey:c.id}),l({pubkey:c.authority,isWritable:!1}),l({pubkey:c.openOrders})];return d===4&&f.push(l({pubkey:c.targetOrders})),f.push(l({pubkey:c.vault.A}),l({pubkey:c.vault.B})),d===5&&f.push(l({pubkey:a})),f.push(l({pubkey:c.marketProgramId,isWritable:!1}),l({pubkey:c.marketId}),l({pubkey:c.marketBids}),l({pubkey:c.marketAsks}),l({pubkey:c.marketEventQueue}),l({pubkey:c.marketBaseVault}),l({pubkey:c.marketQuoteVault}),l({pubkey:c.marketAuthority,isWritable:!1}),l({pubkey:t.tokenAccountIn}),l({pubkey:t.tokenAccountOut}),l({pubkey:t.owner,isWritable:!1,isSigner:!0})),new ge({programId:c.programId,keys:f,data:y})}function _a({poolKeys:o,userKeys:t,maxAmountIn:n,amountOut:i,modelDataPubKey:a=De},d){let c=be(o),y=Buffer.alloc(ln.span);ln.encode({instruction:11,maxAmountIn:G(n),amountOut:G(i)},y);let f=[l({pubkey:Ie,isWritable:!1}),l({pubkey:c.id}),l({pubkey:c.authority,isWritable:!1}),l({pubkey:c.openOrders}),l({pubkey:c.targetOrders}),l({pubkey:c.vault.A}),l({pubkey:c.vault.B})];return d===5&&f.push(l({pubkey:a})),f.push(l({pubkey:c.marketProgramId,isWritable:!1}),l({pubkey:c.marketId}),l({pubkey:c.marketBids}),l({pubkey:c.marketAsks}),l({pubkey:c.marketEventQueue}),l({pubkey:c.marketBaseVault}),l({pubkey:c.marketQuoteVault}),l({pubkey:c.marketAuthority,isWritable:!1}),l({pubkey:t.tokenAccountIn}),l({pubkey:t.tokenAccountOut}),l({pubkey:t.owner,isWritable:!1,isSigner:!0})),new ge({programId:c.programId,keys:f,data:y})}function Va(o,t,n,i,a,d,c,y,f,A){let g=p([m("instructionId"),e("amountIn"),e("minAmountOut")]),w=Buffer.alloc(g.span);g.encode({instructionId:16,amountIn:f,minAmountOut:A},w);let C=[{pubkey:Ie,isWritable:!1,isSigner:!1},{pubkey:t,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!0}];return new ge({programId:o,keys:C,data:w})}function Ea(o,t,n,i,a,d,c,y,f,A){let g=p([m("instructionId"),e("maxAmountIn"),e("amountOut")]),w=Buffer.alloc(g.span);g.encode({instructionId:17,maxAmountIn:f,amountOut:A},w);let C=[{pubkey:Ie,isWritable:!1,isSigner:!1},{pubkey:t,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!0}];return new ge({programId:o,keys:C,data:w})}function yo(o){let{poolKeys:t,version:n,userKeys:i,amountIn:a,amountOut:d,fixedSide:c}=o;if(n===4){if(c==="in")return Va(new z(t.programId),new z(t.id),new z(t.authority),new z(t.vault.A),new z(t.vault.B),i.tokenAccountIn,i.tokenAccountOut,i.owner,new Ct(a.toString()),new Ct(d.toString()));if(c==="out")return Ea(new z(t.programId),new z(t.id),new z(t.authority),new z(t.vault.A),new z(t.vault.B),i.tokenAccountIn,i.tokenAccountOut,i.owner,new Ct(a.toString()),new Ct(d.toString()));Rt.logWithError("invalid params","params",o)}throw Rt.logWithError("invalid version, only support pool v4","poolKeys.version",n),new Error("invalid version")}function bo(o){let{poolKeys:t,version:n,userKeys:i,amountIn:a,amountOut:d,fixedSide:c}=o;if(n===4||n===5){let y={poolKeys:t,userKeys:i};if(c==="in")return va(E(L({},y),{amountIn:a,minAmountOut:d}),n);if(c==="out")return _a(E(L({},y),{maxAmountIn:a,amountOut:d}),n);Rt.logWithError("invalid params","params",o)}throw Rt.logWithError("invalid version","poolKeys.version",n),new Error("invalid version")}function uL({poolKeys:o,userKeys:t,startTime:n}){let i=Buffer.alloc(mn.span);mn.encode({instruction:0,nonce:5,startTime:G(n)},i);let a=be(o),d=[l({pubkey:Ie,isWritable:!1}),l({pubkey:Io.programId,isWritable:!1}),l({pubkey:Fa,isWritable:!1}),l({pubkey:a.id}),l({pubkey:a.authority,isWritable:!1}),l({pubkey:a.openOrders}),l({pubkey:a.mintLp.address}),l({pubkey:a.mintA.address,isWritable:!1}),l({pubkey:a.mintB.address,isWritable:!1}),l({pubkey:a.vault.A,isWritable:!1}),l({pubkey:a.vault.B,isWritable:!1}),l({pubkey:a.id}),l({pubkey:a.targetOrders}),l({pubkey:t.lpTokenAccount}),l({pubkey:a.id,isWritable:!1}),l({pubkey:a.marketProgramId,isWritable:!1}),l({pubkey:a.marketId,isWritable:!1}),l({pubkey:t.payer,isSigner:!0})];return new ge({programId:a.programId,keys:d,data:i})}export{ia as createPoolV4InstructionV2,bo as makeAMMSwapInstruction,yo as makeAMMSwapV2Instruction,na as makeAddLiquidityInstruction,uL as makeInitPoolInstructionV4,va as makeSwapFixedInInstruction,_a as makeSwapFixedOutInstruction,oa as removeLiquidityInstruction,sL as simulatePoolInfoInstruction,Va as swapBaseInV2Instruction,Ea as swapBaseOutV2Instruction};
//# sourceMappingURL=instruction.mjs.map