UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 82.1 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 Oa,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 za,TOKEN_PROGRAM_ID as Xa,getTransferFeeConfig as Ya,unpackMint as Qa}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 kC from"decimal.js";import Oo from"big.js";import ms 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 ws=_("Raydium_amount"),ks=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"),Cs=new z("SysvarC1ock11111111111111111111111111111111"),he=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),_o=new z("Sysvar1nstructions1111111111111111111111111"),kn=Pn.programId,Rs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ls=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Os=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ns=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ms=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Fs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),vs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Vs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),_s=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Es=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ds=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 $s=new U(new Eo(100));var iu=_("Raydium_price");import{merge as hK}from"lodash";import pu 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 vu=_("Raydium_Api");import{PublicKey as tm,SystemProgram as nm}from"@solana/web3.js";import{AccountLayout as sm,createAssociatedTokenAccountIdempotentInstruction as um,TOKEN_PROGRAM_ID as cm,TOKEN_2022_PROGRAM_ID as lm}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($=>$.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,$=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),$({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,$(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 $ of g){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{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 $=0,G=[],ne=async()=>{if(!W[$])return;if($<C){G.push({txId:"",status:"success",signedTx:W[$]}),S==null||S([...G]),$++,ne();return}let de=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:de,status:"sent",signedTx:W[$]}),S==null||S([...G]),$++;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 $=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});$.push(ne)}return{txIds:$,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 Ol,SystemProgram as Ml}from"@solana/web3.js";import Vl from"bn.js";import{createCloseAccountInstruction as Wl,createInitializeAccountInstruction as ql,createTransferInstruction as Ul,TOKEN_PROGRAM_ID as Gl}from"@solana/spl-token";import{Keypair as Al,PublicKey as wl}from"@solana/web3.js";import hl from"bn.js";import{TOKEN_PROGRAM_ID as Sl}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 Ic,blob as Zo,Blob as Bc,cstr as Sc,f32 as xc,f32be as Kc,f64 as Cc,f64be as Rc,greedy as Lc,Layout as Ho,ns64 as Oc,ns64be as Nc,nu64 as Mc,nu64be as Fc,offset as jo,s16 as vc,s16be as Vc,s24 as _c,s24be as Ec,s32 as $o,s32be as Dc,s40 as Wc,s40be as qc,s48 as Uc,s48be as Gc,s8 as zc,seq as Jo,struct as Xc,Structure as ei,u16 as ti,u16be as Yc,u24 as Qc,u24be as Zc,u32 as ni,u32be as Hc,u40 as jc,u40be as $c,u48 as Jc,u48be as el,u8 as oi,UInt as ii,union as tl,Union as nl,unionLayoutDiscriminator as ol,utf8 as il}from"@solana/buffer-layout";var bt=Ho,Cn=ei;var zt=ii;var Rn=oi,Q=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 nP,SystemProgram as oP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as rP}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"),km=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),mi=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qn=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Un=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Tm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),di=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Gn=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),pi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),fi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zn=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),hm=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),yi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),kt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Xn=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Im=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Bm=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Sm=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),xm=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Km=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Cm=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 yP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ny,TOKEN_2022_PROGRAM_ID as My,TOKEN_PROGRAM_ID as Fy}from"@solana/spl-token";import{PublicKey as Vy}from"@solana/web3.js";import Ey from"bn.js";import Wy from"decimal.js";import{TOKEN_PROGRAM_ID as Um}from"@solana/spl-token";import{PublicKey as Ym}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 ty,TOKEN_2022_PROGRAM_ID as ny,TOKEN_PROGRAM_ID as oy}from"@solana/spl-token";import{Keypair as ay,PublicKey as sy,SystemProgram as cy,TransactionInstruction as ly}from"@solana/web3.js";import dy from"bn.js";import 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,rd=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),ad=new E(-1);var sd=new E("18446744073700000000");var Si=c([v(8),m("bump"),Q("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Q("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"),Q("observationIndex"),i("poolId"),y(xi,Yn,"observations"),y(e(),4)]),Ki=c([Q("filterPeriod"),Q("decayPeriod"),Q("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"),Q("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)]),md=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")]),dd=c([v(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),y(e(),8)]),Fi=c([v(8),i("wallet"),m("nonceIndex"),e("orderNonce"),y(e(),4)]),pd=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 bd from"bn.js";var xd=Buffer.from("amm_config","utf8"),_i=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),Kd=Buffer.from("pool_reward_vault","utf8"),Cd=Buffer.from("position","utf8"),Rd=Buffer.from("tick_array","utf8"),Ld=Buffer.from("operation","utf8"),Od=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Nd=Buffer.from("observation","utf8"),Md=Buffer.from("support_mint","utf8"),Fd=Buffer.from("dynamic_fee_config","utf8"),vd=Buffer.from("permission","utf8");function ht(o){return ie([Buffer.from("metadata","utf8"),he.toBuffer(),o.toBuffer()],he)}var Vd=Buffer.from("locked_position","utf8");import{sha256 as er}from"js-sha256";import Di from"bn.js";import Wd from"decimal.js";var Ud=new Di(1).shln(256).subn(1);import sp from"bn.js";import Hd from"bn.js";import $d from"decimal.js";import dp from"bn.js";import fp from"decimal.js";import{PublicKey as ef}from"@solana/web3.js";import nf from"bn.js";import{TOKEN_2022_PROGRAM_ID as mf,TOKEN_PROGRAM_ID as df}from"@solana/spl-token";import bf from"decimal.js";import Up from"bn.js";import Rp from"bn.js";import xf from"bn.js";function j(o){let t=`global:${o}`;return Buffer.from(er.digest(t)).slice(0,8)}Hn.span;var wy=_("Raydium_Clmm"),ky={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")