@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 88.7 kB
JavaScript
var vo=Object.defineProperty,_o=Object.defineProperties;var Vo=Object.getOwnPropertyDescriptors;var ct=Object.getOwnPropertySymbols;var Kn=Object.prototype.hasOwnProperty,xn=Object.prototype.propertyIsEnumerable;var Sn=(o,e,n)=>e in o?vo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,F=(o,e)=>{for(var n in e||(e={}))Kn.call(e,n)&&Sn(o,n,e[n]);if(ct)for(var n of ct(e))xn.call(e,n)&&Sn(o,n,e[n]);return o},D=(o,e)=>_o(o,Vo(e));var be=(o,e)=>{var n={};for(var i in o)Kn.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&&xn.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 Ea,TransactionInstruction as J}from"@solana/web3.js";import Nt from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Da,createAssociatedTokenAccountIdempotentInstruction as Wa,TOKEN_PROGRAM_ID as me}from"@solana/spl-token";import{PublicKey as Wo}from"@solana/web3.js";import{get as Cn,set as Eo}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}},Rn={},Do={};function W(o){let e=Cn(Rn,o);if(!e){let n=Cn(Do,o);e=new Mt({name:o,logLevel:n}),Eo(Rn,o,e)}return e}import{MINT_SIZE as rs,TOKEN_PROGRAM_ID as as,getTransferFeeConfig as ss,unpackMint as us}from"@solana/spl-token";var Ft=W("Raydium_accountInfo_util");async function we(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:m=100}=F({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:T,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:T,owner:new Wo(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 lR from"decimal.js";import Qo from"big.js";import Bs from"bn.js";import qo from"toformat";var Uo=qo,Qe=Uo;import mt from"big.js";import zo from"bn.js";import Xo from"decimal.js-light";import Ze from"bn.js";var Ln=9007199254740991;function G(o){let e=W("Raydium_parseBigNumberish");if(o instanceof Ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ze(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Ln||o<=-Ln)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Ze(String(o))):typeof o=="bigint"?new Ze(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Ze(0))}var lt=W("module/fraction"),_t=Qe(mt),$e=Qe(Xo),Yo={[0]:$e.ROUND_DOWN,[1]:$e.ROUND_HALF_UP,[2]:$e.ROUND_UP},Ho={[0]:mt.roundDown,[1]:mt.roundHalfUp,[2]:mt.roundUp},X=class{constructor(e,n=new zo(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&<.logWithError(`${e} is not positive.`),$e.set({precision:e+1,rounding:Yo[i]});let a=new $e(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&<.logWithError(`${e} is negative.`),_t.DP=e,_t.RM=Ho[i]||1,new _t(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Ms=W("Raydium_amount"),Fs=Qe(Qo);import{PublicKey as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as On}from"@solana/spl-token";var dt={chainId:101,address:$o.default.toBase58(),programId:On.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:On.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 Q,SystemProgram as Nn,SYSVAR_RENT_PUBKEY as jo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jo}from"@solana/spl-token";function s({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var Vt=[s({pubkey:Jo,isWritable:!1}),s({pubkey:Nn.programId,isWritable:!1}),s({pubkey:jo,isWritable:!1})];function Mn({publicKey:o,transformSol:e}){let n=Fn(o.toString());if(n instanceof Q)return e&&n.equals(Te)?ke:n;if(e&&n.toString()===Te.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 Fn(o){try{return new Q(o)}catch{return o}}var Et=new Q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Be=new Q("SysvarRent111111111111111111111111111111111"),Us=new Q("SysvarC1ock11111111111111111111111111111111"),pt=new Q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ft=new Q("Sysvar1nstructions1111111111111111111111111"),ei=Nn.programId,Gs=new Q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),zs=new Q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Xs=new Q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ys=new Q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Hs=new Q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Qs=new Q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Zs=new Q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$s=new Q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),js=new Q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Js=new Q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),eu=new Q("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ke=new Q("So11111111111111111111111111111111111111112"),Te=Q.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:Mn({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ie=Wt;ie.WSOL=new Wt(D(F({},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 ti from"bn.js";var du=new X(new ti(100));var Pu=W("Raydium_price");import{merge as dC}from"lodash";import Ku from"axios";var vn={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"},ni=D(F({},vn),{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 Zu=W("Raydium_Api");import{PublicKey as ym,SystemProgram as bm}from"@solana/web3.js";import{AccountLayout as km,createAssociatedTokenAccountIdempotentInstruction as Tm,TOKEN_PROGRAM_ID as hm,TOKEN_2022_PROGRAM_ID as Im}from"@solana/spl-token";import{PublicKey as ve,sendAndConfirmTransaction as Ht,SystemProgram as ui,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import ci 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 Z={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 _n,Keypair as En,PublicKey as oi,Transaction as Dn,TransactionMessage as ii,VersionedTransaction as Wn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ri}from"@solana/spl-token";var Vn=W("Raydium_txUtil"),qn=1644;function bt(o){let e=[],n=[];return o.microLamports&&(e.push(_n.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(e.push(_n.setComputeUnitLimit({units:o.units})),n.push(Z.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 Dn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<qn}catch{return!1}}function ee(o,e){let[n,i]=oi.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function je({instructions:o,payer:e,signers:n}){return Yt(o,[e,...n])}function Je({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=En.generate().publicKey.toString()}){let m=new ii({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Wn(m).serialize()).toString("base64").length<qn}catch{return!1}}var ai=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),si=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Wn&&(e=ai(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 Dn&&(n.recentBlockhash||(n.recentBlockhash=ri.toBase58()),n.feePayer||(n.feePayer=En.generate().publicKey)),e.push(si(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 ci.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(ui.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new ve(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Z.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(D(F({},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 f;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]),(f=this.owner)!=null&&f.isKeyPair)return{txId:d?await Ht(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(f=>f.transaction.instructions.length>0),u=[a,...m.map(f=>f.transaction)],d=[this.signers,...m.map(f=>f.signers)],b=[...this.instructionTypes,...m.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&d.forEach(f=>{f.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:d,instructionTypes:b,execute:async f=>{var C;let{sequentially:w,onTxUpdate:P,skipTxCount:A=0,recentBlockHash:B,skipPreflight:T=!0}=f||{},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 V of u){if(++v,v<=A)continue;let h=await Ht(this.connection,V,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:T});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:T})))),signedTxs:u}}if(this.signAllTransactions){let K=u.map((V,h)=>(V.recentBlockhash=I,d[h].length&&V.sign(...d[h]),V));Se(K);let v=await this.signAllTransactions(K);if(w){let V=0,h=[],S=async()=>{if(!v[V])return;let x=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:T});h.push({txId:x,status:"sent",signedTx:v[V]}),P==null||P([...h]),V++;let O=!1,M=null,E=null,ae=z=>{M!==null&&clearInterval(M),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&&(M=setInterval(async()=>{var z;if(O){clearInterval(M);return}try{let U=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:1});U&&(O=!0,clearInterval(M),ae({err:((z=U.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",x))}catch(U){O=!0,clearInterval(M),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 V=[];for(let h=0;h<v.length;h+=1){let S=await this.connection.sendRawTransaction(v[h].serialize(),{skipPreflight:T});V.push(S)}return{txIds:V,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 T;let B=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:m}=B,u=be(B,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),d=F(F({},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 f=await Gt({connection:this.connection,address:g});for(let[I,C]of Object.entries(f))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));((T=this.owner)==null?void 0:T.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 V;let{skipPreflight:C=!0,sendAndConfirm:K,notSendToRpc:v}=I||{};if(Se([A]),(V=this.owner)!=null&&V.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(f=>f.builder.instructions.length>0),u=[a,...m.map(f=>f.transaction)],d=[this.signers,...m.map(f=>f.signers)],b=[...this.instructionTypes,...m.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&d.forEach(f=>{f.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(f,w)=>{f.sign(d[w])}),{builder:this,transactions:u,signers:d,instructionTypes:b,buildProps:i,execute:async f=>{var T;let{sequentially:w,onTxUpdate:P,recentBlockHash:A,skipPreflight:B=!0}=f||{};if(A&&u.forEach(I=>I.message.recentBlockhash=A),Se(u),(T=this.owner)!=null&&T.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 V=await this.connection.sendTransaction(I[C],{skipPreflight:B});K.push({txId:V,status:"sent",signedTx:I[C]}),P==null||P([...K]),C++;let h=!1,S=null,x=null,O=M=>{S!==null&&clearInterval(S),x!==null&&this.connection.removeSignatureListener(x);let E=K.findIndex(ae=>ae.txId===V);if(E>-1){if(K[E].status==="error"||K[E].status==="success")return;K[E].status=M.err?"error":"success"}P==null||P([...K]),M.err||v()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var M;if(h){clearInterval(S);return}try{let E=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});E&&(h=!0,clearInterval(S),O({err:((M=E.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",V))}catch(E){h=!0,clearInterval(S),console.error("getTransaction timeout:",E,V)}},Pt)),x=this.connection.onSignature(V,M=>{if(h){this.connection.removeSignatureListener(x);return}h=!0,O(M)},"confirmed"),this.connection.getSignatureStatus(V)};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)=>D(F({},A),{[B.publicKey.toBase58()]:B}),{}),d=[],b=[],g=[],f=0;if(this.allInstructions.forEach(A=>{let B=[...g,A],T=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[f]&&g.length<12&&(je({instructions:T,payer:this.feePayer,signers:C})||je({instructions:B,payer:this.feePayer,signers:C})))g.push(A);else{if(g.length===0)throw Error("item ins too big");f+=A===n[f]?1:0,je({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(T=>T.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(T=>u[T]).filter(T=>T!==void 0);je({instructions:i?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:B.map(T=>T.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 V;let{sequentially:B,onTxUpdate:T,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),(V=this.owner)!=null&&V.isKeyPair){if(B){let h=0,S=[];for(let x of d){if(++h,h<=I){S.push("tx skipped");continue}let O=await Ht(this.connection,x,this.signers.find(M=>M.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=[],M=async()=>{if(!S[x])return;x<I&&(O.push({txId:"",status:"success",signedTx:S[x]}),T==null||T([...O]),x++,M());let E=await this.connection.sendRawTransaction(S[x].serialize(),{skipPreflight:K});O.push({txId:E,status:"sent",signedTx:S[x]}),T==null||T([...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"}T==null||T([...O]),Y.err||M()};this.loopMultiTxStatus&&(z=setInterval(async()=>{var Y;if(ae){clearInterval(z);return}try{let se=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:1});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 M(),{txIds:O.map(E=>E.txId),signedTxs:S}}else{let x=[];for(let O=0;O<S.length;O+=1){let M=await this.connection.sendRawTransaction(S[O].serialize(),{skipPreflight:K});x.push(M)}return{txIds:x,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var V;let v=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:u=12}=v,d=be(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=F(F({},this.cluster==="devnet"?await Xt(this.connection):await zt(this.connection)),a),g=Array.from(new Set([...this.lookupTableAddress,...m])),f=[];for(let h of g)b[h]===void 0&&f.push(new ve(h));let w=await Gt({connection:this.connection,address:f});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)=>D(F({},h),{[S.publicKey.toBase58()]:S}),{}),T=[],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 M of[...new Set(g)])b[M]!==void 0&&(O[M]=b[M]);if(n&&Je({instructions:[...P.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:A})){let M=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...P.instructions,...C]}).compileToV0Message(Object.values(b));T.push(new nt(M))}else{let M=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(b));T.push(new nt(M))}I.push(Array.from(new Set(C.map(M=>M.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(M=>B[M]).filter(M=>M!==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));T.push(new nt(x))}else{let x=new tt({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(b));T.push(new nt(x))}I.push(S)}return(V=this.owner)!=null&&V.signer&&I.forEach(h=>{h.some(S=>S.publicKey.equals(this.owner.publicKey))||h.push(this.owner.signer)}),T.forEach((h,S)=>{h.sign(I[S])}),{builder:this,transactions:T,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async h=>{var ae;let{sequentially:S,onTxUpdate:x,skipTxCount:O=0,recentBlockHash:M,skipPreflight:E=!0}=h||{};if(T.map(async(z,U)=>{I[U].length&&z.sign(I[U]),M&&(z.message.recentBlockhash=M)}),Se(T),(ae=this.owner)!=null&&ae.isKeyPair){if(S){let z=0,U=[];for(let oe of T){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:T}}return{txIds:await Promise.all(T.map(async z=>await this.connection.sendTransaction(z,{skipPreflight:E}))),signedTxs:T}}if(this.signAllTransactions){let z=await this.signAllTransactions(T.slice(O,T.length)),U=[...T.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,Bn=Ie=>{Le!==null&&clearInterval(Le),ut!==null&&this.connection.removeSignatureListener(ut);let Ae=Y.findIndex(Fo=>Fo.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:1});Ae&&(Ye=!0,clearInterval(Le),Bn({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,Bn(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 Qt=(...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=W(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(Qt(e))}logInfo(...e){this.logger.info(Qt(e))}logAndCreateError(...e){let n=Qt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Xl,SystemProgram as Hl}from"@solana/web3.js";import $l from"bn.js";import{createCloseAccountInstruction as tm,createInitializeAccountInstruction as nm,createTransferInstruction as om,TOKEN_PROGRAM_ID as im}from"@solana/spl-token";import{Keypair as Nl,PublicKey as Ml}from"@solana/web3.js";import _l from"bn.js";import{TOKEN_PROGRAM_ID as Dl}from"@solana/spl-token";import{PublicKey as ki}from"@solana/web3.js";import Yn,{isBN as Hn}from"bn.js";import{bits as li,BitStructure as Vc,blob as mi,Blob as Ec,cstr as Dc,f32 as Wc,f32be as qc,f64 as Uc,f64be as Gc,greedy as zc,Layout as di,ns64 as Xc,ns64be as Yc,nu64 as Hc,nu64be as Qc,offset as pi,s16 as Zc,s16be as $c,s24 as jc,s24be as Jc,s32 as fi,s32be as el,s40 as tl,s40be as nl,s48 as ol,s48be as il,s8 as rl,seq as yi,struct as al,Structure as bi,u16 as gi,u16be as sl,u24 as ul,u24be as cl,u32 as Pi,u32be as ll,u40 as ml,u40be as dl,u48 as pl,u48be as fl,u8 as Ai,UInt as wi,union as yl,Union as bl,unionLayoutDiscriminator as gl,utf8 as Pl}from"@solana/buffer-layout";var wt=di,Un=bi;var Zt=wi;var Gn=Ai,$=gi;var kt=Pi;var fe=fi;var zn=yi;var _=mi;var $t=li,Xn=pi;var xe=class extends wt{constructor(n,i,a){super(n,a);this.blob=_(n),this.signed=i}decode(n,i=0){let a=new Yn(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 Yn(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=$t(kt(),!1),this._upper=$t(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 F(F({},a),m)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function p(o){return new Zt(1,o)}function H(o){return new Zt(4,o)}function t(o){return new xe(8,!1,o)}function N(o){return new xe(16,!1,o)}function Qn(o){return new xe(1,!0,o)}function _e(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(_(32),e=>new ki(e),e=>e.toBuffer(),o)}function de(o){return new ot(Gn(),Ti,hi,o)}function Ti(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function hi(o){return o?1:0}function Jt(o,e){let n=kt("length"),i=y([n,k(o,Xn(n,-n.span),"values")]);return new ot(i,({values:a})=>a,a=>({values:a}),e)}var jt=class extends Un{decode(e,n){return super.decode(e,n)}};function y(o,e,n){return new jt(o,e,n)}function k(o,e,n){let i,a=typeof e=="number"?e:Hn(e)?e.toNumber():new Proxy(e,{get(m,u){if(!i){let d=Reflect.get(m,"count");i=Hn(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 zn(o,a,n)}var ht=y([r("mint"),r("owner"),t("amount"),H("delegateOption"),r("delegate"),p("state"),H("isNativeOption"),t("isNative"),t("delegatedAmount"),H("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 Bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Si}from"@solana/spl-token";function ue(o,e,n){return ee([o.toBuffer(),(n!=null?n:Si).toBuffer(),e.toBuffer()],new Bi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as R}from"@solana/web3.js";var jn=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Jn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),eo=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),en=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Fm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ki=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),to=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),no=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),vm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),xi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),oo=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ci=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ri=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),io=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_m=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Li=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),tn=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Oi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Vm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ni=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Fi=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Em=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Dm=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Wm=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),qm=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Um=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 _g from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Hy,TOKEN_2022_PROGRAM_ID as Qy,TOKEN_PROGRAM_ID as Zy}from"@solana/spl-token";import{PublicKey as jy}from"@solana/web3.js";import eb from"bn.js";import nb from"decimal.js";import{TOKEN_PROGRAM_ID as od}from"@solana/spl-token";import{PublicKey as sd}from"@solana/web3.js";var vi=y([H("mintAuthorityOption"),r("mintAuthority"),t("supply"),p("decimals"),p("isInitialized"),H("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as yy,TOKEN_2022_PROGRAM_ID as by,TOKEN_PROGRAM_ID as gy}from"@solana/spl-token";import{Keypair as wy,PublicKey as ky,SystemProgram as hy,TransactionInstruction as Iy}from"@solana/web3.js";import Sy from"bn.js";import q from"bn.js";var Ee=new q(1).shln(64);var _i=new q(1).shln(128),nn=new q(1).shln(64).subn(1),Vi=new q(1).shln(128).subn(1);var De=new q("4295048016"),We=new q("79226673521066979257578248091"),Ei=new q("59543866431248"),Di=new q("184467440737095516"),Wi=new q("15793534762490258745");var on=60,Ad=new q("18446743708227953217"),qi=[{bit:0,factor:new q("fffcb933bd6fb800",16)},{bit:1,factor:new q("fff97272373d4000",16)},{bit:2,factor:new q("fff2e50f5f657000",16)},{bit:3,factor:new q("ffe5caca7e10f000",16)},{bit:4,factor:new q("ffcb9843d60f7000",16)},{bit:5,factor:new q("ff973b41fa98e800",16)},{bit:6,factor:new q("ff2ea16466c9b000",16)},{bit:7,factor:new q("fe5dee046a9a3800",16)},{bit:8,factor:new q("fcbe86c7900bb000",16)},{bit:9,factor:new q("f987a7253ac65800",16)},{bit:10,factor:new q("f3392b0822bb6000",16)},{bit:11,factor:new q("e7159475a2caf000",16)},{bit:12,factor:new q("d097f3bdfd2f2000",16)},{bit:13,factor:new q("a9f746462d9f8000",16)},{bit:14,factor:new q("70d869a156f31c00",16)},{bit:15,factor:new q("31be135f97ed3200",16)},{bit:16,factor:new q("9aa508b5b85a500",16)},{bit:17,factor:new q("5d6af8dedc582c",16)},{bit:18,factor:new q("2216e584f5fa",16)}];var it=3,ro=100;var ao=10,so=100,Bt=14;var te=new q(0),qe=new q(1),wd=new q(-1);var kd=new q("18446744073700000000");var Ui=y([_(8),p("bump"),$("index"),r("owner"),H("protocolFeeRate"),H("tradeFeeRate"),$("tickSpacing"),H("fundFeeRate"),k(H(),1),r("fundOwner"),k(t(),3)]),Gi=y([H("blockTimestamp"),_e("tickCumulative"),k(t(),4)]),uo=y([_(8),de("initialized"),t("recentEpoch"),$("observationIndex"),r("poolId"),k(Gi,ro,"observations"),k(t(),4)]),zi=y([$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),H("dynamicFeeControl"),H("maxVolatilityAccumulator"),fe("tickSpacingIndexReference"),H("volatilityReference"),H("volatilityAccumulator"),t("lastUpdateTimestamp"),k(p(),46)]),Xi=y([p("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),N("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),N("growthGlobalX64")]),rn=y([_(8),p("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),p("mintDecimalsA"),p("mintDecimalsB"),$("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),fe("tickCurrent"),H(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),k(N(),4),p("status"),p("feeOn"),_(6),k(Xi,it,"rewardInfos"),_(8*16,"tickArrayBitmap"),k(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),zi.replicate("dynamicFeeInfo"),k(t(),46)]),Yi=y([N("growthInsideLastX64"),t("rewardAmountOwed")]),Hi=y([_(8),p("bump"),r("nftMint"),r("poolId"),fe("tickLower"),fe("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),k(Yi,it,"rewardInfos"),t("recentEpoch"),k(t(),7)]),Bd=y([_(8),p("bump"),r("poolId"),fe("tickLower"),fe("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),k(N(),it,"rewardGrowthInside"),t("recentEpoch"),k(t(),7)]),Qi=y([fe("tick"),Zn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),k(N(),it,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),N("unfilledRatioX64"),k(H(),3)]),co=y([_(8),r("poolId"),fe("startTickIndex"),k(Qi,on,"ticks"),p("initializedTickCount"),t("recentEpoch"),k(p(),107)]),Zi=y([_(8),p("bump"),k(r(),ao,"operationOwners"),k(r(),so,"whitelistMints")]),$i=y([_(8),r("poolId"),r("owner"),fe("tick"),de("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),N("unfilledRatioX64"),k(t(),4)]),lo=y([_(8),r("poolId"),_(8*8*Bt,"positiveTickArrayBitmap"),_(8*8*Bt,"negativeTickArrayBitmap")]),Sd=y([_(8),$("index"),$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),H("dynamicFeeControl"),H("maxVolatilityAccumulator"),k(t(),8)]),ji=y([_(8),r("wallet"),p("nonceIndex"),t("orderNonce"),k(t(),4)]),Kd=y([t(),p("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),k(t(),8)]),Ji=y([_(8),p("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),k(t(),8)]);import Rd from"bn.js";var Wd=Buffer.from("amm_config","utf8"),tr=Buffer.from("pool","utf8"),nr=Buffer.from("pool_vault","utf8"),qd=Buffer.from("pool_reward_vault","utf8"),Ud=Buffer.from("position","utf8"),Gd=Buffer.from("tick_array","utf8"),zd=Buffer.from("operation","utf8"),Xd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Yd=Buffer.from("observation","utf8"),Hd=Buffer.from("support_mint","utf8"),Qd=Buffer.from("dynamic_fee_config","utf8"),Zd=Buffer.from("permission","utf8");var $d=Buffer.from("locked_position","utf8");import{sha256 as gr}from"js-sha256";import or from"bn.js";import tp from"decimal.js";var op=new or(1).shln(256).subn(1);import kp from"bn.js";import lp from"bn.js";import dp from"decimal.js";import Sp from"bn.js";import xp from"decimal.js";import{PublicKey as yf}from"@solana/web3.js";import gf from"bn.js";import{TOKEN_2022_PROGRAM_ID as Bf,TOKEN_PROGRAM_ID as Sf}from"@solana/spl-token";import Rf from"decimal.js";import of from"bn.js";import Gp from"bn.js";import Wf from"bn.js";function ne(o){let e=`global:${o}`;return Buffer.from(gr.digest(e)).slice(0,8)}uo.span;var Fy=W("Raydium_Clmm"),vy={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 fn}from"@solana/web3.js";var cn=y([p("instruction")]),ln=y([p("instruction")]),kr=y([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),N("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),k(t(),15,"padding")]),Tr=y([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),N("perShareReward"),t("lastSlot"),t("perSlotReward")]),hr=y([t("state"),t("nonce"),r("lpVault"),r("rewardVaultA"),t("totalRewardA"),N("perShareRewardA"),t("perSlotRewardA"),p("option"),r("rewardVaultB"),_(7),t("totalRewardB"),N("perShareRewardB"),t("perSlotRewardB"),t("lastSlot"),r()]),Ir=y([t(),t("state"),t("nonce"),t("validRewardTokenNum"),N("rewardMultiplier"),t("rewardPeriodMax"),t("rewardPeriodMin"),t("rewardPeriodExtend"),r("lpMint"),r("lpVault"),k(kr,5,"rewardInfos"),r("creator"),r(),k(t(),32,"padding")]),Br=new Proxy(Tr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(F({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,e,n)}}),Sr=new Proxy(hr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(F({},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(Ir,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(F({},a),{version:6,rewardInfos:a.rewardInfos.map(m=>{var u;return D(F({},m),{rewardType:((u=Object.entries(ze).find(d=>String(d[1])===m.rewardType.toString()))!=null?u:["Standard SPL"])[0]})})})}:Reflect.get(o,e,n)}}),Kr=y([t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),mn=y([p("instruction"),t("nonce"),k(Kr,5,"rewardTimeInfo")]),dn=y([p("instruction"),t("rewardReopenTime"),t("rewardEndTime"),t("rewardPerSecond")]),pn=y([p("instruction"),t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Lb=y([t("state"),r("id"),r("owner"),t("deposited"),k(t(),1,"rewardDebts")]),Lt=y([t("state"),r("id"),r("owner"),t("deposited"),k(N(),1,"rewardDebts"),t(""),t("voteLockedBalance"),k(t(),15)]),Ob=y([t("state"),r("id"),r("owner"),t("deposited"),k(t(),2,"rewardDebts")]),xr=y([t("state"),r("id"),r("owner"),t("deposited"),k(N(),2,"rewardDebts"),k(t(),17)]),Cr=y([t(),t("state"),r("id"),r("owner"),t("deposited"),k(N(),5,"rewardDebts"),k(t(),16)]),ce=y([p("instruction"),t("amount")]),Rr=y([r("mint"),r("grantAuthority"),t("baselineVoteWeightScaledFactor"),t("maxExtraLockupVoteWeightScaledFactor"),t("lockupSaturationSecs"),Qn("digitShift"),k(p(),7,"reserved1"),k(t(),7,"reserved2")]),Ao=y([_(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),k(p(),32,"reserved1"),k(Rr,4,"votingMints"),_e("timeOffset"),p("bump"),k(p(),7,"reserved2"),k(t(),11,"reserved3")]),Lr=y([_e("startTime"),_e("endTime"),p("kind"),k(p(),15,"reserved")]),Or=y([k(Lr,1,"lockup"),t("amountDeposited_native"),t("amountInitiallyLockedNative"),de("isUsed"),de("allowClawback"),p("votingMintConfigIdx"),k(p(),29,"reserved")]),wo=y([_(8),r("voterAuthority"),r("registrar"),k(Or,32,"deposits"),p("voterBump"),p("voterWweightRecordBump"),k(p(),94,"reserved")]);import{NATIVE_MINT as Wb}from"@solana/spl-token";var qb=W("Raydium_farm_config"),Nr=new fn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Mr=new fn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Ub=new fn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var ze={"Standard SPL":0,"Option tokens":1},ko={[jn.toString()]:3,[Jn.toString()]:4,[eo.toString()]:5,[en.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 Qb from"bn.js";var yg=W("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 bn(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(f=>f.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(f=>f.isUsed&&f.votingMintConfigIdx===u);return g===-1?{index:u,isInit:!1}:{index:g,isInit:!0}}import Hg 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 $g from"bn.js";function gn(o,e,n){return ee([e.toBuffer(),Buffer.from("registrar","utf8"),n.toBuffer()],o)}function Pn(o,e){return ee([e.toBuffer(),Buffer.from("voting_mint_seed","utf8")],o)}function An(o,e){return ee([e.toBuffer()],o)}function wn(o,e,n){return ee([e.toBuffer(),Buffer.from("voter","utf8"),n.toBuffer()],o)}function kn(o,e,n){return ee([e.toBuffer(),Buffer.from("voter-weight-record","utf8"),n.toBuffer()],o)}function Tn(o,e,n,i){return ee([Buffer.from("governance","utf8"),e.toBuffer(),n.toBuffer(),i.toBuffer()],o)}import So from"bn.js";var Xr=new So(25),Yr=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 Hr=y([p("instruction"),t("amountIn"),t("minAmountOut")]),Qr=y([p("instruction"),t("maxAmountIn"),t("amountOut")]),gP=y([p("instruction"),p("nonce")]),Zr=y([p("instruction"),p("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"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),t("swapBase2QuoteFee"),N("swapQuoteInAmount"),N("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"),k(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"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),N("swapQuoteInAmount"),N("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"),k(t(),64,"padding")]),$r=y([p("instruction"),t("baseAmountIn"),t("quoteAmountIn"),t("fixedSide"),t("otherAmountMin")]),jr=y([p("instruction"),t("lpAmount"),t("baseAmountMin"),t("quoteAmountMin")]);var Jr=y([t("fee")]);var VP=W("Raydium_liquidity_instruction");var ea=5e4,ta=y([t("x"),t("y"),t("price")]),qP=y([t("accountType"),t("status"),t("multiplier"),t("validDataCount"),k(ta,ea,"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 QP=W("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 na(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 oa=y([_(5),na("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"),_(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 ok from"bn.js";import la from"bn.js";var Uw=new la(0);import Qw from"bn.js";import ma from"bn.js";var xt=new ma(1e6);import kT from"bn.js";import hT from"decimal.js";import{PublicKey as hk,TransactionInstruction as Ik,Keypair as Sk,SystemProgram as Kk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ck,TOKEN_2022_PROGRAM_ID as Rk,TOKEN_PROGRAM_ID as Lk}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"),bk=Buffer.from("creator_fee_share","utf8");var gk=Buffer.from("locked_liquidity","utf8");var Vk=W("Raydium_cpmm"),Ek={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 fa=y([_(8),p("bump"),de("disableCreatePool"),$("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),t("creatorFeeShareRate"),k(t(),14)]),xo=y([_(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),p("bump"),p("status"),p("lpDecimals"),p("mintDecimalA"),p("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),p("feeOn"),de("enableCreatorFee"),k(p(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),k(t(),28)]),qk=y([_(8),r("configId"),k(t(),30)]),Uk=y([_(8),p("bump"),r("creator"),r("ammConfig"),t("shareRate"),k(t(),8)]);import{PublicKey as FK,SystemProgram as vK}from"@solana/web3.js";import{createTransferInstruction as VK,TOKEN_PROGRAM_ID as EK,TOKEN_2022_PROGRAM_ID as DK,createAssociatedTokenAccountIdempotentInstruction as WK,createSyncNativeInstruction as UK,createTransferCheckedInstruction as GK}from"@solana/spl-token";import Fa from"bn.js";import YK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Lh,TOKEN_2022_PROGRAM_ID as Oh,TOKEN_PROGRAM_ID as Nh}from"@solana/spl-token";import{SystemProgram as _h,TransactionInstruction as Vh}from"@solana/web3.js";import ga from"bn.js";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"),Ih=Buffer.from("platform_curve_rule","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]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var qh=new ga("18446744073709551615");var Pa=y([t(),t("epoch"),p("curveType"),$("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"),k(t(),16)]),Aa=y([t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod"),t("startTime"),t("totalAllocatedShare")]),wa=y([t(),t("epoch"),p("bump"),p("status"),p("mintDecimalsA"),p("mintDecimalsB"),p("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"),p("mintProgramFlag"),p("cpmmCreatorFeeOn"),t("platformVestingShare"),k(p(),54)]),Xh=y([t(),t("epoch"),r("poolId"),r("beneficiary"),t("claimedAmount"),t("tokenShareAmount"),k(t(),8)]),ka=y([p("migrateType"),p("migrateCpmmFeeOn"),t("supply"),t("totalSellA"),t("totalFundRaisingB"),t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod")]),Yh=y([t("epoch"),p("index"),r("configId"),ka.replicate("bondingCurveParam"),k(t(),50)]),Ro=y([t(),t("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),t("platformScale"),t("creatorScale"),t("burnScale"),t("feeRate"),k(p(),64,"name"),k(p(),256,"web"),k(p(),256,"img"),r("cpConfigId"),t("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),t("platformVestingScale"),r("platformCpCreator"),p("restrictGlobalConfig"),p("restrictCurveParam"),r("curveRuleManager"),k(p(),78)]),Ta=y([p("field"),p("op"),N("value")]),ha=y([$("groupId"),t("epoch"),Jt(Ta,"constraints")]),Ia=y([t(),p("bump"),p("version"),r("platformId"),r("configId"),t("epoch"),k(t(),8),Jt(ha,"groups")]);import{TOKEN_2022_PROGRAM_ID as Zh,TOKEN_PROGRAM_ID as $h}from"@solana/spl-token";import Ba from"bn.js";var cI=new Ba(1e6);import pI from"bn.js";import yI from"decimal.js";import YI from"bn.js";import QI from"decimal.js";import kI from"bn.js";import hI from"decimal.js";import NI from"bn.js";import FI from"decimal.js";import No from"bn.js";import hn from"decimal.js";var Ot=class{static _multipler(e){return new hn(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new hn(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 No(a.mul(this._Q64).toFixed(0))}};Ot._Q64=new hn(new No(1).shln(64).toString());import{NATIVE_MINT as lS,TOKEN_2022_PROGRAM_ID as mS,TOKEN_PROGRAM_ID as dS,createAssociatedTokenAccountIdempotentInstruction as fS,createSyncNativeInstruction as yS,getTransferFeeConfig as bS,unpackMint as gS}from"@solana/spl-token";import j from"bn.js";import{PublicKey as Oa,SystemProgram as wS}from"@solana/web3.js";import KS from"decimal.js";var xS={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 Oa("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 Na={[to.toBase58()]:3};var Ma=y([_(5),_(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"),_(7)]);import{PublicKey as JS}from"@solana/web3.js";var iK=W("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as pK,TOKEN_2022_PROGRAM_ID as fK,TOKEN_PROGRAM_ID as yK}from"@solana/spl-token";import{PublicKey as gK,SystemProgram as PK,TransactionInstruction as AK}from"@solana/web3.js";import kK from"bn.js";var hx=new Fa(0);import{PublicKey as va,Transaction as In,TransactionInstruction as _a}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Va}from"@solana/spl-token";import Mo 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 Mo(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(f=>re.getPdaPoolId(n,f).publicKey),d=[];for(let f=0;f<re.VERSION_PROJECT.length;f++)d.push(...u.map(w=>re.getPdaOwnerId(n,w,a,f).publicKey));let b=await we(e,[...u,...d]),g=[];for(let f=0;f<b.length;f++){let w=Math.floor(f/i.length),P=f%i.length,A=u[P],B=d[f],T=b[P],I=b[i.length+f];if(!(T&&I)||T.data.length!==re.POOL_LAYOUT.span||I.data.length!==re.OWNER_LAYOUT.span)continue;let C=re.POOL_LAYOUT.decode(T.data),K=re.OWNER_LAYOUT.decode(I.data),v=C.openTime.toNumber(),V=C.endTime.toNumber(),h=K.tokenInfo.map(O=>O.debtAmount.gt(new Mo(0))).filter(O=>!O).length!==3,S=m>v&&m<V&&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:V,canClaim:x,canClaimErrorType:h?S?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:C.tokenInfo.map((O,M)=>({mintAddress:O.mintAddress,mintVault:O.mintVault,mintDecimals:O.mintDecimals,perLpLoss:O.perLpLoss,debtAmount:K.tokenInfo[M].debtAmount.add(K.tokenInfo[M].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:f,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(f)}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 f of e){let w=[];for(let P of f.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:f.programId,poolInfo:f,ownerInfo:{wallet:m,ownerPda:f.ownerAccountId,claimAddress:w}})]})}let{transaction:d,signers:b}=a.build(),g=a.allInstructions;return Yt(g,[m,...b.map(f=>f.publicKey)])?[{transaction:d,signer:b}]:[{transaction:new In().add(...g.slice(0,a.AllTxData.instructions.length-1)),signer:b},{transaction:new In().add(...g.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new In().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:Va,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 _a({keys:m,programId:e,data:d})}},ye=re;ye.CLAIMED_NUM=3,ye.POOL_LAYOUT=y([_(8),p("bump"),p("status"),t("openTime"),t("endTime"),r("ammId"),k(y([p("mintDecimals"),r("mintAddress"),r("mintVault"),t("perLpLoss"),t("totalClaimedAmount")]),re.CLAIMED_NUM,"tokenInfo"),k(t(),10,"padding")]),ye.OWNER_LAYOUT=y([_(8),p("bump"),p("version"),r("poolId"),r("owner"),t("lpAmount"),k(y([r("mintAddress"),t("debtAmount"),t("claimedAmount")]),re.CLAIMED_NUM,"tokenInfo"),k(t(),4,"padding")]),ye.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new va(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 Dx}from"@solana/web3.js";import{getTransferFeeConfig as qx,MintLayout as Ux,TOKEN_2022_PROGRAM_ID as Gx,TOKEN_PROGRAM_ID as zx,unpackMint as Xx}from"@solana/spl-token";var wR=new Ce(2),kR=new Ce(3),TR=new Ce(5),Zo=new Ce(10),hR=new Ce(100),IR=new Ce(1e3),BR=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 qa=W("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||qa.logWithError(`invalid farm pool version: ${e}`);let d=Buffer.alloc(cn.span);cn.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:Ea,isWritable:!1})];return{instruction:new J({programId:a,keys:b,data:d}),instructionType:Z.FarmV3CreateLedger}}function Vr(o){var i;let e=Buffer.alloc(mn.span);mn.encode({instruction:0,nonce:new Nt(o.nonce),rewardTimeInfo:o.rewardInfoConfig},e);let n=[...Vt,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:Z.FarmV6Create}}function Er(o){let e=Buffer.alloc(ln.span);ln.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:Z.FarmV6CreatorWithdraw}}function Ua(o,e,n,i,a,m,u,d,b,g,f,w,P){let A=y([p("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:f,isSigner:!1,isWritable:!1},{pubkey:ft,isSigner:!1,isWritable:!1}],T=Buffer.alloc(A.span);A.encode({depositEntryIndex:w,amount:P},T);let I=Buffer.from([...st.voterStakeRegistryDeposit,...T]);return new J({keys:B,programId:o,data:I})}function Ga(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 za(o,e,n,i,a,m,u,d,b,g,f,w,P,A,B){let T=y([p("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:f,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(T.span);T.encode({depositEntryIndex:A,amount:B},C);let K=Buffer.from([...st.voterStakeRegistryWithdraw,...C]);return new J({keys:I,programId:o,data:K})}function Xa(o,e,n,i,a,m){let u=y([p("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 Ya(o,e,n,i,a,m,u,d){let b=y([p("voterBump"),p("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}],f=Buffer.alloc(b.span);b.encode({voterBump:u,voterWeightRecordBump:d},f);let w=Buffer.from([...st.voterStakeRegistryCreateVoter,...f]);return new J({keys:g,programId:o,data:w})}function Ha(o,e,n,i,a,m,u,d,b,g,f,w){let P=y([p("depositEntryIndex"),p("kind"),p("option"),t("startTs"),H("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:Da,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:f,allowClawback:w},B);let T=Buffer.from([...st.voterStakeRegistryCreateDepositEntry,...B]);return new J({keys:A,programId:o,data:T})}async function sL({connection:o,programId:e,governanceProgramId:n,voteWeightAddinProgramId:i,realm:a,communityTokenMint:m,owner:u,poolId:d,tokenProgram:b}){let g=gn(i,a,m).publicKey,f=pe({programId:e,poolId:d,owner:u,version:3}),w=await o.getAccountInfo(f);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=Pn(e,d).publicKey,T=An(e,d).publicKey,{publicKey:I,nonce:C}=wn(i,g,u),K=ue(I,B,b).publicKey,{publicKey:v,nonce:V}=kn(i,g,u),h=Tn(n,a,m,u).publicKey,S=[],x=ue(u,B,b).publicKey;if(await o.getAccountInfo(x)===null&&S.push(Wa(u,x,u,B)),await o.getAccountInfo(I)===null){let z=Xa(n,a,u,m,u,h);S.push(z,Ya(i,g,I,v,u,u,C,V))}let{index:E,isInit:ae}=await bn(o,g,I,B);return ae||S.push(Ha(i,g,I,K,u,u,B,E,0,void 0,0,!1)),S.push(Ua(i,g,I,K,x,u,f,d,B,T,e,E,A),Ga(i,g,I,v)),S}async function uL({connection:o,programId:e,governanceProgramId:n,voteWeightAddinProgramId:i,realm:a,communityTokenMint:m,owner:u,poolId:d,tokenProgram:b}){let g=gn(i,a,m).publicKey,f=pe({programId:e,poolId:d,owner:u,version:3}),w=await o.getAccountInfo(f);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=Pn(e,d).publicKey,B=An(e,d).publicKey,{publicKey:T}=wn(i,g,u),I=ue(T,A,b).publicKey,{publicKey:C}=kn(i,g,u),K=Tn(n,a,m,u).publicKey,v=[],{index:V,isInit:h}=await bn(o,g,T,A);if(!h)throw Error("deposit entry index check error");return v.push(za(i,g,T,u,K,C,I,ue(u,A,b).publicKey,f,d,A,B,e,V,P.voteLockedBalance)),v}function Dr({payer:o,rewardVault:e,userRewardTokenPub:n,farmKeys:i,rewardInfo:a}){let m=Buffer.alloc(dn.span);dn.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 Wr({payer:o,userRewardTokenPub:e,farmKeys:n,rewardVault:i,rewardInfo:a}){let m=Buffer.alloc(pn.span);pn.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=[...Vt,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 cL(o){let{farmInfo:e,farmKeys:n,version:i,lpAccount:a,rewardAccounts:m,owner:u,instruction:d,amount:b,deposit:g}=o,[f,w]=[new L(e.programId),new L(e.id)],P=pe({programId:f,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 T=1;T<n.rewardInfos.length;T++)B.push(s({pubkey:m[T]})),B.push(s({pubkey:new L(n.rewardInfos[T].vault)}));if(i===6)for(let T=0;T<n.rewardInfos.length;T++)B.push(s({pubkey:new L(n.rewardInfos[T].vault)})),B.push(s({pubkey:m[T]}));return new J({programId:f,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}),f=Buffer.alloc(ce.span);ce.encode({instruction:2,amount:G(u)},f);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:f})}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)],f=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:f}),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 qr(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)],f=y([p("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(f.span);return f.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)],f=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:f}),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 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)],f=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:f}),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)],f=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:f}),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 zr(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}),f=Buffer.alloc(ce.span);ce.encode({instruction:1,amount:G(u)},f);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:f})}export{To as createAssociatedLedgerAccountInstruction,Xa as governanceCreateTokenOwnerRecord,Wr as makeAddNewRewardInstruction,Vr as makeCreateFarmInstruction,Er as makeCreatorWithdrawFarmRewardInstruction,Ur as makeDepositInstructionV3,Gr as makeDepositInstructionV5,zr as makeDepositInstructionV6,sL as makeDepositTokenInstruction,cL as makeDepositWithdrawInstruction,Dr as makeRestartRewardInstruction,Bo as makeWithdrawInstructionV3,qr as makeWithdrawInstructionV4,Io as makeWithdrawInstructionV5,ho as makeWithdrawInstructionV6,uL as makeWithdrawTokenInstruction,Ha as voterStakeRegistryCreateDepositEntry,Ya as voterStakeRegistryCreateVoter,Ua as voterStakeRegistryDeposit,Ga as voterStakeRegistryUpdateVoterWeightRecord,za as voterStakeRegistryWithdraw};
//# sourceMappingURL=instruction.mjs.map