UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

3 lines 78.9 kB
var So=Object.defineProperty,Ko=Object.defineProperties;var Co=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var yn=Object.prototype.hasOwnProperty,bn=Object.prototype.propertyIsEnumerable;var fn=(o,e,n)=>e in o?So(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,L=(o,e)=>{for(var n in e||(e={}))yn.call(e,n)&&fn(o,n,e[n]);if(st)for(var n of st(e))bn.call(e,n)&&fn(o,n,e[n]);return o},D=(o,e)=>Ko(o,Co(e));var le=(o,e)=>{var n={};for(var i in o)yn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&st)for(var i of st(o))e.indexOf(i)<0&&bn.call(o,i)&&(n[i]=o[i]);return n};import{PublicKey as Va,SystemProgram as Ea}from"@solana/web3.js";import Da from"bn.js";import{PublicKey as Oo}from"@solana/web3.js";import{get as gn,set as Ro}from"lodash";var Rt=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}},Pn={},Lo={};function V(o){let e=gn(Pn,o);if(!e){let n=gn(Lo,o);e=new Rt({name:o,logLevel:n}),Ro(Pn,o,e)}return e}import{MINT_SIZE as es,TOKEN_PROGRAM_ID as ts,getTransferFeeConfig as ns,unpackMint as os}from"@solana/spl-token";var Lt=V("Raydium_accountInfo_util");async function ye(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=L({batchRequest:!1},n),l=Ot(e,c),d=new Array(l.length).fill([]);if(i){let y=l.map(g=>{let S=o._buildArgs([g.map(k=>k.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:S}}),A=Ot(y,10);d=(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:B,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 Oo(B),rentEpoch:K}}return null})))}else try{d=await Promise.all(l.map(y=>o.getMultipleAccountsInfo(y,a)))}catch(y){y instanceof Error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return d.flat()}import Be from"bn.js";import pR from"decimal.js";import Do from"big.js";import ws from"bn.js";import No from"toformat";var Mo=No,Xe=Mo;import ct from"big.js";import vo from"bn.js";import _o from"decimal.js-light";import Ye from"bn.js";var An=9007199254740991;function J(o){let e=V("Raydium_parseBigNumberish");if(o instanceof Ye)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ye(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=An||o<=-An)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Ye(String(o))):typeof o=="bigint"?new Ye(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Ye(0))}var ut=V("module/fraction"),Nt=Xe(ct),He=Xe(_o),Vo={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},Eo={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},U=class{constructor(e,n=new vo(1)){this.numerator=J(e),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(e){let n=e instanceof U?e:new U(J(e));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(e){let n=e instanceof U?e:new U(J(e));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(e){let n=e instanceof U?e:new U(J(e));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof U?e:new U(J(e));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||ut.logWithError(`${e} is not an integer.`),e<=0&&ut.logWithError(`${e} is not positive.`),He.set({precision:e+1,rounding:Vo[i]});let a=new He(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)||ut.logWithError(`${e} is not an integer.`),e<0&&ut.logWithError(`${e} is negative.`),Nt.DP=e,Nt.RM=Eo[i]||1,new Nt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Cs=V("Raydium_amount"),Rs=Xe(Do);import{PublicKey as qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wn}from"@solana/spl-token";var lt={chainId:101,address:qo.default.toBase58(),programId:wn.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:wn.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 kn,SYSVAR_RENT_PUBKEY as Uo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";function Se({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var zo=[Se({pubkey:Go,isWritable:!1}),Se({pubkey:kn.programId,isWritable:!1}),Se({pubkey:Uo,isWritable:!1})];function Tn({publicKey:o,transformSol:e}){let n=hn(o.toString());if(n instanceof z)return e&&n.equals(ke)?be:n;if(e&&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 hn(o){try{return new z(o)}catch{return o}}var Mt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Qe=new z("SysvarRent111111111111111111111111111111111"),Vs=new z("SysvarC1ock11111111111111111111111111111111"),mt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Xo=new z("Sysvar1nstructions1111111111111111111111111"),Yo=kn.programId,Es=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ds=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ws=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),qs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Us=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Gs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),zs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Xs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ys=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Hs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Qs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),ke=z.default;var vt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===ke.toBase58()||e instanceof Ft&&ke.equals(e)){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||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=c?Ft.default:Tn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=vt;ee.WSOL=new vt(D(L({},ae),{mint:ae.address}));var _t=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},dt=_t;dt.SOL=new _t(lt);import Ho from"bn.js";var su=new U(new Ho(100));var pu=V("Raydium_price");import{merge as yC}from"lodash";import Tu 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"},Qo=D(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 zu=V("Raydium_Api");import{PublicKey as Zl,SystemProgram as jl}from"@solana/web3.js";import{AccountLayout as nm,createAssociatedTokenAccountIdempotentInstruction as om,TOKEN_PROGRAM_ID as im,TOKEN_2022_PROGRAM_ID as rm}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as Ut,SystemProgram as ti,Transaction as $e,TransactionMessage as Je,VersionedTransaction as et}from"@solana/web3.js";import ni from"axios";import{PublicKey as Vt,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Et({connection:o,address:e,cluster:n="mainnet"}){let i=await ye(o,[...new Set(e.map(c=>c.toString()))].map(c=>new Vt(c))),a={};for(let c=0;c<e.length;c++){let l=i[c],d=e[c];if(!l)continue;let y=new Re({key:d,state:Re.deserialize(l.data)});a[d.toString()]=y,n==="devnet"?Ce[d.toString()]=y:Ke[d.toString()]=y}return a}var Ke={},Dt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[e])return Ke;let n=new Vt(e),i=await o.getAccountInfo(n);return i&&(Ke[e]=new Re({key:n,state:Re.deserialize(i.data)})),Ke},Ce={},Wt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[e])return Ce;let n=new Vt(e),i=await o.getAccountInfo(n);return i&&(Ce[e]=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 Bn,Keypair as Sn,PublicKey as Zo,Transaction as Kn,TransactionMessage as jo,VersionedTransaction as Cn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $o}from"@solana/spl-token";var xn=V("Raydium_txUtil"),Rn=1644;function pt(o){let e=[],n=[];return o.microLamports&&(e.push(Bn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Y.SetComputeUnitPrice)),o.units&&(e.push(Bn.setComputeUnitLimit({units:o.units})),n.push(Y.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Le(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 ft(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function qt(o,e){o.length<1&&xn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&xn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Rn}catch{return!1}}function me(o,e){let[n,i]=Zo.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function Ze({instructions:o,payer:e,signers:n}){return qt(o,[e,...n])}function je({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=Sn.generate().publicKey.toString()}){let c=new jo({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Cn(c).serialize()).toString("base64").length<Rn}catch{return!1}}var Jo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ei=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Cn&&(e=Jo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Te(o){let e=[];return o.forEach(n=>{n instanceof Kn&&(n.recentBlockhash||(n.recentBlockhash=$o.toBase58()),n.feePayer||(n.feePayer=Sn.generate().publicKey)),e.push(ei(n))}),console.log("simulate tx string:",e),e}var yt=2e3,bt=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 ni.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}=pt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(ti.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Y.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:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(d=>d!==Oe.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(D(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new $e;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var b;let{recentBlockHash:c,skipPreflight:l=!0,sendAndConfirm:d,notSendToRpc:y}=a||{},A=c!=null?c:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Te([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:d?await Ut(this.connection,n,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),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:y?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:l}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var A;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),c=n.filter(b=>b.transaction.instructions.length>0),l=[a,...c.map(b=>b.transaction)],d=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&d.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:d,instructionTypes:y,execute:async b=>{var K;let{sequentially:g,onTxUpdate:S,skipTxCount:k=0,recentBlockHash:N,skipPreflight:w=!0}=b||{},B=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 l){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:l}}return{txIds:await await Promise.all(l.map(async x=>(x.recentBlockhash=B,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:w})))),signedTxs:l}}if(this.signAllTransactions){let x=l.map((v,P)=>(v.recentBlockhash=B,d[P].length&&v.sign(...d[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,R=null,_=null,ie=q=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let W=P.findIndex($=>$.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&&(R=setInterval(async()=>{var q;if(C){clearInterval(R);return}try{let W=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(R),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",h))}catch(W){C=!0,clearInterval(R),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: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 w;let N=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=N,l=le(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),d=L(L({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),A=[];for(let B of y)d[B]===void 0&&A.push(new Oe(B));let b=await Et({connection:this.connection,address:A});for(let[B,K]of Object.entries(b))d[B]=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(d));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(B=>B.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 B=>{var v;let{skipPreflight:K=!0,sendAndConfirm:x,notSendToRpc:F}=B||{};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:l||{}}}async buildV0MultiTx(e){var A;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),c=n.filter(b=>b.builder.instructions.length>0),l=[a,...c.map(b=>b.transaction)],d=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&d.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(b,g)=>{b.sign(d[g])}),{builder:this,transactions:l,signers:d,instructionTypes:y,buildProps:i,execute:async b=>{var w;let{sequentially:g,onTxUpdate:S,recentBlockHash:k,skipPreflight:N=!0}=b||{};if(k&&l.forEach(B=>B.message.recentBlockhash=k),Te(l),(w=this.owner)!=null&&w.isKeyPair){if(g){let B=[];for(let K of l){let x=await this.connection.sendTransaction(K,{skipPreflight:N});await ft(this.connection,x),B.push(x)}return{txIds:B,signedTxs:l}}return{txIds:await Promise.all(l.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:N}))),signedTxs:l}}if(this.signAllTransactions){let B=await this.signAllTransactions(l);if(g){let K=0,x=[],F=async()=>{if(!B[K])return;let v=await this.connection.sendTransaction(B[K],{skipPreflight:N});x.push({txId:v,status:"sent",signedTx:B[K]}),S==null||S([...x]),K++;let P=!1,T=null,h=null,C=R=>{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=R.err?"error":"success"}S==null||S([...x]),R.err||F()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var R;if(P){clearInterval(T);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(P=!0,clearInterval(T),C({err:((R=_.meta)==null?void 0:R.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,R=>{if(P){this.connection.removeSignatureListener(h);return}P=!0,C(R)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:B}}else{let K=[];for(let x=0;x<B.length;x+=1){let F=await this.connection.sendTransaction(B[x],{skipPreflight:N});K.push(F)}return{txIds:K,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var S;let g=e||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=le(g,["splitIns","computeBudgetConfig"]),c=i?pt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((k,N)=>D(L({},k),{[N.publicKey.toBase58()]:N}),{}),d=[],y=[],A=[],b=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[b]&&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");b+=k===n[b]?1:0,Ze({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:K})?d.push(new $e().add(...c.instructions,...A)):d.push(new $e().add(...A)),y.push(Array.from(new Set(A.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>l[x]).filter(x=>x!==void 0)),A=[k]}}),A.length>0){let N=[...new Set(A.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>l[w]).filter(w=>w!==void 0);Ze({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:N.map(w=>w.publicKey)})?d.push(new $e().add(...c.instructions,...A)):d.push(new $e().add(...A)),y.push(N)}return d.forEach(k=>k.feePayer=this.feePayer),(S=this.owner)!=null&&S.signer&&y.forEach(k=>{k.some(N=>N.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),{builder:this,transactions:d,signers:y,instructionTypes:this.instructionTypes,execute:async k=>{var v;let{sequentially:N,onTxUpdate:w,skipTxCount:B=0,recentBlockHash:K,skipPreflight:x=!0}=k||{},F=K!=null?K:await Le(this.connection,this.blockhashCommitment);if(d.forEach(async(P,T)=>{P.recentBlockhash=F,y[T].length&&P.sign(...y[T])}),Te(d),(v=this.owner)!=null&&v.isKeyPair){if(N){let P=0,T=[];for(let h of d){if(++P,P<=B){T.push("tx skipped");continue}let C=await Ut(this.connection,h,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});T.push(C)}return{txIds:T,signedTxs:d}}return{txIds:await Promise.all(d.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:x}))),signedTxs:d}}if(this.signAllTransactions){let P=await this.signAllTransactions(d.slice(B,d.length)),T=[...d.slice(0,B),...P];if(N){let h=0,C=[],R=async()=>{if(!T[h])return;h<B&&(C.push({txId:"",status:"success",signedTx:T[h]}),w==null||w([...C]),h++,R());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,$=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||R()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(q),$({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,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:C.map(_=>_.txId),signedTxs:T}}else{let h=[];for(let C=0;C<T.length;C+=1){let R=await this.connection.sendRawTransaction(T[C].serialize(),{skipPreflight:x});h.push(R)}return{txIds:h,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:l=12}=F,d=le(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=L(L({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),a),A=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let P of A)y[P]===void 0&&b.push(new Oe(P));let g=await Et({connection:this.connection,address:b});for(let[P,T]of Object.entries(g))y[P]=T;let S=n?pt(n):{instructions:[],instructionTypes:[]},k=await Le(this.connection,this.blockhashCommitment),N=this.signers.reduce((P,T)=>D(L({},P),{[T.publicKey.toBase58()]:T}),{}),w=[],B=[],K=[],x=0;if(this.allInstructions.forEach(P=>{let T=[...K,P],h=n?[...S.instructions,...T]:T;if(P!==i[x]&&K.length<l&&(je({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})||je({instructions:T,payer:this.feePayer,lookupTableAddressAccount:y})))K.push(P);else{if(K.length===0)throw Error("item ins too big");x+=P===i[x]?1:0;let C={};for(let R of[...new Set(A)])y[R]!==void 0&&(C[R]=y[R]);if(n&&je({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:k})){let R=new Je({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new et(R))}else{let R=new Je({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new et(R))}B.push(Array.from(new Set(K.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>N[R]).filter(R=>R!==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&&je({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:k})){let h=new Je({payerKey:this.feePayer,recentBlockhash:k,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new et(h))}else{let h=new Je({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new et(h))}B.push(T)}return(v=this.owner)!=null&&v.signer&&B.forEach(P=>{P.some(T=>T.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),w.forEach((P,T)=>{P.sign(B[T])}),{builder:this,transactions:w,buildProps:e,signers:B,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:T,onTxUpdate:h,skipTxCount:C=0,recentBlockHash:R,skipPreflight:_=!0}=P||{};if(w.map(async(q,W)=>{B[W].length&&q.sign(B[W]),R&&(q.message.recentBlockhash=R)}),Te(w),(ie=this.owner)!=null&&ie.isKeyPair){if(T){let q=0,W=[];for(let $ of w){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{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 $=0,G=[],ne=async()=>{if(!W[$])return;if($<C){G.push({txId:"",status:"success",signedTx:W[$]}),h==null||h([...G]),$++,ne();return}let pe=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[$]}),h==null||h([...G]),$++;let Ge=!1,xe=null,at=null,pn=we=>{xe!==null&&clearInterval(xe),at!==null&&this.connection.removeSignatureListener(at);let fe=G.findIndex(xo=>xo.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:0});fe&&(Ge=!0,clearInterval(xe),pn({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,pn(we)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:_});$.push(ne)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}};var Gt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),oe=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=V(n)}createTxBuilder(e){return this.scope.checkOwner(),new bt({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(Gt(e))}logInfo(...e){this.logger.info(Gt(e))}logAndCreateError(...e){let n=Gt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{Keypair as ki,PublicKey as Ti}from"@solana/web3.js";import Wl from"bn.js";import{TOKEN_PROGRAM_ID as hi}from"@solana/spl-token";function oi(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function zt(o,...e){if(!oi(o))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(o.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${o.length}`)}function Xt(o,e=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(e&&o.finished)throw new Error("Hash#digest() has already been called")}function Ln(o,e){zt(o);let n=e.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,e)=>o<<32-e|o>>>e;var Mc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ii(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=ii(o)),zt(o),o}var gt=class{clone(){return this._cloneInto()}},Fc={}.toString;function On(o){let e=i=>o().update(Yt(i)).digest(),n=o();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>o(),e}function ri(o,e,n,i){if(typeof o.setBigUint64=="function")return o.setBigUint64(e,n,i);let a=BigInt(32),c=BigInt(4294967295),l=Number(n>>a&c),d=Number(n&c),y=i?4:0,A=i?0:4;o.setUint32(e+y,l,i),o.setUint32(e+A,d,i)}var Nn=(o,e,n)=>o&e^~o&n,Mn=(o,e,n)=>o&e^o&n^e&n,At=class extends gt{constructor(e,n,i,a){super(),this.blockLen=e,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(e),this.view=Pt(this.buffer)}update(e){Xt(this);let{view:n,buffer:i,blockLen:a}=this;e=Yt(e);let c=e.length;for(let l=0;l<c;){let d=Math.min(a-this.pos,c-l);if(d===a){let y=Pt(e);for(;a<=c-l;l+=a)this.process(y,l);continue}i.set(e.subarray(l,l+d),this.pos),this.pos+=d,l+=d,this.pos===a&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Xt(this),Ln(e,this),this.finished=!0;let{buffer:n,view:i,blockLen:a,isLE:c}=this,{pos:l}=this;n[l++]=128,this.buffer.subarray(l).fill(0),this.padOffset>a-l&&(this.process(i,0),l=0);for(let g=l;g<a;g++)n[g]=0;ri(i,a-8,BigInt(this.length*8),c),this.process(i,0);let d=Pt(e),y=this.outputLen;if(y%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let A=y/4,b=this.get();if(A>b.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<A;g++)d.setUint32(4*g,b[g],c)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let i=e.slice(0,n);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:i,length:a,finished:c,destroyed:l,pos:d}=this;return e.length=a,e.pos=d,e.finished=c,e.destroyed=l,a%n&&e.buffer.set(i),e}};var ai=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:e,B:n,C:i,D:a,E:c,F:l,G:d,H:y}=this;return[e,n,i,a,c,l,d,y]}set(e,n,i,a,c,l,d,y){this.A=e|0,this.B=n|0,this.C=i|0,this.D=a|0,this.E=c|0,this.F=l|0,this.G=d|0,this.H=y|0}process(e,n){for(let g=0;g<16;g++,n+=4)Pe[g]=e.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:l,E:d,F:y,G:A,H:b}=this;for(let g=0;g<64;g++){let S=se(d,6)^se(d,11)^se(d,25),k=b+S+Nn(d,y,A)+ai[g]+Pe[g]|0,w=(se(i,2)^se(i,13)^se(i,22))+Mn(i,a,c)|0;b=A,A=y,y=d,d=l+k|0,l=c,c=a,a=i,i=k+w|0}i=i+this.A|0,a=a+this.B|0,c=c+this.C|0,l=l+this.D|0,d=d+this.E|0,y=y+this.F|0,A=A+this.G|0,b=b+this.H|0,this.set(i,a,c,l,d,y,A,b)}roundClean(){Pe.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Fn=On(()=>new Ht);import{PublicKey as Pi}from"@solana/web3.js";import Dn,{isBN as Wn}from"bn.js";import{bits as si,BitStructure as Gc,blob as ui,Blob as zc,cstr as Xc,f32 as Yc,f32be as Hc,f64 as Qc,f64be as Zc,greedy as jc,Layout as ci,ns64 as $c,ns64be as Jc,nu64 as el,nu64be as tl,offset as li,s16 as nl,s16be as ol,s24 as il,s24be as rl,s32 as mi,s32be as al,s40 as sl,s40be as ul,s48 as cl,s48be as ll,s8 as ml,seq as di,struct as dl,Structure as pi,u16 as fi,u16be as pl,u24 as fl,u24be as yl,u32 as yi,u32be as bl,u40 as gl,u40be as Pl,u48 as Al,u48be as wl,u8 as bi,UInt as gi,union as kl,Union as Tl,unionLayoutDiscriminator as hl,utf8 as Il}from"@solana/buffer-layout";var wt=ci,vn=pi;var Qt=gi;var _n=bi,H=fi;var kt=yi;var ue=mi;var Vn=di;var M=ui;var Zt=si,En=li;var Ie=class extends wt{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new Dn(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 Dn(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 m(o){return new Qt(1,o)}function X(o){return new Qt(4,o)}function t(o){return new Ie(8,!1,o)}function O(o){return new Ie(16,!1,o)}function qn(o){return new Ie(1,!0,o)}function Ne(o){return new Ie(8,!0,o)}function Un(o){return new Ie(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),e=>new Pi(e),e=>e.toBuffer(),o)}function re(o){return new tt(_n(),Ai,wi,o)}function Ai(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function wi(o){return o?1:0}function Gn(o,e){let n=kt("length"),i=p([n,f(o,En(n,-n.span),"values")]);return new tt(i,({values:a})=>a,a=>({values:a}),e)}var jt=class extends vn{decode(e,n){return super.decode(e,n)}};function p(o,e,n){return new jt(o,e,n)}function f(o,e,n){let i,a=typeof e=="number"?e:Wn(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let d=Reflect.get(c,"count");i=Wn(d)?d.toNumber():d,Reflect.set(c,"count",i)}return Reflect.get(c,l)},set(c,l,d){return l==="count"&&(i=d),Reflect.set(c,l,d)}});return Vn(o,a,n)}var Me=p([r("mint"),r("owner"),t("amount"),X("delegateOption"),r("delegate"),m("state"),X("isNativeOption"),t("isNative"),t("delegatedAmount"),X("closeAuthorityOption"),r("closeAuthority")]);function Fe({fromPublicKey:o,programId:e=hi,assignSeed:n}){let i=n?btoa(n).slice(0,32):ki.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ii(o,i,e),seed:i}}function Ii(o,e,n){let i=Buffer.concat([o.toBuffer(),Buffer.from(e),n.toBuffer()]),a=Fn(i);return new Ti(a)}import{PublicKey as Jg,SystemProgram as eP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as nP}from"@solana/spl-token";import{PublicKey as dm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fm}from"@solana/spl-token";import{PublicKey as I}from"@solana/web3.js";var Xn=new I("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Yn=new I("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Hn=new I("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),en=new I("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Pm=new I("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),xi=new I("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Qn=new I("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Zn=new I("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Am=new I("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Si=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),jn=new I("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ki=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ci=new I("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),$n=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),wm=new I("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ri=new I("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),tn=new I("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Li=new I("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),km=new I("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Oi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ni=new I("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Mi=new I("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Tm=new I("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),hm=new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Im=new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Bm=new I("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),xm=new I("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ae={OPEN_BOOK_PROGRAM:new I("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new I("Ray1111111111111111111111111111111111111111"),AMM_V4:new I("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new I("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new I("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new I("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new I("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new I("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new I("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new I("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new I("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new I("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:I.default,Router:new I("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new I("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new I("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new I("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new I("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new I("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new I("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new I("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new I("Ray1111111111111111111111111111111111111111")};import dP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ry,TOKEN_2022_PROGRAM_ID as Ly,TOKEN_PROGRAM_ID as Oy}from"@solana/spl-token";import{PublicKey as My}from"@solana/web3.js";import vy from"bn.js";import Vy from"decimal.js";import{TOKEN_PROGRAM_ID as Dm}from"@solana/spl-token";import{PublicKey as Gm}from"@solana/web3.js";var Fi=p([X("mintAuthorityOption"),r("mintAuthority"),t("supply"),m("decimals"),m("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as $f,TOKEN_2022_PROGRAM_ID as Jf,TOKEN_PROGRAM_ID as ey}from"@solana/spl-token";import{Keypair as oy,PublicKey as iy,SystemProgram as ay,TransactionInstruction as sy}from"@solana/web3.js";import cy from"bn.js";import E from"bn.js";var _e=new E(1).shln(64);var vi=new E(1).shln(128),nn=new E(1).shln(64).subn(1),_i=new E(1).shln(128).subn(1);var Ve=new E("4295048016"),Ee=new E("79226673521066979257578248091"),Vi=new E("59543866431248"),Ei=new E("184467440737095516"),Di=new E("15793534762490258745");var on=60,nd=new E("18446743708227953217"),Wi=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var nt=3,Jn=100;var eo=10,to=100,ht=14;var Z=new E(0),De=new E(1),od=new E(-1);var id=new E("18446744073700000000");var qi=p([M(8),m("bump"),H("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(t(),3)]),Ui=p([X("blockTimestamp"),Ne("tickCumulative"),f(t(),4)]),no=p([M(8),re("initialized"),t("recentEpoch"),H("observationIndex"),r("poolId"),f(Ui,Jn,"observations"),f(t(),4)]),Gi=p([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),t("lastUpdateTimestamp"),f(m(),46)]),zi=p([m("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),O("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),rn=p([M(8),m("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(O(),4),m("status"),m("feeOn"),M(6),f(zi,nt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Gi.replicate("dynamicFeeInfo"),f(t(),46)]),Xi=p([O("growthInsideLastX64"),t("rewardAmountOwed")]),Yi=p([M(8),m("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(Xi,nt,"rewardInfos"),t("recentEpoch"),f(t(),7)]),ud=p([M(8),m("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(O(),nt,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),Hi=p([ue("tick"),Un("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),nt,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(X(),3)]),oo=p([M(8),r("poolId"),ue("startTickIndex"),f(Hi,on,"ticks"),m("initializedTickCount"),t("recentEpoch"),f(m(),107)]),Qi=p([M(8),m("bump"),f(r(),eo,"operationOwners"),f(r(),to,"whitelistMints")]),Zi=p([M(8),r("poolId"),r("owner"),ue("tick"),re("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),O("unfilledRatioX64"),f(t(),4)]),io=p([M(8),r("poolId"),M(8*8*ht,"positiveTickArrayBitmap"),M(8*8*ht,"negativeTickArrayBitmap")]),cd=p([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(t(),8)]),ji=p([M(8),r("wallet"),m("nonceIndex"),t("orderNonce"),f(t(),4)]),ld=p([t(),m("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(t(),8)]),$i=p([M(8),m("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),f(t(),8)]);import pd from"bn.js";var Id=Buffer.from("amm_config","utf8"),er=Buffer.from("pool","utf8"),tr=Buffer.from("pool_vault","utf8"),Bd=Buffer.from("pool_reward_vault","utf8"),xd=Buffer.from("position","utf8"),Sd=Buffer.from("tick_array","utf8"),Kd=Buffer.from("operation","utf8"),Cd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Rd=Buffer.from("observation","utf8"),Ld=Buffer.from("support_mint","utf8"),Od=Buffer.from("dynamic_fee_config","utf8"),Nd=Buffer.from("permission","utf8");var Md=Buffer.from("locked_position","utf8");import{sha256 as br}from"js-sha256";import nr from"bn.js";import Vd from"decimal.js";var Dd=new nr(1).shln(256).subn(1);import ip from"bn.js";import Yd from"bn.js";import Qd from"decimal.js";import cp from"bn.js";import mp from"decimal.js";import{PublicKey as jp}from"@solana/web3.js";import Jp from"bn.js";import{TOKEN_2022_PROGRAM_ID as uf,TOKEN_PROGRAM_ID as cf}from"@solana/spl-token";import pf from"decimal.js";import Dp from"bn.js";import Sp from"bn.js";import If from"bn.js";function j(o){let e=`global:${o}`;return Buffer.from(br.digest(e)).slice(0,8)}no.span;var gy=V("Raydium_Clmm"),Py={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as cn}from"@solana/web3.js";var wr=p([m("instruction")]),kr=p([m("instruction")]),Tr=p([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),O("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),f(t(),15,"padding")]),hr=p([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),O("perShareReward"),t("lastSlot"),t("perSlotReward")]),Ir=p([t("state"),t("nonce"),r("lpVault"),r("rewardVaultA"),t("totalRewardA"),O("perShareRewardA"),t("perSlotRewardA"),m("option"),r("rewardVaultB"),M(7),t("totalRewardB"),O("perShareRewardB"),t("perSlotRewardB"),t("lastSlot"),r()]),Br=p([t(),t("state"),t("nonce"),t("validRewardTokenNum"),O("rewardMultiplier"),t("rewardPeriodMax"),t("rewardPeriodMin"),t("rewardPeriodExtend"),r("lpMint"),r("lpVault"),f(Tr,5,"rewardInfos"),r("creator"),r(),f(t(),32,"padding")]),xr=new Proxy(hr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(L({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,e,n)}}),Sr=new Proxy(Ir,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(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,e,n)}}),mo=new Proxy(Br,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return D(L({},a),{version:6,rewardInfos:a.rewardInfos.map(c=>{var l;return D(L({},c),{rewardType:((l=Object.entries(rt).find(d=>String(d[1])===c.rewardType.toString()))!=null?l:["Standard SPL"])[0]})})})}:Reflect.get(o,e,n)}}),Kr=p([t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Cr=p([m("instruction"),t("nonce"),f(Kr,5,"rewardTimeInfo")]),Rr=p([m("instruction"),t("rewardReopenTime"),t("rewardEndTime"),t("rewardPerSecond")]),Lr=p([m("instruction"),t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),gb=p([t("state"),r("id"),r("owner"),t("deposited"),f(t(),1,"rewardDebts")]),po=p([t("state"),r("id"),r("owner"),t("deposited"),f(O(),1,"rewardDebts"),t(""),t("voteLockedBalance"),f(t(),15)]),Pb=p([t("state"),r("id"),r("owner"),t("deposited"),f(t(),2,"rewardDebts")]),Or=p([t("state"),r("id"),r("owner"),t("deposited"),f(O(),2,"rewardDebts"),f(t(),17)]),Nr=p([t(),t("state"),r("id"),r("owner"),t("deposited"),f(O(),5,"rewardDebts"),f(t(),16)]),Mr=p([m("instruction"),t("amount")]),Fr=p([r("mint"),r("grantAuthority"),t("baselineVoteWeightScaledFactor"),t("maxExtraLockupVoteWeightScaledFactor"),t("lockupSaturationSecs"),qn("digitShift"),f(m(),7,"reserved1"),f(t(),7,"reserved2")]),vr=p([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),f(m(),32,"reserved1"),f(Fr,4,"votingMints"),Ne("timeOffset"),m("bump"),f(m(),7,"reserved2"),f(t(),11,"reserved3")]),_r=p([Ne("startTime"),Ne("endTime"),m("kind"),f(m(),15,"reserved")]),Vr=p([f(_r,1,"lockup"),t("amountDeposited_native"),t("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),m("votingMintConfigIdx"),f(m(),29,"reserved")]),Er=p([M(8),r("voterAuthority"),r("registrar"),f(Vr,32,"deposits"),m("voterBump"),m("voterWweightRecordBump"),f(m(),94,"reserved")]);import{NATIVE_MINT as Sb}from"@solana/spl-token";var Kb=V("Raydium_farm_config"),Dr=new cn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Wr=new cn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Cb=new cn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var rt={"Standard SPL":0,"Option tokens":1},fo={[Xn.toString()]:3,[Yn.toString()]:4,[Hn.toString()]:5,[en.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 Ig}from"@solana/spl-token";import Gb from"bn.js";import{PublicKey as Fb}from"@solana/web3.js";import _b from"bn.js";var og=V("Raydium.farm.util");var Fg=V("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 Qr=new bo(25),Zr=new bo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as HP,TOKEN_PROGRAM_ID as QP}from"@solana/spl-token";import{PublicKey as jP,SystemProgram as $P,SYSVAR_RENT_PUBKEY as JP,TransactionInstruction as eA}from"@solana/web3.js";import uA from"bn.js";var jr=p([m("instruction"),t("amountIn"),t("minAmountOut")]),$r=p([m("instruction"),t("maxAmountIn"),t("amountOut")]),GP=p([m("instruction"),m("nonce")]),Jr=p([m("instruction"),m("nonce"),t("startTime")]),go=p([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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),t("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("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"),f(t(),3,"padding")]),zP=p([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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("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"),f(t(),64,"padding")]),ea=p([m("instruction"),t("baseAmountIn"),t("quoteAmountIn"),t("fixedSide"),t("otherAmountMin")]),ta=p([m("instruction"),t("lpAmount"),t("baseAmountMin"),t("quoteAmountMin")]);var na=p([t("fee")]);var mA=V("Raydium_liquidity_instruction");var oa=5e4,ia=p([t("x"),t("y"),t("price")]),yA=p([t("accountType"),t("status"),t("multiplier"),t("validDataCount"),f(ia,oa,"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=V("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 jA}from"@solana/spl-token";function ra(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 aa=p([M(5),ra("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"),M(7)]);import{PublicKey as LT}from"@solana/web3.js";import{AccountLayout as NT,NATIVE_MINT as MT,TOKEN_2022_PROGRAM_ID as FT,TOKEN_PROGRAM_ID as vT,createAssociatedTokenAccountIdempotentInstruction as _T}from"@solana/spl-token";import Rk from"bn.js";import pa from"bn.js";var bk=new pa(0);import Tk from"bn.js";import fa from"bn.js";var xt=new fa(1e6);import zT from"bn.js";import YT from"decimal.js";import{PublicKey as Hk,TransactionInstruction as Qk,Keypair as jk,SystemProgram as $k}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as eT,TOKEN_2022_PROGRAM_ID as tT,TOKEN_PROGRAM_ID as nT}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");var Uk=Buffer.from("locked_liquidity","utf8");var cT=V("Raydium_cpmm"),lT={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 ga=p([M(8),m("bump"),re("disableCreatePool"),H("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),f(t(),15)]),Po=p([M(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),m("bump"),m("status"),m("lpDecimals"),m("mintDecimalA"),m("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),m("feeOn"),re("enableCreatorFee"),f(m(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),f(t(),28)]),pT=p([M(8),r("configId"),f(t(),30)]);import{PublicKey as VS,SystemProgram as ES}from"@solana/web3.js";import{createTransferInstruction as WS,TOKEN_PROGRAM_ID as qS,TOKEN_2022_PROGRAM_ID as US,createAssociatedTokenAccountIdempotentInstruction as GS,createSyncNativeInstruction as XS,createTransferCheckedInstruction as YS}from"@solana/spl-token";import Ma from"bn.js";import ZS from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as oI,TOKEN_2022_PROGRAM_ID as iI,TOKEN_PROGRAM_ID as rI}from"@solana/spl-token";import{SystemProgram as cI,TransactionInstruction as lI}from"@solana/web3.js";import Ia from"bn.js";var wa=p([t(),t("epoch"),m("curveType"),H("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"),f(t(),16)]),ka=p([t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod"),t("startTime"),t("totalAllocatedShare")]),Ta=p([t(),t("epoch"),m("bump"),m("status"),m("mintDecimalsA"),m("mintDecimalsB"),m("migrateType"),t("supply"),t("totalSellA"),t("virtualA"),t("virtualB"),t("realA"),t("realB"),t("totalFundRaisingB"),t("protocolFee"),t("platformFee"),t("migrateFee"),ka.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),m("mintProgramFlag"),m("cpmmCreatorFeeOn"),t("platformVestingShare"),f(m(),54)]),Vh=p([t(),t("epoch"),r("poolId"),r("beneficiary"),t("claimedAmount"),t("tokenShareAmount"),f(t(),8)]),wo=p([m("migrateType"),m("migrateCpmmFeeOn"),t("supply"),t("totalSellA"),t("totalFundRaisingB"),t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod")]),ha=p([t("epoch"),m("index"),r("configId"),wo.replicate("bondingCurveParam"),f(t(),50)]),ko=p([t(),t("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),t("platformScale"),t("creatorScale"),t("burnScale"),t("feeRate"),f(m(),64,"name"),f(m(),256,"web"),f(m(),256,"img"),r("cpConfigId"),t("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),t("platformVestingScale"),r("platformCpCreator"),m("restrictGlobalConfig"),f(m(),107),Gn(ha,"platformCurve")]);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");var fI={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var yI=new Ia("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as AI,TOKEN_PROGRAM_ID as wI}from"@solana/spl-token";import II from"bn.js";import xI from"decimal.js";import iB from"bn.js";import aB from"decimal.js";import OI from"bn.js";import MI from"decimal.js";import GI from"bn.js";import XI from"decimal.js";import Io from"bn.js";import mn from"decimal.js";var Ct=class{static _multipler(e){return new mn(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new mn(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 Io(a.mul(this._Q64).toFixed(0))}};Ct._Q64=new mn(new Io(1).shln(64).toString());import{NATIVE_MINT as fx,TOKEN_2022_PROGRAM_ID as yx,TOKEN_PROGRAM_ID as bx,createAssociatedTokenAccountIdempotentInstruction as Px,createSyncNativeInstruction as Ax,getTransferFeeConfig as wx,unpackMint as kx}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as La,SystemProgram as Ix}from"@solana/web3.js";import Lx from"decimal.js";var Ox={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 La("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},Nx=new Q(1e4);var Oa={[Qn.toBase58()]:3};var Na=p([M(5),M(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"),M(7)]);import{PublicKey as nS}from"@solana/web3.js";var sS=V("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as bS,TOKEN_2022_PROGRAM_ID as gS,TOKEN_PROGRAM_ID as PS}from"@solana/spl-token";import{PublicKey as wS,SystemProgram as kS,TransactionInstruction as TS}from"@solana/web3.js";import IS from"bn.js";var xK=new Ma(0);import{PublicKey as Fa,Transaction as dn,TransactionInstruction as va}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _a}from"@solana/spl-token";import Bo from"bn.js";var te=class extends oe{static getPdaPoolId(e,n){return me([te.SEED_CONFIG.pool.id,n.toBuffer()],e)}static getPdaOwnerId(e,n,i,a){return me([te.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new Bo(a).toArray())],e)}static async getAllInfo({connection:e,programId:n,poolIds:i,wallet:a,chainTime:c}){if(i.length===0)return[];let l=i.map(b=>te.getPdaPoolId(n,b).publicKey),d=[];for(let b=0;b<te.VERSION_PROJECT.length;b++)d.push(...l.map(g=>te.getPdaOwnerId(n,g,a,b).publicKey));let y=await ye(e,[...l,...d]),A=[];for(let b=0;b<y.length;b++){let g=Math.floor(b/i.length),S=b%i.length,k=l[S],N=d[b],w=y[S],B=y[i.length+b];if(!(w&&B)||w.data.length!==te.POOL_LAYOUT.span||B.data.length!==te.OWNER_LAYOUT.span)continue;let K=te.POOL_LAYOUT.decode(w.data),x=te.OWNER_LAYOUT.decode(B.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,R)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:x.tokenInfo[R].debtAmount.add(x.tokenInfo[R].claimedAmount)}))})}return A}async makeClaimTransaction({poolInfo:e,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,l=[];for(let A of e.tokenInfo){let{account:b,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),l.push(b)}a.addInstruction({instructions:[te.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:c,ownerPda:e.ownerAccountId,claimAddress:l}})]});let{transaction:d,signers:y}=a.build();return[{transaction:d,signer:y}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,l={};for(let b of e){let g=[];for(let S of b.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&&(l[S.mintAddress.toString()]=k,g.push(k))}a.addInstruction({instructions:[te.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:c,ownerPda:b.ownerAccountId,claimAddress:g}})]})}let{transaction:d,signers:y}=a.build(),A=a.allInstructions;return qt(A,[c,...y.map(b=>b.publicKey)])?[{transaction:d,signer:y}]:[{transaction:new dn().add(...A.slice(0,a.AllTxData.instructions.length-1)),signer:y},{transaction:new dn().add(...A.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new dn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:n,ownerInfo:i}){let a=p([]),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(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:_a,isSigner:!1,isWritable:!1}],l=Buffer.alloc(a.span);a.encode({},l);let d=Buffer.from([10,66,208,184,161,6,191,98,...l]);return new va({keys:c,programId:e,data:d})}},ce=te;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=p([M(8),m("bump"),m("status"),t("openTime"),t("endTime"),r("ammId"),f(p([m("mintDecimals"),r("mintAddress"),r("mintVault"),t("perLpLoss"),t("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(t(),10,"padding")]),ce.OWNER_LAYOUT=p([M(8),m("bump"),m("version"),r("poolId"),r("owner"),t("lpAmount"),f(p([r("mintAddress"),t("debtAmount"),t("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(t(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new Fa(e)),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 UK}from"@solana/web3.js";import{getTransferFeeConfig as zK,MintLayout as XK,TOKEN_2022_PROGRAM_ID as YK,TOKEN_PROGRAM_ID as HK,unpackMint as QK}from"@solana/spl-token";var hR=new Be(2),IR=new Be(3),BR=new Be(5),Wo=new Be(10),xR=new Be(100),SR=new Be(1e3),KR=new Be(1e4);function Ot(o,e=1,n=[]){let i=[...o];if(e<=0)return n;for(;i.length;)n.push(i.splice(0,e));return n}import{createCloseAccountInstruction as Wa,createInitializeAccountInstruction as qa,createTransferInstruction as Ua,TOKEN_PROGRAM_ID as Ue}from"@solana/spl-token";function zn(o){let{mint:e,tokenAccount:n,owner:i,programId:a=Ue}=o;return qa(n,e,i,a)}function $t(o){let{tokenAccount:e,payer:n,multiSigners:i=[],owner:a,programId:c=Ue}=o;return Wa(e,n,a,i,c)}async function Jt(o){let{connection:e,amount:n,commitment:i,payer:a,owner:c,skipCloseAccount:l}=o,d=await e.getMinimumBalanceForRentExemption(Me.span,i),y=J(n).add(new Da(d)),A=Fe({fromPublicKey:a,programId:Ue});return{addresses:{newAccount:A.publicKey},signers:[],instructions:[Ea.createAccountWithSeed({fromPubkey:a,basePubkey:a,seed:A.seed,newAccountPubkey:A.publicKey,lamports:y.toNumber(),space:Me.span,programId:Ue}),zn({mint:new Va(ae.address),tokenAccount:A.publicKey,owner:c,programId:Ue})],instructionTypes:[Y.CreateAccount,Y.InitAccount],endInstructionTypes:l?[]:[Y.CloseAccount],endInstructions:l?[]:[$t({tokenAccount:A.publicKey,payer:a,owner:c})]}}function Bi({source:o,destination:e,owner:n,amount:i,multiSigners:a=[],tokenProgram:c=Ue}){return Ua(o,e,n,BigInt(String(i)),a,c)}export{$t as closeAccountInstruction,Jt as createWSolAccountInstructions,zn as initTokenAccountInstruction,Bi as makeTransferInstruction};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=instruction.mjs.map