@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 75.1 kB
JavaScript
var Bo=Object.defineProperty,So=Object.defineProperties;var xo=Object.getOwnPropertyDescriptors;var it=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var rn=(o,t,n)=>t in o?Bo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,K=(o,t)=>{for(var n in t||(t={}))an.call(t,n)&&rn(o,n,t[n]);if(it)for(var n of it(t))sn.call(t,n)&&rn(o,n,t[n]);return o},_=(o,t)=>So(o,xo(t));var ce=(o,t)=>{var n={};for(var r in o)an.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&it)for(var r of it(o))t.indexOf(r)<0&&sn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as Ro}from"@solana/web3.js";import{get as un,set as Ko}from"lodash";var Bt=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(r=>typeof r=="object"?JSON.stringify(r):r).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}},cn={},Co={};function E(o){let t=un(cn,o);if(!t){let n=un(Co,o);t=new Bt({name:o,logLevel:n}),Ko(cn,o,t)}return t}import{MINT_SIZE as ns,TOKEN_PROGRAM_ID as os,getTransferFeeConfig as is,unpackMint as rs}from"@solana/spl-token";var St=E("Raydium_accountInfo_util");async function ye(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=K({batchRequest:!1},n),y=xt(t,d),f=new Array(y.length).fill([]);if(r){let P=y.map(O=>{let C=o._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),x=xt(P,10);f=(await(await Promise.all(x.map(async O=>await o._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(C=>{if(C){let{data:B,executable:M,lamports:A,owner:T,rentEpoch:I}=C;return B.length!==2&&B[1]!=="base64"&&St.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:A,owner:new Ro(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(y.map(P=>o.getMultipleAccountsInfo(P,u)))}catch(P){P instanceof Error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.message}`)}return f.flat()}import he from"bn.js";import yC from"decimal.js";import _o from"big.js";import Ts from"bn.js";import Lo from"toformat";var Oo=Lo,qe=Oo;import at from"big.js";import Mo from"bn.js";import Fo from"decimal.js-light";import Ue from"bn.js";var ln=9007199254740991;function oe(o){let t=E("Raydium_parseBigNumberish");if(o instanceof Ue)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ue(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=ln||o<=-ln)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ue(String(o))):typeof o=="bigint"?new Ue(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ue(0))}var rt=E("module/fraction"),Kt=qe(at),Ge=qe(Fo),vo={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},Vo={[0]:at.roundDown,[1]:at.roundHalfUp,[2]:at.roundUp},G=class{constructor(t,n=new Mo(1)){this.numerator=oe(t),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new G(this.denominator,this.numerator)}add(t){let n=t instanceof G?t:new G(oe(t));return this.denominator.eq(n.denominator)?new G(this.numerator.add(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof G?t:new G(oe(t));return this.denominator.eq(n.denominator)?new G(this.numerator.sub(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof G?t:new G(oe(t));return new G(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof G?t:new G(oe(t));return new G(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<=0&&rt.logWithError(`${t} is not positive.`),Ge.set({precision:t+1,rounding:vo[r]});let u=new Ge(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<0&&rt.logWithError(`${t} is negative.`),Kt.DP=t,Kt.RM=Vo[r]||1,new Kt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ls=E("Raydium_amount"),Os=qe(_o);import{PublicKey as Do}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mn}from"@solana/spl-token";var st={chainId:101,address:Do.default.toBase58(),programId:mn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},me={chainId:101,address:"So11111111111111111111111111111111111111112",programId:mn.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 Rt}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as dn,SYSVAR_RENT_PUBKEY as Wo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";function Be({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Uo=[Be({pubkey:qo,isWritable:!1}),Be({pubkey:dn.programId,isWritable:!1}),Be({pubkey:Wo,isWritable:!1})];function pn({publicKey:o,transformSol:t}){let n=fn(o.toString());if(n instanceof Y)return t&&n.equals(Pe)?le:n;if(t&&n.toString()===Pe.toBase58())return le;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function fn(o){try{return new Y(o)}catch{return o}}var Ct=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Se=new Y("SysvarRent111111111111111111111111111111111"),Go=new Y("SysvarC1ock11111111111111111111111111111111"),xe=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),zo=new Y("Sysvar1nstructions1111111111111111111111111"),yn=dn.programId,Ds=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ws=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),qs=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Us=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Gs=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),zs=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ys=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Xs=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Qs=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Zs=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Hs=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new Y("So11111111111111111111111111111111111111112"),Pe=Y.default;var Lt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===Pe.toBase58()||t instanceof Rt&&Pe.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new Rt(me.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?Rt.default:pn({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Lt;ee.WSOL=new Lt(_(K({},me),{mint:me.address}));var Ot=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ut=Ot;ut.SOL=new Ot(st);import Yo from"bn.js";var uu=new G(new Yo(100));var fu=E("Raydium_price");import{merge as yK}from"lodash";import hu from"axios";var bn={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_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",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"},Xo=_(K({},bn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Yu=E("Raydium_Api");import{PublicKey as lm,SystemProgram as mm}from"@solana/web3.js";import{AccountLayout as bm,createAssociatedTokenAccountIdempotentInstruction as gm,TOKEN_PROGRAM_ID as Pm,TOKEN_2022_PROGRAM_ID as Am}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as _t,SystemProgram as Jo,Transaction as Xe,TransactionMessage as Qe,VersionedTransaction as Ze}from"@solana/web3.js";import ei from"axios";import{PublicKey as Nt,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Mt({connection:o,address:t,cluster:n="mainnet"}){let r=await ye(o,[...new Set(t.map(d=>d.toString()))].map(d=>new Nt(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],f=t[d];if(!y)continue;let P=new Re({key:f,state:Re.deserialize(y.data)});u[f.toString()]=P,n==="devnet"?Ce[f.toString()]=P:Ke[f.toString()]=P}return u}var Ke={},Ft=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new Nt(t),r=await o.getAccountInfo(n);return r&&(Ke[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ke},Ce={},vt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new Nt(t),r=await o.getAccountInfo(n);return r&&(Ce[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ce};var Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as gn,Keypair as An,PublicKey as Qo,Transaction as wn,TransactionMessage as Zo,VersionedTransaction as kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ho}from"@solana/spl-token";var Pn=E("Raydium_txUtil"),Tn=1644;function ct(o){let t=[],n=[];return o.microLamports&&(t.push(gn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(t.push(gn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(o,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:u.blockhash}async function lt(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);o.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}r(Object.assign(d.err,{txId:t}))},"confirmed")})}function Vt(o,t){o.length<1&&Pn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Pn.logWithError(`no signers provided:, ${t.toString()}`);let n=new wn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Tn}catch{return!1}}function q(o,t){let[n,r]=Qo.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function ze({instructions:o,payer:t,signers:n}){return Vt(o,[t,...n])}function Ye({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=An.generate().publicKey.toString()}){let d=new Zo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new kn(d).serialize()).toString("base64").length<Tn}catch{return!1}}var jo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),$o=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof kn&&(t=jo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ae(o){let t=[];return o.forEach(n=>{n instanceof wn&&(n.recentBlockhash||(n.recentBlockhash=Ho.toBase58()),n.feePayer||(n.feePayer=An.generate().publicKey)),t.push($o(n))}),console.log("simulate tx string:",t),t}var mt=2e3,dt=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 r;let t=(await ei.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=ct(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Jo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...y.filter(f=>f!==Oe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(_(K({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Xe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.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 u=>{var b;let{recentBlockHash:d,skipPreflight:y=!0,sendAndConfirm:f,notSendToRpc:P}=u||{},x=d!=null?d:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=x,this.signers.length&&n.sign(...this.signers),Ae([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await _t(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:y}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let C of O)try{C.sign(...this.signers)}catch{}return{txId:P?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:y}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var x;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(b=>b.transaction.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],P=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:y,signers:f,instructionTypes:P,execute:async b=>{var I;let{sequentially:O,onTxUpdate:C,skipTxCount:B=0,recentBlockHash:M,skipPreflight:A=!0}=b||{},T=M!=null?M:await Le(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of y){if(++F,F<=B)continue;let p=await _t(this.connection,v,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});h.push(p)}return{txIds:h,signedTxs:y}}return{txIds:await await Promise.all(y.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:y}}if(this.signAllTransactions){let h=y.map((v,p)=>(v.recentBlockhash=T,f[p].length&&v.sign(...f[p]),v));Ae(h);let F=await this.signAllTransactions(h);if(O){let v=0,p=[],w=async()=>{if(!F[v])return;let k=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});p.push({txId:k,status:"sent",signedTx:F[v]}),C==null||C([...p]),v++;let S=!1,R=null,V=null,re=U=>{R!==null&&clearInterval(R),V!==null&&this.connection.removeSignatureListener(V);let W=p.findIndex($=>$.txId===k);if(W>-1){if(p[W].status==="error"||p[W].status==="success")return;p[W].status=U.err?"error":"success"}C==null||C([...p]),U.err||w()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var U;if(S){clearInterval(R);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(S=!0,clearInterval(R),re({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){S=!0,clearInterval(R),console.error("getTransaction timeout:",W,k)}},mt)),V=this.connection.onSignature(k,U=>{if(S){this.connection.removeSignatureListener(V);return}S=!0,re(U)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:p.map(k=>k.txId),signedTxs:F}}else{let v=[];for(let p=0;p<F.length;p+=1){let w=await this.connection.sendRawTransaction(F[p].serialize(),{skipPreflight:A});v.push(w)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=M,y=ce(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=K(K({},this.cluster==="devnet"?await vt(this.connection):await Ft(this.connection)),n),P=Array.from(new Set([...r,...this.lookupTableAddress])),x=[];for(let T of P)f[T]===void 0&&x.push(new Oe(T));let b=await Mt({connection:this.connection,address:x});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?Oe.default.toBase58():d!=null?d:await Le(this.connection,this.blockhashCommitment),C=new Qe({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new Ze(C);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:F}=T||{};if(Ae([B]),(v=this.owner)!=null&&v.isKeyPair){let p=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await lt(this.connection,p),{txId:p,signedTx:B}}if(this.signAllTransactions){let p=await this.signAllTransactions([B]);if(this.signers.length)for(let w of p)try{w.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(p[0],{skipPreflight:I}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}async buildV0MultiTx(t){var x;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(b=>b.builder.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],P=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),y.forEach(async(b,O)=>{b.sign(f[O])}),{builder:this,transactions:y,signers:f,instructionTypes:P,buildProps:r,execute:async b=>{var A;let{sequentially:O,onTxUpdate:C,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&y.forEach(T=>T.message.recentBlockhash=B),Ae(y),(A=this.owner)!=null&&A.isKeyPair){if(O){let T=[];for(let I of y){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await lt(this.connection,h),T.push(h)}return{txIds:T,signedTxs:y}}return{txIds:await Promise.all(y.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:y}}if(this.signAllTransactions){let T=await this.signAllTransactions(y);if(O){let I=0,h=[],F=async()=>{if(!T[I])return;let v=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[I]}),C==null||C([...h]),I++;let p=!1,w=null,k=null,S=R=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let V=h.findIndex(re=>re.txId===v);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=R.err?"error":"success"}C==null||C([...h]),R.err||F()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var R;if(p){clearInterval(w);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(p=!0,clearInterval(w),S({err:((R=V.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){p=!0,clearInterval(w),console.error("getTransaction timeout:",V,v)}},mt)),k=this.connection.onSignature(v,R=>{if(p){this.connection.removeSignatureListener(k);return}p=!0,S(R)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let F=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(F)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var C;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ce(O,["splitIns","computeBudgetConfig"]),d=r?ct(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((B,M)=>_(K({},B),{[M.publicKey.toBase58()]:M}),{}),f=[],P=[],x=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...x,B],A=r?[...d.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Oe(h));if(B!==n[b]&&x.length<12&&(ze({instructions:A,payer:this.feePayer,signers:I})||ze({instructions:M,payer:this.feePayer,signers:I})))x.push(B);else{if(x.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,ze({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:I})?f.push(new Xe().add(...d.instructions,...x)):f.push(new Xe().add(...x)),P.push(Array.from(new Set(x.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>y[h]).filter(h=>h!==void 0)),x=[B]}}),x.length>0){let M=[...new Set(x.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>y[A]).filter(A=>A!==void 0);ze({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?f.push(new Xe().add(...d.instructions,...x)):f.push(new Xe().add(...x)),P.push(M)}return f.forEach(B=>B.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&P.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:f,signers:P,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:M,onTxUpdate:A,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=B||{},F=I!=null?I:await Le(this.connection,this.blockhashCommitment);if(f.forEach(async(p,w)=>{p.recentBlockhash=F,P[w].length&&p.sign(...P[w])}),Ae(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let p=0,w=[];for(let k of f){if(++p,p<=T){w.push("tx skipped");continue}let S=await _t(this.connection,k,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});w.push(S)}return{txIds:w,signedTxs:f}}return{txIds:await Promise.all(f.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let p=await this.signAllTransactions(f.slice(T,f.length)),w=[...f.slice(0,T),...p];if(M){let k=0,S=[],R=async()=>{if(!w[k])return;k<T&&(S.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...S]),k++,R());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:h});S.push({txId:V,status:"sent",signedTx:w[k]}),A==null||A([...S]),k++;let re=!1,U=null,W=null,$=z=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=S.findIndex(pe=>pe.txId===V);if(ne>-1){if(S[ne].status==="error"||S[ne].status==="success")return;S[ne].status=z.err?"error":"success"}A==null||A([...S]),z.err||R()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var z;if(re){clearInterval(U);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(re=!0,clearInterval(U),$({err:((z=ne.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){re=!0,clearInterval(U),console.error("getTransaction timeout:",ne,V)}},mt)),W=this.connection.onSignature(V,z=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,$(z)},"confirmed"),this.connection.getSignatureStatus(V)};return await R(),{txIds:S.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let S=0;S<w.length;S+=1){let R=await this.connection.sendRawTransaction(w[S].serialize(),{skipPreflight:h});k.push(R)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:y=12}=F,f=ce(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),P=K(K({},this.cluster==="devnet"?await vt(this.connection):await Ft(this.connection)),u),x=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let p of x)P[p]===void 0&&b.push(new Oe(p));let O=await Mt({connection:this.connection,address:b});for(let[p,w]of Object.entries(O))P[p]=w;let C=n?ct(n):{instructions:[],instructionTypes:[]},B=await Le(this.connection,this.blockhashCommitment),M=this.signers.reduce((p,w)=>_(K({},p),{[w.publicKey.toBase58()]:w}),{}),A=[],T=[],I=[],h=0;if(this.allInstructions.forEach(p=>{let w=[...I,p],k=n?[...C.instructions,...w]:w;if(p!==r[h]&&I.length<y&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:P})||Ye({instructions:w,payer:this.feePayer,lookupTableAddressAccount:P})))I.push(p);else{if(I.length===0)throw Error("item ins too big");h+=p===r[h]?1:0;let S={};for(let R of[...new Set(x)])P[R]!==void 0&&(S[R]=P[R]);if(n&&Ye({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:B})){let R=new Qe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Ze(R))}else{let R=new Qe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(P));A.push(new Ze(R))}T.push(Array.from(new Set(I.map(R=>R.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(R=>M[R]).filter(R=>R!==void 0)),I=[p]}}),I.length>0){let w=[...new Set(I.map(k=>k.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Ye({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:B})){let k=new Qe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Ze(k))}else{let k=new Qe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(P));A.push(new Ze(k))}T.push(w)}return(v=this.owner)!=null&&v.signer&&T.forEach(p=>{p.some(w=>w.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),A.forEach((p,w)=>{p.sign(T[w])}),{builder:this,transactions:A,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async p=>{var re;let{sequentially:w,onTxUpdate:k,skipTxCount:S=0,recentBlockHash:R,skipPreflight:V=!0}=p||{};if(A.map(async(U,W)=>{T[W].length&&U.sign(T[W]),R&&(U.message.recentBlockhash=R)}),Ae(A),(re=this.owner)!=null&&re.isKeyPair){if(w){let U=0,W=[];for(let $ of A){if(++U,U<=S){console.log("skip tx: ",U),W.push("tx skipped");continue}let z=await this.connection.sendTransaction($,{skipPreflight:V});await lt(this.connection,z),W.push(z)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(S,A.length)),W=[...A.slice(0,S),...U];if(w){let $=0,z=[],ne=async()=>{if(!W[$])return;if($<S){z.push({txId:"",status:"success",signedTx:W[$]}),k==null||k([...z]),$++,ne();return}let pe=await this.connection.sendTransaction(W[$],{skipPreflight:V});z.push({txId:pe,status:"sent",signedTx:W[$]}),k==null||k([...z]),$++;let De=!1,Ie=null,ot=null,on=ge=>{Ie!==null&&clearInterval(Ie),ot!==null&&this.connection.removeSignatureListener(ot);let fe=z.findIndex(Io=>Io.txId===pe);if(fe>-1){if(z[fe].status==="error"||z[fe].status==="success")return;z[fe].status=ge.err?"error":"success"}k==null||k([...z]),ge.err||ne()};this.loopMultiTxStatus&&(Ie=setInterval(async()=>{var ge;if(De){clearInterval(Ie);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(De=!0,clearInterval(Ie),on({err:((ge=fe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){De=!0,clearInterval(Ie),console.error("getTransaction timeout:",fe,pe)}},mt)),ot=this.connection.onSignature(pe,ge=>{if(De){this.connection.removeSignatureListener(ot);return}De=!0,on(ge)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let $=[];for(let z=0;z<W.length;z+=1){let ne=await this.connection.sendTransaction(W[z],{skipPreflight:V});$.push(ne)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Et=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new dt({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(Et(t))}logInfo(...t){this.logger.info(Et(t))}logAndCreateError(...t){let n=Et(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Wl,SystemProgram as Ul}from"@solana/web3.js";import Yl from"bn.js";import{createCloseAccountInstruction as Hl,createInitializeAccountInstruction as jl,createTransferInstruction as $l,TOKEN_PROGRAM_ID as Jl}from"@solana/spl-token";import{Keypair as Kl,PublicKey as Cl}from"@solana/web3.js";import Ol from"bn.js";import{TOKEN_PROGRAM_ID as Fl}from"@solana/spl-token";import{PublicKey as pi}from"@solana/web3.js";import Kn,{isBN as Cn}from"bn.js";import{bits as ti,BitStructure as Mc,blob as ni,Blob as Fc,cstr as vc,f32 as Vc,f32be as _c,f64 as Ec,f64be as Dc,greedy as Wc,Layout as oi,ns64 as qc,ns64be as Uc,nu64 as ii,nu64be as Gc,offset as ri,s16 as zc,s16be as Yc,s24 as Xc,s24be as Qc,s32 as ai,s32be as Zc,s40 as Hc,s40be as jc,s48 as $c,s48be as Jc,s8 as el,seq as si,struct as tl,Structure as ui,u16 as ci,u16be as nl,u24 as ol,u24be as il,u32 as li,u32be as rl,u40 as al,u40be as sl,u48 as ul,u48be as cl,u8 as mi,UInt as di,union as ll,Union as ml,unionLayoutDiscriminator as dl,utf8 as pl}from"@solana/buffer-layout";var pt=oi,hn=ui;var Dt=di;var In=mi,H=ci;var ft=li;var Bn=ii;var se=ai;var Sn=si;var N=ni;var Wt=ti,xn=ri;var ke=class extends pt{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Kn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new Kn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},yt=class extends pt{constructor(n){super(8,n);this._lower=Wt(ft(),!1),this._upper=Wt(ft(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),d=this._upper.decode(n,r+this._lower.span);return K(K({},u),d)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(o){return new Dt(1,o)}function X(o){return new Dt(4,o)}function e(o){return new ke(8,!1,o)}function L(o){return new ke(16,!1,o)}function Rn(o){return new ke(1,!0,o)}function Ne(o){return new ke(8,!0,o)}function Ln(o){return new ke(16,!0,o)}var He=class extends pt{constructor(n,r,u,d){super(n.span,d);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new He(N(32),t=>new pi(t),t=>t.toBuffer(),o)}function ae(o){return new He(In(),fi,yi,o)}function fi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function yi(o){return o?1:0}function On(o,t){let n=ft("length"),r=l([n,m(o,xn(n,-n.span),"values")]);return new He(r,({values:u})=>u,u=>({values:u}),t)}var qt=class extends hn{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new qt(o,t,n)}function m(o,t,n){let r,u=typeof t=="number"?t:Cn(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let f=Reflect.get(d,"count");r=Cn(f)?f.toNumber():f,Reflect.set(d,"count",r)}return Reflect.get(d,y)},set(d,y,f){return y==="count"&&(r=f),Reflect.set(d,y,f)}});return Sn(o,u,n)}var bt=l([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as Vp,SystemProgram as _p}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Dp}from"@solana/spl-token";import{PublicKey as Sm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Km}from"@solana/spl-token";import{PublicKey as g}from"@solana/web3.js";var Mn=new g("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new g("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new g("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ut=new g("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Om=new g("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),gi=new g("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new g("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new g("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Nm=new g("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Pi=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new g("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ai=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),wi=new g("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Mm=new g("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ki=new g("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ti=new g("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),hi=new g("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ii=new g("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Bi=new g("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Gt=new g("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Si=new g("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Fm=new g("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),xi=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ki=new g("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ci=new g("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),vm=new g("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Vm=new g("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),_m=new g("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Em=new g("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Dm=new g("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),je={IDO_PROGRAM_ID_V1:Ti,IDO_PROGRAM_ID_V2:hi,IDO_PROGRAM_ID_V3:Ii,IDO_PROGRAM_ID_V4:Bi};var be={OPEN_BOOK_PROGRAM:new g("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new g("Ray1111111111111111111111111111111111111111"),AMM_V4:new g("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new g("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new g("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new g("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new g("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new g("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new g("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new g("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new g("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new g("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:g.default,Router:new g("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new g("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new g("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new g("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new g("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new g("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new g("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new g("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new g("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new g("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new g("Ray1111111111111111111111111111111111111111")};import Hp from"decimal.js";import{PublicKey as zt}from"@solana/web3.js";var Ri=l([c("instruction")]),Li=l([c("instruction")]),Oi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),i("rewardVault"),i("rewardMint"),i("rewardSender"),e("rewardType"),m(e(),15,"padding")]),Ni=l([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),Mi=l([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),c("option"),i("rewardVaultB"),N(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),Fi=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),m(Oi,5,"rewardInfos"),i("creator"),i(),m(e(),32,"padding")]),vi=new Proxy(Ni,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return _(K({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(o,t,n)}}),Vi=new Proxy(Mi,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return _(K({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(o,t,n)}}),Wn=new Proxy(Fi,{get(o,t,n){return t==="decode"?(...r)=>{let u=o.decode(...r);return _(K({},u),{version:6,rewardInfos:u.rewardInfos.map(d=>{var y;return _(K({},d),{rewardType:((y=Object.entries($e).find(f=>String(f[1])===d.rewardType.toString()))!=null?y:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),_i=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Ei=l([c("instruction"),e("nonce"),m(_i,5,"rewardTimeInfo")]),Di=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),Wi=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Xm=l([e("state"),i("id"),i("owner"),e("deposited"),m(e(),1,"rewardDebts")]),qn=l([e("state"),i("id"),i("owner"),e("deposited"),m(L(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),Qm=l([e("state"),i("id"),i("owner"),e("deposited"),m(e(),2,"rewardDebts")]),qi=l([e("state"),i("id"),i("owner"),e("deposited"),m(L(),2,"rewardDebts"),m(e(),17)]),Ui=l([e(),e("state"),i("id"),i("owner"),e("deposited"),m(L(),5,"rewardDebts"),m(e(),16)]),Gi=l([c("instruction"),e("amount")]),zi=l([i("mint"),i("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Rn("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),Yi=l([N(8),i("governanceProgramId"),i("realm"),i("realmGoverningTokenMint"),i("realmAuthority"),m(c(),32,"reserved1"),m(zi,4,"votingMints"),Ne("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),Xi=l([Ne("startTime"),Ne("endTime"),c("kind"),m(c(),15,"reserved")]),Qi=l([m(Xi,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),Zi=l([N(8),i("voterAuthority"),i("registrar"),m(Qi,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),m(c(),94,"reserved")]);import{NATIVE_MINT as od}from"@solana/spl-token";var id=E("Raydium_farm_config"),Hi=new zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ji=new zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var rd=new zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var $e={"Standard SPL":0,"Option tokens":1},Un={[Mn.toString()]:3,[Fn.toString()]:4,[vn.toString()]:5,[Ut.toString()]:6,[be.FARM_PROGRAM_ID_V3.toString()]:3,[be.FARM_PROGRAM_ID_V4.toString()]:4,[be.FARM_PROGRAM_ID_V5.toString()]:5,[be.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as $d,SystemProgram as Jd,SYSVAR_CLOCK_PUBKEY as ep,SYSVAR_RENT_PUBKEY as tp,TransactionInstruction as np}from"@solana/web3.js";import ip from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as ap,createAssociatedTokenAccountIdempotentInstruction as sp,TOKEN_PROGRAM_ID as up}from"@solana/spl-token";import Kd from"bn.js";import{PublicKey as Ad}from"@solana/web3.js";import kd from"bn.js";var Wd=E("Raydium.farm.util");var Ap=E("Raydium_farm_instruction"),wp={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 uf from"bn.js";import{PublicKey as kA}from"@solana/web3.js";import{AccountLayout as IA,MintLayout as BA,NATIVE_MINT as SA,TOKEN_PROGRAM_ID as KA}from"@solana/spl-token";import mf from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as _b,TOKEN_2022_PROGRAM_ID as Eb,TOKEN_PROGRAM_ID as Db}from"@solana/spl-token";import{Keypair as Ub,PublicKey as Gb,SystemProgram as Yb,TransactionInstruction as Xb}from"@solana/web3.js";import Zb from"bn.js";import D from"bn.js";var Te=new D(1).shln(64);var rr=new D(1).shln(128),Yt=new D(1).shln(64).subn(1),ar=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),sr=new D("59543866431248"),ur=new D("184467440737095516"),cr=new D("15793534762490258745");var Xt=60,kf=new D("18446743708227953217"),lr=[{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 et=3,zn=100;var Yn=10,Xn=100,wt=14;var j=new D(0),_e=new D(1),Tf=new D(-1);var hf=new D("18446744073700000000");var mr=l([N(8),c("bump"),H("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),m(X(),1),i("fundOwner"),m(e(),3)]),dr=l([X("blockTimestamp"),Ne("tickCumulative"),m(e(),4)]),Qn=l([N(8),ae("initialized"),e("recentEpoch"),H("observ