@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 84.3 kB
JavaScript
var Ko=Object.defineProperty,xo=Object.defineProperties;var Co=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var gn=Object.prototype.hasOwnProperty,Pn=Object.prototype.propertyIsEnumerable;var bn=(o,t,n)=>t in o?Ko(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,Co(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 La,TOKEN_PROGRAM_ID as Ie}from"@solana/spl-token";import{PublicKey as z,SystemProgram as Bo,SYSVAR_RENT_PUBKEY as Oa,TransactionInstruction as ge}from"@solana/web3.js";import{PublicKey as Oo}from"@solana/web3.js";import{get as An,set as Ro}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={},Lo={};function D(o){let t=An(wn,o);if(!t){let n=An(Lo,o);t=new Lt({name:o,logLevel:n}),Ro(wn,o,t)}return t}import{MINT_SIZE as Ya,TOKEN_PROGRAM_ID as Qa,getTransferFeeConfig as Za,unpackMint as Ha}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 p=c.map(w=>{let C=o._buildArgs([w.map(x=>x.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:C}}),A=Nt(p,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 Oo(I),rentEpoch:K}}return null})))}else try{y=await Promise.all(c.map(p=>o.getMultipleAccountsInfo(p,a)))}catch(p){p instanceof Error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.message}`)}return y.flat()}import Le from"bn.js";import UC from"decimal.js";import Do from"big.js";import lt from"bn.js";import No from"toformat";var Mo=No,Qe=Mo;import ct from"big.js";import vo 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),_o={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},Eo={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},q=class{constructor(t,n=new vo(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:_o[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=Eo[i]||1,new Mt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Wo=D("Raydium_amount"),Tn=Qe(Do);function qo(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")):Wo.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 p=new lt(0),A=new lt(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,w]=qo(i.toString(),n.decimals);p=G(b),A=G(w)}p=p.mul(y),c=p.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 Uo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hn}from"@solana/spl-token";var mt={chainId:101,address:Uo.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 Go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as zo}from"@solana/spl-token";function l({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Xo=[l({pubkey:zo,isWritable:!1}),l({pubkey:In.programId,isWritable:!1}),l({pubkey:Go,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"),Yo=new Q("Sysvar1nstructions1111111111111111111111111"),Qo=In.programId,Cs=new Q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Rs=new Q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ls=new Q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Os=new Q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ns=new Q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ms=new Q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Fs=new Q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),vs=new Q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Vs=new Q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),_s=new Q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Es=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)}},ne=Et;ne.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 Zo from"bn.js";var Sn=new q(new Zo(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 Ho=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&&Ho.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 zx}from"lodash";import cu from"axios";var Kn={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"},jo=E(O({},Kn),{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 Ou=D("Raydium_Api");import{PublicKey as jl,SystemProgram as $l}from"@solana/web3.js";import{AccountLayout as om,createAssociatedTokenAccountIdempotentInstruction as im,TOKEN_PROGRAM_ID as rm,TOKEN_2022_PROGRAM_ID as am}from"@solana/spl-token";import{PublicKey as _e,sendAndConfirmTransaction as Yt,SystemProgram as oi,Transaction as Je,TransactionMessage as et,VersionedTransaction as tt}from"@solana/web3.js";import ii 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 p=new ve({key:y,state:ve.deserialize(c.data)});a[y.toString()]=p,n==="devnet"?Fe[y.toString()]=p:Me[y.toString()]=p}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 xn,Keypair as Rn,PublicKey as $o,Transaction as Ln,TransactionMessage as Jo,VersionedTransaction as On}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ei}from"@solana/spl-token";var Cn=D("Raydium_txUtil"),Nn=1644;function ft(o){let t=[],n=[];return o.microLamports&&(t.push(xn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(H.SetComputeUnitPrice)),o.units&&(t.push(xn.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]=$o.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 Jo({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 ti=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ni=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof On&&(t=ti(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 Ln&&(n.recentBlockhash||(n.recentBlockhash=ei.toBase58()),n.feePayer||(n.feePayer=Rn.generate().publicKey)),t.push(ni(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 ii.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(oi.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:p}=a||{},A=m!=null?m:await Ve(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Ke([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:p?"":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)],p=[...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:p,execute:async b=>{var K;let{sequentially:w,onTxUpdate:C,skipTxCount:x=0,recentBlockHash:M,skipPreflight:k=!0}=b||{},I=M!=null?M:await Ve(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(w){let B=[],V=0;for(let _ of c){if(++V,V<=x)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]),_));Ke(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(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&&(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),p=Array.from(new Set([...i,...this.lookupTableAddress])),A=[];for(let I of p)y[I]===void 0&&A.push(new _e(I));let b=await Ut({connection:this.connection,address:A});for(let[I,K]of Object.entries(b))y[I]=K;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 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 _;let{skipPreflight:K=!0,sendAndConfirm:B,notSendToRpc:V}=I||{};if(Ke([x]),(_=this.owner)!=null&&_.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:V?"":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),m=n.filter(b=>b.builder.instructions.length>0),c=[a,...m.map(b=>b.transaction)],y=[this.signers,...m.map(b=>b.signers)],p=[...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:p,buildProps:i,execute:async b=>{var k;let{sequentially:w,onTxUpdate:C,recentBlockHash:x,skipPreflight:M=!0}=b||{};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=[],V=async()=>{if(!I[K])return;let _=await this.connection.sendTransaction(I[K],{skipPreflight:M});B.push({txId:_,status:"sent",signedTx:I[K]}),C==null||C([...B]),K++;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 K=[];for(let B=0;B<I.length;B+=1){let V=await this.connection.sendTransaction(I[B],{skipPreflight:M});K.push(V)}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"]),m=i?ft(i):{instructions:[],instructionTypes:[]},c=this.signers.reduce((x,M)=>E(O({},x),{[M.publicKey.toBase58()]:M}),{}),y=[],p=[],A=[],b=0;if(this.allInstructions.forEach(x=>{let M=[...A,x],k=i?[...m.instructions,...M]:M,K=[...new Set(M.map(B=>B.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(B=>new _e(B));if(x!==n[b]&&A.length<12&&(je({instructions:k,payer:this.feePayer,signers:K})||je({instructions:M,payer:this.feePayer,signers:K})))A.push(x);else{if(A.length===0)throw Error("item ins too big");b+=x===n[b]?1:0,je({instructions:i?[...m.instructions,...A]:[...A],payer:this.feePayer,signers:K})?y.push(new Je().add(...m.instructions,...A)):y.push(new Je().add(...A)),p.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=[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);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)),p.push(M)}return y.forEach(x=>x.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&p.forEach(x=>{x.some(M=>M.publicKey.equals(this.owner.publicKey))||x.push(this.owner.signer)}),{builder:this,transactions:y,signers:p,instructionTypes:this.instructionTypes,execute:async x=>{var _;let{sequentially:M,onTxUpdate:k,skipTxCount:I=0,recentBlockHash:K,skipPreflight:B=!0}=x||{},V=K!=null?K:await Ve(this.connection,this.blockhashCommitment);if(y.forEach(async(P,T)=>{P.recentBlockhash=V,p[T].length&&P.sign(...p[T])}),Ke(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,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||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),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 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"]),p=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)p[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))p[P]=T;let C=n?ft(n):{instructions:[],instructionTypes:[]},x=await Ve(this.connection,this.blockhashCommitment),M=this.signers.reduce((P,T)=>E(O({},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&&($e({instructions:h,payer:this.feePayer,lookupTableAddressAccount:p})||$e({instructions:T,payer:this.feePayer,lookupTableAddressAccount:p})))K.push(P);else{if(K.length===0)throw Error("item ins too big");B+=P===i[B]?1:0;let R={};for(let L of[...new Set(A)])p[L]!==void 0&&(R[L]=p[L]);if(n&&$e({instructions:[...C.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:x})){let L=new et({payerKey:this.feePayer,recentBlockhash:x,instructions:[...C.instructions,...K]}).compileToV0Message(Object.values(p));k.push(new tt(L))}else{let L=new et({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(p));k.push(new tt(L))}I.push(Array.from(new Set(K.map(L=>L.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==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&&$e({instructions:[...C.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:x})){let h=new et({payerKey:this.feePayer,recentBlockhash:x,instructions:[...C.instructions,...K]}).compileToV0Message(Object.values(p));k.push(new tt(h))}else{let h=new et({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(p));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)}),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,yn=Be=>{Oe!==null&&clearInterval(Oe),at!==null&&this.connection.removeSignatureListener(at);let Ae=Y.findIndex(So=>So.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 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 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 Rl}from"@solana/web3.js";import Nl from"bn.js";import{createCloseAccountInstruction as Vl,createInitializeAccountInstruction as _l,createTransferInstruction as El,TOKEN_PROGRAM_ID as Dl}from"@solana/spl-token";import{Keypair as yl,PublicKey as bl}from"@solana/web3.js";import Al from"bn.js";import{TOKEN_PROGRAM_ID as Tl}from"@solana/spl-token";import{PublicKey as bi}from"@solana/web3.js";import _n,{isBN as En}from"bn.js";import{bits as ri,BitStructure as wc,blob as ai,Blob as kc,cstr as Tc,f32 as hc,f32be as Ic,f64 as Bc,f64be as Sc,greedy as Kc,Layout as si,ns64 as xc,ns64be as Cc,nu64 as Rc,nu64be as Lc,offset as ui,s16 as Oc,s16be as Nc,s24 as Mc,s24be as Fc,s32 as ci,s32be as vc,s40 as Vc,s40be as _c,s48 as Ec,s48be as Dc,s8 as Wc,seq as li,struct as qc,Structure as mi,u16 as di,u16be as Uc,u24 as Gc,u24be as zc,u32 as pi,u32be as Xc,u40 as Yc,u40be as Qc,u48 as Zc,u48be as Hc,u8 as fi,UInt as yi,union as jc,Union as $c,unionLayoutDiscriminator as Jc,utf8 as el}from"@solana/buffer-layout";var Pt=si,Mn=mi;var Zt=yi;var Fn=fi,j=di;var At=pi;var le=ci;var vn=li;var F=ai;var Ht=ri,Vn=ui;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 d(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 bi(t),t=>t.toBuffer(),o)}function ue(o){return new nt(Fn(),gi,Pi,o)}function gi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Pi(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"),d("state"),Z("isNativeOption"),e("isNative"),e("delegatedAmount"),Z("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as $g,SystemProgram as Jg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as tP}from"@solana/spl-token";import{PublicKey as pm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ym}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"),Am=new S("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),wi=new S("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Yn=new S("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Qn=new S("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),wm=new S("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ki=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Zn=new S("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ti=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),hi=new S("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),De=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),km=new S("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ii=new S("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Jt=new S("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Bi=new S("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Tm=new S("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Si=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ki=new S("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),xi=new S("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),hm=new S("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Im=new S("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Bm=new S("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Sm=new S("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Km=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 Ly,TOKEN_2022_PROGRAM_ID as Oy,TOKEN_PROGRAM_ID as Ny}from"@solana/spl-token";import{PublicKey as Fy}from"@solana/web3.js";import Vy from"bn.js";import Ey from"decimal.js";import{TOKEN_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as zm}from"@solana/web3.js";var Ci=f([Z("mintAuthorityOption"),r("mintAuthority"),e("supply"),d("decimals"),d("isInitialized"),Z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Jf,TOKEN_2022_PROGRAM_ID as ey,TOKEN_PROGRAM_ID as ty}from"@solana/spl-token";import{Keypair as iy,PublicKey as ry,SystemProgram as sy,TransactionInstruction as uy}from"@solana/web3.js";import ly from"bn.js";import W from"bn.js";var We=new W(1).shln(64);var Ri=new W(1).shln(128),en=new W(1).shln(64).subn(1),Li=new W(1).shln(128).subn(1);var qe=new W("4295048016"),Ue=new W("79226673521066979257578248091"),Oi=new W("59543866431248"),Ni=new W("184467440737095516"),Mi=new W("15793534762490258745");var tn=60,od=new W("18446743708227953217"),Fi=[{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 $=new W(0),Re=new W(1),id=new W(-1);var rd=new W("18446744073700000000");var vi=f([F(8),d("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)]),_i=f([j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),le("tickSpacingIndexReference"),Z("volatilityReference"),Z("volatilityAccumulator"),e("lastUpdateTimestamp"),g(d(),46)]),Ei=f([d("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),d("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),j("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),le("tickCurrent"),Z(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),g(N(),4),d("status"),d("feeOn"),F(6),g(Ei,ot,"rewardInfos"),F(8*16,"tickArrayBitmap"),g(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),_i.replicate("dynamicFeeInfo"),g(e(),46)]),Di=f([N("growthInsideLastX64"),e("rewardAmountOwed")]),Wi=f([F(8),d("bump"),r("nftMint"),r("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),g(Di,ot,"rewardInfos"),e("recentEpoch"),g(e(),7)]),cd=f([F(8),d("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)]),qi=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(qi,tn,"ticks"),d("initializedTickCount"),e("recentEpoch"),g(d(),107)]),Ui=f([F(8),d("bump"),g(r(),jn,"operationOwners"),g(r(),$n,"whitelistMints")]),Gi=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")]),ld=f([F(8),j("index"),j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),g(e(),8)]),zi=f([F(8),r("wallet"),d("nonceIndex"),e("orderNonce"),g(e(),4)]),md=f([e(),d("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),g(e(),8)]),Xi=f([F(8),d("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),g(e(),8)]);import fd from"bn.js";var Bd=Buffer.from("amm_config","utf8"),Qi=Buffer.from("pool","utf8"),Zi=Buffer.from("pool_vault","utf8"),Sd=Buffer.from("pool_reward_vault","utf8"),Kd=Buffer.from("position","utf8"),xd=Buffer.from("tick_array","utf8"),Cd=Buffer.from("operation","utf8"),Rd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ld=Buffer.from("observation","utf8"),Od=Buffer.from("support_mint","utf8"),Nd=Buffer.from("dynamic_fee_config","utf8"),Md=Buffer.from("permission","utf8");var Fd=Buffer.from("locked_position","utf8");import{sha256 as lr}from"js-sha256";import Hi from"bn.js";import Ed from"decimal.js";var Wd=new Hi(1).shln(256).subn(1);import rp from"bn.js";import Qd from"bn.js";import Hd from"decimal.js";import lp from"bn.js";import dp from"decimal.js";import{PublicKey as $p}from"@solana/web3.js";import ef from"bn.js";import{TOKEN_2022_PROGRAM_ID as cf,TOKEN_PROGRAM_ID as lf}from"@solana/spl-token";import ff from"decimal.js";import Wp from"bn.js";import xp from"bn.js";import Bf from"bn.js";function ee(o){let t=`global:${o}`;return Buffer.from(lr.digest(t)).slice(0,8)}Jn.span;var Py=D("Raydium_Clmm"),Ay={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 sn}from"@solana/web3.js";var fr=f([d("instruction")]),yr=f([d("instruction")]),br=f([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),N("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),g(e(),15,"padding")]),gr=f([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),N("perShareReward"),e("lastSlot"),e("perSlotReward")]),Pr=f([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),N("perShareRewardA"),e("perSlotRewardA"),d("option"),r("rewardVaultB"),F(7),e("totalRewardB"),N("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),Ar=f([e(),e("state"),e("nonce"),e("validRewardTokenNum"),N("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),g(br,5,"rewardInfos"),r("creator"),r(),g(e(),32,"padding")]),wr=new Proxy(gr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return E(O({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,t,n)}}),kr=new Proxy(Pr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return E(O({},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(Ar,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return E(O({},a),{version:6,rewardInfos:a.rewardInfos.map(m=>{var c;return E(O({},m),{rewardType:((c=Object.entries(rt).find(y=>String(y[1])===m.rewardType.toString()))!=null?c:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),Tr=f([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),hr=f([d("instruction"),e("nonce"),g(Tr,5,"rewardTimeInfo")]),Ir=f([d("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),Br=f([d("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Pb=f([e("state"),r("id"),r("owner"),e("deposited"),g(e(),1,"rewardDebts")]),co=f([e("state"),r("id"),r("owner"),e("deposited"),g(N(),1,"rewardDebts"),e(""),e("voteLockedBalance"),g(e(),15)]),Ab=f([e("state"),r("id"),r("owner"),e("deposited"),g(e(),2,"rewardDebts")]),Sr=f([e("state"),r("id"),r("owner"),e("deposited"),g(N(),2,"rewardDebts"),g(e(),17)]),Kr=f([e(),e("state"),r("id"),r("owner"),e("deposited"),g(N(),5,"rewardDebts"),g(e(),16)]),xr=f([d("instruction"),e("amount")]),Cr=f([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Dn("digitShift"),g(d(),7,"reserved1"),g(e(),7,"reserved2")]),Rr=f([F(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),g(d(),32,"reserved1"),g(Cr,4,"votingMints"),Ee("timeOffset"),d("bump"),g(d(),7,"reserved2"),g(e(),11,"reserved3")]),Lr=f([Ee("startTime"),Ee("endTime"),d("kind"),g(d(),15,"reserved")]),Or=f([g(Lr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),d("votingMintConfigIdx"),g(d(),29,"reserved")]),Nr=f([F(8),r("voterAuthority"),r("registrar"),g(Or,32,"deposits"),d("voterBump"),d("voterWweightRecordBump"),g(d(),94,"reserved")]);import{NATIVE_MINT as xb}from"@solana/spl-token";var Cb=D("Raydium_farm_config"),Mr=new sn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Fr=new sn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Rb=new sn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var rt={"Standard SPL":0,"Option tokens":1},lo={[Gn.toString()]:3,[zn.toString()]:4,[Xn.toString()]:5,[$t.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 vr}from"@solana/web3.js";import Vr from"bn.js";function _r(o){return typeof o=="object"&&o!==null&&![ne,se,vr,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 Xr=new po(25),Yr=new po(1e4);var un=f([d("instruction"),e("amountIn"),e("minAmountOut")]),cn=f([d("instruction"),e("maxAmountIn"),e("amountOut")]),UP=f([d("instruction"),d("nonce")]),ln=f([d("instruction"),d("nonce"),e("startTime")]),fo=f([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"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),e("swapBase2QuoteFee"),N("swapQuoteInAmount"),N("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"),g(e(),3,"padding")]),GP=f([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"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),N("swapQuoteInAmount"),N("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"),g(e(),64,"padding")]),mn=f([d("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),dn=f([d("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Qr=f([e("fee")]);var Zr=5e4,Hr=f([e("x"),e("y"),e("price")]),QP=f([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),g(Hr,Zr,"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 $P}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 VA}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 jr(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=f([F(5),jr("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 sT}from"@solana/web3.js";import{AccountLayout as cT,NATIVE_MINT as lT,TOKEN_2022_PROGRAM_ID as mT,TOKEN_PROGRAM_ID as dT,createAssociatedTokenAccountIdempotentInstruction as pT}from"@solana/spl-token";import ak from"bn.js";import aa from"bn.js";var Xw=new aa(0);import $w from"bn.js";import sa from"bn.js";var St=new sa(1e6);import kT from"bn.js";import hT from"decimal.js";import{PublicKey as Ik,TransactionInstruction as Bk,Keypair as Kk,SystemProgram as xk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Rk,TOKEN_2022_PROGRAM_ID as Lk,TOKEN_PROGRAM_ID as Ok}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");var Ak=Buffer.from("locked_liquidity","utf8");var Ek=D("Raydium_cpmm"),Dk={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 la=f([F(8),d("bump"),ue("disableCreatePool"),j("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),g(e(),15)]),go=f([F(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),d("bump"),d("status"),d("lpDecimals"),d("mintDecimalA"),d("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),d("feeOn"),ue("enableCreatorFee"),g(d(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),g(e(),28)]),Uk=f([F(8),r("configId"),g(e(),30)]);import{PublicKey as fK,SystemProgram as yK}from"@solana/web3.js";import{createTransferInstruction as gK,TOKEN_PROGRAM_ID as PK,TOKEN_2022_PROGRAM_ID as AK,createAssociatedTokenAccountIdempotentInstruction as wK,createSyncNativeInstruction as TK,createTransferCheckedInstruction as hK}from"@solana/spl-token";import Ka from"bn.js";import SK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Nh,TOKEN_2022_PROGRAM_ID as Mh,TOKEN_PROGRAM_ID as Fh}from"@solana/spl-token";import{SystemProgram as Eh,TransactionInstruction as Dh}from"@solana/web3.js";import ga from"bn.js";var pa=f([e(),e("epoch"),d("curveType"),j("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"),g(e(),16)]),fa=f([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),ya=f([e(),e("epoch"),d("bump"),d("status"),d("mintDecimalsA"),d("mintDecimalsB"),d("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"),d("mintProgramFlag"),d("cpmmCreatorFeeOn"),e("platformVestingShare"),g(d(),54)]),fh=f([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),g(e(),8)]),Ao=f([d("migrateType"),d("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),ba=f([e("epoch"),d("index"),r("configId"),Ao.replicate("bondingCurveParam"),g(e(),50)]),wo=f([e(),e("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),g(d(),64,"name"),g(d(),256,"web"),g(d(),256,"img"),r("cpConfigId"),e("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),e("platformVestingScale"),r("platformCpCreator"),d("restrictGlobalConfig"),g(d(),107),qn(ba,"platformCurve")]);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");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]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),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])};var zh=new ga("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Zh,TOKEN_PROGRAM_ID as Hh}from"@solana/spl-token";import eI from"bn.js";import nI from"decimal.js";import MI from"bn.js";import vI from"decimal.js";import uI from"bn.js";import lI from"decimal.js";import wI from"bn.js";import TI from"decimal.js";import ho from"bn.js";import pn from"decimal.js";var xt=class{static _multipler(t){return new pn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new pn(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 ho(a.mul(this._Q64).toFixed(0))}};xt._Q64=new pn(new ho(1).shln(64).toString());import{NATIVE_MINT as GB,TOKEN_2022_PROGRAM_ID as zB,TOKEN_PROGRAM_ID as XB,createAssociatedTokenAccountIdempotentInstruction as QB,createSyncNativeInstruction as ZB,getTransferFeeConfig as HB,unpackMint as jB}from"@solana/spl-token";import J from"bn.js";import{PublicKey as Ia,SystemProgram as eS}from"@solana/web3.js";import sS from"decimal.js";var uS={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 Ia("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new J(0),cliffPeriod:new J(0),unlockPeriod:new J(0),startTime:new J(0),totalAllocatedShare:new J(0)}},cS=new J(1e4);var Ba={[Yn.toBase58()]:3};var Sa=f([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 OS}from"@solana/web3.js";var VS=D("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as XS,TOKEN_2022_PROGRAM_ID as YS,TOKEN_PROGRAM_ID as QS}from"@solana/spl-token";import{PublicKey as HS,SystemProgram as jS,TransactionInstruction as $S}from"@solana/web3.js";import eK from"bn.js";var nx=new Ka(0);import{PublicKey as xa,Transaction as fn,TransactionInstruction as Ca}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ra}from"@solana/spl-token";import Io 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 Io(a).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:a,chainTime:m}){if(i.length===0)return[];let c=i.map(b=>oe.getPdaPoolId(n,b).publicKey),y=[];for(let b=0;b<oe.VERSION_PROJECT.length;b++)y.push(...c.map(w=>oe.getPdaOwnerId(n,w,a,b).publicKey));let p=await we(t,[...c,...y]),A=[];for(let b=0;b<p.length;b++){let w=Math.floor(b/i.length),C=b%i.length,x=c[C],M=y[b],k=p[C],I=p[i.length+b];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),V=K.openTime.toNumber(),_=K.endTime.toNumber(),P=B.tokenInfo.map(R=>R.debtAmount.gt(new Io(0))).filter(R=>!R).length!==3,T=m>V&&m<_&&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:V,endTime:_,canClaim:h,canClaimErrorType:P?T?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((R,L)=>({mintAddress:R.mintAddress,mintVault:R.mintVault,mintDecimals:R.mintDecimals,perLpLoss:R.perLpLoss,debtAmount:B.tokenInfo[L].debtAmount.add(B.tokenInfo[L].claimedAmount)}))})}return A}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,c=[];for(let A of t.tokenInfo){let{account:b,instructionParams:w}=await this.scope.account.getOrCreateTokenAccount({mint:A.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:A.mintAddress.equals(ne.WSOL.mint),createInfo:{payer:m,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(b)}a.addInstruction({instructions:[oe.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,ownerPda:t.ownerAccountId,claimAddress:c}})]});let{transaction:y,signers:p}=a.build();return[{transaction:y,signer:p}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,c={};for(let b of t){let w=[];for(let C of b.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:m,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:b.programId,poolInfo:b,ownerInfo:{wallet:m,ownerPda:b.ownerAccountId,claimAddress:w}})]})}let{transaction:y,signers:p}=a.build(),A=a.allInstructions;return Xt(A,[m,...p.map(b=>b.publicKey)])?[{transaction:y,signer:p}]:[{transaction:new fn().add(...A.slice(0,a.AllTxData.instructions.length-1)),signer:p},{transaction:new fn().add(...A.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new fn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let a=f([]),m=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(p=>({pubkey:p,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:p})=>({pubkey:p,isSigner:!1,isWritable:!0})),{pubkey:Ra,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 Ca({keys:m,programId:t,data:y})}},me=oe;me.CLAIMED_NUM=3,me.POOL_LAYOUT=f([F(8),d("bump"),d("status"),e("openTime"),e("endTime"),r("ammId"),g(f([d("mintDecimals"),r("mintAddress"),r("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),oe.CLAIMED_NUM,"tokenInfo"),g(e(),10,"padding")]),me.OWNER_LAYOUT=f([F(8),d("bump"),d("version"),r("poolId"),r("owner"),e("lpAmount"),g(f([r("mintAddress"),e("debtAmount"),e("claimedAmount")]),oe.CLAIMED_NUM,"tokenInfo"),g(e(),4,"padding")]),me.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new xa(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 Ax}from"@solana/web3.js";import{getTransferFeeConfig as kx,MintLayout as Tx,TOKEN_2022_PROGRAM_ID as hx,TOKEN_PROGRAM_ID as Ix,unpackMint as Bx}from"@solana/spl-token";var JC=new Le(2),eR=new Le(3),tR=new Le(5),Ft=new Le(10),nR=new Le(100),oR=new Le(1e3),iR=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 oa(o){let{poolInfo:t,poolKeys:n,userKeys:i,baseAmountIn:a,quoteAmountIn:m,fixedSide:c,otherAmountMin:y,modelDataPubKey:p=De}=o,A=Buffer.alloc(mn.span);mn.encode({instruction:3,baseAmountIn:G(a),quoteAmountIn:G(m),otherAmountMin:G(y),fixedSide:c==="base"?$:Re},A);let b=[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")&&b.push(l({pubkey:p})),b.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:b,data:A})}function ia(o){let{poolInfo:t,poolKeys:n,userKeys:i,lpAmount:a,baseAmountMin:m,quoteAmountMin:c,modelDataPubKey:y=De}=o,p=be(n),A=4;if(t.pooltype.includes("StablePool")&&(A=5),A===4||A===5){let b=Buffer.alloc(dn.span);dn.encode({instruction:4,lpAmount:G(a),baseAmountMin:G(m),quoteAmountMin:G(c)},b);let w=[l({pubkey:Ie,isWritable:!1}),l({pubkey:p.id}),l({pubkey:p.authority,isWritable:!1}),l({pubkey:p.openOrders}),l({pubkey:p.targetOrders}),l({pubkey:p.mintLp.address}),l({pubkey:p.vault.A}),l({pubkey:p.vault.B})];return A===5?w.push(l({pubkey:y})):(w.push(l({pubkey:p.id})),w.push(l({pubkey:p.id}))),w.push(l({pubkey:p.marketProgramId,isWritable:!1}),l({pubkey:p.marketId}),l({pubkey:p.marketBaseVault}),l({pubkey:p.marketQuoteVault}),l({pubkey:p.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:p.marketEventQueue}),l({pubkey:p.marketBids}),l({pubkey:p.marketAsks})),new ge({programId:p.programId,keys:w,data:b})}return new ge({programId:p.programId,keys:[]})}function ra({programId:o,ammId:t,ammAuthority:n,ammOpenOrders:i,lpMint:a,coinMint:m,pcMint:c,coinVault:y,pcVault:p,withdrawQueue:A,ammTargetOrders:b,poolTempLp:w,marketProgramId:C,marketId:x,userWallet:M,userCoinVault:k,userPcVault:I,userLpVault:K,nonce:B,openTime:V,coinAmount:_,pcAmount:P,ammConfigId:T,feeDestinationId:h}){let R=f([d("instruction"),d("nonce"),e("openTime"),e("pcAmount"),e("coinAmount")]),L=[{pubkey:Ie,isSigner:!1,isWritable:!1},{pubkey:La,isSigner:!1,isWritable:!1},{pubkey:Bo.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:m,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,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:V,coinAmount:_,pcAmount:P},v),{instruction:new ge({keys:L,programId:o,data:v}),instructionType:H.AmmV4CreatePool}}function VR(o){let t=f([d("instruction"),d("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 Na({poolKeys:o,userKeys:t,amountIn:n,minAmountOut:i,modelDataPubKey:a=De},m){let c=be(o),y=Buffer.alloc(un.span);un.encode({instruction:9,amountIn:G(n),minAmountOut:G(i)},y);let p=[l({pubkey:Ie,isWritable:!1}),l({pubkey:c.id}),l({pubkey:c.authority,isWritable:!1}),l({pubkey:c.openOrders})];return m===4&&p.push(l({pubkey:c.targetOrders})),p.push(l({pubkey:c.vault.A}),l({pubkey:c.vault.B})),m===5&&p.push(l({pubkey:a})),p.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:p,data:y})}function Ma({poolKeys:o,userKeys:t,maxAmountIn:n,amountOut:i,modelDataPubKey:a=De},m){let c=be(o),y=Buffer.alloc(cn.span);cn.encode({instruction:11,maxAmountIn:G(n),amountOut:G(i)},y);let p=[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 m===5&&p.push(l({pubkey:a})),p.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:p,data:y})}function Fa(o,t,n,i,a,m,c,y,p,A){let b=f([d("instructionId"),e("amountIn"),e("minAmountOut")]),w=Buffer.alloc(b.span);b.encode({instructionId:16,amountIn:p,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:m,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 va(o,t,n,i,a,m,c,y,p,A){let b=f([d("instructionId"),e("maxAmountIn"),e("amountOut")]),w=Buffer.alloc(b.span);b.encode({instructionId:17,maxAmountIn:p,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:m,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:m,fixedSide:c}=o;if(n===4){if(c==="in")return Fa(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(m.toString()));if(c==="out")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(m.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:m,fixedSide:c}=o;if(n===4||n===5){let y={poolKeys:t,userKeys:i};if(c==="in")return Na(E(O({},y),{amountIn:a,minAmountOut:m}),n);if(c==="out")return Ma(E(O({},y),{maxAmountIn:a,amountOut:m}),n);Rt.logWithError("invalid params","params",o)}throw Rt.logWithError("invalid version","poolKeys.version",n),new Error("invalid version")}function _R({poolKeys:o,userKeys:t,startTime:n}){let i=Buffer.alloc(ln.span);ln.encode({instruction:0,nonce:5,startTime:G(n)},i);let a=be(o),m=[l({pubkey:Ie,isWritable:!1}),l({pubkey:Bo.programId,isWritable:!1}),l({pubkey:Oa,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:m,data:i})}export{ra as createPoolV4InstructionV2,bo as makeAMMSwapInstruction,yo as makeAMMSwapV2Instruction,oa as makeAddLiquidityInstruction,_R as makeInitPoolInstructionV4,Na as makeSwapFixedInInstruction,Ma as makeSwapFixedOutInstruction,ia as removeLiquidityInstruction,VR as simulatePoolInfoInstruction,Fa as swapBaseInV2Instruction,va as swapBaseOutV2Instruction};
//# sourceMappingURL=instruction.mjs.map