UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 82 kB
var Ao=Object.defineProperty,wo=Object.defineProperties;var ko=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var dn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable;var mn=(o,t,n)=>t in o?Ao(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,M=(o,t)=>{for(var n in t||(t={}))dn.call(t,n)&&mn(o,n,t[n]);if(st)for(var n of st(t))pn.call(t,n)&&mn(o,n,t[n]);return o},D=(o,t)=>wo(o,ko(t));var le=(o,t)=>{var n={};for(var r in o)dn.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&st)for(var r of st(o))t.indexOf(r)<0&&pn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as rt,TransactionInstruction as ge,Keypair as La,SystemProgram as un}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Rt,TOKEN_2022_PROGRAM_ID as cn,TOKEN_PROGRAM_ID as be}from"@solana/spl-token";import{PublicKey as Io}from"@solana/web3.js";import{get as fn,set as To}from"lodash";var Lt=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}},yn={},ho={};function _(o){let t=fn(yn,o);if(!t){let n=fn(ho,o);t=new Lt({name:o,logLevel:n}),To(yn,o,t)}return t}import{MINT_SIZE as Ga,TOKEN_PROGRAM_ID as za,getTransferFeeConfig as Xa,unpackMint as Ya}from"@solana/spl-token";var Ot=_("Raydium_accountInfo_util");async function fe(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:l=100}=M({batchRequest:!1},n),d=Nt(t,l),p=new Array(d.length).fill([]);if(r){let b=d.map(B=>{let I=o._buildArgs([B.map(w=>w.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:I}}),A=Nt(b,10);p=(await(await Promise.all(A.map(async B=>await o._rpcBatchRequest(B)))).flat()).map(B=>(B.error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${B.error.message}`),B.result.value.map(I=>{if(I){let{data:w,executable:x,lamports:g,owner:P,rentEpoch:k}=I;return w.length!==2&&w[1]!=="base64"&&Ot.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:x,lamports:g,owner:new Io(P),rentEpoch:k}}return null})))}else try{p=await Promise.all(d.map(b=>o.getMultipleAccountsInfo(b,u)))}catch(b){b instanceof Error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return p.flat()}import xe from"bn.js";import PC from"decimal.js";import Oo from"big.js";import ls from"bn.js";import Bo from"toformat";var So=Bo,ze=So;import ct from"big.js";import Ko from"bn.js";import Co from"decimal.js-light";import Xe from"bn.js";var bn=9007199254740991;function oe(o){let t=_("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=bn||o<=-bn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Xe(0))}var ut=_("module/fraction"),Mt=ze(ct),Ye=ze(Co),Ro={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},Lo={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},U=class{constructor(t,n=new Ko(1)){this.numerator=oe(t),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||ut.logWithError(`${t} is not an integer.`),t<=0&&ut.logWithError(`${t} is not positive.`),Ye.set({precision:t+1,rounding:Ro[r]});let u=new Ye(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)||ut.logWithError(`${t} is not an integer.`),t<0&&ut.logWithError(`${t} is negative.`),Mt.DP=t,Mt.RM=Lo[r]||1,new Mt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var As=_("Raydium_amount"),ws=ze(Oo);import{PublicKey as Mo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gn}from"@solana/spl-token";var lt={chainId:101,address:Mo.default.toBase58(),programId:gn.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:gn.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 Pn,SYSVAR_RENT_PUBKEY as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";function Ce({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Vo=[Ce({pubkey:vo,isWritable:!1}),Ce({pubkey:Pn.programId,isWritable:!1}),Ce({pubkey:Fo,isWritable:!1})];function An({publicKey:o,transformSol:t}){let n=wn(o.toString());if(n instanceof z)return t&&n.equals(ke)?ye:n;if(t&&n.toString()===ke.toBase58())return ye;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 wn(o){try{return new z(o)}catch{return o}}var Qe=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Te=new z("SysvarRent111111111111111111111111111111111"),Ks=new z("SysvarC1ock11111111111111111111111111111111"),he=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),_o=new z("Sysvar1nstructions1111111111111111111111111"),kn=Pn.programId,Cs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Rs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ls=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Os=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ns=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ms=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Fs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),vs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Vs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),_s=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Es=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new z("So11111111111111111111111111111111111111112"),ke=z.default;var vt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:l=!1,isToken2022:d=!1}){if(t===ke.toBase58()||t instanceof Ft&&ke.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new Ft(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=l?Ft.default:An({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=vt;J.WSOL=new vt(D(M({},me),{mint:me.address}));var Vt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},mt=Vt;mt.SOL=new Vt(lt);import Eo from"bn.js";var js=new U(new Eo(100));var ou=_("Raydium_price");import{merge as wK}from"lodash";import du from"axios";var Tn={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"},Do=D(M({},Tn),{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 Fu=_("Raydium_Api");import{PublicKey as em,SystemProgram as tm}from"@solana/web3.js";import{AccountLayout as am,createAssociatedTokenAccountIdempotentInstruction as sm,TOKEN_PROGRAM_ID as um,TOKEN_2022_PROGRAM_ID as cm}from"@solana/spl-token";import{PublicKey as Me,sendAndConfirmTransaction as Ut,SystemProgram as Xo,Transaction as je,TransactionMessage as $e,VersionedTransaction as Je}from"@solana/web3.js";import Yo from"axios";import{PublicKey as _t,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Et({connection:o,address:t,cluster:n="mainnet"}){let r=await fe(o,[...new Set(t.map(l=>l.toString()))].map(l=>new _t(l))),u={};for(let l=0;l<t.length;l++){let d=r[l],p=t[l];if(!d)continue;let b=new Oe({key:p,state:Oe.deserialize(d.data)});u[p.toString()]=b,n==="devnet"?Le[p.toString()]=b:Re[p.toString()]=b}return u}var Re={},Dt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[t])return Re;let n=new _t(t),r=await o.getAccountInfo(n);return r&&(Re[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Re},Le={},Wt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[t])return Le;let n=new _t(t),r=await o.getAccountInfo(n);return r&&(Le[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Le};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 hn,Keypair as Bn,PublicKey as Wo,Transaction as Sn,TransactionMessage as qo,VersionedTransaction as xn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Uo}from"@solana/spl-token";var In=_("Raydium_txUtil"),Kn=1644;function dt(o){let t=[],n=[];return o.microLamports&&(t.push(hn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Y.SetComputeUnitPrice)),o.units&&(t.push(hn.setComputeUnitLimit({units:o.units})),n.push(Y.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ne(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 pt(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);o.onSignature(t,l=>{if(clearTimeout(u),!l.err){n("");return}r(Object.assign(l.err,{txId:t}))},"confirmed")})}function qt(o,t){o.length<1&&In.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&In.logWithError(`no signers provided:, ${t.toString()}`);let n=new Sn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Kn}catch{return!1}}function ie(o,t){let[n,r]=Wo.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Ze({instructions:o,payer:t,signers:n}){return qt(o,[t,...n])}function He({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Bn.generate().publicKey.toString()}){let l=new qo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new xn(l).serialize()).toString("base64").length<Kn}catch{return!1}}var Go=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),zo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof xn&&(t=Go(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ie(o){let t=[];return o.forEach(n=>{n instanceof Sn&&(n.recentBlockhash||(n.recentBlockhash=Uo.toBase58()),n.feePayer||(n.feePayer=Bn.generate().publicKey)),t.push(zo(n))}),console.log("simulate tx string:",t),t}var ft=2e3,yt=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 Yo.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}=dt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Xo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Me(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Y.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:l=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...l),this.lookupTableAddress.push(...d.filter(p=>p!==Me.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(D(M({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new je;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 f;let{recentBlockHash:l,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:b}=u||{},A=l!=null?l:await Ne(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Ie([n]),(f=this.owner)!=null&&f.isKeyPair)return{txId:p?await Ut(this.connection,n,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let B=await this.signAllTransactions([n]);if(this.signers.length)for(let I of B)try{I.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(B[0].serialize(),{skipPreflight:d}),signedTx:B[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var A;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),l=n.filter(f=>f.transaction.instructions.length>0),d=[u,...l.map(f=>f.transaction)],p=[this.signers,...l.map(f=>f.signers)],b=[...this.instructionTypes,...l.map(f=>f.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(f=>{f.some(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:b,execute:async f=>{var k;let{sequentially:B,onTxUpdate:I,skipTxCount:w=0,recentBlockHash:x,skipPreflight:g=!0}=f||{},P=x!=null?x:await Ne(this.connection,this.blockhashCommitment);if((k=this.owner)!=null&&k.isKeyPair){if(B){let h=[],O=0;for(let N of d){if(++O,O<=w)continue;let T=await Ut(this.connection,N,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});h.push(T)}return{txIds:h,signedTxs:d}}return{txIds:await await Promise.all(d.map(async h=>(h.recentBlockhash=P,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:g})))),signedTxs:d}}if(this.signAllTransactions){let h=d.map((N,T)=>(N.recentBlockhash=P,p[T].length&&N.sign(...p[T]),N));Ie(h);let O=await this.signAllTransactions(h);if(B){let N=0,T=[],K=async()=>{if(!O[N])return;let S=await this.connection.sendRawTransaction(O[N].serialize(),{skipPreflight:g});T.push({txId:S,status:"sent",signedTx:O[N]}),I==null||I([...T]),N++;let C=!1,L=null,V=null,te=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=T.findIndex(j=>j.txId===S);if(W>-1){if(T[W].status==="error"||T[W].status==="success")return;T[W].status=q.err?"error":"success"}I==null||I([...T]),q.err||K()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),te({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",S))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,S)}},ft)),V=this.connection.onSignature(S,q=>{if(C){this.connection.removeSignatureListener(V);return}C=!0,te(q)},"confirmed"),this.connection.getSignatureStatus(S)};return await K(),{txIds:T.map(S=>S.txId),signedTxs:O}}else{let N=[];for(let T=0;T<O.length;T+=1){let K=await this.connection.sendRawTransaction(O[T].serialize(),{skipPreflight:g});N.push(K)}return{txIds:N,signedTxs:O}}}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 g;let x=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:l}=x,d=le(x,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=M(M({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),n),b=Array.from(new Set([...r,...this.lookupTableAddress])),A=[];for(let P of b)p[P]===void 0&&A.push(new Me(P));let f=await Et({connection:this.connection,address:A});for(let[P,k]of Object.entries(f))p[P]=k;let B=u?Me.default.toBase58():l!=null?l:await Ne(this.connection,this.blockhashCommitment),I=new $e({payerKey:this.feePayer,recentBlockhash:B,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new Je(I);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var N;let{skipPreflight:k=!0,sendAndConfirm:h,notSendToRpc:O}=P||{};if(Ie([w]),(N=this.owner)!=null&&N.isKeyPair){let T=await this.connection.sendTransaction(w,{skipPreflight:k});return h&&await pt(this.connection,T),{txId:T,signedTx:w}}if(this.signAllTransactions){let T=await this.signAllTransactions([w]);if(this.signers.length)for(let K of T)try{K.sign(this.signers)}catch{}return{txId:O?"":await this.connection.sendTransaction(T[0],{skipPreflight:k}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var A;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),l=n.filter(f=>f.builder.instructions.length>0),d=[u,...l.map(f=>f.transaction)],p=[this.signers,...l.map(f=>f.signers)],b=[...this.instructionTypes,...l.map(f=>f.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(f=>{f.some(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(f,B)=>{f.sign(p[B])}),{builder:this,transactions:d,signers:p,instructionTypes:b,buildProps:r,execute:async f=>{var g;let{sequentially:B,onTxUpdate:I,recentBlockHash:w,skipPreflight:x=!0}=f||{};if(w&&d.forEach(P=>P.message.recentBlockhash=w),Ie(d),(g=this.owner)!=null&&g.isKeyPair){if(B){let P=[];for(let k of d){let h=await this.connection.sendTransaction(k,{skipPreflight:x});await pt(this.connection,h),P.push(h)}return{txIds:P,signedTxs:d}}return{txIds:await Promise.all(d.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:x}))),signedTxs:d}}if(this.signAllTransactions){let P=await this.signAllTransactions(d);if(B){let k=0,h=[],O=async()=>{if(!P[k])return;let N=await this.connection.sendTransaction(P[k],{skipPreflight:x});h.push({txId:N,status:"sent",signedTx:P[k]}),I==null||I([...h]),k++;let T=!1,K=null,S=null,C=L=>{K!==null&&clearInterval(K),S!==null&&this.connection.removeSignatureListener(S);let V=h.findIndex(te=>te.txId===N);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=L.err?"error":"success"}I==null||I([...h]),L.err||O()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var L;if(T){clearInterval(K);return}try{let V=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(T=!0,clearInterval(K),C({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",N))}catch(V){T=!0,clearInterval(K),console.error("getTransaction timeout:",V,N)}},ft)),S=this.connection.onSignature(N,L=>{if(T){this.connection.removeSignatureListener(S);return}T=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(N)};return O(),{txIds:[],signedTxs:P}}else{let k=[];for(let h=0;h<P.length;h+=1){let O=await this.connection.sendTransaction(P[h],{skipPreflight:x});k.push(O)}return{txIds:k,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var I;let B=t||{},{splitIns:n=[],computeBudgetConfig:r}=B,u=le(B,["splitIns","computeBudgetConfig"]),l=r?dt(r):{instructions:[],instructionTypes:[]},d=this.signers.reduce((w,x)=>D(M({},w),{[x.publicKey.toBase58()]:x}),{}),p=[],b=[],A=[],f=0;if(this.allInstructions.forEach(w=>{let x=[...A,w],g=r?[...l.instructions,...x]:x,k=[...new Set(x.map(h=>h.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(h=>new Me(h));if(w!==n[f]&&A.length<12&&(Ze({instructions:g,payer:this.feePayer,signers:k})||Ze({instructions:x,payer:this.feePayer,signers:k})))A.push(w);else{if(A.length===0)throw Error("item ins too big");f+=w===n[f]?1:0,Ze({instructions:r?[...l.instructions,...A]:[...A],payer:this.feePayer,signers:k})?p.push(new je().add(...l.instructions,...A)):p.push(new je().add(...A)),b.push(Array.from(new Set(A.map(h=>h.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(h=>d[h]).filter(h=>h!==void 0)),A=[w]}}),A.length>0){let x=[...new Set(A.map(g=>g.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(g=>d[g]).filter(g=>g!==void 0);Ze({instructions:r?[...l.instructions,...A]:[...A],payer:this.feePayer,signers:x.map(g=>g.publicKey)})?p.push(new je().add(...l.instructions,...A)):p.push(new je().add(...A)),b.push(x)}return p.forEach(w=>w.feePayer=this.feePayer),(I=this.owner)!=null&&I.signer&&b.forEach(w=>{w.some(x=>x.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:p,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var N;let{sequentially:x,onTxUpdate:g,skipTxCount:P=0,recentBlockHash:k,skipPreflight:h=!0}=w||{},O=k!=null?k:await Ne(this.connection,this.blockhashCommitment);if(p.forEach(async(T,K)=>{T.recentBlockhash=O,b[K].length&&T.sign(...b[K])}),Ie(p),(N=this.owner)!=null&&N.isKeyPair){if(x){let T=0,K=[];for(let S of p){if(++T,T<=P){K.push("tx skipped");continue}let C=await Ut(this.connection,S,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});K.push(C)}return{txIds:K,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p.slice(P,p.length)),K=[...p.slice(0,P),...T];if(x){let S=0,C=[],L=async()=>{if(!K[S])return;S<P&&(C.push({txId:"",status:"success",signedTx:K[S]}),g==null||g([...C]),S++,L());let V=await this.connection.sendRawTransaction(K[S].serialize(),{skipPreflight:h});C.push({txId:V,status:"sent",signedTx:K[S]}),g==null||g([...C]),S++;let te=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=C.findIndex(de=>de.txId===V);if(ne>-1){if(C[ne].status==="error"||C[ne].status==="success")return;C[ne].status=G.err?"error":"success"}g==null||g([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(te){clearInterval(q);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(te=!0,clearInterval(q),j({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){te=!0,clearInterval(q),console.error("getTransaction timeout:",ne,V)}},ft)),W=this.connection.onSignature(V,G=>{if(te){this.connection.removeSignatureListener(W);return}te=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:C.map(V=>V.txId),signedTxs:K}}else{let S=[];for(let C=0;C<K.length;C+=1){let L=await this.connection.sendRawTransaction(K[C].serialize(),{skipPreflight:h});S.push(L)}return{txIds:S,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var N;let O=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:l=[],insCountLimit:d=12}=O,p=le(O,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=M(M({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),u),A=Array.from(new Set([...this.lookupTableAddress,...l])),f=[];for(let T of A)b[T]===void 0&&f.push(new Me(T));let B=await Et({connection:this.connection,address:f});for(let[T,K]of Object.entries(B))b[T]=K;let I=n?dt(n):{instructions:[],instructionTypes:[]},w=await Ne(this.connection,this.blockhashCommitment),x=this.signers.reduce((T,K)=>D(M({},T),{[K.publicKey.toBase58()]:K}),{}),g=[],P=[],k=[],h=0;if(this.allInstructions.forEach(T=>{let K=[...k,T],S=n?[...I.instructions,...K]:K;if(T!==r[h]&&k.length<d&&(He({instructions:S,payer:this.feePayer,lookupTableAddressAccount:b})||He({instructions:K,payer:this.feePayer,lookupTableAddressAccount:b})))k.push(T);else{if(k.length===0)throw Error("item ins too big");h+=T===r[h]?1:0;let C={};for(let L of[...new Set(A)])b[L]!==void 0&&(C[L]=b[L]);if(n&&He({instructions:[...I.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let L=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...I.instructions,...k]}).compileToV0Message(Object.values(b));g.push(new Je(L))}else{let L=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k]}).compileToV0Message(Object.values(b));g.push(new Je(L))}P.push(Array.from(new Set(k.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>x[L]).filter(L=>L!==void 0)),k=[T]}}),k.length>0){let K=[...new Set(k.map(S=>S.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(S=>x[S]).filter(S=>S!==void 0);if(n&&He({instructions:[...I.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let S=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...I.instructions,...k]}).compileToV0Message(Object.values(b));g.push(new Je(S))}else{let S=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k]}).compileToV0Message(Object.values(b));g.push(new Je(S))}P.push(K)}return(N=this.owner)!=null&&N.signer&&P.forEach(T=>{T.some(K=>K.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),g.forEach((T,K)=>{T.sign(P[K])}),{builder:this,transactions:g,buildProps:t,signers:P,instructionTypes:this.instructionTypes,execute:async T=>{var te;let{sequentially:K,onTxUpdate:S,skipTxCount:C=0,recentBlockHash:L,skipPreflight:V=!0}=T||{};if(g.map(async(q,W)=>{P[W].length&&q.sign(P[W]),L&&(q.message.recentBlockhash=L)}),Ie(g),(te=this.owner)!=null&&te.isKeyPair){if(K){let q=0,W=[];for(let j of g){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await pt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:g}}return{txIds:await Promise.all(g.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:g}}if(this.signAllTransactions){let q=await this.signAllTransactions(g.slice(C,g.length)),W=[...g.slice(0,C),...q];if(K){let j=0,G=[],ne=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),S==null||S([...G]),j++,ne();return}let de=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:de,status:"sent",signedTx:W[j]}),S==null||S([...G]),j++;let Ue=!1,Ke=null,at=null,ln=we=>{Ke!==null&&clearInterval(Ke),at!==null&&this.connection.removeSignatureListener(at);let pe=G.findIndex(Po=>Po.txId===de);if(pe>-1){if(G[pe].status==="error"||G[pe].status==="success")return;G[pe].status=we.err?"error":"success"}S==null||S([...G]),we.err||ne()};this.loopMultiTxStatus&&(Ke=setInterval(async()=>{var we;if(Ue){clearInterval(Ke);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:0});pe&&(Ue=!0,clearInterval(Ke),ln({err:((we=pe.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){Ue=!0,clearInterval(Ke),console.error("getTransaction timeout:",pe,de)}},ft)),at=this.connection.onSignature(de,we=>{if(Ue){this.connection.removeSignatureListener(at);return}Ue=!0,ln(we)},"confirmed"),this.connection.getSignatureStatus(de)};return ne(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(ne)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Gt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),re=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new yt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Gt(t))}logInfo(...t){this.logger.info(Gt(t))}logAndCreateError(...t){let n=Gt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ll,SystemProgram as Nl}from"@solana/web3.js";import vl from"bn.js";import{createCloseAccountInstruction as Dl,createInitializeAccountInstruction as Wl,createTransferInstruction as ql,TOKEN_PROGRAM_ID as Ul}from"@solana/spl-token";import{Keypair as Pl,PublicKey as Al}from"@solana/web3.js";import Tl from"bn.js";import{TOKEN_PROGRAM_ID as Bl}from"@solana/spl-token";import{PublicKey as ri}from"@solana/web3.js";import Nn,{isBN as Mn}from"bn.js";import{bits as Qo,BitStructure as hc,blob as Zo,Blob as Ic,cstr as Bc,f32 as Sc,f32be as xc,f64 as Kc,f64be as Cc,greedy as Rc,Layout as Ho,ns64 as Lc,ns64be as Oc,nu64 as Nc,nu64be as Mc,offset as jo,s16 as Fc,s16be as vc,s24 as Vc,s24be as _c,s32 as $o,s32be as Ec,s40 as Dc,s40be as Wc,s48 as qc,s48be as Uc,s8 as Gc,seq as Jo,struct as zc,Structure as ei,u16 as ti,u16be as Xc,u24 as Yc,u24be as Qc,u32 as ni,u32be as Zc,u40 as Hc,u40be as jc,u48 as $c,u48be as Jc,u8 as oi,UInt as ii,union as el,Union as tl,unionLayoutDiscriminator as nl,utf8 as ol}from"@solana/buffer-layout";var bt=Ho,Cn=ei;var zt=ii;var Rn=oi,Z=ti;var gt=ni;var ue=$o;var Ln=Jo;var v=Zo;var Xt=Qo,On=jo;var Se=class extends bt{constructor(n,r,u){super(n,u);this.blob=v(n),this.signed=r}decode(n,r=0){let u=new Nn(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 Nn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},Pt=class extends bt{constructor(n){super(8,n);this._lower=Xt(gt(),!1),this._upper=Xt(gt(),!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),l=this._upper.decode(n,r+this._lower.span);return M(M({},u),l)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function m(o){return new zt(1,o)}function X(o){return new zt(4,o)}function e(o){return new Se(8,!1,o)}function F(o){return new Se(16,!1,o)}function Fn(o){return new Se(1,!0,o)}function Fe(o){return new Se(8,!0,o)}function vn(o){return new Se(16,!0,o)}var et=class extends bt{constructor(n,r,u,l){super(n.span,l);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 et(v(32),t=>new ri(t),t=>t.toBuffer(),o)}function se(o){return new et(Rn(),ai,si,o)}function ai(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function si(o){return o?1:0}function Vn(o,t){let n=gt("length"),r=c([n,y(o,On(n,-n.span),"values")]);return new et(r,({values:u})=>u,u=>({values:u}),t)}var Yt=class extends Cn{decode(t,n){return super.decode(t,n)}};function c(o,t,n){return new Yt(o,t,n)}function y(o,t,n){let r,u=typeof t=="number"?t:Mn(t)?t.toNumber():new Proxy(t,{get(l,d){if(!r){let p=Reflect.get(l,"count");r=Mn(p)?p.toNumber():p,Reflect.set(l,"count",r)}return Reflect.get(l,d)},set(l,d,p){return d==="count"&&(r=p),Reflect.set(l,d,p)}});return Ln(o,u,n)}var At=c([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),m("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as $g,SystemProgram as Jg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as tP}from"@solana/spl-token";import{PublicKey as ci}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as li}from"@solana/spl-token";function ae(o,t,n){return ie([o.toBuffer(),(n!=null?n:li).toBuffer(),t.toBuffer()],new ci("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as R}from"@solana/web3.js";var En=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Dn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Wn=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Qt=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),wm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),mi=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qn=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Un=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),km=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),di=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Gn=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),pi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),fi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zn=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Tm=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),yi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),kt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Xn=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),hm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Im=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Bm=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Sm=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),xm=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Km=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ae={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import mP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Cy,TOKEN_2022_PROGRAM_ID as Ry,TOKEN_PROGRAM_ID as Ly}from"@solana/spl-token";import{PublicKey as Ny}from"@solana/web3.js";import Fy from"bn.js";import Vy from"decimal.js";import{TOKEN_PROGRAM_ID as qm}from"@solana/spl-token";import{PublicKey as Xm}from"@solana/web3.js";var Ai=c([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),m("decimals"),m("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as jf,TOKEN_2022_PROGRAM_ID as $f,TOKEN_PROGRAM_ID as Jf}from"@solana/spl-token";import{Keypair as ny,PublicKey as oy,SystemProgram as ry,TransactionInstruction as ay}from"@solana/web3.js";import uy from"bn.js";import E from"bn.js";var Ve=new E(1).shln(64);var wi=new E(1).shln(128),Zt=new E(1).shln(64).subn(1),ki=new E(1).shln(128).subn(1);var _e=new E("4295048016"),Ee=new E("79226673521066979257578248091"),Ti=new E("59543866431248"),hi=new E("184467440737095516"),Ii=new E("15793534762490258745");var Ht=60,id=new E("18446743708227953217"),Bi=[{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 tt=3,Yn=100;var Qn=10,Zn=100,Tt=14;var H=new E(0),De=new E(1),rd=new E(-1);var ad=new E("18446744073700000000");var Si=c([v(8),m("bump"),Z("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Z("tickSpacing"),X("fundFeeRate"),y(X(),1),i("fundOwner"),y(e(),3)]),xi=c([X("blockTimestamp"),Fe("tickCumulative"),y(e(),4)]),Hn=c([v(8),se("initialized"),e("recentEpoch"),Z("observationIndex"),i("poolId"),y(xi,Yn,"observations"),y(e(),4)]),Ki=c([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),y(m(),46)]),Ci=c([m("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),F("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),F("growthGlobalX64")]),jt=c([v(8),m("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),Z("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),ue("tickCurrent"),X(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),y(F(),4),m("status"),m("feeOn"),v(6),y(Ci,tt,"rewardInfos"),v(8*16,"tickArrayBitmap"),y(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ki.replicate("dynamicFeeInfo"),y(e(),46)]),Ri=c([F("growthInsideLastX64"),e("rewardAmountOwed")]),Li=c([v(8),m("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),y(Ri,tt,"rewardInfos"),e("recentEpoch"),y(e(),7)]),ld=c([v(8),m("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),y(F(),tt,"rewardGrowthInside"),e("recentEpoch"),y(e(),7)]),Oi=c([ue("tick"),vn("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),y(F(),tt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),F("unfilledRatioX64"),y(X(),3)]),jn=c([v(8),i("poolId"),ue("startTickIndex"),y(Oi,Ht,"ticks"),m("initializedTickCount"),e("recentEpoch"),y(m(),107)]),Ni=c([v(8),m("bump"),y(i(),Qn,"operationOwners"),y(i(),Zn,"whitelistMints")]),Mi=c([v(8),i("poolId"),i("owner"),ue("tick"),se("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),F("unfilledRatioX64"),y(e(),4)]),$n=c([v(8),i("poolId"),v(8*8*Tt,"positiveTickArrayBitmap"),v(8*8*Tt,"negativeTickArrayBitmap")]),md=c([v(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),y(e(),8)]),Fi=c([v(8),i("wallet"),m("nonceIndex"),e("orderNonce"),y(e(),4)]),dd=c([e(),m("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),y(e(),8)]),vi=c([v(8),m("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),y(e(),8)]);import yd from"bn.js";var Sd=Buffer.from("amm_config","utf8"),Vi=Buffer.from("pool","utf8"),_i=Buffer.from("pool_vault","utf8"),xd=Buffer.from("pool_reward_vault","utf8"),Kd=Buffer.from("position","utf8"),Cd=Buffer.from("tick_array","utf8"),Rd=Buffer.from("operation","utf8"),Ld=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Od=Buffer.from("observation","utf8"),Nd=Buffer.from("support_mint","utf8"),Md=Buffer.from("dynamic_fee_config","utf8");function ht(o){return ie([Buffer.from("metadata","utf8"),he.toBuffer(),o.toBuffer()],he)}var Fd=Buffer.from("locked_position","utf8");import{sha256 as Ji}from"js-sha256";import Ei from"bn.js";import Ed from"decimal.js";var Wd=new Ei(1).shln(256).subn(1);import rp from"bn.js";import Qd from"bn.js";import Hd from"decimal.js";import lp from"bn.js";import dp from"decimal.js";import{PublicKey as $p}from"@solana/web3.js";import ef from"bn.js";import{TOKEN_2022_PROGRAM_ID as cf,TOKEN_PROGRAM_ID as lf}from"@solana/spl-token";import ff from"decimal.js";import Wp from"bn.js";import Kp from"bn.js";import Bf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(Ji.digest(t)).slice(0,8)}Hn.span;var by=_("Raydium_Clmm"),gy={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as tn}from"@solana/web3.js";var ir=c([m("instruction")]),rr=c([m("inst