UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 88.1 kB
var Vo=Object.defineProperty,_o=Object.defineProperties;var Eo=Object.getOwnPropertyDescriptors;var ct=Object.getOwnPropertySymbols;var Sn=Object.prototype.hasOwnProperty,Kn=Object.prototype.propertyIsEnumerable;var Bn=(o,e,n)=>e in o?Vo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,M=(o,e)=>{for(var n in e||(e={}))Sn.call(e,n)&&Bn(o,n,e[n]);if(ct)for(var n of ct(e))Kn.call(e,n)&&Bn(o,n,e[n]);return o},q=(o,e)=>_o(o,Eo(e));var be=(o,e)=>{var n={};for(var i in o)Sn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&ct)for(var i of ct(o))e.indexOf(i)<0&&Kn.call(o,i)&&(n[i]=o[i]);return n};import{PublicKey as L,SystemProgram as Re,SYSVAR_CLOCK_PUBKEY as Xe,SYSVAR_RENT_PUBKEY as va,TransactionInstruction as J}from"@solana/web3.js";import Nt from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Va,createAssociatedTokenAccountIdempotentInstruction as _a,TOKEN_PROGRAM_ID as me}from"@solana/spl-token";import{PublicKey as qo}from"@solana/web3.js";import{get as xn,set as Do}from"lodash";var Mt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Cn={},Wo={};function D(o){let e=xn(Cn,o);if(!e){let n=xn(Wo,o);e=new Mt({name:o,logLevel:n}),Do(Cn,o,e)}return e}import{MINT_SIZE as ns,TOKEN_PROGRAM_ID as os,getTransferFeeConfig as is,unpackMint as rs}from"@solana/spl-token";var Ft=D("Raydium_accountInfo_util");async function we(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:m=100}=M({batchRequest:!1},n),u=vt(e,m),d=new Array(u.length).fill([]);if(i){let b=u.map(w=>{let P=o._buildArgs([w.map(A=>A.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:P}}),g=vt(b,10);d=(await(await Promise.all(g.map(async w=>await o._rpcBatchRequest(w)))).flat()).map(w=>(w.error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${w.error.message}`),w.result.value.map(P=>{if(P){let{data:A,executable:B,lamports:k,owner:I,rentEpoch:C}=P;return A.length!==2&&A[1]!=="base64"&&Ft.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(A[0],"base64"),executable:B,lamports:k,owner:new qo(I),rentEpoch:C}}return null})))}else try{d=await Promise.all(u.map(b=>o.getMultipleAccountsInfo(b,a)))}catch(b){b instanceof Error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return d.flat()}import Ce from"bn.js";import DC from"decimal.js";import Ho from"big.js";import Ts from"bn.js";import Uo from"toformat";var Go=Uo,Ze=Go;import mt from"big.js";import Xo from"bn.js";import Yo from"decimal.js-light";import He from"bn.js";var Rn=9007199254740991;function G(o){let e=D("Raydium_parseBigNumberish");if(o instanceof He)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new He(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Rn||o<=-Rn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new He(String(o))):typeof o=="bigint"?new He(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new He(0))}var lt=D("module/fraction"),Vt=Ze(mt),je=Ze(Yo),Qo={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},Zo={[0]:mt.roundDown,[1]:mt.roundHalfUp,[2]:mt.roundUp},X=class{constructor(e,n=new Xo(1)){this.numerator=G(e),this.denominator=G(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new X(this.denominator,this.numerator)}add(e){let n=e instanceof X?e:new X(G(e));return this.denominator.eq(n.denominator)?new X(this.numerator.add(n.numerator),this.denominator):new X(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof X?e:new X(G(e));return this.denominator.eq(n.denominator)?new X(this.numerator.sub(n.numerator),this.denominator):new X(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof X?e:new X(G(e));return new X(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof X?e:new X(G(e));return new X(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||lt.logWithError(`${e} is not an integer.`),e<=0&&lt.logWithError(`${e} is not positive.`),je.set({precision:e+1,rounding:Qo[i]});let a=new je(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||lt.logWithError(`${e} is not an integer.`),e<0&&lt.logWithError(`${e} is negative.`),Vt.DP=e,Vt.RM=Zo[i]||1,new Vt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Ls=D("Raydium_amount"),Os=Ze(Ho);import{PublicKey as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ln}from"@solana/spl-token";var dt={chainId:101,address:$o.default.toBase58(),programId:Ln.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ge={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Ln.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 Dt}from"@solana/web3.js";import{PublicKey as Z,SystemProgram as On,SYSVAR_RENT_PUBKEY as Jo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ei}from"@solana/spl-token";function s({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var _t=[s({pubkey:ei,isWritable:!1}),s({pubkey:On.programId,isWritable:!1}),s({pubkey:Jo,isWritable:!1})];function Nn({publicKey:o,transformSol:e}){let n=Mn(o.toString());if(n instanceof Z)return e&&n.equals(Te)?ke:n;if(e&&n.toString()===Te.toBase58())return ke;if(typeof n=="string"){if(n===Z.default.toBase58())return Z.default;try{return new Z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Mn(o){try{return new Z(o)}catch{return o}}var Et=new Z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Be=new Z("SysvarRent111111111111111111111111111111111"),Ds=new Z("SysvarC1ock11111111111111111111111111111111"),pt=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ft=new Z("Sysvar1nstructions1111111111111111111111111"),ti=On.programId,Ws=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qs=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Us=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gs=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),zs=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xs=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ys=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Qs=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Zs=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Hs=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),js=new Z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ke=new Z("So11111111111111111111111111111111111111112"),Te=Z.default;var Wt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:m=!1,isToken2022:u=!1}){if(e===Te.toBase58()||e instanceof Dt&&Te.equals(e)){this.decimals=ge.decimals,this.symbol=ge.symbol,this.name=ge.name,this.mint=new Dt(ge.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=m?Dt.default:Nn({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ie=Wt;ie.WSOL=new Wt(q(M({},ge),{mint:ge.address}));var qt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},yt=qt;yt.SOL=new qt(dt);import ni from"bn.js";var cu=new X(new ni(100));var yu=D("Raydium_price");import{merge as qx}from"lodash";import Iu from"axios";var Fn={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"},oi=q(M({},Fn),{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 Yu=D("Raydium_Api");import{PublicKey as dm,SystemProgram as pm}from"@solana/web3.js";import{AccountLayout as Pm,createAssociatedTokenAccountIdempotentInstruction as Am,TOKEN_PROGRAM_ID as wm,TOKEN_2022_PROGRAM_ID as km}from"@solana/spl-token";import{PublicKey as ve,sendAndConfirmTransaction as Qt,SystemProgram as ci,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import li from"axios";import{PublicKey as Ut,AddressLookupTableAccount as Me}from"@solana/web3.js";async function Gt({connection:o,address:e,cluster:n="mainnet"}){let i=await we(o,[...new Set(e.map(m=>m.toString()))].map(m=>new Ut(m))),a={};for(let m=0;m<e.length;m++){let u=i[m],d=e[m];if(!u)continue;let b=new Me({key:d,state:Me.deserialize(u.data)});a[d.toString()]=b,n==="devnet"?Ne[d.toString()]=b:Oe[d.toString()]=b}return a}var Oe={},zt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Oe[e])return Oe;let n=new Ut(e),i=await o.getAccountInfo(n);return i&&(Oe[e]=new Me({key:n,state:Me.deserialize(i.data)})),Oe},Ne={},Xt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ne[e])return Ne;let n=new Ut(e),i=await o.getAccountInfo(n);return i&&(Ne[e]=new Me({key:n,state:Me.deserialize(i.data)})),Ne};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 vn,Keypair as _n,PublicKey as ii,Transaction as En,TransactionMessage as ri,VersionedTransaction as Dn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ai}from"@solana/spl-token";var Vn=D("Raydium_txUtil"),Wn=1644;function bt(o){let e=[],n=[];return o.microLamports&&(e.push(vn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(H.SetComputeUnitPrice)),o.units&&(e.push(vn.setComputeUnitLimit({units:o.units})),n.push(H.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Fe(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function gt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,m=>{if(clearTimeout(a),!m.err){n("");return}i(Object.assign(m.err,{txId:e}))},"confirmed")})}function Yt(o,e){o.length<1&&Vn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Vn.logWithError(`no signers provided:, ${e.toString()}`);let n=new En;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Wn}catch{return!1}}function ee(o,e){let[n,i]=ii.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function $e({instructions:o,payer:e,signers:n}){return Yt(o,[e,...n])}function Je({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=_n.generate().publicKey.toString()}){let m=new ri({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Dn(m).serialize()).toString("base64").length<Wn}catch{return!1}}var si=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ui=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Dn&&(e=si(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Se(o){let e=[];return o.forEach(n=>{n instanceof En&&(n.recentBlockhash||(n.recentBlockhash=ai.toBase58()),n.feePayer||(n.feePayer=_n.generate().publicKey)),e.push(ui(n))}),console.log("simulate tx string:",e),e}var Pt=2e3,At=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.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 e=(await li.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=e==null?void 0:e[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:i}=bt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(ci.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new ve(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:m=[],lookupTableAddress:u=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...u.filter(d=>d!==ve.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(q(M({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new et;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 p;let{recentBlockHash:m,skipPreflight:u=!0,sendAndConfirm:d,notSendToRpc:b}=a||{},g=m!=null?m:await Fe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=g,this.signers.length&&n.sign(...this.signers),Se([n]),(p=this.owner)!=null&&p.isKeyPair)return{txId:d?await Qt(this.connection,n,this.signers.find(P=>P.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:u}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:u}),signedTx:n};if(this.signAllTransactions){let w=await this.signAllTransactions([n]);if(this.signers.length)for(let P of w)try{P.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(w[0].serialize(),{skipPreflight:u}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var g;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),m=n.filter(p=>p.transaction.instructions.length>0),u=[a,...m.map(p=>p.transaction)],d=[this.signers,...m.map(p=>p.signers)],b=[...this.instructionTypes,...m.map(p=>p.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&d.forEach(p=>{p.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:d,instructionTypes:b,execute:async p=>{var C;let{sequentially:w,onTxUpdate:P,skipTxCount:A=0,recentBlockHash:B,skipPreflight:k=!0}=p||{},I=B!=null?B:await Fe(this.connection,this.blockhashCommitment);if((C=this.owner)!=null&&C.isKeyPair){if(w){let K=[],v=0;for(let _ of u){if(++v,v<=A)continue;let h=await Qt(this.connection,_,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});K.push(h)}return{txIds:K,signedTxs:u}}return{txIds:await await Promise.all(u.map(async K=>(K.recentBlockhash=I,await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:k})))),signedTxs:u}}if(this.signAllTransactions){let K=u.map((_,h)=>(_.recentBlockhash=I,d[h].length&&_.sign(...d[h]),_));Se(K);let v=await this.signAllTransactions(K);if(w){let _=0,h=[],S=async()=>{if(!v[_])return;let x=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:k});h.push({txId:x,status:"sent",signedTx:v[_]}),P==null||P([...h]),_++;let O=!1,N=null,E=null,ae=z=>{N!==null&&clearInterval(N),E!==null&&this.connection.removeSignatureListener(E);let U=h.findIndex(oe=>oe.txId===x);if(U>-1){if(h[U].status==="error"||h[U].status==="success")return;h[U].status=z.err?"error":"success"}P==null||P([...h]),z.err||S()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var z;if(O){clearInterval(N);return}try{let U=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(O=!0,clearInterval(N),ae({err:((z=U.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",x))}catch(U){O=!0,clearInterval(N),console.error("getTransaction timeout:",U,x)}},Pt)),E=this.connection.onSignature(x,z=>{if(O){this.connection.removeSignatureListener(E);return}O=!0,ae(z)},"confirmed"),this.connection.getSignatureStatus(x)};return await S(),{txIds:h.map(x=>x.txId),signedTxs:v}}else{let _=[];for(let h=0;h<v.length;h+=1){let S=await this.connection.sendRawTransaction(v[h].serialize(),{skipPreflight:k});_.push(S)}return{txIds:_,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var k;let B=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:m}=B,u=be(B,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),d=M(M({},this.cluster==="devnet"?await Xt(this.connection):await zt(this.connection)),n),b=Array.from(new Set([...i,...this.lookupTableAddress])),g=[];for(let I of b)d[I]===void 0&&g.push(new ve(I));let p=await Gt({connection:this.connection,address:g});for(let[I,C]of Object.entries(p))d[I]=C;let w=a?ve.default.toBase58():m!=null?m:await Fe(this.connection,this.blockhashCommitment),P=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(d));((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 A=new nt(P);return A.sign(this.signers),{builder:this,transaction:A,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var _;let{skipPreflight:C=!0,sendAndConfirm:K,notSendToRpc:v}=I||{};if(Se([A]),(_=this.owner)!=null&&_.isKeyPair){let h=await this.connection.sendTransaction(A,{skipPreflight:C});return K&&await gt(this.connection,h),{txId:h,signedTx:A}}if(this.signAllTransactions){let h=await this.signAllTransactions([A]);if(this.signers.length)for(let S of h)try{S.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(h[0],{skipPreflight:C}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),m=n.filter(p=>p.builder.instructions.length>0),u=[a,...m.map(p=>p.transaction)],d=[this.signers,...m.map(p=>p.signers)],b=[...this.instructionTypes,...m.map(p=>p.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&d.forEach(p=>{p.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(p,w)=>{p.sign(d[w])}),{builder:this,transactions:u,signers:d,instructionTypes:b,buildProps:i,execute:async p=>{var k;let{sequentially:w,onTxUpdate:P,recentBlockHash:A,skipPreflight:B=!0}=p||{};if(A&&u.forEach(I=>I.message.recentBlockhash=A),Se(u),(k=this.owner)!=null&&k.isKeyPair){if(w){let I=[];for(let C of u){let K=await this.connection.sendTransaction(C,{skipPreflight:B});await gt(this.connection,K),I.push(K)}return{txIds:I,signedTxs:u}}return{txIds:await Promise.all(u.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:B}))),signedTxs:u}}if(this.signAllTransactions){let I=await this.signAllTransactions(u);if(w){let C=0,K=[],v=async()=>{if(!I[C])return;let _=await this.connection.sendTransaction(I[C],{skipPreflight:B});K.push({txId:_,status:"sent",signedTx:I[C]}),P==null||P([...K]),C++;let h=!1,S=null,x=null,O=N=>{S!==null&&clearInterval(S),x!==null&&this.connection.removeSignatureListener(x);let E=K.findIndex(ae=>ae.txId===_);if(E>-1){if(K[E].status==="error"||K[E].status==="success")return;K[E].status=N.err?"error":"success"}P==null||P([...K]),N.err||v()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var N;if(h){clearInterval(S);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(h=!0,clearInterval(S),O({err:((N=E.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){h=!0,clearInterval(S),console.error("getTransaction timeout:",E,_)}},Pt)),x=this.connection.onSignature(_,N=>{if(h){this.connection.removeSignatureListener(x);return}h=!0,O(N)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:I}}else{let C=[];for(let K=0;K<I.length;K+=1){let v=await this.connection.sendTransaction(I[K],{skipPreflight:B});C.push(v)}return{txIds:C,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var P;let w=e||{},{splitIns:n=[],computeBudgetConfig:i}=w,a=be(w,["splitIns","computeBudgetConfig"]),m=i?bt(i):{instructions:[],instructionTypes:[]},u=this.signers.reduce((A,B)=>q(M({},A),{[B.publicKey.toBase58()]:B}),{}),d=[],b=[],g=[],p=0;if(this.allInstructions.forEach(A=>{let B=[...g,A],k=i?[...m.instructions,...B]:B,C=[...new Set(B.map(K=>K.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(K=>new ve(K));if(A!==n[p]&&g.length<12&&($e({instructions:k,payer:this.feePayer,signers:C})||$e({instructions:B,payer:this.feePayer,signers:C})))g.push(A);else{if(g.length===0)throw Error("item ins too big");p+=A===n[p]?1:0,$e({instructions:i?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:C})?d.push(new et().add(...m.instructions,...g)):d.push(new et().add(...g)),b.push(Array.from(new Set(g.map(K=>K.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(K=>u[K]).filter(K=>K!==void 0)),g=[A]}}),g.length>0){let B=[...new Set(g.map(k=>k.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(k=>u[k]).filter(k=>k!==void 0);$e({instructions:i?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:B.map(k=>k.publicKey)})?d.push(new et().add(...m.instructions,...g)):d.push(new et().add(...g)),b.push(B)}return d.forEach(A=>A.feePayer=this.feePayer),(P=this.owner)!=null&&P.signer&&b.forEach(A=>{A.some(B=>B.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),{builder:this,transactions:d,signers:b,instructionTypes:this.instructionTypes,execute:async A=>{var _;let{sequentially:B,onTxUpdate:k,skipTxCount:I=0,recentBlockHash:C,skipPreflight:K=!0}=A||{},v=C!=null?C:await Fe(this.connection,this.blockhashCommitment);if(d.forEach(async(h,S)=>{h.recentBlockhash=v,b[S].length&&h.sign(...b[S])}),Se(d),(_=this.owner)!=null&&_.isKeyPair){if(B){let h=0,S=[];for(let x of d){if(++h,h<=I){S.push("tx skipped");continue}let O=await Qt(this.connection,x,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});S.push(O)}return{txIds:S,signedTxs:d}}return{txIds:await Promise.all(d.map(async h=>await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:K}))),signedTxs:d}}if(this.signAllTransactions){let h=await this.signAllTransactions(d.slice(I,d.length)),S=[...d.slice(0,I),...h];if(B){let x=0,O=[],N=async()=>{if(!S[x])return;x<I&&(O.push({txId:"",status:"success",signedTx:S[x]}),k==null||k([...O]),x++,N());let E=await this.connection.sendRawTransaction(S[x].serialize(),{skipPreflight:K});O.push({txId:E,status:"sent",signedTx:S[x]}),k==null||k([...O]),x++;let ae=!1,z=null,U=null,oe=Y=>{z!==null&&clearInterval(z),U!==null&&this.connection.removeSignatureListener(U);let se=O.findIndex(Pe=>Pe.txId===E);if(se>-1){if(O[se].status==="error"||O[se].status==="success")return;O[se].status=Y.err?"error":"success"}k==null||k([...O]),Y.err||N()};this.loopMultiTxStatus&&(z=setInterval(async()=>{var Y;if(ae){clearInterval(z);return}try{let se=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});se&&(ae=!0,clearInterval(z),oe({err:((Y=se.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",E))}catch(se){ae=!0,clearInterval(z),console.error("getTransaction timeout:",se,E)}},Pt)),U=this.connection.onSignature(E,Y=>{if(ae){this.connection.removeSignatureListener(U);return}ae=!0,oe(Y)},"confirmed"),this.connection.getSignatureStatus(E)};return await N(),{txIds:O.map(E=>E.txId),signedTxs:S}}else{let x=[];for(let O=0;O<S.length;O+=1){let N=await this.connection.sendRawTransaction(S[O].serialize(),{skipPreflight:K});x.push(N)}return{txIds:x,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var _;let v=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:u=12}=v,d=be(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=M(M({},this.cluster==="devnet"?await Xt(this.connection):await zt(this.connection)),a),g=Array.from(new Set([...this.lookupTableAddress,...m])),p=[];for(let h of g)b[h]===void 0&&p.push(new ve(h));let w=await Gt({connection:this.connection,address:p});for(let[h,S]of Object.entries(w))b[h]=S;let P=n?bt(n):{instructions:[],instructionTypes:[]},A=await Fe(this.connection,this.blockhashCommitment),B=this.signers.reduce((h,S)=>q(M({},h),{[S.publicKey.toBase58()]:S}),{}),k=[],I=[],C=[],K=0;if(this.allInstructions.forEach(h=>{let S=[...C,h],x=n?[...P.instructions,...S]:S;if(h!==i[K]&&C.length<u&&(Je({instructions:x,payer:this.feePayer,lookupTableAddressAccount:b})||Je({instructions:S,payer:this.feePayer,lookupTableAddressAccount:b})))C.push(h);else{if(C.length===0)throw Error("item ins too big");K+=h===i[K]?1:0;let O={};for(let N of[...new Set(g)])b[N]!==void 0&&(O[N]=b[N]);if(n&&Je({instructions:[...P.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:A})){let N=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...P.instructions,...C]}).compileToV0Message(Object.values(b));k.push(new nt(N))}else{let N=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(b));k.push(new nt(N))}I.push(Array.from(new Set(C.map(N=>N.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(N=>B[N]).filter(N=>N!==void 0)),C=[h]}}),C.length>0){let S=[...new Set(C.map(x=>x.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(x=>B[x]).filter(x=>x!==void 0);if(n&&Je({instructions:[...P.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:A})){let x=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...P.instructions,...C]}).compileToV0Message(Object.values(b));k.push(new nt(x))}else{let x=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(b));k.push(new nt(x))}I.push(S)}return(_=this.owner)!=null&&_.signer&&I.forEach(h=>{h.some(S=>S.publicKey.equals(this.owner.publicKey))||h.push(this.owner.signer)}),k.forEach((h,S)=>{h.sign(I[S])}),{builder:this,transactions:k,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async h=>{var ae;let{sequentially:S,onTxUpdate:x,skipTxCount:O=0,recentBlockHash:N,skipPreflight:E=!0}=h||{};if(k.map(async(z,U)=>{I[U].length&&z.sign(I[U]),N&&(z.message.recentBlockhash=N)}),Se(k),(ae=this.owner)!=null&&ae.isKeyPair){if(S){let z=0,U=[];for(let oe of k){if(++z,z<=O){console.log("skip tx: ",z),U.push("tx skipped");continue}let Y=await this.connection.sendTransaction(oe,{skipPreflight:E});await gt(this.connection,Y),U.push(Y)}return{txIds:U,signedTxs:k}}return{txIds:await Promise.all(k.map(async z=>await this.connection.sendTransaction(z,{skipPreflight:E}))),signedTxs:k}}if(this.signAllTransactions){let z=await this.signAllTransactions(k.slice(O,k.length)),U=[...k.slice(0,O),...z];if(S){let oe=0,Y=[],se=async()=>{if(!U[oe])return;if(oe<O){Y.push({txId:"",status:"success",signedTx:U[oe]}),x==null||x([...Y]),oe++,se();return}let Pe=await this.connection.sendTransaction(U[oe],{skipPreflight:E});Y.push({txId:Pe,status:"sent",signedTx:U[oe]}),x==null||x([...Y]),oe++;let Ye=!1,Le=null,ut=null,In=Ie=>{Le!==null&&clearInterval(Le),ut!==null&&this.connection.removeSignatureListener(ut);let Ae=Y.findIndex(vo=>vo.txId===Pe);if(Ae>-1){if(Y[Ae].status==="error"||Y[Ae].status==="success")return;Y[Ae].status=Ie.err?"error":"success"}x==null||x([...Y]),Ie.err||se()};this.loopMultiTxStatus&&(Le=setInterval(async()=>{var Ie;if(Ye){clearInterval(Le);return}try{let Ae=await this.connection.getTransaction(Pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ae&&(Ye=!0,clearInterval(Le),In({err:((Ie=Ae.meta)==null?void 0:Ie.err)||null}),console.log("tx status from getTransaction:",Pe))}catch(Ae){Ye=!0,clearInterval(Le),console.error("getTransaction timeout:",Ae,Pe)}},Pt)),ut=this.connection.onSignature(Pe,Ie=>{if(Ye){this.connection.removeSignatureListener(ut);return}Ye=!0,In(Ie)},"confirmed"),this.connection.getSignatureStatus(Pe)};return se(),{txIds:[],signedTxs:U}}else{let oe=[];for(let Y=0;Y<U.length;Y+=1){let se=await this.connection.sendTransaction(U[Y],{skipPreflight:E});oe.push(se)}return{txIds:oe,signedTxs:U}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}};var Zt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),le=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=D(n)}createTxBuilder(e){return this.scope.checkOwner(),new At({connection:this.scope.connection,feePayer:e||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(...e){this.logger.debug(Zt(e))}logInfo(...e){this.logger.info(Zt(e))}logAndCreateError(...e){let n=Zt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ul,SystemProgram as zl}from"@solana/web3.js";import Ql from"bn.js";import{createCloseAccountInstruction as $l,createInitializeAccountInstruction as Jl,createTransferInstruction as em,TOKEN_PROGRAM_ID as tm}from"@solana/spl-token";import{Keypair as Rl,PublicKey as Ll}from"@solana/web3.js";import Ml from"bn.js";import{TOKEN_PROGRAM_ID as Vl}from"@solana/spl-token";import{PublicKey as Ti}from"@solana/web3.js";import Xn,{isBN as Yn}from"bn.js";import{bits as mi,BitStructure as Fc,blob as di,Blob as vc,cstr as Vc,f32 as _c,f32be as Ec,f64 as Dc,f64be as Wc,greedy as qc,Layout as pi,ns64 as Uc,ns64be as Gc,nu64 as zc,nu64be as Xc,offset as fi,s16 as Yc,s16be as Qc,s24 as Zc,s24be as Hc,s32 as yi,s32be as jc,s40 as $c,s40be as Jc,s48 as el,s48be as tl,s8 as nl,seq as bi,struct as ol,Structure as gi,u16 as Pi,u16be as il,u24 as rl,u24be as al,u32 as Ai,u32be as sl,u40 as ul,u40be as cl,u48 as ll,u48be as ml,u8 as wi,UInt as ki,union as dl,Union as pl,unionLayoutDiscriminator as fl,utf8 as yl}from"@solana/buffer-layout";var wt=pi,qn=gi;var Ht=ki;var Un=wi,j=Pi;var kt=Ai;var fe=yi;var Gn=bi;var V=di;var jt=mi,zn=fi;var xe=class extends wt{constructor(n,i,a){super(n,a);this.blob=V(n),this.signed=i}decode(n,i=0){let a=new Xn(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 Xn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},Tt=class extends wt{constructor(n){super(8,n);this._lower=jt(kt(),!1),this._upper=jt(kt(),!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 M(M({},a),m)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function f(o){return new Ht(1,o)}function Q(o){return new Ht(4,o)}function t(o){return new xe(8,!1,o)}function F(o){return new xe(16,!1,o)}function Qn(o){return new xe(1,!0,o)}function Ve(o){return new xe(8,!0,o)}function Zn(o){return new xe(16,!0,o)}var ot=class extends wt{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 ot(V(32),e=>new Ti(e),e=>e.toBuffer(),o)}function de(o){return new ot(Un(),hi,Ii,o)}function hi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ii(o){return o?1:0}function Hn(o,e){let n=kt("length"),i=y([n,T(o,zn(n,-n.span),"values")]);return new ot(i,({values:a})=>a,a=>({values:a}),e)}var $t=class extends qn{decode(e,n){return super.decode(e,n)}};function y(o,e,n){return new $t(o,e,n)}function T(o,e,n){let i,a=typeof e=="number"?e:Yn(e)?e.toNumber():new Proxy(e,{get(m,u){if(!i){let d=Reflect.get(m,"count");i=Yn(d)?d.toNumber():d,Reflect.set(m,"count",i)}return Reflect.get(m,u)},set(m,u,d){return u==="count"&&(i=d),Reflect.set(m,u,d)}});return Gn(o,a,n)}var ht=y([r("mint"),r("owner"),t("amount"),Q("delegateOption"),r("delegate"),f("state"),Q("isNativeOption"),t("isNative"),t("delegatedAmount"),Q("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as Ig,SystemProgram as Bg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Kg}from"@solana/spl-token";import{PublicKey as Si}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ki}from"@solana/spl-token";function ue(o,e,n){return ee([o.toBuffer(),(n!=null?n:Ki).toBuffer(),e.toBuffer()],new Si("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as R}from"@solana/web3.js";var $n=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Jn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),eo=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Jt=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Om=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),xi=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),to=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),no=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Nm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ci=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),oo=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ri=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Li=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),io=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Mm=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Oi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),en=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ni=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Fm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Mi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Fi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),vi=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),vm=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Vm=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),_m=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Em=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Dm=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var he={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import Vg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Gy,TOKEN_2022_PROGRAM_ID as zy,TOKEN_PROGRAM_ID as Xy}from"@solana/spl-token";import{PublicKey as Qy}from"@solana/web3.js";import Hy from"bn.js";import $y from"decimal.js";import{TOKEN_PROGRAM_ID as ed}from"@solana/spl-token";import{PublicKey as id}from"@solana/web3.js";var Vi=y([Q("mintAuthorityOption"),r("mintAuthority"),t("supply"),f("decimals"),f("isInitialized"),Q("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as dy,TOKEN_2022_PROGRAM_ID as py,TOKEN_PROGRAM_ID as fy}from"@solana/spl-token";import{Keypair as gy,PublicKey as Py,SystemProgram as wy,TransactionInstruction as ky}from"@solana/web3.js";import hy from"bn.js";import W from"bn.js";var Ee=new W(1).shln(64);var _i=new W(1).shln(128),tn=new W(1).shln(64).subn(1),Ei=new W(1).shln(128).subn(1);var De=new W("4295048016"),We=new W("79226673521066979257578248091"),Di=new W("59543866431248"),Wi=new W("184467440737095516"),qi=new W("15793534762490258745");var nn=60,bd=new W("18446743708227953217"),Ui=[{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 it=3,ro=100;var ao=10,so=100,Bt=14;var te=new W(0),qe=new W(1),gd=new W(-1);var Pd=new W("18446744073700000000");var Gi=y([V(8),f("bump"),j("index"),r("owner"),Q("protocolFeeRate"),Q("tradeFeeRate"),j("tickSpacing"),Q("fundFeeRate"),T(Q(),1),r("fundOwner"),T(t(),3)]),zi=y([Q("blockTimestamp"),Ve("tickCumulative"),T(t(),4)]),uo=y([V(8),de("initialized"),t("recentEpoch"),j("observationIndex"),r("poolId"),T(zi,ro,"observations"),T(t(),4)]),Xi=y([j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),fe("tickSpacingIndexReference"),Q("volatilityReference"),Q("volatilityAccumulator"),t("lastUpdateTimestamp"),T(f(),46)]),Yi=y([f("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),F("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),F("growthGlobalX64")]),on=y([V(8),f("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),f("mintDecimalsA"),f("mintDecimalsB"),j("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),fe("tickCurrent"),Q(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),T(F(),4),f("status"),f("feeOn"),V(6),T(Yi,it,"rewardInfos"),V(8*16,"tickArrayBitmap"),T(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Xi.replicate("dynamicFeeInfo"),T(t(),46)]),Qi=y([F("growthInsideLastX64"),t("rewardAmountOwed")]),Zi=y([V(8),f("bump"),r("nftMint"),r("poolId"),fe("tickLower"),fe("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),T(Qi,it,"rewardInfos"),t("recentEpoch"),T(t(),7)]),Td=y([V(8),f("bump"),r("poolId"),fe("tickLower"),fe("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),T(F(),it,"rewardGrowthInside"),t("recentEpoch"),T(t(),7)]),Hi=y([fe("tick"),Zn("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),T(F(),it,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),F("unfilledRatioX64"),T(Q(),3)]),co=y([V(8),r("poolId"),fe("startTickIndex"),T(Hi,nn,"ticks"),f("initializedTickCount"),t("recentEpoch"),T(f(),107)]),ji=y([V(8),f("bump"),T(r(),ao,"operationOwners"),T(r(),so,"whitelistMints")]),$i=y([V(8),r("poolId"),r("owner"),fe("tick"),de("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),F("unfilledRatioX64"),T(t(),4)]),lo=y([V(8),r("poolId"),V(8*8*Bt,"positiveTickArrayBitmap"),V(8*8*Bt,"negativeTickArrayBitmap")]),hd=y([V(8),j("index"),j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),T(t(),8)]),Ji=y([V(8),r("wallet"),f("nonceIndex"),t("orderNonce"),T(t(),4)]),Id=y([t(),f("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),T(t(),8)]),er=y([V(8),f("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),T(t(),8)]);import Kd from"bn.js";var _d=Buffer.from("amm_config","utf8"),nr=Buffer.from("pool","utf8"),or=Buffer.from("pool_vault","utf8"),Ed=Buffer.from("pool_reward_vault","utf8"),Dd=Buffer.from("position","utf8"),Wd=Buffer.from("tick_array","utf8"),qd=Buffer.from("operation","utf8"),Ud=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Gd=Buffer.from("observation","utf8"),zd=Buffer.from("support_mint","utf8"),Xd=Buffer.from("dynamic_fee_config","utf8"),Yd=Buffer.from("permission","utf8");var Qd=Buffer.from("locked_position","utf8");import{sha256 as Pr}from"js-sha256";import ir from"bn.js";import $d from"decimal.js";var ep=new ir(1).shln(256).subn(1);import Pp from"bn.js";import sp from"bn.js";import cp from"decimal.js";import hp from"bn.js";import Bp from"decimal.js";import{PublicKey as df}from"@solana/web3.js";import ff from"bn.js";import{TOKEN_2022_PROGRAM_ID as Tf,TOKEN_PROGRAM_ID as hf}from"@solana/spl-token";import Kf from"decimal.js";import ef from"bn.js";import Wp from"bn.js";import _f from"bn.js";function ne(o){let e=`global:${o}`;return Buffer.from(Pr.digest(e)).slice(0,8)}uo.span;var Ly=D("Raydium_Clmm"),Oy={createPool:ne("create_pool"),createCustomizablePool:ne("create_customizable_pool"),createPermissionedPool:ne("create_permissioned_pool"),openPositionV2:ne("open_position_v2"),openPositionWithToken22Nft:ne("open_position_with_token22_nft"),closePosition:ne("close_position"),increaseLiquidityV2:ne("increase_liquidity_v2"),decreaseLiquidityV2:ne("decrease_liquidity_v2"),initializeReward:ne("initialize_reward"),setRewardParams:ne("set_reward_params"),updateRewardInfos:ne("update_reward_infos"),collectRemainingRewards:ne("collect_remaining_rewards"),swapV2:ne("swap_v2"),openLimitOrder:ne("open_limit_order"),increaseLimitOrder:ne("increase_limit_order"),decreaseLimitOrder:ne("decrease_limit_order"),settleLimitOrder:ne("settle_limit_order"),closeLimitOrder:ne("close_limit_order")};import{PublicKey as pn}from"@solana/web3.js";var un=y([f("instruction")]),cn=y([f("instruction")]),Tr=y([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),F("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),T(t(),15,"padding")]),hr=y([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),F("perShareReward"),t("lastSlot"),t("perSlotReward")]),Ir=y([t("state"),t("nonce"),r("lpVault"),r("rewardVaultA"),t("totalRewardA"),F("perShareRewardA"),t("perSlotRewardA"),f("option"),r("rewardVaultB"),V(7),t("totalRewardB"),F("perShareRewardB"),t("perSlotRewardB"),t("lastSlot"),r()]),Br=y([t(),t("state"),t("nonce"),t("validRewardTokenNum"),F("rewardMultiplier"),t("rewardPeriodMax"),t("rewardPeriodMin"),t("rewardPeriodExtend"),r("lpMint"),r("lpVault"),T(Tr,5,"rewardInfos"),r("creator"),r(),T(t(),32,"padding")]),Sr=new Proxy(hr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return q(M({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,e,n)}}),Kr=new Proxy(Ir,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return q(M({},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,e,n)}}),Po=new Proxy(Br,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return q(M({},a),{version:6,rewardInfos:a.rewardInfos.map(m=>{var u;return q(M({},m),{rewardType:((u=Object.entries(ze).find(d=>String(d[1])===m.rewardType.toString()))!=null?u:["Standard SPL"])[0]})})})}:Reflect.get(o,e,n)}}),xr=y([t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),ln=y([f("instruction"),t("nonce"),T(xr,5,"rewardTimeInfo")]),mn=y([f("instruction"),t("rewardReopenTime"),t("rewardEndTime"),t("rewardPerSecond")]),dn=y([f("instruction"),t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Lb=y([t("state"),r("id"),r("owner"),t("deposited"),T(t(),1,"rewardDebts")]),Lt=y([t("state"),r("id"),r("owner"),t("deposited"),T(F(),1,"rewardDebts"),t(""),t("voteLockedBalance"),T(t(),15)]),Ob=y([t("state"),r("id"),r("owner"),t("deposited"),T(t(),2,"rewardDebts")]),Cr=y([t("state"),r("id"),r("owner"),t("deposited"),T(F(),2,"rewardDebts"),T(t(),17)]),Rr=y([t(),t("state"),r("id"),r("owner"),t("deposited"),T(F(),5,"rewardDebts"),T(t(),16)]),ce=y([f("instruction"),t("amount")]),Lr=y([r("mint"),r("grantAuthority"),t("baselineVoteWeightScaledFactor"),t("maxExtraLockupVoteWeightScaledFactor"),t("lockupSaturationSecs"),Qn("digitShift"),T(f(),7,"reserved1"),T(t(),7,"reserved2")]),Ao=y([V(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),T(f(),32,"reserved1"),T(Lr,4,"votingMints"),Ve("timeOffset"),f("bump"),T(f(),7,"reserved2"),T(t(),11,"reserved3")]),Or=y([Ve("startTime"),Ve("endTime"),f("kind"),T(f(),15,"reserved")]),Nr=y([T(Or,1,"lockup"),t("amountDeposited_native"),t("amountInitiallyLockedNative"),de("isUsed"),de("allowClawback"),f("votingMintConfigIdx"),T(f(),29,"reserved")]),wo=y([V(8),r("voterAuthority"),r("registrar"),T(Nr,32,"deposits"),f("voterBump"),f("voterWweightRecordBump"),T(f(),94,"reserved")]);import{NATIVE_MINT as Wb}from"@solana/spl-token";var qb=D("Raydium_farm_config"),Mr=new pn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Fr=new pn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Ub=new pn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var ze={"Standard SPL":0,"Option tokens":1},ko={[$n.toString()]:3,[Jn.toString()]:4,[eo.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 ng from"bn.js";import{PublicKey as Yb}from"@solana/web3.js";import Zb from"bn.js";var yg=D("Raydium.farm.util");function pe({programId:o,poolId:e,owner:n,version:i}){let{publicKey:a}=ee([e.toBuffer(),n.toBuffer(),Buffer.from(i===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],o);return a}async function yn(o,e,n,i){let a=await o.getAccountInfo(e);if(a===null)throw Error("registrar info check error");let u=Ao.decode(a.data).votingMints.findIndex(p=>p.mint.equals(i));if(u===-1)throw Error("find voter mint error");let d=await o.getAccountInfo(n);if(d===null)return{index:u,isInit:!1};let g=wo.decode(d.data).deposits.findIndex(p=>p.isUsed&&p.votingMintConfigIdx===u);return g===-1?{index:u,isInit:!1}:{index:g,isInit:!0}}import Qg from"bn.js";import{PublicKey as iw}from"@solana/web3.js";import{AccountLayout as sw,MintLayout as uw,NATIVE_MINT as cw,TOKEN_PROGRAM_ID as mw}from"@solana/spl-token";import jg from"bn.js";function bn(o,e,n){return ee([e.toBuffer(),Buffer.from("registrar","utf8"),n.toBuffer()],o)}function gn(o,e){return ee([e.toBuffer(),Buffer.from("voting_mint_seed","utf8")],o)}function Pn(o,e){return ee([e.toBuffer()],o)}function An(o,e,n){return ee([e.toBuffer(),Buffer.from("voter","utf8"),n.toBuffer()],o)}function wn(o,e,n){return ee([e.toBuffer(),Buffer.from("voter-weight-record","utf8"),n.toBuffer()],o)}function kn(o,e,n,i){return ee([Buffer.from("governance","utf8"),e.toBuffer(),n.toBuffer(),i.toBuffer()],o)}import So from"bn.js";var Yr=new So(25),Qr=new So(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as kP,TOKEN_PROGRAM_ID as TP}from"@solana/spl-token";import{PublicKey as IP,SystemProgram as BP,SYSVAR_RENT_PUBKEY as SP,TransactionInstruction as KP}from"@solana/web3.js";import FP from"bn.js";var Zr=y([f("instruction"),t("amountIn"),t("minAmountOut")]),Hr=y([f("instruction"),t("maxAmountIn"),t("amountOut")]),gP=y([f("instruction"),f("nonce")]),jr=y([f("instruction"),f("nonce"),t("startTime")]),Ko=y([t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalValue"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),F("swapBaseInAmount"),F("swapQuoteOutAmount"),t("swapBase2QuoteFee"),F("swapQuoteInAmount"),F("swapBaseOutAmount"),t("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"),t("lpReserve"),T(t(),3,"padding")]),PP=y([t("accountType"),t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalsValue"),t("abortTradeFactor"),t("priceTickMultiplier"),t("priceTick"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),F("swapBaseInAmount"),F("swapQuoteOutAmount"),F("swapQuoteInAmount"),F("swapBaseOutAmount"),t("swapQuote2BaseFee"),t("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),T(t(),64,"padding")]),$r=y([f("instruction"),t("baseAmountIn"),t("quoteAmountIn"),t("fixedSide"),t("otherAmountMin")]),Jr=y([f("instruction"),t("lpAmount"),t("baseAmountMin"),t("quoteAmountMin")]);var ea=y([t("fee")]);var _P=D("Raydium_liquidity_instruction");var ta=5e4,na=y([t("x"),t("y"),t("price")]),qP=y([t("accountType"),t("status"),t("multiplier"),t("validDataCount"),T(na,ta,"DataElement")]);import{PublicKey as eA}from"@solana/web3.js";import nA from"decimal.js";import{TOKEN_PROGRAM_ID as iA}from"@solana/spl-token";import{PublicKey as XP}from"@solana/web3.js";var ZP=D("Raydium_liquidity_serum");import Lw from"bn.js";import Nw from"decimal.js";import{TOKEN_PROGRAM_ID as LA}from"@solana/spl-token";import{PublicKey as NA}from"@solana/web3.js";import FA from"bn.js";import{SystemProgram as PA,SYSVAR_RENT_PUBKEY as AA,Transaction as wA,TransactionInstruction as kA}from"@solana/web3.js";import{createInitializeAccountInstruction as hA,TOKEN_PROGRAM_ID as IA}from"@solana/spl-token";function oa(o="accountFlags"){let e=new Tt(o);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var ia=y([V(5),oa("accountFlags"),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),V(7)]);import{PublicKey as iT}from"@solana/web3.js";import{AccountLayout as aT,NATIVE_MINT as sT,TOKEN_2022_PROGRAM_ID as uT,TOKEN_PROGRAM_ID as cT,createAssociatedTokenAccountIdempotentInstruction as lT}from"@solana/spl-token";import ok from"bn.js";import ma from"bn.js";var Uw=new ma(0);import Zw from"bn.js";import da from"bn.js";var xt=new da(1e6);import PT from"bn.js";import wT from"decimal.js";import{PublicKey as kk,TransactionInstruction as Tk,Keypair as Ik,SystemProgram as Bk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Kk,TOKEN_2022_PROGRAM_ID as xk,TOKEN_PROGRAM_ID as Ck}from"@solana/spl-token";var uk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),ck=Buffer.from("amm_config","utf8"),lk=Buffer.from("pool","utf8"),mk=Buffer.from("pool_lp_mint","utf8"),dk=Buffer.from("pool_vault","utf8"),pk=Buffer.from("observation","utf8"),fk=Buffer.from("permission","utf8"),yk=Buffer.from("support_mint","utf8");var bk=Buffer.from("locked_liquidity","utf8");var vk=D("Raydium_cpmm"),Vk={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 ya=y([V(8),f("bump"),de("disableCreatePool"),j("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),T(t(),15)]),xo=y([V(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),f("bump"),f("status"),f("lpDecimals"),f("mintDecimalA"),f("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),f("feeOn"),de("enableCreatorFee"),T(f(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),T(t(),28)]),Dk=y([V(8),r("configId"),T(t(),30)]);import{PublicKey as mK,SystemProgram as dK}from"@solana/web3.js";import{createTransferInstruction as fK,TOKEN_PROGRAM_ID as yK,TOKEN_2022_PROGRAM_ID as bK,createAssociatedTokenAccountIdempotentInstruction as gK,createSyncNativeInstruction as AK,createTransferCheckedInstruction as wK}from"@solana/spl-token";import Oa from"bn.js";import hK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Rh,TOKEN_2022_PROGRAM_ID as Lh,TOKEN_PROGRAM_ID as Oh}from"@solana/spl-token";import{SystemProgram as vh,TransactionInstruction as Vh}from"@solana/web3.js";import Ta from"bn.js";var Pa=y([t(),t("epoch"),f("curveType"),j("index"),t("migrateFee"),t("tradeFeeRate"),t("maxShareFeeRate"),t("minSupplyA"),t("maxLockRate"),t("minSellRateA"),t("minMigrateRateA"),t("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),T(t(),16)]),Aa=y([t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod"),t("startTime"),t("totalAllocatedShare")]),wa=y([t(),t("epoch"),f("bump"),f("status"),f("mintDecimalsA"),f("mintDecimalsB"),f("migrateType"),t("supply"),t("totalSellA"),t("virtualA"),t("virtualB"),t("realA"),t("realB"),t("totalFundRaisingB"),t("protocolFee"),t("platformFee"),t("migrateFee"),Aa.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),f("mintProgramFlag"),f("cpmmCreatorFeeOn"),t("platformVestingShare"),T(f(),54)]),mh=y([t(),t("epoch"),r("poolId"),r("beneficiary"),t("claimedAmount"),t("tokenShareAmount"),T(t(),8)]),Ro=y([f("migrateType"),f("migrateCpmmFeeOn"),t("supply"),t("totalSellA"),t("totalFundRaisingB"),t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod")]),ka=y([t("epoch"),f("index"),r("configId"),Ro.replicate("bondingCurveParam"),T(t(),50)]),Lo=y([t(),t("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),t("platformScale"),t("creatorScale"),t("burnScale"),t("feeRate"),T(f(),64,"name"),T(f(),256,"web"),T(f(),256,"img"),r("cpConfigId"),t("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),t("platformVestingScale"),r("platformCpCreator"),f("restrictGlobalConfig"),T(f(),107),Hn(ka,"platformCurve")]);var bh=Buffer.from("vault_auth_seed","utf8"),gh=Buffer.from("global_config","utf8"),Ph=Buffer.from("pool_vesting","utf8"),Ah=Buffer.from("platform_config","utf8"),wh=Buffer.from("platform_fee_vault_auth_seed","utf8"),kh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Th=Buffer.from("platform_global_access","utf8"),hh=Buffer.from("platform_allow_config","utf8");var Wh={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 qh=new Ta("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Xh,TOKEN_PROGRAM_ID as Yh}from"@solana/spl-token";import jh from"bn.js";import Jh from"decimal.js";import LI from"bn.js";import NI from"decimal.js";import rI from"bn.js";import sI from"decimal.js";import gI from"bn.js";import AI from"decimal.js";import Mo from"bn.js";import Tn from"decimal.js";var Ot=class{static _multipler(e){return new Tn(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new Tn(e.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:n,decimalB:i}){let a=e.mul(this._multipler(i)).div(this._multipler(n));return new Mo(a.mul(this._Q64).toFixed(0))}};Ot._Q64=new Tn(new Mo(1).shln(64).toString());import{NATIVE_MINT as WB,TOKEN_2022_PROGRAM_ID as qB,TOKEN_PROGRAM_ID as UB,createAssociatedTokenAccountIdempotentInstruction as zB,createSyncNativeInstruction as XB,getTransferFeeConfig as YB,unpackMint as QB}from"@solana/spl-token";import $ from"bn.js";import{PublicKey as Ca,SystemProgram as jB}from"@solana/web3.js";import iS from"decimal.js";var rS={initPriceX64:new $("515752397214619"),supply:new $(1e15),totalSellA:new $(7931e11),totalFundRaisingB:new $(85e9),totalFundRaisingBUSD:new $(125e8),totalLockedAmount:new $("0"),cliffPeriod:new $("0"),unlockPeriod:new $("0"),decimals:6,virtualA:new $("1073471847374405"),virtualB:new $("30050573465"),realA:new $(0),realB:new $(0),protocolFee:new $(0),platformId:new Ca("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new $(0),cliffPeriod:new $(0),unlockPeriod:new $(0),startTime:new $(0),totalAllocatedShare:new $(0)}},aS=new $(1e4);var Ra={[to.toBase58()]:3};var La=y([V(5),V(8),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),V(7)]);import{PublicKey as CS}from"@solana/web3.js";var MS=D("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as US,TOKEN_2022_PROGRAM_ID as GS,TOKEN_PROGRAM_ID as zS}from"@solana/spl-token";import{PublicKey as YS,SystemProgram as QS,TransactionInstruction as ZS}from"@solana/web3.js";import jS from"bn.js";var JK=new Oa(0);import{PublicKey as Na,Transaction as hn,TransactionInstruction as Ma}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fa}from"@solana/spl-token";import Fo from"bn.js";var re=class extends le{static getPdaPoolId(e,n){return ee([re.SEED_CONFIG.pool.id,n.toBuffer()],e)}static getPdaOwnerId(e,n,i,a){return ee([re.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new Fo(a).toArray())],e)}static async getAllInfo({connection:e,programId:n,poolIds:i,wallet:a,chainTime:m}){if(i.length===0)return[];let u=i.map(p=>re.getPdaPoolId(n,p).publicKey),d=[];for(let p=0;p<re.VERSION_PROJECT.length;p++)d.push(...u.map(w=>re.getPdaOwnerId(n,w,a,p).publicKey));let b=await we(e,[...u,...d]),g=[];for(let p=0;p<b.length;p++){let w=Math.floor(p/i.length),P=p%i.length,A=u[P],B=d[p],k=b[P],I=b[i.length+p];if(!(k&&I)||k.data.length!==re.POOL_LAYOUT.span||I.data.length!==re.OWNER_LAYOUT.span)continue;let C=re.POOL_LAYOUT.decode(k.data),K=re.OWNER_LAYOUT.decode(I.data),v=C.openTime.toNumber(),_=C.endTime.toNumber(),h=K.tokenInfo.map(O=>O.debtAmount.gt(new Fo(0))).filter(O=>!O).length!==3,S=m>v&&m<_&&C.status===1,x=h&&S;g.push({programId:n,poolId:A,ammId:C.ammId,ownerAccountId:B,snapshotLpAmount:K.lpAmount,project:re.VERSION_PROJECT[w],openTime:v,endTime:_,canClaim:x,canClaimErrorType:h?S?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:C.tokenInfo.map((O,N)=>({mintAddress:O.mintAddress,mintVault:O.mintVault,mintDecimals:O.mintDecimals,perLpLoss:O.perLpLoss,debtAmount:K.tokenInfo[N].debtAmount.add(K.tokenInfo[N].claimedAmount)}))})}return g}async makeClaimTransaction({poolInfo:e,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,u=[];for(let g of e.tokenInfo){let{account:p,instructionParams:w}=await this.scope.account.getOrCreateTokenAccount({mint:g.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:g.mintAddress.equals(ie.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!g.mintAddress.equals(ie.WSOL.mint),associatedOnly:g.mintAddress.equals(ie.WSOL.mint)?!1:n.associatedOnly});w&&a.addInstruction(w),u.push(p)}a.addInstruction({instructions:[re.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:m,ownerPda:e.ownerAccountId,claimAddress:u}})]});let{transaction:d,signers:b}=a.build();return[{transaction:d,signer:b}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,u={};for(let p of e){let w=[];for(let P of p.tokenInfo){let{account:A,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({mint:P.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:P.mintAddress.equals(ie.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!P.mintAddress.equals(ie.WSOL.mint),associatedOnly:P.mintAddress.equals(ie.WSOL.mint)?!1:n.associatedOnly});B&&a.addInstruction(B),A&&(u[P.mintAddress.toString()]=A,w.push(A))}a.addInstruction({instructions:[re.makeClaimInstruction({programId:p.programId,poolInfo:p,ownerInfo:{wallet:m,ownerPda:p.ownerAccountId,claimAddress:w}})]})}let{transaction:d,signers:b}=a.build(),g=a.allInstructions;return Yt(g,[m,...b.map(p=>p.publicKey)])?[{transaction:d,signer:b}]:[{transaction:new hn().add(...g.slice(0,a.AllTxData.instructions.length-1)),signer:b},{transaction:new hn().add(...g.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new hn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:n,ownerInfo:i}){let a=y([]),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(b=>({pubkey:b,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:b})=>({pubkey:b,isSigner:!1,isWritable:!0})),{pubkey:Fa,isSigner:!1,isWritable:!1}],u=Buffer.alloc(a.span);a.encode({},u);let d=Buffer.from([10,66,208,184,161,6,191,98,...u]);return new Ma({keys:m,programId:e,data:d})}},ye=re;ye.CLAIMED_NUM=3,ye.POOL_LAYOUT=y([V(8),f("bump"),f("status"),t("openTime"),t("endTime"),r("ammId"),T(y([f("mintDecimals"),r("mintAddress"),r("mintVault"),t("perLpLoss"),t("totalClaimedAmount")]),re.CLAIMED_NUM,"tokenInfo"),T(t(),10,"padding")]),ye.OWNER_LAYOUT=y([V(8),f("bump"),f("version"),r("poolId"),r("owner"),t("lpAmount"),T(y([r("mintAddress"),t("debtAmount"),t("claimedAmount")]),re.CLAIMED_NUM,"tokenInfo"),T(t(),4,"padding")]),ye.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new Na(e)),ye.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ye.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as bx}from"@solana/web3.js";import{getTransferFeeConfig as Px,MintLayout as Ax,TOKEN_2022_PROGRAM_ID as wx,TOKEN_PROGRAM_ID as kx,unpackMint as Tx}from"@solana/spl-token";var HC=new Ce(2),jC=new Ce(3),$C=new Ce(5),jo=new Ce(10),JC=new Ce(100),eR=new Ce(1e3),tR=new Ce(1e4);function vt(o,e=1,n=[]){let i=[...o];if(e<=0)return n;for(;i.length;)n.push(i.splice(0,e));return n}var Ea=D("Raydium_farm_instruction"),st={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])};function To(o){let{version:e,id:n,ledger:i,programId:a,owner:m}=o,u={3:9,5:10}[e];u||Ea.logWithError(`invalid farm pool version: ${e}`);let d=Buffer.alloc(un.span);un.encode({instruction:u},d);let b=[s({pubkey:n}),s({pubkey:i}),s({pubkey:m,isWritable:!1}),s({pubkey:Re.programId,isWritable:!1}),s({pubkey:va,isWritable:!1})];return{instruction:new J({programId:a,keys:b,data:d}),instructionType:H.FarmV3CreateLedger}}function Er(o){var i;let e=Buffer.alloc(ln.span);ln.encode({instruction:0,nonce:new Nt(o.nonce),rewardTimeInfo:o.rewardInfoConfig},e);let n=[..._t,s({pubkey:o.farmId}),s({pubkey:o.farmAuthority,isWritable:!1}),s({pubkey:o.lpVault}),s({pubkey:o.lpMint,isWritable:!1}),s({pubkey:o.lockVault}),s({pubkey:o.lockMint,isWritable:!1}),s({pubkey:(i=o.lockUserAccount)!=null?i:Te}),s({pubkey:o.owner,isWritable:!1,isSigner:!0})];for(let a of o.rewardInfo)n.push(s({pubkey:a.rewardMint,isWritable:!1}),s({pubkey:a.rewardVault}),s({pubkey:a.userRewardToken}));return{instruction:new J({programId:o.programId,keys:n,data:e}),instructionType:H.FarmV6Create}}function Dr(o){let e=Buffer.alloc(cn.span);cn.encode({instruction:5},e);let n=[s({pubkey:me,isWritable:!1}),s({pubkey:o.id}),s({pubkey:o.authority,isWritable:!1}),s({pubkey:o.lpVault,isWritable:!1}),s({pubkey:o.rewardVault}),s({pubkey:o.userRewardToken}),s({pubkey:o.owner,isWritable:!1,isSigner:!0})];return{instruction:new J({programId:o.programId,keys:n,data:e}),instructionType:H.FarmV6CreatorWithdraw}}function Da(o,e,n,i,a,m,u,d,b,g,p,w,P){let A=y([f("depositEntryIndex"),t("amount")]),B=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:me,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:ft,isSigner:!1,isWritable:!1}],k=Buffer.alloc(A.span);A.encode({depositEntryIndex:w,amount:P},k);let I=Buffer.from([...st.voterStakeRegistryDeposit,...k]);return new J({keys:B,programId:o,data:I})}function Wa(o,e,n,i){let a=y([]),m=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:Re.programId,isSigner:!1,isWritable:!1}],u=Buffer.alloc(a.span);a.encode({},u);let d=Buffer.from([...st.voterStakeRegistryUpdateVoterWeightRecord,...u]);return new J({keys:m,programId:o,data:d})}function qa(o,e,n,i,a,m,u,d,b,g,p,w,P,A,B){let k=y([f("depositEntryIndex"),t("amount")]),I=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:me,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},{pubkey:ft,isSigner:!1,isWritable:!1}],C=Buffer.alloc(k.span);k.encode({depositEntryIndex:A,amount:B},C);let K=Buffer.from([...st.voterStakeRegistryWithdraw,...C]);return new J({keys:I,programId:o,data:K})}function Ua(o,e,n,i,a,m){let u=y([f("ins")]),d=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!0,isWritable:!0},{pubkey:Re.programId,isSigner:!1,isWritable:!1}],b=Buffer.alloc(u.span);return u.encode({ins:23},b),new J({keys:d,programId:o,data:b})}function Ga(o,e,n,i,a,m,u,d){let b=y([f("voterBump"),f("voterWeightRecordBump")]),g=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!0,isWritable:!0},{pubkey:Re.programId,isSigner:!1,isWritable:!1},{pubkey:Be,isSigner:!1,isWritable:!1},{pubkey:ft,isSigner:!1,isWritable:!1}],p=Buffer.alloc(b.span);b.encode({voterBump:u,voterWeightRecordBump:d},p);let w=Buffer.from([...st.voterStakeRegistryCreateVoter,...p]);return new J({keys:g,programId:o,data:w})}function za(o,e,n,i,a,m,u,d,b,g,p,w){let P=y([f("depositEntryIndex"),f("kind"),f("option"),t("startTs"),Q("periods"),de("allowClawback")]),A=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1},{pubkey:m,isSigner:!0,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:Re.programId,isSigner:!1,isWritable:!1},{pubkey:me,isSigner:!1,isWritable:!1},{pubkey:Va,isSigner:!1,isWritable:!1},{pubkey:Be,isSigner:!1,isWritable:!1}],B=Buffer.alloc(P.span);P.encode({depositEntryIndex:d,kind:b,option:g===void 0?0:1,startTs:g,periods:p,allowClawback:w},B);let k=Buffer.from([...st.voterStakeRegistryCreateDepositEntry,...B]);return new J({keys:A,programId:o,data:k})}async function VR({connection:o,programId:e,governanceProgramId:n,voteWeightAddinProgramId:i,realm:a,communityTokenMint:m,owner:u,poolId:d,tokenProgram:b}){let g=bn(i,a,m).publicKey,p=pe({programId:e,poolId:d,owner:u,version:3}),w=await o.getAccountInfo(p);if(w===null)throw Error("user is not staker");let P=Lt.decode(w.data),A=P.deposited.sub(P.voteLockedBalance);if(console.log("amount",A.toString()),A.eq(new Nt(0)))throw Error("user do not has new stake amount");let B=gn(e,d).publicKey,k=Pn(e,d).publicKey,{publicKey:I,nonce:C}=An(i,g,u),K=ue(I,B,b).publicKey,{publicKey:v,nonce:_}=wn(i,g,u),h=kn(n,a,m,u).publicKey,S=[],x=ue(u,B,b).publicKey;if(await o.getAccountInfo(x)===null&&S.push(_a(u,x,u,B)),await o.getAccountInfo(I)===null){let z=Ua(n,a,u,m,u,h);S.push(z,Ga(i,g,I,v,u,u,C,_))}let{index:E,isInit:ae}=await yn(o,g,I,B);return ae||S.push(za(i,g,I,K,u,u,B,E,0,void 0,0,!1)),S.push(Da(i,g,I,K,x,u,p,d,B,k,e,E,A),Wa(i,g,I,v)),S}async function _R({connection:o,programId:e,governanceProgramId:n,voteWeightAddinProgramId:i,realm:a,communityTokenMint:m,owner:u,poolId:d,tokenProgram:b}){let g=bn(i,a,m).publicKey,p=pe({programId:e,poolId:d,owner:u,version:3}),w=await o.getAccountInfo(p);if(w===null)throw Error("user is not staker");let P=Lt.decode(w.data);if(P.voteLockedBalance.eq(new Nt(0)))throw Error("user has vote locked balance = 0");let A=gn(e,d).publicKey,B=Pn(e,d).publicKey,{publicKey:k}=An(i,g,u),I=ue(k,A,b).publicKey,{publicKey:C}=wn(i,g,u),K=kn(n,a,m,u).publicKey,v=[],{index:_,isInit:h}=await yn(o,g,k,A);if(!h)throw Error("deposit entry index check error");return v.push(qa(i,g,k,u,K,C,I,ue(u,A,b).publicKey,p,d,A,B,e,_,P.voteLockedBalance)),v}function Wr({payer:o,rewardVault:e,userRewardTokenPub:n,farmKeys:i,rewardInfo:a}){let m=Buffer.alloc(mn.span);mn.encode({instruction:3,rewardReopenTime:G(a.openTime),rewardEndTime:G(a.endTime),rewardPerSecond:G(a.perSecond)},m);let u=[s({pubkey:me,isWritable:!1}),s({pubkey:i.id}),s({pubkey:i.lpVault,isWritable:!1}),s({pubkey:e}),s({pubkey:n}),s({pubkey:o,isWritable:!1,isSigner:!0})];return new J({programId:i.programId,keys:u,data:m})}function qr({payer:o,userRewardTokenPub:e,farmKeys:n,rewardVault:i,rewardInfo:a}){let m=Buffer.alloc(dn.span);dn.encode({instruction:4,isSet:new Nt(1),rewardPerSecond:G(a.perSecond),rewardOpenTime:G(a.openTime),rewardEndTime:G(a.endTime),rewardType:G(ze[a.rewardType])},m);let u=[..._t,s({pubkey:n.id}),s({pubkey:n.authority,isWritable:!1}),s({pubkey:a.mint,isWritable:!1}),s({pubkey:i}),s({pubkey:e}),s({pubkey:o,isWritable:!1,isSigner:!0})];return new J({programId:n.programId,keys:u,data:m})}function ER(o){let{farmInfo:e,farmKeys:n,version:i,lpAccount:a,rewardAccounts:m,owner:u,instruction:d,amount:b,deposit:g}=o,[p,w]=[new L(e.programId),new L(e.id)],P=pe({programId:p,poolId:w,owner:u,version:i}),A=Buffer.alloc(ce.span);ce.encode({instruction:d,amount:b},A);let B=i===6?[s({pubkey:me,isWritable:!1}),...g?[s({pubkey:Re.programId,isWritable:!1})]:[],s({pubkey:w}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:new L(n.lpVault)}),s({pubkey:P}),s({pubkey:u,isWritable:!1,isSigner:!0}),s({pubkey:a})]:[s({pubkey:w}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:P}),s({pubkey:u,isWritable:!1,isSigner:!0}),s({pubkey:a}),s({pubkey:new L(n.lpVault)}),s({pubkey:m[0]}),s({pubkey:new L(n.rewardInfos[0].vault)}),s({pubkey:Xe,isWritable:!1}),s({pubkey:me,isWritable:!1})];if(i===5)for(let k=1;k<n.rewardInfos.length;k++)B.push(s({pubkey:m[k]})),B.push(s({pubkey:new L(n.rewardInfos[k].vault)}));if(i===6)for(let k=0;k<n.rewardInfos.length;k++)B.push(s({pubkey:new L(n.rewardInfos[k].vault)})),B.push(s({pubkey:m[k]}));return new J({programId:p,keys:B,data:A})}function ho(o){let{farmInfo:e,farmKeys:n,lpAccount:i,rewardAccounts:a,owner:m,amount:u}=o,[d,b]=[new L(e.programId),new L(e.id)],g=pe({programId:d,poolId:b,owner:m,version:6}),p=Buffer.alloc(ce.span);ce.encode({instruction:2,amount:G(u)},p);let w=[s({pubkey:me,isWritable:!1}),s({pubkey:b}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:new L(n.lpVault)}),s({pubkey:g}),s({pubkey:m,isWritable:!1,isSigner:!0}),s({pubkey:i})];for(let P=0;P<n.rewardInfos.length;P++)w.push(s({pubkey:new L(n.rewardInfos[P].vault)})),w.push(s({pubkey:a[P]}));return new J({programId:d,keys:w,data:p})}function Io(o){let{farmInfo:e,farmKeys:n,lpAccount:i,rewardAccounts:a,owner:m,amount:u,userAuxiliaryLedgers:d}=o,[b,g]=[new L(e.programId),new L(e.id)],p=pe({programId:b,poolId:g,owner:m,version:5}),w=Buffer.alloc(ce.span);ce.encode({instruction:12,amount:G(u)},w);let P=[s({pubkey:g}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:p}),s({pubkey:m,isWritable:!1,isSigner:!0}),s({pubkey:i}),s({pubkey:new L(n.lpVault)}),s({pubkey:a[0]}),s({pubkey:new L(n.rewardInfos[0].vault)}),s({pubkey:Xe,isWritable:!1}),s({pubkey:me,isWritable:!1})];for(let A=1;A<n.rewardInfos.length;A++)P.push(s({pubkey:a[A]})),P.push(s({pubkey:new L(n.rewardInfos[A].vault)}));if(d)for(let A of d)P.push(s({pubkey:A}));return new J({programId:b,keys:P,data:w})}function Ur(o){let{farmInfo:e,farmKeys:n,lpAccount:i,rewardAccounts:a,owner:m,amount:u,userAuxiliaryLedgers:d}=o,[b,g]=[new L(e.programId),new L(e.id)],p=y([f("instruction"),t("amount")]),w=[s({pubkey:g}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:d[0]}),s({pubkey:m,isSigner:!0,isWritable:!1}),s({pubkey:i}),s({pubkey:new L(n.lpVault)}),s({pubkey:a[0]}),s({pubkey:new L(n.rewardInfos[0].vault)}),s({pubkey:Xe,isWritable:!1}),s({pubkey:me,isWritable:!1}),s({pubkey:a[1]}),s({pubkey:new L(n.rewardInfos[1].vault)})],P=Buffer.alloc(p.span);return p.encode({instruction:2,amount:u},P),new J({keys:w,programId:b,data:P})}function Bo(o){let{farmInfo:e,farmKeys:n,lpAccount:i,rewardAccounts:a,owner:m,amount:u,userAuxiliaryLedgers:d}=o,[b,g]=[new L(e.programId),new L(e.id)],p=pe({programId:b,poolId:g,owner:m,version:3}),w=Buffer.alloc(ce.span);ce.encode({instruction:11,amount:G(u)},w);let P=[s({pubkey:g}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:p}),s({pubkey:m,isWritable:!1,isSigner:!0}),s({pubkey:i}),s({pubkey:new L(n.lpVault)}),s({pubkey:a[0]}),s({pubkey:new L(n.rewardInfos[0].vault)}),s({pubkey:Xe,isWritable:!1}),s({pubkey:me,isWritable:!1})];if(d)for(let A of d)P.push(s({pubkey:A}));return new J({programId:b,keys:P,data:w})}function Gr(o){let{farmInfo:e,farmKeys:n,lpAccount:i,rewardAccounts:a,owner:m,amount:u,userAuxiliaryLedgers:d}=o,[b,g]=[new L(e.programId),new L(e.id)],p=pe({programId:b,poolId:g,owner:m,version:3}),w=Buffer.alloc(ce.span);ce.encode({instruction:10,amount:G(u)},w);let P=[s({pubkey:g}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:p}),s({pubkey:m,isWritable:!1,isSigner:!0}),s({pubkey:i}),s({pubkey:new L(n.lpVault)}),s({pubkey:a[0]}),s({pubkey:new L(n.rewardInfos[0].vault)}),s({pubkey:Xe,isWritable:!1}),s({pubkey:me,isWritable:!1})];if(d)for(let A of d)P.push(s({pubkey:A}));return new J({programId:b,keys:P,data:w})}function zr(o){let{farmInfo:e,farmKeys:n,lpAccount:i,rewardAccounts:a,owner:m,amount:u,userAuxiliaryLedgers:d}=o,[b,g]=[new L(e.programId),new L(e.id)],p=pe({programId:b,poolId:g,owner:m,version:5}),w=Buffer.alloc(ce.span);ce.encode({instruction:11,amount:G(u)},w);let P=[s({pubkey:g}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:p}),s({pubkey:m,isWritable:!1,isSigner:!0}),s({pubkey:i}),s({pubkey:new L(n.lpVault)}),s({pubkey:a[0]}),s({pubkey:new L(n.rewardInfos[0].vault)}),s({pubkey:Xe,isWritable:!1}),s({pubkey:me,isWritable:!1})];for(let A=1;A<n.rewardInfos.length;A++)P.push(s({pubkey:a[A]})),P.push(s({pubkey:new L(n.rewardInfos[A].vault)}));if(d)for(let A of d)P.push(s({pubkey:A}));return new J({programId:b,keys:P,data:w})}function Xr(o){let{farmInfo:e,farmKeys:n,lpAccount:i,rewardAccounts:a,owner:m,amount:u}=o,[d,b]=[new L(e.programId),new L(e.id)],g=pe({programId:d,poolId:b,owner:m,version:6}),p=Buffer.alloc(ce.span);ce.encode({instruction:1,amount:G(u)},p);let w=[s({pubkey:me,isWritable:!1}),s({pubkey:Re.programId,isWritable:!1}),s({pubkey:b}),s({pubkey:new L(n.authority),isWritable:!1}),s({pubkey:new L(n.lpVault)}),s({pubkey:g}),s({pubkey:m,isWritable:!1,isSigner:!0}),s({pubkey:i})];for(let P=0;P<n.rewardInfos.length;P++)w.push(s({pubkey:new L(n.rewardInfos[P].vault)})),w.push(s({pubkey:a[P]}));return new J({programId:d,keys:w,data:p})}export{To as createAssociatedLedgerAccountInstruction,Ua as governanceCreateTokenOwnerRecord,qr as makeAddNewRewardInstruction,Er as makeCreateFarmInstruction,Dr as makeCreatorWithdrawFarmRewardInstruction,Gr as makeDepositInstructionV3,zr as makeDepositInstructionV5,Xr as makeDepositInstructionV6,VR as makeDepositTokenInstruction,ER as makeDepositWithdrawInstruction,Wr as makeRestartRewardInstruction,Bo as makeWithdrawInstructionV3,Ur as makeWithdrawInstructionV4,Io as makeWithdrawInstructionV5,ho as makeWithdrawInstructionV6,_R as makeWithdrawTokenInstruction,za as voterStakeRegistryCreateDepositEntry,Ga as voterStakeRegistryCreateVoter,Da as voterStakeRegistryDeposit,Wa as voterStakeRegistryUpdateVoterWeightRecord,qa as voterStakeRegistryWithdraw};
//# sourceMappingURL=instruction.mjs.map