@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
3 lines • 79.5 kB
JavaScript
var xo=Object.defineProperty,So=Object.defineProperties;var Ko=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var bn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable;var yn=(o,t,n)=>t in o?xo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,L=(o,t)=>{for(var n in t||(t={}))bn.call(t,n)&&yn(o,n,t[n]);if(st)for(var n of st(t))gn.call(t,n)&&yn(o,n,t[n]);return o},V=(o,t)=>So(o,Ko(t));var le=(o,t)=>{var n={};for(var i in o)bn.call(o,i)&&t.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&st)for(var i of st(o))t.indexOf(i)<0&&gn.call(o,i)&&(n[i]=o[i]);return n};import{PublicKey as Wa,SystemProgram as qa}from"@solana/web3.js";import Ua from"bn.js";import{PublicKey as Lo}from"@solana/web3.js";import{get as Pn,set as Co}from"lodash";var Rt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},An={},Ro={};function E(o){let t=Pn(An,o);if(!t){let n=Pn(Ro,o);t=new Rt({name:o,logLevel:n}),Co(An,o,t)}return t}import{MINT_SIZE as os,TOKEN_PROGRAM_ID as is,getTransferFeeConfig as rs,unpackMint as as}from"@solana/spl-token";var Lt=E("Raydium_accountInfo_util");async function ye(o,t,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=L({batchRequest:!1},n),m=Ot(t,c),p=new Array(m.length).fill([]);if(i){let b=m.map(g=>{let S=o._buildArgs([g.map(k=>k.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:S}}),A=Ot(b,10);p=(await(await Promise.all(A.map(async g=>await o._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(S=>{if(S){let{data:k,executable:N,lamports:w,owner:I,rentEpoch:K}=S;return k.length!==2&&k[1]!=="base64"&&Lt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(k[0],"base64"),executable:N,lamports:w,owner:new Lo(I),rentEpoch:K}}return null})))}else try{p=await Promise.all(m.map(b=>o.getMultipleAccountsInfo(b,a)))}catch(b){b instanceof Error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return p.flat()}import Ie from"bn.js";import _R from"decimal.js";import Eo from"big.js";import hs from"bn.js";import Oo from"toformat";var No=Oo,Xe=No;import ct from"big.js";import Fo from"bn.js";import vo from"decimal.js-light";import Ye from"bn.js";var wn=9007199254740991;function J(o){let t=E("Raydium_parseBigNumberish");if(o instanceof Ye)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ye(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=wn||o<=-wn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ye(String(o))):typeof o=="bigint"?new Ye(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ye(0))}var ut=E("module/fraction"),Nt=Xe(ct),He=Xe(vo),_o={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},Vo={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},U=class{constructor(t,n=new Fo(1)){this.numerator=J(t),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(J(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(J(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(J(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(J(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||ut.logWithError(`${t} is not an integer.`),t<=0&&ut.logWithError(`${t} is not positive.`),He.set({precision:t+1,rounding:_o[i]});let a=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return a.toFormat(a.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||ut.logWithError(`${t} is not an integer.`),t<0&&ut.logWithError(`${t} is negative.`),Nt.DP=t,Nt.RM=Vo[i]||1,new Nt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Os=E("Raydium_amount"),Ns=Xe(Eo);import{PublicKey as Wo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kn}from"@solana/spl-token";var lt={chainId:101,address:Wo.default.toBase58(),programId:kn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ae={chainId:101,address:"So11111111111111111111111111111111111111112",programId:kn.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 Ft}from"@solana/web3.js";import{PublicKey as z,SystemProgram as Tn,SYSVAR_RENT_PUBKEY as qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Uo}from"@solana/spl-token";function Se({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Go=[Se({pubkey:Uo,isWritable:!1}),Se({pubkey:Tn.programId,isWritable:!1}),Se({pubkey:qo,isWritable:!1})];function hn({publicKey:o,transformSol:t}){let n=Bn(o.toString());if(n instanceof z)return t&&n.equals(ke)?be:n;if(t&&n.toString()===ke.toBase58())return be;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 Bn(o){try{return new z(o)}catch{return o}}var Mt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Qe=new z("SysvarRent111111111111111111111111111111111"),Ws=new z("SysvarC1ock11111111111111111111111111111111"),mt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),zo=new z("Sysvar1nstructions1111111111111111111111111"),Xo=Tn.programId,qs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Us=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Gs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),zs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Xs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ys=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Hs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Qs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Zs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),$s=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),js=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),ke=z.default;var vt=class{constructor({mint:t,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:m=!1}){if(t===ke.toBase58()||t instanceof Ft&&ke.equals(t)){this.decimals=ae.decimals,this.symbol=ae.symbol,this.name=ae.name,this.mint=new Ft(ae.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=a||t.toString().substring(0,6),this.mint=c?Ft.default:hn({publicKey:t}),this.isToken2022=m}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=vt;ee.WSOL=new vt(V(L({},ae),{mint:ae.address}));var _t=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},dt=_t;dt.SOL=new _t(lt);import Yo from"bn.js";var lu=new U(new Yo(100));var bu=E("Raydium_price");import{merge as EC}from"lodash";import Iu from"axios";var In={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Ho=V(L({},In),{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 Hu=E("Raydium_Api");import{PublicKey as Jl,SystemProgram as em}from"@solana/web3.js";import{AccountLayout as rm,createAssociatedTokenAccountIdempotentInstruction as am,TOKEN_PROGRAM_ID as sm,TOKEN_2022_PROGRAM_ID as um}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as Ut,SystemProgram as ei,Transaction as je,TransactionMessage as Je,VersionedTransaction as et}from"@solana/web3.js";import ti from"axios";import{PublicKey as Vt,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Et({connection:o,address:t,cluster:n="mainnet"}){let i=await ye(o,[...new Set(t.map(c=>c.toString()))].map(c=>new Vt(c))),a={};for(let c=0;c<t.length;c++){let m=i[c],p=t[c];if(!m)continue;let b=new Re({key:p,state:Re.deserialize(m.data)});a[p.toString()]=b,n==="devnet"?Ce[p.toString()]=b:Ke[p.toString()]=b}return a}var Ke={},Dt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new Vt(t),i=await o.getAccountInfo(n);return i&&(Ke[t]=new Re({key:n,state:Re.deserialize(i.data)})),Ke},Ce={},Wt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new Vt(t),i=await o.getAccountInfo(n);return i&&(Ce[t]=new Re({key:n,state:Re.deserialize(i.data)})),Ce};var Y={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as xn,Keypair as Kn,PublicKey as Qo,Transaction as Cn,TransactionMessage as Zo,VersionedTransaction as Rn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $o}from"@solana/spl-token";var Sn=E("Raydium_txUtil"),Ln=1644;function pt(o){let t=[],n=[];return o.microLamports&&(t.push(xn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Y.SetComputeUnitPrice)),o.units&&(t.push(xn.setComputeUnitLimit({units:o.units})),n.push(Y.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(o,t){var i,a;let n=t!=null?t:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function ft(o,t){return o.getSignatureStatuses([t]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(t,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:t}))},"confirmed")})}function qt(o,t){o.length<1&&Sn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Sn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Cn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Ln}catch{return!1}}function me(o,t){let[n,i]=Qo.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function Ze({instructions:o,payer:t,signers:n}){return qt(o,[t,...n])}function $e({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=Kn.generate().publicKey.toString()}){let c=new Zo({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Rn(c).serialize()).toString("base64").length<Ln}catch{return!1}}var jo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Jo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Rn&&(t=jo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Te(o){let t=[];return o.forEach(n=>{n instanceof Cn&&(n.recentBlockhash||(n.recentBlockhash=$o.toBase58()),n.feePayer||(n.feePayer=Kn.generate().publicKey)),t.push(Jo(n))}),console.log("simulate tx string:",t),t}var yt=2e3,bt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let t=(await ti.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=pt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ei.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Y.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:m=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...m.filter(p=>p!==Oe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(V(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var y;let{recentBlockHash:c,skipPreflight:m=!0,sendAndConfirm:p,notSendToRpc:b}=a||{},A=c!=null?c:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Te([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:p?await Ut(this.connection,n,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:m}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:m}),signedTx:n};if(this.signAllTransactions){let g=await this.signAllTransactions([n]);if(this.signers.length)for(let S of g)try{S.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:m}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var A;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:a}=this.build(i),c=n.filter(y=>y.transaction.instructions.length>0),m=[a,...c.map(y=>y.transaction)],p=[this.signers,...c.map(y=>y.signers)],b=[...this.instructionTypes,...c.map(y=>y.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(y=>{y.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:m,signers:p,instructionTypes:b,execute:async y=>{var K;let{sequentially:g,onTxUpdate:S,skipTxCount:k=0,recentBlockHash:N,skipPreflight:w=!0}=y||{},I=N!=null?N:await Le(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(g){let x=[],F=0;for(let v of m){if(++F,F<=k)continue;let P=await Ut(this.connection,v,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});x.push(P)}return{txIds:x,signedTxs:m}}return{txIds:await await Promise.all(m.map(async x=>(x.recentBlockhash=I,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:w})))),signedTxs:m}}if(this.signAllTransactions){let x=m.map((v,P)=>(v.recentBlockhash=I,p[P].length&&v.sign(...p[P]),v));Te(x);let F=await this.signAllTransactions(x);if(g){let v=0,P=[],T=async()=>{if(!F[v])return;let h=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:w});P.push({txId:h,status:"sent",signedTx:F[v]}),S==null||S([...P]),v++;let C=!1,O=null,_=null,ie=q=>{O!==null&&clearInterval(O),_!==null&&this.connection.removeSignatureListener(_);let W=P.findIndex(j=>j.txId===h);if(W>-1){if(P[W].status==="error"||P[W].status==="success")return;P[W].status=q.err?"error":"success"}S==null||S([...P]),q.err||T()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(C){clearInterval(O);return}try{let W=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(C=!0,clearInterval(O),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",h))}catch(W){C=!0,clearInterval(O),console.error("getTransaction timeout:",W,h)}},yt)),_=this.connection.onSignature(h,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(h)};return await T(),{txIds:P.map(h=>h.txId),signedTxs:F}}else{let v=[];for(let P=0;P<F.length;P+=1){let T=await this.connection.sendRawTransaction(F[P].serialize(),{skipPreflight:w});v.push(T)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var w;let N=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=N,m=le(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=L(L({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),n),b=Array.from(new Set([...i,...this.lookupTableAddress])),A=[];for(let I of b)p[I]===void 0&&A.push(new Oe(I));let y=await Et({connection:this.connection,address:A});for(let[I,K]of Object.entries(y))p[I]=K;let g=a?Oe.default.toBase58():c!=null?c:await Le(this.connection,this.blockhashCommitment),S=new Je({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let k=new et(S);return k.sign(this.signers),{builder:this,transaction:k,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var v;let{skipPreflight:K=!0,sendAndConfirm:x,notSendToRpc:F}=I||{};if(Te([k]),(v=this.owner)!=null&&v.isKeyPair){let P=await this.connection.sendTransaction(k,{skipPreflight:K});return x&&await ft(this.connection,P),{txId:P,signedTx:k}}if(this.signAllTransactions){let P=await this.signAllTransactions([k]);if(this.signers.length)for(let T of P)try{T.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(P[0],{skipPreflight:K}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}async buildV0MultiTx(t){var A;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:a}=await this.buildV0(i),c=n.filter(y=>y.builder.instructions.length>0),m=[a,...c.map(y=>y.transaction)],p=[this.signers,...c.map(y=>y.signers)],b=[...this.instructionTypes,...c.map(y=>y.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(y=>{y.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),m.forEach(async(y,g)=>{y.sign(p[g])}),{builder:this,transactions:m,signers:p,instructionTypes:b,buildProps:i,execute:async y=>{var w;let{sequentially:g,onTxUpdate:S,recentBlockHash:k,skipPreflight:N=!0}=y||{};if(k&&m.forEach(I=>I.message.recentBlockhash=k),Te(m),(w=this.owner)!=null&&w.isKeyPair){if(g){let I=[];for(let K of m){let x=await this.connection.sendTransaction(K,{skipPreflight:N});await ft(this.connection,x),I.push(x)}return{txIds:I,signedTxs:m}}return{txIds:await Promise.all(m.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:N}))),signedTxs:m}}if(this.signAllTransactions){let I=await this.signAllTransactions(m);if(g){let K=0,x=[],F=async()=>{if(!I[K])return;let v=await this.connection.sendTransaction(I[K],{skipPreflight:N});x.push({txId:v,status:"sent",signedTx:I[K]}),S==null||S([...x]),K++;let P=!1,T=null,h=null,C=O=>{T!==null&&clearInterval(T),h!==null&&this.connection.removeSignatureListener(h);let _=x.findIndex(ie=>ie.txId===v);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=O.err?"error":"success"}S==null||S([...x]),O.err||F()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var O;if(P){clearInterval(T);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(P=!0,clearInterval(T),C({err:((O=_.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){P=!0,clearInterval(T),console.error("getTransaction timeout:",_,v)}},yt)),h=this.connection.onSignature(v,O=>{if(P){this.connection.removeSignatureListener(h);return}P=!0,C(O)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:I}}else{let K=[];for(let x=0;x<I.length;x+=1){let F=await this.connection.sendTransaction(I[x],{skipPreflight:N});K.push(F)}return{txIds:K,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var S;let g=t||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=le(g,["splitIns","computeBudgetConfig"]),c=i?pt(i):{instructions:[],instructionTypes:[]},m=this.signers.reduce((k,N)=>V(L({},k),{[N.publicKey.toBase58()]:N}),{}),p=[],b=[],A=[],y=0;if(this.allInstructions.forEach(k=>{let N=[...A,k],w=i?[...c.instructions,...N]:N,K=[...new Set(N.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new Oe(x));if(k!==n[y]&&A.length<12&&(Ze({instructions:w,payer:this.feePayer,signers:K})||Ze({instructions:N,payer:this.feePayer,signers:K})))A.push(k);else{if(A.length===0)throw Error("item ins too big");y+=k===n[y]?1:0,Ze({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:K})?p.push(new je().add(...c.instructions,...A)):p.push(new je().add(...A)),b.push(Array.from(new Set(A.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>m[x]).filter(x=>x!==void 0)),A=[k]}}),A.length>0){let N=[...new Set(A.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(w=>m[w]).filter(w=>w!==void 0);Ze({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:N.map(w=>w.publicKey)})?p.push(new je().add(...c.instructions,...A)):p.push(new je().add(...A)),b.push(N)}return p.forEach(k=>k.feePayer=this.feePayer),(S=this.owner)!=null&&S.signer&&b.forEach(k=>{k.some(N=>N.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),{builder:this,transactions:p,signers:b,instructionTypes:this.instructionTypes,execute:async k=>{var v;let{sequentially:N,onTxUpdate:w,skipTxCount:I=0,recentBlockHash:K,skipPreflight:x=!0}=k||{},F=K!=null?K:await Le(this.connection,this.blockhashCommitment);if(p.forEach(async(P,T)=>{P.recentBlockhash=F,b[T].length&&P.sign(...b[T])}),Te(p),(v=this.owner)!=null&&v.isKeyPair){if(N){let P=0,T=[];for(let h of p){if(++P,P<=I){T.push("tx skipped");continue}let C=await Ut(this.connection,h,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});T.push(C)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:x}))),signedTxs:p}}if(this.signAllTransactions){let P=await this.signAllTransactions(p.slice(I,p.length)),T=[...p.slice(0,I),...P];if(N){let h=0,C=[],O=async()=>{if(!T[h])return;h<I&&(C.push({txId:"",status:"success",signedTx:T[h]}),w==null||w([...C]),h++,O());let _=await this.connection.sendRawTransaction(T[h].serialize(),{skipPreflight:x});C.push({txId:_,status:"sent",signedTx:T[h]}),w==null||w([...C]),h++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=C.findIndex(pe=>pe.txId===_);if(ne>-1){if(C[ne].status==="error"||C[ne].status==="success")return;C[ne].status=G.err?"error":"success"}w==null||w([...C]),G.err||O()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});ne&&(ie=!0,clearInterval(q),j({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){ie=!0,clearInterval(q),console.error("getTransaction timeout:",ne,_)}},yt)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await O(),{txIds:C.map(_=>_.txId),signedTxs:T}}else{let h=[];for(let C=0;C<T.length;C+=1){let O=await this.connection.sendRawTransaction(T[C].serialize(),{skipPreflight:x});h.push(O)}return{txIds:h,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:m=12}=F,p=le(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=L(L({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),a),A=Array.from(new Set([...this.lookupTableAddress,...c])),y=[];for(let P of A)b[P]===void 0&&y.push(new Oe(P));let g=await Et({connection:this.connection,address:y});for(let[P,T]of Object.entries(g))b[P]=T;let S=n?pt(n):{instructions:[],instructionTypes:[]},k=await Le(this.connection,this.blockhashCommitment),N=this.signers.reduce((P,T)=>V(L({},P),{[T.publicKey.toBase58()]:T}),{}),w=[],I=[],K=[],x=0;if(this.allInstructions.forEach(P=>{let T=[...K,P],h=n?[...S.instructions,...T]:T;if(P!==i[x]&&K.length<m&&($e({instructions:h,payer:this.feePayer,lookupTableAddressAccount:b})||$e({instructions:T,payer:this.feePayer,lookupTableAddressAccount:b})))K.push(P);else{if(K.length===0)throw Error("item ins too big");x+=P===i[x]?1:0;let C={};for(let O of[...new Set(A)])b[O]!==void 0&&(C[O]=b[O]);if(n&&$e({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:k})){let O=new Je({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(b));w.push(new et(O))}else{let O=new Je({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K]}).compileToV0Message(Object.values(b));w.push(new et(O))}I.push(Array.from(new Set(K.map(O=>O.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(O=>N[O]).filter(O=>O!==void 0)),K=[P]}}),K.length>0){let T=[...new Set(K.map(h=>h.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(h=>N[h]).filter(h=>h!==void 0);if(n&&$e({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:k})){let h=new Je({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(b));w.push(new et(h))}else{let h=new Je({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K]}).compileToV0Message(Object.values(b));w.push(new et(h))}I.push(T)}return(v=this.owner)!=null&&v.signer&&I.forEach(P=>{P.some(T=>T.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),w.forEach((P,T)=>{P.sign(I[T])}),{builder:this,transactions:w,buildProps:t,signers:I,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:T,onTxUpdate:h,skipTxCount:C=0,recentBlockHash:O,skipPreflight:_=!0}=P||{};if(w.map(async(q,W)=>{I[W].length&&q.sign(I[W]),O&&(q.message.recentBlockhash=O)}),Te(w),(ie=this.owner)!=null&&ie.isKeyPair){if(T){let q=0,W=[];for(let j of w){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await ft(this.connection,G),W.push(G)}return{txIds:W,signedTxs:w}}return{txIds:await Promise.all(w.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let q=await this.signAllTransactions(w.slice(C,w.length)),W=[...w.slice(0,C),...q];if(T){let j=0,G=[],ne=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),h==null||h([...G]),j++,ne();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[j]}),h==null||h([...G]),j++;let Ge=!1,xe=null,at=null,fn=we=>{xe!==null&&clearInterval(xe),at!==null&&this.connection.removeSignatureListener(at);let fe=G.findIndex(Io=>Io.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=we.err?"error":"success"}h==null||h([...G]),we.err||ne()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var we;if(Ge){clearInterval(xe);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:1});fe&&(Ge=!0,clearInterval(xe),fn({err:((we=fe.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){Ge=!0,clearInterval(xe),console.error("getTransaction timeout:",fe,pe)}},yt)),at=this.connection.onSignature(pe,we=>{if(Ge){this.connection.removeSignatureListener(at);return}Ge=!0,fn(we)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:_});j.push(ne)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Gt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new bt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Gt(t))}logInfo(...t){this.logger.info(Gt(t))}logAndCreateError(...t){let n=Gt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{Keypair as wi,PublicKey as ki}from"@solana/web3.js";import Gl from"bn.js";import{TOKEN_PROGRAM_ID as Ti}from"@solana/spl-token";function ni(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function zt(o,...t){if(!ni(o))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(o.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${o.length}`)}function Xt(o,t=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(t&&o.finished)throw new Error("Hash#digest() has already been called")}function On(o,t){zt(o);let n=t.outputLen;if(o.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var Pt=o=>new DataView(o.buffer,o.byteOffset,o.byteLength),se=(o,t)=>o<<32-t|o>>>t;var _c=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function oi(o){if(typeof o!="string")throw new Error(`utf8ToBytes expected string, got ${typeof o}`);return new Uint8Array(new TextEncoder().encode(o))}function Yt(o){return typeof o=="string"&&(o=oi(o)),zt(o),o}var gt=class{clone(){return this._cloneInto()}},Vc={}.toString;function Nn(o){let t=i=>o().update(Yt(i)).digest(),n=o();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>o(),t}function ii(o,t,n,i){if(typeof o.setBigUint64=="function")return o.setBigUint64(t,n,i);let a=BigInt(32),c=BigInt(4294967295),m=Number(n>>a&c),p=Number(n&c),b=i?4:0,A=i?0:4;o.setUint32(t+b,m,i),o.setUint32(t+A,p,i)}var Mn=(o,t,n)=>o&t^~o&n,Fn=(o,t,n)=>o&t^o&n^t&n,At=class extends gt{constructor(t,n,i,a){super(),this.blockLen=t,this.outputLen=n,this.padOffset=i,this.isLE=a,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Pt(this.buffer)}update(t){Xt(this);let{view:n,buffer:i,blockLen:a}=this;t=Yt(t);let c=t.length;for(let m=0;m<c;){let p=Math.min(a-this.pos,c-m);if(p===a){let b=Pt(t);for(;a<=c-m;m+=a)this.process(b,m);continue}i.set(t.subarray(m,m+p),this.pos),this.pos+=p,m+=p,this.pos===a&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Xt(this),On(t,this),this.finished=!0;let{buffer:n,view:i,blockLen:a,isLE:c}=this,{pos:m}=this;n[m++]=128,this.buffer.subarray(m).fill(0),this.padOffset>a-m&&(this.process(i,0),m=0);for(let g=m;g<a;g++)n[g]=0;ii(i,a-8,BigInt(this.length*8),c),this.process(i,0);let p=Pt(t),b=this.outputLen;if(b%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let A=b/4,y=this.get();if(A>y.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<A;g++)p.setUint32(4*g,y[g],c)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let i=t.slice(0,n);return this.destroy(),i}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:n,buffer:i,length:a,finished:c,destroyed:m,pos:p}=this;return t.length=a,t.pos=p,t.finished=c,t.destroyed=m,a%n&&t.buffer.set(i),t}};var ri=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ge=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Pe=new Uint32Array(64),Ht=class extends At{constructor(){super(64,32,8,!1),this.A=ge[0]|0,this.B=ge[1]|0,this.C=ge[2]|0,this.D=ge[3]|0,this.E=ge[4]|0,this.F=ge[5]|0,this.G=ge[6]|0,this.H=ge[7]|0}get(){let{A:t,B:n,C:i,D:a,E:c,F:m,G:p,H:b}=this;return[t,n,i,a,c,m,p,b]}set(t,n,i,a,c,m,p,b){this.A=t|0,this.B=n|0,this.C=i|0,this.D=a|0,this.E=c|0,this.F=m|0,this.G=p|0,this.H=b|0}process(t,n){for(let g=0;g<16;g++,n+=4)Pe[g]=t.getUint32(n,!1);for(let g=16;g<64;g++){let S=Pe[g-15],k=Pe[g-2],N=se(S,7)^se(S,18)^S>>>3,w=se(k,17)^se(k,19)^k>>>10;Pe[g]=w+Pe[g-7]+N+Pe[g-16]|0}let{A:i,B:a,C:c,D:m,E:p,F:b,G:A,H:y}=this;for(let g=0;g<64;g++){let S=se(p,6)^se(p,11)^se(p,25),k=y+S+Mn(p,b,A)+ri[g]+Pe[g]|0,w=(se(i,2)^se(i,13)^se(i,22))+Fn(i,a,c)|0;y=A,A=b,b=p,p=m+k|0,m=c,c=a,a=i,i=k+w|0}i=i+this.A|0,a=a+this.B|0,c=c+this.C|0,m=m+this.D|0,p=p+this.E|0,b=b+this.F|0,A=A+this.G|0,y=y+this.H|0,this.set(i,a,c,m,p,b,A,y)}roundClean(){Pe.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var vn=Nn(()=>new Ht);import{PublicKey as gi}from"@solana/web3.js";import Wn,{isBN as qn}from"bn.js";import{bits as ai,BitStructure as Yc,blob as si,Blob as Hc,cstr as Qc,f32 as Zc,f32be as $c,f64 as jc,f64be as Jc,greedy as el,Layout as ui,ns64 as tl,ns64be as nl,nu64 as ol,nu64be as il,offset as ci,s16 as rl,s16be as al,s24 as sl,s24be as ul,s32 as li,s32be as cl,s40 as ll,s40be as ml,s48 as dl,s48be as pl,s8 as fl,seq as mi,struct as yl,Structure as di,u16 as pi,u16be as bl,u24 as gl,u24be as Pl,u32 as fi,u32be as Al,u40 as wl,u40be as kl,u48 as Tl,u48be as hl,u8 as yi,UInt as bi,union as Bl,Union as Il,unionLayoutDiscriminator as xl,utf8 as Sl}from"@solana/buffer-layout";var wt=ui,_n=di;var Qt=bi;var Vn=yi,H=pi;var kt=fi;var ue=li;var En=mi;var M=si;var Zt=ai,Dn=ci;var Be=class extends wt{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new Wn(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 Wn(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=Zt(kt(),!1),this._upper=Zt(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),c=this._upper.decode(n,i+this._lower.span);return L(L({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function l(o){return new Qt(1,o)}function X(o){return new Qt(4,o)}function e(o){return new Be(8,!1,o)}function R(o){return new Be(16,!1,o)}function Un(o){return new Be(1,!0,o)}function Ne(o){return new Be(8,!0,o)}function Gn(o){return new Be(16,!0,o)}var tt=class extends wt{constructor(n,i,a,c){super(n.span,c);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 tt(M(32),t=>new gi(t),t=>t.toBuffer(),o)}function re(o){return new tt(Vn(),Pi,Ai,o)}function Pi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ai(o){return o?1:0}function jt(o,t){let n=kt("length"),i=d([n,f(o,Dn(n,-n.span),"values")]);return new tt(i,({values:a})=>a,a=>({values:a}),t)}var $t=class extends _n{decode(t,n){return super.decode(t,n)}};function d(o,t,n){return new $t(o,t,n)}function f(o,t,n){let i,a=typeof t=="number"?t:qn(t)?t.toNumber():new Proxy(t,{get(c,m){if(!i){let p=Reflect.get(c,"count");i=qn(p)?p.toNumber():p,Reflect.set(c,"count",i)}return Reflect.get(c,m)},set(c,m,p){return m==="count"&&(i=p),Reflect.set(c,m,p)}});return En(o,a,n)}var Me=d([r("mint"),r("owner"),e("amount"),X("delegateOption"),r("delegate"),l("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),r("closeAuthority")]);function Fe({fromPublicKey:o,programId:t=Ti,assignSeed:n}){let i=n?btoa(n).slice(0,32):wi.generate().publicKey.toBase58().slice(0,32);return{publicKey:hi(o,i,t),seed:i}}function hi(o,t,n){let i=Buffer.concat([o.toBuffer(),Buffer.from(t),n.toBuffer()]),a=vn(i);return new ki(a)}import{PublicKey as Jg,SystemProgram as eP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as nP}from"@solana/spl-token";import{PublicKey as ym}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gm}from"@solana/spl-token";import{PublicKey as B}from"@solana/web3.js";var Xn=new B("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Yn=new B("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Hn=new B("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),tn=new B("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),km=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ii=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Qn=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Zn=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Tm=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),xi=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$n=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Si=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ki=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),jn=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),hm=new B("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ci=new B("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),nn=new B("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ri=new B("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bm=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Li=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Oi=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ni=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Im=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),xm=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Sm=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Km=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Cm=new B("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ae={OPEN_BOOK_PROGRAM:new B("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new B("Ray1111111111111111111111111111111111111111"),AMM_V4:new B("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new B("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new B("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new B("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new B("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new B("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new B("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new B("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:B.default,Router:new B("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new B("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new B("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new B("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new B("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new B("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new B("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new B("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new B("Ray1111111111111111111111111111111111111111")};import dP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as My,TOKEN_2022_PROGRAM_ID as Fy,TOKEN_PROGRAM_ID as vy}from"@solana/spl-token";import{PublicKey as Vy}from"@solana/web3.js";import Dy from"bn.js";import qy from"decimal.js";import{TOKEN_PROGRAM_ID as Um}from"@solana/spl-token";import{PublicKey as Ym}from"@solana/web3.js";var Mi=d([X("mintAuthorityOption"),r("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ty,TOKEN_2022_PROGRAM_ID as ny,TOKEN_PROGRAM_ID as oy}from"@solana/spl-token";import{Keypair as ay,PublicKey as sy,SystemProgram as cy,TransactionInstruction as ly}from"@solana/web3.js";import dy from"bn.js";import D from"bn.js";var _e=new D(1).shln(64);var Fi=new D(1).shln(128),on=new D(1).shln(64).subn(1),vi=new D(1).shln(128).subn(1);var Ve=new D("4295048016"),Ee=new D("79226673521066979257578248091"),_i=new D("59543866431248"),Vi=new D("184467440737095516"),Ei=new D("15793534762490258745");var rn=60,rd=new D("18446743708227953217"),Di=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var nt=3,Jn=100;var eo=10,to=100,ht=14;var Z=new D(0),De=new D(1),ad=new D(-1);var sd=new D("18446744073700000000");var Wi=d([M(8),l("bump"),H("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(e(),3)]),qi=d([X("blockTimestamp"),Ne("tickCumulative"),f(e(),4)]),no=d([M(8),re("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),f(qi,Jn,"observations"),f(e(),4)]),Ui=d([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),f(l(),46)]),Gi=d([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),R("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),R("growthGlobalX64")]),an=d([M(8),l("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),H("tickSpacing"),R("liquidity"),R("sqrtPriceX64"),ue("tickCurrent"),X(),R("feeGrowthGlobalX64A"),R("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(R(),4),l("status"),l("feeOn"),M(6),f(Gi,nt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ui.replicate("dynamicFeeInfo"),f(e(),46)]),zi=d([R("growthInsideLastX64"),e("rewardAmountOwed")]),Xi=d([M(8),l("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),R("liquidity"),R("feeGrowthInsideLastX64A"),R("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(zi,nt,"rewardInfos"),e("recentEpoch"),f(e(),7)]),md=d([M(8),l("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),R("liquidity"),R("feeGrowthInsideLastX64A"),R("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(R(),nt,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Yi=d([ue("tick"),Gn("liquidityNet"),R("liquidityGross"),R("feeGrowthOutsideX64A"),R("feeGrowthOutsideX64B"),f(R(),nt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),R("unfilledRatioX64"),f(X(),3)]),oo=d([M(8),r("poolId"),ue("startTickIndex"),f(Yi,rn,"ticks"),l("initializedTickCount"),e("recentEpoch"),f(l(),107)]),Hi=d([M(8),l("bump"),f(r(),eo,"operationOwners"),f(r(),to,"whitelistMints")]),Qi=d([M(8),r("poolId"),r("owner"),ue("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),R("unfilledRatioX64"),f(e(),4)]),io=d([M(8),r("poolId"),M(8*8*ht,"positiveTickArrayBitmap"),M(8*8*ht,"negativeTickArrayBitmap")]),dd=d([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(e(),8)]),Zi=d([M(8),r("wallet"),l("nonceIndex"),e("orderNonce"),f(e(),4)]),pd=d([e(),l("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(e(),8)]),$i=d([M(8),l("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),f(e(),8)]);import bd from"bn.js";var Sd=Buffer.from("amm_config","utf8"),Ji=Buffer.from("pool","utf8"),er=Buffer.from("pool_vault","utf8"),Kd=Buffer.from("pool_reward_vault","utf8"),Cd=Buffer.from("position","utf8"),Rd=Buffer.from("tick_array","utf8"),Ld=Buffer.from("operation","utf8"),Od=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Nd=Buffer.from("observation","utf8"),Md=Buffer.from("support_mint","utf8"),Fd=Buffer.from("dynamic_fee_config","utf8"),vd=Buffer.from("permission","utf8");var _d=Buffer.from("locked_position","utf8");import{sha256 as yr}from"js-sha256";import tr from"bn.js";import Wd from"decimal.js";var Ud=new tr(1).shln(256).subn(1);import sp from"bn.js";import Zd from"bn.js";import jd from"decimal.js";import dp from"bn.js";import fp from"decimal.js";import{PublicKey as ef}from"@solana/web3.js";import nf from"bn.js";import{TOKEN_2022_PROGRAM_ID as mf,TOKEN_PROGRAM_ID as df}from"@solana/spl-token";import bf from"decimal.js";import Up from"bn.js";import Rp from"bn.js";import Sf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(yr.digest(t)).slice(0,8)}no.span;var ky=E("Raydium_Clmm"),Ty={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as ln}from"@solana/web3.js";var Ar=d([l("instruction")]),wr=d([l("instruction")]),kr=d([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),R("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),f(e(),15,"padding")]),Tr=d([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),R("perShareReward"),e("lastSlot"),e("perSlotReward")]),hr=d([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),R("perShareRewardA"),e("perSlotRewardA"),l("option"),r("rewardVaultB"),M(7),e("totalRewardB"),R("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),Br=d([e(),e("state"),e("nonce"),e("validRewardTokenNum"),R("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),f(kr,5,"rewardInfos"),r("creator"),r(),f(e(),32,"padding")]),Ir=new Proxy(Tr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return V(L({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,t,n)}}),xr=new Proxy(hr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return V(L({},a),{version:5,rewardInfos:[{rewardVault:a.rewardVaultA,totalReward:a.totalRewardA,perSlotReward:a.perSlotRewardA,perShareReward:a.perShareRewardA},{rewardVault:a.rewardVaultB,totalReward:a.totalRewardB,perSlotReward:a.perSlotRewardB,perShareReward:a.perShareRewardB}]})}:Reflect.get(o,t,n)}}),mo=new Proxy(Br,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return V(L({},a),{version:6,rewardInfos:a.rewardInfos.map(c=>{var m;return V(L({},c),{rewardType:((m=Object.entries(rt).find(p=>String(p[1])===c.rewardType.toString()))!=null?m:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),Sr=d([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Kr=d([l("instruction"),e("nonce"),f(Sr,5,"rewardTimeInfo")]),Cr=d([l("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),Rr=d([l("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),gb=d([e("state"),r("id"),r("owner"),e("deposited"),f(e(),1,"rewardDebts")]),po=d([e("state"),r("id"),r("owner"),e("deposited"),f(R(),1,"rewardDebts"),e(""),e("voteLockedBalance"),f(e(),15)]),Pb=d([e("state"),r("id"),r("owner"),e("deposited"),f(e(),2,"rewardDebts")]),Lr=d([e("state"),r("id"),r("owner"),e("deposited"),f(R(),2,"rewardDebts"),f(e(),17)]),Or=d([e(),e("state"),r("id"),r("owner"),e("deposited"),f(R(),5,"rewardDebts"),f(e(),16)]),Nr=d([l("instruction"),e("amount")]),Mr=d([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Un("digitShift"),f(l(),7,"reserved1"),f(e(),7,"reserved2")]),Fr=d([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),f(l(),32,"reserved1"),f(Mr,4,"votingMints"),Ne("timeOffset"),l("bump"),f(l(),7,"reserved2"),f(e(),11,"reserved3")]),vr=d([Ne("startTime"),Ne("endTime"),l("kind"),f(l(),15,"reserved")]),_r=d([f(vr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),l("votingMintConfigIdx"),f(l(),29,"reserved")]),Vr=d([M(8),r("voterAuthority"),r("registrar"),f(_r,32,"deposits"),l("voterBump"),l("voterWweightRecordBump"),f(l(),94,"reserved")]);import{NATIVE_MINT as Sb}from"@solana/spl-token";var Kb=E("Raydium_farm_config"),Er=new ln("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Dr=new ln("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Cb=new ln("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var rt={"Standard SPL":0,"Option tokens":1},fo={[Xn.toString()]:3,[Yn.toString()]:4,[Hn.toString()]:5,[tn.toString()]:6,[Ae.FARM_PROGRAM_ID_V3.toString()]:3,[Ae.FARM_PROGRAM_ID_V4.toString()]:4,[Ae.FARM_PROGRAM_ID_V5.toString()]:5,[Ae.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as fg,SystemProgram as yg,SYSVAR_CLOCK_PUBKEY as bg,SYSVAR_RENT_PUBKEY as gg,TransactionInstruction as Pg}from"@solana/web3.js";import wg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Tg,createAssociatedTokenAccountIdempotentInstruction as hg,TOKEN_PROGRAM_ID as Bg}from"@solana/spl-token";import Gb from"bn.js";import{PublicKey as Fb}from"@solana/web3.js";import _b from"bn.js";var og=E("Raydium.farm.util");var Fg=E("Raydium_farm_instruction"),vg={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import hP from"bn.js";import{PublicKey as Lw}from"@solana/web3.js";import{AccountLayout as Mw,MintLayout as Fw,NATIVE_MINT as vw,TOKEN_PROGRAM_ID as Vw}from"@solana/spl-token";import xP from"bn.js";import bo from"bn.js";var Hr=new bo(25),Qr=new bo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as HP,TOKEN_PROGRAM_ID as QP}from"@solana/spl-token";import{PublicKey as $P,SystemProgram as jP,SYSVAR_RENT_PUBKEY as JP,TransactionInstruction as eA}from"@solana/web3.js";import uA from"bn.js";var Zr=d([l("instruction"),e("amountIn"),e("minAmountOut")]),$r=d([l("instruction"),e("maxAmountIn"),e("amountOut")]),GP=d([l("instruction"),l("nonce")]),jr=d([l("instruction"),l("nonce"),e("startTime")]),go=d([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),R("swapBaseInAmount"),R("swapQuoteOutAmount"),e("swapBase2QuoteFee"),R("swapQuoteInAmount"),R("swapBaseOutAmount"),e("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),e("lpReserve"),f(e(),3,"padding")]),zP=d([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),R("swapBaseInAmount"),R("swapQuoteOutAmount"),R("swapQuoteInAmount"),R("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),f(e(),64,"padding")]),Jr=d([l("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),ea=d([l("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var ta=d([e("fee")]);var mA=E("Raydium_liquidity_instruction");var na=5e4,oa=d([e("x"),e("y"),e("price")]),yA=d([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),f(oa,na,"DataElement")]);import{PublicKey as SA}from"@solana/web3.js";import CA from"decimal.js";import{TOKEN_PROGRAM_ID as LA}from"@solana/spl-token";import{PublicKey as AA}from"@solana/web3.js";var TA=E("Raydium_liquidity_serum");import ik from"bn.js";import ak from"decimal.js";import{TOKEN_PROGRAM_ID as iw}from"@solana/spl-token";import{PublicKey as aw}from"@solana/web3.js";import uw from"bn.js";import{SystemProgram as zA,SYSVAR_RENT_PUBKEY as XA,Transaction as YA,TransactionInstruction as HA}from"@solana/web3.js";import{createInitializeAccountInstruction as ZA,TOKEN_PROGRAM_ID as $A}from"@solana/spl-token";function ia(o="accountFlags"){let t=new Tt(o);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var ra=d([M(5),ia("accountFlags"),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as MT}from"@solana/web3.js";import{AccountLayout as vT,NATIVE_MINT as _T,TOKEN_2022_PROGRAM_ID as VT,TOKEN_PROGRAM_ID as ET,createAssociatedTokenAccountIdempotentInstruction as DT}from"@solana/spl-token";import Rk from"bn.js";import da from"bn.js";var bk=new da(0);import Tk from"bn.js";import pa from"bn.js";var xt=new pa(1e6);import HT from"bn.js";import ZT from"decimal.js";import{PublicKey as Zk,TransactionInstruction as $k,Keypair as Jk,SystemProgram as eT}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as nT,TOKEN_2022_PROGRAM_ID as oT,TOKEN_PROGRAM_ID as iT}from"@solana/spl-token";var Fk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),vk=Buffer.from("amm_config","utf8"),_k=Buffer.from("pool","utf8"),Vk=Buffer.from("pool_lp_mint","utf8"),Ek=Buffer.from("pool_vault","utf8"),Dk=Buffer.from("observation","utf8"),Wk=Buffer.from("permission","utf8"),qk=Buffer.from("support_mint","utf8"),Uk=Buffer.from("creator_fee_share","utf8");var Gk=Buffer.from("locked_liquidity","utf8");var mT=E("Raydium_cpmm"),dT={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 ba=d([M(8),l("bump"),re("disableCreatePool"),H("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),f(e(),14)]),Po=d([M(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),l("bump"),l("status"),l("lpDecimals"),l("mintDecimalA"),l("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),l("feeOn"),re("enableCreatorFee"),f(l(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),f(e(),28)]),yT=d([M(8),r("configId"),f(e(),30)]),bT=d([M(8),l("bump"),r("creator"),r("ammConfig"),e("shareRate"),f(e(),8)]);import{PublicKey as uK,SystemProgram as cK}from"@solana/web3.js";import{createTransferInstruction as mK,TOKEN_PROGRAM_ID as dK,TOKEN_2022_PROGRAM_ID as pK,createAssociatedTokenAccountIdempotentInstruction as fK,createSyncNativeInstruction as bK,createTransferCheckedInstruction as gK}from"@solana/spl-token";import _a from"bn.js";import wK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as iB,TOKEN_2022_PROGRAM_ID as rB,TOKEN_PROGRAM_ID as aB}from"@solana/spl-token";import{SystemProgram as lB,TransactionInstruction as mB}from"@solana/web3.js";import Aa from"bn.js";var Uh=Buffer.from("vault_auth_seed","utf8"),Gh=Buffer.from("global_config","utf8"),zh=Buffer.from("pool_vesting","utf8"),Xh=Buffer.from("platform_config","utf8"),Yh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Hh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Qh=Buffer.from("platform_global_access","utf8"),Zh=Buffer.from("platform_allow_config","utf8"),$h=Buffer.from("platform_curve_rule","utf8");var fB={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 yB=new Aa("18446744073709551615");var wa=d([e(),e("epoch"),l("curveType"),H("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),f(e(),16)]),ka=d([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),Ta=d([e(),e("epoch"),l("bump"),l("status"),l("mintDecimalsA"),l("mintDecimalsB"),l("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),ka.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),l("mintProgramFlag"),l("cpmmCreatorFeeOn"),e("platformVestingShare"),f(l(),54)]),AB=d([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),f(e(),8)]),ha=d([l("migrateType"),l("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),wB=d([e("epoch"),l("index"),r("configId"),ha.replicate("bondingCurveParam"),f(e(),50)]),wo=d([e(),e("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),f(l(),64,"name"),f(l(),256,"web"),f(l(),256,"img"),r("cpConfigId"),e("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),e("platformVestingScale"),r("platformCpCreator"),l("restrictGlobalConfig"),l("restrictCurveParam"),r("curveRuleManager"),f(l(),78)]),Ba=d([l("field"),l("op"),R("value")]),Ia=d([H("groupId"),e("epoch"),jt(Ba,"constraints")]),xa=d([e(),l("bump"),l("version"),r("platformId"),r("configId"),e("epoch"),f(e(),8),jt(Ia,"groups")]);import{TOKEN_2022_PROGRAM_ID as hB,TOKEN_PROGRAM_ID as BB}from"@solana/spl-token";import Sa from"bn.js";var vB=new Sa(1e6);import DB from"bn.js";import qB from"decimal.js";import wI from"bn.js";import TI from"decimal.js";import HB from"bn.js";import ZB from"decimal.js";import aI from"bn.js";import uI from"decimal.js";import ho from"bn.js";import dn from"decimal.js";var Ct=class{static _multipler(t){return new dn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new dn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:t,decimalA:n,decimalB:i}){let a=t.mul(this._multipler(i)).div(this._multipler(n));return new ho(a.mul(this._Q64).toFixed(0))}};Ct._Q64=new dn(new ho(1).shln(64).toString());import{NATIVE_MINT as _x,TOKEN_2022_PROGRAM_ID as Vx,TOKEN_PROGRAM_ID as Ex,createAssociatedTokenAccountIdempotentInstruction as Wx,createSyncNativeInstruction as qx,getTransferFeeConfig as Ux,unpackMint as Gx}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as Ma,SystemProgram as Yx}from"@solana/web3.js";import eS from"decimal.js";var tS={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new Ma("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},nS=new Q(1e4);var Fa={[Qn.toBase58()]:3};var va=d([M(5),M(8),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as xS}from"@solana/web3.js";var LS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as DS,TOKEN_2022_PROGRAM_ID as WS,TOKEN_PROGRAM_ID as qS}from"@solana/spl-token";import{PublicKey as GS,SystemProgram as zS,TransactionInstruction as XS}from"@solana/web3.js";import HS from"bn.js";var ZK=new _a(0);import{PublicKey as Va,Transaction as pn,TransactionInstruction as Ea}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Da}from"@solana/spl-token";import Bo from"bn.js";var te=class extends oe{static getPdaPoolId(t,n){return me([te.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,i,a){return me([te.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new Bo(a).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:a,chainTime:c}){if(i.length===0)return[];let m=i.map(y=>te.getPdaPoolId(n,y).publicKey),p=[];for(let y=0;y<te.VERSION_PROJECT.length;y++)p.push(...m.map(g=>te.getPdaOwnerId(n,g,a,y).publicKey));let b=await ye(t,[...m,...p]),A=[];for(let y=0;y<b.length;y++){let g=Math.floor(y/i.length),S=y%i.length,k=m[S],N=p[y],w=b[S],I=b[i.length+y];if(!(w&&I)||w.data.length!==te.POOL_LAYOUT.span||I.data.length!==te.OWNER_LAYOUT.span)continue;let K=te.POOL_LAYOUT.decode(w.data),x=te.OWNER_LAYOUT.decode(I.data),F=K.openTime.toNumber(),v=K.endTime.toNumber(),P=x.tokenInfo.map(C=>C.debtAmount.gt(new Bo(0))).filter(C=>!C).length!==3,T=c>F&&c<v&&K.status===1,h=P&&T;A.push({programId:n,poolId:k,ammId:K.ammId,ownerAccountId:N,snapshotLpAmount:x.lpAmount,project:te.VERSION_PROJECT[g],openTime:F,endTime:v,canClaim:h,canClaimErrorType:P?T?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((C,O)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:x.tokenInfo[O].debtAmount.add(x.tokenInfo[O].claimedAmount)}))})}return A}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,m=[];for(let A of t.tokenInfo){let{account:y,instructionParams:g}=await this.scope.account.getOrCreateTokenAccount({mint:A.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:A.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!A.mintAddress.equals(ee.WSOL.mint),associatedOnly:A.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});g&&a.addInstruction(g),m.push(y)}a.addInstruction({instructions:[te.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:c,ownerPda:t.ownerAccountId,claimAddress:m}})]});let{transaction:p,signers:b}=a.build();return[{transaction:p,signer:b}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,m={};for(let y of t){let g=[];for(let S of y.tokenInfo){let{account:k,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:S.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:S.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!S.mintAddress.equals(ee.WSOL.mint),associatedOnly:S.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});N&&a.addInstruction(N),k&&(m[S.mintAddress.toString()]=k,g.push(k))}a.addInstruction({instructions:[te.makeClaimInstruction({programId:y.programId,poolInfo:y,ownerInfo:{wallet:c,ownerPda:y.ownerAccountId,claimAddress:g}})]})}let{transaction:p,signers:b}=a.build(),A=a.allInstructions;return qt(A,[c,...b.map(y=>y.publicKey)])?[{transaction:p,signer:b}]:[{transaction:new pn().add(...A.slice(0,a.AllTxData.instructions.length-1)),signer:b},{transaction:new pn().add(...A.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new pn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let a=d([]),c=[{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:Da,isSigner:!1,isWritable:!1}],m=Buffer.alloc(a.span);a.encode({},m);let p=Buffer.from([10,66,208,184,161,6,191,98,...m]);return new Ea({keys:c,programId:t,data:p})}},ce=te;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=d([M(8),l("bump"),l("status"),e("openTime"),e("endTime"),r("ammId"),f(d([l("mintDecimals"),r("mintAddress"),r("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(e(),10,"padding")]),ce.OWNER_LAYOUT=d([M(8),l("bump"),l("version"),r("poolId"),r("owner"),e("lpAmount"),f(d([r("mintAddress"),e("debtAmount"),e("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(e(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Va(t)),ce.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ce.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as pC}from"@solana/web3.js";import{getTransferFeeConfig as yC,MintLayout as bC,TOKEN_2022_PROGRAM_ID as gC,TOKEN_PROGRAM_ID as PC,unpackMint as AC}from"@solana/spl-token";var YR=new Ie(2),HR=new Ie(3),QR=new Ie(5),Do=new Ie(10),ZR=new Ie(100),$R=new Ie(1e3),jR=new Ie(1e4);function Ot(o,t=1,n=[]){let i=[...o];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}import{createCloseAccountInstruction as Ga,createInitializeAccountInstruction as za,createTransferInstruction as Xa,TOKEN_PROGRAM_ID as Ue}from"@solana/spl-token";function zn(o){let{mint:t,tokenAccount:n,owner:i,programId:a=Ue}=o;return za(n,t,i,a)}function Jt(o){let{tokenAccount:t,destination:n,multiSigners:i=[],owner:a,programId:c=Ue}=o;return Ga(t,n,a,i,c)}async function en(o){let{connection:t,amount:n,commitment:i,closeDestination:a,payer:c,owner:m,skipCloseAccount:p}=o,b=await t.getMinimumBalanceForRentExemption(Me.span,i),A=J(n).add(new Ua(b)),y=Fe({fromPublicKey:c,programId:Ue});return{addresses:{newAccount:y.publicKey},signers:[],instructions:[qa.createAccountWithSeed({fromPubkey:c,basePubkey:c,seed:y.seed,newAccountPubkey:y.publicKey,lamports:A.toNumber(),space:Me.span,programId:Ue}),zn({mint:new Wa(ae.address),tokenAccount:y.publicKey,owner:m,programId:Ue})],instructionTypes:[Y.CreateAccount,Y.InitAccount],endInstructionTypes:p?[]:[Y.CloseAccount],endInstructions:p?[]:[Jt({tokenAccount:y.publicKey,destination:a!=null?a:m,owner:m})]}}function Bi({source:o,destination:t,owner:n,amount:i,multiSigners:a=[],tokenProgram:c=Ue}){return Xa(o,t,n,BigInt(String(i)),a,c)}export{Jt as closeAccountInstruction,en as createWSolAccountInstructions,zn as initTokenAccountInstruction,Bi as makeTransferInstruction};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=instruction.mjs.map