@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 86.6 kB
JavaScript
var So=Object.defineProperty,xo=Object.defineProperties;var Ko=Object.getOwnPropertyDescriptors;var pt=Object.getOwnPropertySymbols;var kn=Object.prototype.hasOwnProperty,Tn=Object.prototype.propertyIsEnumerable;var wn=(r,e,t)=>e in r?So(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,L=(r,e)=>{for(var t in e||(e={}))kn.call(e,t)&&wn(r,t,e[t]);if(pt)for(var t of pt(e))Tn.call(e,t)&&wn(r,t,e[t]);return r},_=(r,e)=>xo(r,Ko(e));var de=(r,e)=>{var t={};for(var o in r)kn.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&pt)for(var o of pt(r))e.indexOf(o)<0&&Tn.call(r,o)&&(t[o]=r[o]);return t};import ue from"bn.js";import Io from"decimal.js";import{PublicKey as Lo}from"@solana/web3.js";import{get as hn,set as Co}from"lodash";var Dt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},In={},Ro={};function E(r){let e=hn(In,r);if(!e){let t=hn(Ro,r);e=new Dt({name:r,logLevel:t}),Co(In,r,e)}return e}import{MINT_SIZE as Va,TOKEN_PROGRAM_ID as _a,getTransferFeeConfig as Ea,unpackMint as Da}from"@solana/spl-token";var Wt=E("Raydium_accountInfo_util");async function Ae(r,e,t){let{batchRequest:o,commitment:i="confirmed",chunkCount:s=100}=L({batchRequest:!1},t),l=qt(e,s),m=new Array(l.length).fill([]);if(o){let y=l.map(P=>{let S=r._buildArgs([P.map(h=>h.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:S}}),g=qt(y,10);m=(await(await Promise.all(g.map(async P=>await r._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&Wt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.error.message}`),P.result.value.map(S=>{if(S){let{data:h,executable:I,lamports:w,owner:k,rentEpoch:B}=S;return h.length!==2&&h[1]!=="base64"&&Wt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(h[0],"base64"),executable:I,lamports:w,owner:new Lo(k),rentEpoch:B}}return null})))}else try{m=await Promise.all(l.map(y=>r.getMultipleAccountsInfo(y,i)))}catch(y){y instanceof Error&&Wt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return m.flat()}import he from"bn.js";import kC from"decimal.js";import Eo from"big.js";import os from"bn.js";import Oo from"toformat";var No=Oo,Qe=No;import yt from"big.js";import Fo from"bn.js";import vo from"decimal.js-light";import Ze from"bn.js";var Bn=9007199254740991;function oe(r){let e=E("Raydium_parseBigNumberish");if(r instanceof Ze)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new Ze(r);e.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&e.logWithError(`BigNumberish number underflow: ${r}`),(r>=Bn||r<=-Bn)&&e.logWithError(`BigNumberish number overflow: ${r}`),new Ze(String(r))):typeof r=="bigint"?new Ze(r.toString()):(e.error(`invalid BigNumberish value: ${r}`),new Ze(0))}var ft=E("module/fraction"),Ut=Qe(yt),He=Qe(vo),Vo={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},_o={[0]:yt.roundDown,[1]:yt.roundHalfUp,[2]:yt.roundUp},U=class{constructor(e,t=new Fo(1)){this.numerator=oe(e),this.denominator=oe(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(e){let t=e instanceof U?e:new U(oe(e));return this.denominator.eq(t.denominator)?new U(this.numerator.add(t.numerator),this.denominator):new U(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof U?e:new U(oe(e));return this.denominator.eq(t.denominator)?new U(this.numerator.sub(t.numerator),this.denominator):new U(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof U?e:new U(oe(e));return new U(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof U?e:new U(oe(e));return new U(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},o=1){Number.isInteger(e)||ft.logWithError(`${e} is not an integer.`),e<=0&&ft.logWithError(`${e} is not positive.`),He.set({precision:e+1,rounding:Vo[o]});let i=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},o=1){return Number.isInteger(e)||ft.logWithError(`${e} is not an integer.`),e<0&&ft.logWithError(`${e} is negative.`),Ut.DP=e,Ut.RM=_o[o]||1,new Ut(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var ds=E("Raydium_amount"),ps=Qe(Eo);import{PublicKey as Wo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Sn}from"@solana/spl-token";var bt={chainId:101,address:Wo.default.toBase58(),programId:Sn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},pe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Sn.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 zt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as xn,SYSVAR_RENT_PUBKEY as qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Uo}from"@solana/spl-token";function Oe({pubkey:r,isSigner:e=!1,isWritable:t=!0}){return{pubkey:r,isWritable:t,isSigner:e}}var Go=[Oe({pubkey:Uo,isWritable:!1}),Oe({pubkey:xn.programId,isWritable:!1}),Oe({pubkey:qo,isWritable:!1})];function Kn({publicKey:r,transformSol:e}){let t=Cn(r.toString());if(t instanceof z)return e&&t.equals(Be)?we:t;if(e&&t.toString()===Be.toBase58())return we;if(typeof t=="string"){if(t===z.default.toBase58())return z.default;try{return new z(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Cn(r){try{return new z(r)}catch{return r}}var Gt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),je=new z("SysvarRent111111111111111111111111111111111"),ks=new z("SysvarC1ock11111111111111111111111111111111"),gt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),zo=new z("Sysvar1nstructions1111111111111111111111111"),Xo=xn.programId,Ts=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),hs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Is=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Bs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ss=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),xs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ks=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Cs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Rs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ls=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Os=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),we=new z("So11111111111111111111111111111111111111112"),Be=z.default;var Xt=class{constructor({mint:e,decimals:t,symbol:o,name:i,skipMint:s=!1,isToken2022:l=!1}){if(e===Be.toBase58()||e instanceof zt&&Be.equals(e)){this.decimals=pe.decimals,this.symbol=pe.symbol,this.name=pe.name,this.mint=new zt(pe.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=s?zt.default:Kn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},J=Xt;J.WSOL=new Xt(_(L({},pe),{mint:pe.address}));var Yt=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},Pt=Yt;Pt.SOL=new Yt(bt);import Yo from"bn.js";var Gs=new U(new Yo(100));var Hs=E("Raydium_price");import{merge as hK}from"lodash";import ru from"axios";var Rn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Qo=_(L({},Rn),{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 Ku=E("Raydium_Api");import{PublicKey as Yl,SystemProgram as Ql}from"@solana/web3.js";import{AccountLayout as Jl,createAssociatedTokenAccountIdempotentInstruction as em,TOKEN_PROGRAM_ID as tm,TOKEN_2022_PROGRAM_ID as nm}from"@solana/spl-token";import{PublicKey as Ve,sendAndConfirmTransaction as Jt,SystemProgram as ei,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import ti from"axios";import{PublicKey as Qt,AddressLookupTableAccount as Fe}from"@solana/web3.js";async function Zt({connection:r,address:e,cluster:t="mainnet"}){let o=await Ae(r,[...new Set(e.map(s=>s.toString()))].map(s=>new Qt(s))),i={};for(let s=0;s<e.length;s++){let l=o[s],m=e[s];if(!l)continue;let y=new Fe({key:m,state:Fe.deserialize(l.data)});i[m.toString()]=y,t==="devnet"?Me[m.toString()]=y:Ne[m.toString()]=y}return i}var Ne={},Ht=async r=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ne[e])return Ne;let t=new Qt(e),o=await r.getAccountInfo(t);return o&&(Ne[e]=new Fe({key:t,state:Fe.deserialize(o.data)})),Ne},Me={},jt=async r=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Me[e])return Me;let t=new Qt(e),o=await r.getAccountInfo(t);return o&&(Me[e]=new Fe({key:t,state:Fe.deserialize(o.data)})),Me};var Q={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 Ln,Keypair as Nn,PublicKey as Zo,Transaction as Mn,TransactionMessage as Ho,VersionedTransaction as Fn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jo}from"@solana/spl-token";var On=E("Raydium_txUtil"),vn=1644;function At(r){let e=[],t=[];return r.microLamports&&(e.push(Ln.setComputeUnitPrice({microLamports:r.microLamports})),t.push(Q.SetComputeUnitPrice)),r.units&&(e.push(Ln.setComputeUnitLimit({units:r.units})),t.push(Q.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function ve(r,e){var o,i;let t=e!=null?e:"confirmed";return(i=await((o=r.getLatestBlockhash)==null?void 0:o.call(r,{commitment:t})))==null?void 0:i.blockhash}async function wt(r,e){return r.getSignatureStatuses([e]),new Promise((t,o)=>{let i=setTimeout(o,6e4);r.onSignature(e,s=>{if(clearTimeout(i),!s.err){t("");return}o(Object.assign(s.err,{txId:e}))},"confirmed")})}function $t(r,e){r.length<1&&On.logWithError(`no instructions provided: ${r.toString()}`),e.length<1&&On.logWithError(`no signers provided:, ${e.toString()}`);let t=new Mn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...r);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<vn}catch{return!1}}function fe(r,e){let[t,o]=Zo.findProgramAddressSync(r,e);return{publicKey:t,nonce:o}}function $e({instructions:r,payer:e,signers:t}){return $t(r,[e,...t])}function Je({instructions:r,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=Nn.generate().publicKey.toString()}){let s=new Ho({payerKey:e,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Fn(s).serialize()).toString("base64").length<vn}catch{return!1}}var $o=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Jo=r=>{let e=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Fn&&(e=$o(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Se(r){let e=[];return r.forEach(t=>{t instanceof Mn&&(t.recentBlockhash||(t.recentBlockhash=jo.toBase58()),t.feePayer||(t.feePayer=Nn.generate().publicKey)),e.push(Jo(t))}),console.log("simulate tx string:",e),e}var kt=2e3,Tt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var o;let e=(await ti.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(o=e==null?void 0:e[15])!=null?o:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:o}=At(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(ei.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ve(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let o=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:o=[],instructionTypes:i=[],endInstructionTypes:s=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...i),this.endInstructionTypes.push(...s),this.lookupTableAddress.push(...l.filter(m=>m!==Ve.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:o}){return e===0?await this.buildV0(_(L({},t||{}),{lookupTableAddress:o})):this.build(t)}build(e){var o;let t=new et;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var f;let{recentBlockHash:s,skipPreflight:l=!0,sendAndConfirm:m,notSendToRpc:y}=i||{},g=s!=null?s:await ve(this.connection,this.blockhashCommitment);if(t.recentBlockhash=g,this.signers.length&&t.sign(...this.signers),Se([t]),(f=this.owner)!=null&&f.isKeyPair)return{txId:m?await Jt(this.connection,t,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:l}),signedTx:t};if(this.signAllTransactions){let P=await this.signAllTransactions([t]);if(this.signers.length)for(let S of P)try{S.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(P[0].serialize(),{skipPreflight:l}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var g;let{extraPreBuildData:t=[],extInfo:o}=e,{transaction:i}=this.build(o),s=t.filter(f=>f.transaction.instructions.length>0),l=[i,...s.map(f=>f.transaction)],m=[this.signers,...s.map(f=>f.signers)],y=[...this.instructionTypes,...s.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&m.forEach(f=>{f.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:m,instructionTypes:y,execute:async f=>{var B;let{sequentially:P,onTxUpdate:S,skipTxCount:h=0,recentBlockHash:I,skipPreflight:w=!0}=f||{},k=I!=null?I:await ve(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(P){let T=[],M=0;for(let F of l){if(++M,M<=h)continue;let A=await Jt(this.connection,F,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});T.push(A)}return{txIds:T,signedTxs:l}}return{txIds:await await Promise.all(l.map(async T=>(T.recentBlockhash=k,await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:w})))),signedTxs:l}}if(this.signAllTransactions){let T=l.map((F,A)=>(F.recentBlockhash=k,m[A].length&&F.sign(...m[A]),F));Se(T);let M=await this.signAllTransactions(T);if(P){let F=0,A=[],x=async()=>{if(!M[F])return;let K=await this.connection.sendRawTransaction(M[F].serialize(),{skipPreflight:w});A.push({txId:K,status:"sent",signedTx:M[F]}),S==null||S([...A]),F++;let R=!1,O=null,V=null,ae=q=>{O!==null&&clearInterval(O),V!==null&&this.connection.removeSignatureListener(V);let W=A.findIndex(j=>j.txId===K);if(W>-1){if(A[W].status==="error"||A[W].status==="success")return;A[W].status=q.err?"error":"success"}S==null||S([...A]),q.err||x()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(R){clearInterval(O);return}try{let W=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(R=!0,clearInterval(O),ae({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",K))}catch(W){R=!0,clearInterval(O),console.error("getTransaction timeout:",W,K)}},kt)),V=this.connection.onSignature(K,q=>{if(R){this.connection.removeSignatureListener(V);return}R=!0,ae(q)},"confirmed"),this.connection.getSignatureStatus(K)};return await x(),{txIds:A.map(K=>K.txId),signedTxs:M}}else{let F=[];for(let A=0;A<M.length;A+=1){let x=await this.connection.sendRawTransaction(M[A].serialize(),{skipPreflight:w});F.push(x)}return{txIds:F,signedTxs:M}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:o}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})}async buildV0(e){var w;let I=e||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:i,recentBlockhash:s}=I,l=de(I,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=L(L({},this.cluster==="devnet"?await jt(this.connection):await Ht(this.connection)),t),y=Array.from(new Set([...o,...this.lookupTableAddress])),g=[];for(let k of y)m[k]===void 0&&g.push(new Ve(k));let f=await Zt({connection:this.connection,address:g});for(let[k,B]of Object.entries(f))m[k]=B;let P=i?Ve.default.toBase58():s!=null?s:await ve(this.connection,this.blockhashCommitment),S=new tt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(k=>k.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let h=new nt(S);return h.sign(this.signers),{builder:this,transaction:h,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async k=>{var F;let{skipPreflight:B=!0,sendAndConfirm:T,notSendToRpc:M}=k||{};if(Se([h]),(F=this.owner)!=null&&F.isKeyPair){let A=await this.connection.sendTransaction(h,{skipPreflight:B});return T&&await wt(this.connection,A),{txId:A,signedTx:h}}if(this.signAllTransactions){let A=await this.signAllTransactions([h]);if(this.signers.length)for(let x of A)try{x.sign(this.signers)}catch{}return{txId:M?"":await this.connection.sendTransaction(A[0],{skipPreflight:B}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:t=[],buildProps:o}=e,{transaction:i}=await this.buildV0(o),s=t.filter(f=>f.builder.instructions.length>0),l=[i,...s.map(f=>f.transaction)],m=[this.signers,...s.map(f=>f.signers)],y=[...this.instructionTypes,...s.map(f=>f.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&m.forEach(f=>{f.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(f,P)=>{f.sign(m[P])}),{builder:this,transactions:l,signers:m,instructionTypes:y,buildProps:o,execute:async f=>{var w;let{sequentially:P,onTxUpdate:S,recentBlockHash:h,skipPreflight:I=!0}=f||{};if(h&&l.forEach(k=>k.message.recentBlockhash=h),Se(l),(w=this.owner)!=null&&w.isKeyPair){if(P){let k=[];for(let B of l){let T=await this.connection.sendTransaction(B,{skipPreflight:I});await wt(this.connection,T),k.push(T)}return{txIds:k,signedTxs:l}}return{txIds:await Promise.all(l.map(async k=>await this.connection.sendTransaction(k,{skipPreflight:I}))),signedTxs:l}}if(this.signAllTransactions){let k=await this.signAllTransactions(l);if(P){let B=0,T=[],M=async()=>{if(!k[B])return;let F=await this.connection.sendTransaction(k[B],{skipPreflight:I});T.push({txId:F,status:"sent",signedTx:k[B]}),S==null||S([...T]),B++;let A=!1,x=null,K=null,R=O=>{x!==null&&clearInterval(x),K!==null&&this.connection.removeSignatureListener(K);let V=T.findIndex(ae=>ae.txId===F);if(V>-1){if(T[V].status==="error"||T[V].status==="success")return;T[V].status=O.err?"error":"success"}S==null||S([...T]),O.err||M()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var O;if(A){clearInterval(x);return}try{let V=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(A=!0,clearInterval(x),R({err:((O=V.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",F))}catch(V){A=!0,clearInterval(x),console.error("getTransaction timeout:",V,F)}},kt)),K=this.connection.onSignature(F,O=>{if(A){this.connection.removeSignatureListener(K);return}A=!0,R(O)},"confirmed"),this.connection.getSignatureStatus(F)};return M(),{txIds:[],signedTxs:k}}else{let B=[];for(let T=0;T<k.length;T+=1){let M=await this.connection.sendTransaction(k[T],{skipPreflight:I});B.push(M)}return{txIds:B,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var S;let P=e||{},{splitIns:t=[],computeBudgetConfig:o}=P,i=de(P,["splitIns","computeBudgetConfig"]),s=o?At(o):{instructions:[],instructionTypes:[]},l=this.signers.reduce((h,I)=>_(L({},h),{[I.publicKey.toBase58()]:I}),{}),m=[],y=[],g=[],f=0;if(this.allInstructions.forEach(h=>{let I=[...g,h],w=o?[...s.instructions,...I]:I,B=[...new Set(I.map(T=>T.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat()).values()].map(T=>new Ve(T));if(h!==t[f]&&g.length<12&&($e({instructions:w,payer:this.feePayer,signers:B})||$e({instructions:I,payer:this.feePayer,signers:B})))g.push(h);else{if(g.length===0)throw Error("item ins too big");f+=h===t[f]?1:0,$e({instructions:o?[...s.instructions,...g]:[...g],payer:this.feePayer,signers:B})?m.push(new et().add(...s.instructions,...g)):m.push(new et().add(...g)),y.push(Array.from(new Set(g.map(T=>T.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat())).map(T=>l[T]).filter(T=>T!==void 0)),g=[h]}}),g.length>0){let I=[...new Set(g.map(w=>w.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(w=>l[w]).filter(w=>w!==void 0);$e({instructions:o?[...s.instructions,...g]:[...g],payer:this.feePayer,signers:I.map(w=>w.publicKey)})?m.push(new et().add(...s.instructions,...g)):m.push(new et().add(...g)),y.push(I)}return m.forEach(h=>h.feePayer=this.feePayer),(S=this.owner)!=null&&S.signer&&y.forEach(h=>{h.some(I=>I.publicKey.equals(this.owner.publicKey))||h.push(this.owner.signer)}),{builder:this,transactions:m,signers:y,instructionTypes:this.instructionTypes,execute:async h=>{var F;let{sequentially:I,onTxUpdate:w,skipTxCount:k=0,recentBlockHash:B,skipPreflight:T=!0}=h||{},M=B!=null?B:await ve(this.connection,this.blockhashCommitment);if(m.forEach(async(A,x)=>{A.recentBlockhash=M,y[x].length&&A.sign(...y[x])}),Se(m),(F=this.owner)!=null&&F.isKeyPair){if(I){let A=0,x=[];for(let K of m){if(++A,A<=k){x.push("tx skipped");continue}let R=await Jt(this.connection,K,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:T});x.push(R)}return{txIds:x,signedTxs:m}}return{txIds:await Promise.all(m.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:T}))),signedTxs:m}}if(this.signAllTransactions){let A=await this.signAllTransactions(m.slice(k,m.length)),x=[...m.slice(0,k),...A];if(I){let K=0,R=[],O=async()=>{if(!x[K])return;K<k&&(R.push({txId:"",status:"success",signedTx:x[K]}),w==null||w([...R]),K++,O());let V=await this.connection.sendRawTransaction(x[K].serialize(),{skipPreflight:T});R.push({txId:V,status:"sent",signedTx:x[K]}),w==null||w([...R]),K++;let ae=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=R.findIndex(ge=>ge.txId===V);if(ne>-1){if(R[ne].status==="error"||R[ne].status==="success")return;R[ne].status=G.err?"error":"success"}w==null||w([...R]),G.err||O()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ae){clearInterval(q);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ae=!0,clearInterval(q),j({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){ae=!0,clearInterval(q),console.error("getTransaction timeout:",ne,V)}},kt)),W=this.connection.onSignature(V,G=>{if(ae){this.connection.removeSignatureListener(W);return}ae=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await O(),{txIds:R.map(V=>V.txId),signedTxs:x}}else{let K=[];for(let R=0;R<x.length;R+=1){let O=await this.connection.sendRawTransaction(x[R].serialize(),{skipPreflight:T});K.push(O)}return{txIds:K,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(e){var F;let M=e||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:i={},lookupTableAddress:s=[],insCountLimit:l=12}=M,m=de(M,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=L(L({},this.cluster==="devnet"?await jt(this.connection):await Ht(this.connection)),i),g=Array.from(new Set([...this.lookupTableAddress,...s])),f=[];for(let A of g)y[A]===void 0&&f.push(new Ve(A));let P=await Zt({connection:this.connection,address:f});for(let[A,x]of Object.entries(P))y[A]=x;let S=t?At(t):{instructions:[],instructionTypes:[]},h=await ve(this.connection,this.blockhashCommitment),I=this.signers.reduce((A,x)=>_(L({},A),{[x.publicKey.toBase58()]:x}),{}),w=[],k=[],B=[],T=0;if(this.allInstructions.forEach(A=>{let x=[...B,A],K=t?[...S.instructions,...x]:x;if(A!==o[T]&&B.length<l&&(Je({instructions:K,payer:this.feePayer,lookupTableAddressAccount:y})||Je({instructions:x,payer:this.feePayer,lookupTableAddressAccount:y})))B.push(A);else{if(B.length===0)throw Error("item ins too big");T+=A===o[T]?1:0;let R={};for(let O of[...new Set(g)])y[O]!==void 0&&(R[O]=y[O]);if(t&&Je({instructions:[...S.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:h})){let O=new tt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...S.instructions,...B]}).compileToV0Message(Object.values(y));w.push(new nt(O))}else{let O=new tt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...B]}).compileToV0Message(Object.values(y));w.push(new nt(O))}k.push(Array.from(new Set(B.map(O=>O.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(O=>I[O]).filter(O=>O!==void 0)),B=[A]}}),B.length>0){let x=[...new Set(B.map(K=>K.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(K=>I[K]).filter(K=>K!==void 0);if(t&&Je({instructions:[...S.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:h})){let K=new tt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...S.instructions,...B]}).compileToV0Message(Object.values(y));w.push(new nt(K))}else{let K=new tt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...B]}).compileToV0Message(Object.values(y));w.push(new nt(K))}k.push(x)}return(F=this.owner)!=null&&F.signer&&k.forEach(A=>{A.some(x=>x.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),w.forEach((A,x)=>{A.sign(k[x])}),{builder:this,transactions:w,buildProps:e,signers:k,instructionTypes:this.instructionTypes,execute:async A=>{var ae;let{sequentially:x,onTxUpdate:K,skipTxCount:R=0,recentBlockHash:O,skipPreflight:V=!0}=A||{};if(w.map(async(q,W)=>{k[W].length&&q.sign(k[W]),O&&(q.message.recentBlockhash=O)}),Se(w),(ae=this.owner)!=null&&ae.isKeyPair){if(x){let q=0,W=[];for(let j of w){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await wt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:w}}return{txIds:await Promise.all(w.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:w}}if(this.signAllTransactions){let q=await this.signAllTransactions(w.slice(R,w.length)),W=[...w.slice(0,R),...q];if(x){let j=0,G=[],ne=async()=>{if(!W[j])return;if(j<R){G.push({txId:"",status:"success",signedTx:W[j]}),K==null||K([...G]),j++,ne();return}let ge=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:ge,status:"sent",signedTx:W[j]}),K==null||K([...G]),j++;let Xe=!1,Le=null,dt=null,An=Ie=>{Le!==null&&clearInterval(Le),dt!==null&&this.connection.removeSignatureListener(dt);let Pe=G.findIndex(Bo=>Bo.txId===ge);if(Pe>-1){if(G[Pe].status==="error"||G[Pe].status==="success")return;G[Pe].status=Ie.err?"error":"success"}K==null||K([...G]),Ie.err||ne()};this.loopMultiTxStatus&&(Le=setInterval(async()=>{var Ie;if(Xe){clearInterval(Le);return}try{let Pe=await this.connection.getTransaction(ge,{commitment:"confirmed",maxSupportedTransactionVersion:0});Pe&&(Xe=!0,clearInterval(Le),An({err:((Ie=Pe.meta)==null?void 0:Ie.err)||null}),console.log("tx status from getTransaction:",ge))}catch(Pe){Xe=!0,clearInterval(Le),console.error("getTransaction timeout:",Pe,ge)}},kt)),dt=this.connection.onSignature(ge,Ie=>{if(Xe){this.connection.removeSignatureListener(dt);return}Xe=!0,An(Ie)},"confirmed"),this.connection.getSignatureStatus(ge)};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:m||{}}}};var en=(...r)=>r.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ie=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=E(t)}createTxBuilder(e){return this.scope.checkOwner(),new Tt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(en(e))}logInfo(...e){this.logger.info(en(e))}logAndCreateError(...e){let t=en(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Il,SystemProgram as Sl}from"@solana/web3.js";import Cl from"bn.js";import{createCloseAccountInstruction as Nl,createInitializeAccountInstruction as Ml,createTransferInstruction as Fl,TOKEN_PROGRAM_ID as vl}from"@solana/spl-token";import{Keypair as ml,PublicKey as dl}from"@solana/web3.js";import yl from"bn.js";import{TOKEN_PROGRAM_ID as Pl}from"@solana/spl-token";import{PublicKey as pi}from"@solana/web3.js";import Wn,{isBN as qn}from"bn.js";import{bits as ni,BitStructure as bc,blob as oi,Blob as gc,cstr as Pc,f32 as Ac,f32be as wc,f64 as kc,f64be as Tc,greedy as hc,Layout as ii,ns64 as Ic,ns64be as Bc,nu64 as Sc,nu64be as xc,offset as ri,s16 as Kc,s16be as Cc,s24 as Rc,s24be as Lc,s32 as ai,s32be as Oc,s40 as Nc,s40be as Mc,s48 as Fc,s48be as vc,s8 as Vc,seq as si,struct as _c,Structure as ui,u16 as ci,u16be as Ec,u24 as Dc,u24be as Wc,u32 as li,u32be as qc,u40 as Uc,u40be as Gc,u48 as zc,u48be as Xc,u8 as mi,UInt as di,union as Yc,Union as Qc,unionLayoutDiscriminator as Zc,utf8 as Hc}from"@solana/buffer-layout";var ht=ii,Vn=ui;var tn=di;var _n=mi,Z=ci;var It=li;var ce=ai;var En=si;var v=oi;var nn=ni,Dn=ri;var Ke=class extends ht{constructor(t,o,i){super(t,i);this.blob=v(t),this.signed=o}decode(t,o=0){let i=new Wn(this.blob.decode(t,o),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(t,o,i=0){return typeof t=="number"&&(t=new Wn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,i)}},Bt=class extends ht{constructor(t){super(8,t);this._lower=nn(It(),!1),this._upper=nn(It(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,o=0){let i=this._lower.decode(t,o),s=this._upper.decode(t,o+this._lower.span);return L(L({},i),s)}encode(t,o,i=0){return this._lower.encode(t,o,i)+this._upper.encode(t,o,i+this._lower.span)}};function d(r){return new tn(1,r)}function X(r){return new tn(4,r)}function n(r){return new Ke(8,!1,r)}function N(r){return new Ke(16,!1,r)}function Un(r){return new Ke(1,!0,r)}function _e(r){return new Ke(8,!0,r)}function Gn(r){return new Ke(16,!0,r)}var ot=class extends ht{constructor(t,o,i,s){super(t.span,s);this.layout=t,this.decoder=o,this.encoder=i}decode(t,o){return this.decoder(this.layout.decode(t,o))}encode(t,o,i){return this.layout.encode(this.encoder(t),o,i)}getSpan(t,o){return this.layout.getSpan(t,o)}};function a(r){return new ot(v(32),e=>new pi(e),e=>e.toBuffer(),r)}function se(r){return new ot(_n(),fi,yi,r)}function fi(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function yi(r){return r?1:0}function zn(r,e){let t=It("length"),o=p([t,b(r,Dn(t,-t.span),"values")]);return new ot(o,({values:i})=>i,i=>({values:i}),e)}var on=class extends Vn{decode(e,t){return super.decode(e,t)}};function p(r,e,t){return new on(r,e,t)}function b(r,e,t){let o,i=typeof e=="number"?e:qn(e)?e.toNumber():new Proxy(e,{get(s,l){if(!o){let m=Reflect.get(s,"count");o=qn(m)?m.toNumber():m,Reflect.set(s,"count",o)}return Reflect.get(s,l)},set(s,l,m){return l==="count"&&(o=m),Reflect.set(s,l,m)}});return En(r,i,t)}var St=p([a("mint"),a("owner"),n("amount"),X("delegateOption"),a("delegate"),d("state"),X("isNativeOption"),n("isNative"),n("delegatedAmount"),X("closeAuthorityOption"),a("closeAuthority")]);import{PublicKey as Yg,SystemProgram as Qg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Hg}from"@solana/spl-token";import{PublicKey as cm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mm}from"@solana/spl-token";import{PublicKey as C}from"@solana/web3.js";var Yn=new C("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Qn=new C("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Zn=new C("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),rn=new C("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ym=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),gi=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Hn=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),jn=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),bm=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Pi=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$n=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ai=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),wi=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Jn=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),gm=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ki=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),an=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ti=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Pm=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),hi=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Bi=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Am=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),wm=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),km=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Tm=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),hm=new C("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ke={OPEN_BOOK_PROGRAM:new C("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new C("Ray1111111111111111111111111111111111111111"),AMM_V4:new C("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new C("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new C("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new C("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new C("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new C("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new C("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new C("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:C.default,Router:new C("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new C("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new C("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new C("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new C("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new C("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new C("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new C("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new C("Ray1111111111111111111111111111111111111111")};import aP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Iy,TOKEN_2022_PROGRAM_ID as By,TOKEN_PROGRAM_ID as Sy}from"@solana/spl-token";import{PublicKey as Ky}from"@solana/web3.js";import Ry from"bn.js";import Oy from"decimal.js";import{TOKEN_PROGRAM_ID as Vm}from"@solana/spl-token";import{PublicKey as Wm}from"@solana/web3.js";var Si=p([X("mintAuthorityOption"),a("mintAuthority"),n("supply"),d("decimals"),d("isInitialized"),X("freezeAuthorityOption"),a("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Xf,TOKEN_2022_PROGRAM_ID as Yf,TOKEN_PROGRAM_ID as Qf}from"@solana/spl-token";import{Keypair as jf,PublicKey as $f,SystemProgram as ey,TransactionInstruction as ty}from"@solana/web3.js";import oy from"bn.js";import D from"bn.js";var le=new D(1).shln(64);var xi=new D(1).shln(128),Kt=new D(1).shln(64).subn(1),Ki=new D(1).shln(128).subn(1);var De=new D("4295048016"),We=new D("79226673521066979257578248091"),Ci=new D("59543866431248"),Ri=new D("184467440737095516"),Li=new D("15793534762490258745");var sn=60,Jm=new D("18446743708227953217"),Oi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var it=3,eo=100;var to=10,no=100,Ct=14;var H=new D(0),qe=new D(1),ed=new D(-1);var td=new D("18446744073700000000");var Ni=p([v(8),d("bump"),Z("index"),a("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Z("tickSpacing"),X("fundFeeRate"),b(X(),1),a("fundOwner"),b(n(),3)]),Mi=p([X("blockTimestamp"),_e("tickCumulative"),b(n(),4)]),oo=p([v(8),se("initialized"),n("recentEpoch"),Z("observationIndex"),a("poolId"),b(Mi,eo,"observations"),b(n(),4)]),Fi=p([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),n("lastUpdateTimestamp"),b(d(),46)]),vi=p([d("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),N("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),a("mint"),a("vault"),a("creator"),N("growthGlobalX64")]),un=p([v(8),d("bump"),a("configId"),a("creator"),a("mintA"),a("mintB"),a("vaultA"),a("vaultB"),a("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),Z("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),ce("tickCurrent"),X(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),b(N(),4),d("status"),d("feeOn"),v(6),b(vi,it,"rewardInfos"),v(8*16,"tickArrayBitmap"),b(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),Fi.replicate("dynamicFeeInfo"),b(n(),46)]),Vi=p([N("growthInsideLastX64"),n("rewardAmountOwed")]),_i=p([v(8),d("bump"),a("nftMint"),a("poolId"),ce("tickLower"),ce("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),b(Vi,it,"rewardInfos"),n("recentEpoch"),b(n(),7)]),rd=p([v(8),d("bump"),a("poolId"),ce("tickLower"),ce("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),b(N(),it,"rewardGrowthInside"),n("recentEpoch"),b(n(),7)]),Ei=p([ce("tick"),Gn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),b(N(),it,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),N("unfilledRatioX64"),b(X(),3)]),io=p([v(8),a("poolId"),ce("startTickIndex"),b(Ei,sn,"ticks"),d("initializedTickCount"),n("recentEpoch"),b(d(),107)]),Di=p([v(8),d("bump"),b(a(),to,"operationOwners"),b(a(),no,"whitelistMints")]),Wi=p([v(8),a("poolId"),a("owner"),ce("tick"),se("zeroForOne"),n("orderPhase"),n("totalAmount"),n("filledAmount"),n("settleBase"),n("settleOutput"),n("openTime"),N("unfilledRatioX64"),b(n(),4)]),ro=p([v(8),a("poolId"),v(8*8*Ct,"positiveTickArrayBitmap"),v(8*8*Ct,"negativeTickArrayBitmap")]),ad=p([v(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),b(n(),8)]),qi=p([v(8),a("wallet"),d("nonceIndex"),n("orderNonce"),b(n(),4)]),sd=p([n(),d("bump"),a("owner"),a("poolId"),a("positionId"),a("nftAccount"),b(n(),8)]),Ui=p([v(8),d("bump"),a("lockOwner"),a("poolId"),a("positionId"),a("nftAccount"),a("lockNftMint"),n("recentEpoch"),b(n(),8)]);import ld from"bn.js";var kd=Buffer.from("amm_config","utf8"),Gi=Buffer.from("pool","utf8"),zi=Buffer.from("pool_vault","utf8"),Td=Buffer.from("pool_reward_vault","utf8"),hd=Buffer.from("position","utf8"),Id=Buffer.from("tick_array","utf8"),Bd=Buffer.from("operation","utf8"),Sd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),xd=Buffer.from("observation","utf8"),Kd=Buffer.from("support_mint","utf8"),Cd=Buffer.from("dynamic_fee_config","utf8");var Rd=Buffer.from("locked_position","utf8");import{sha256 as ar}from"js-sha256";import Xi from"bn.js";import Md from"decimal.js";var vd=new Xi(1).shln(256).subn(1);import ep from"bn.js";import Ud from"bn.js";import zd from"decimal.js";import rp from"bn.js";import sp from"decimal.js";import{PublicKey as Yp}from"@solana/web3.js";import Zp from"bn.js";import{TOKEN_2022_PROGRAM_ID as of,TOKEN_PROGRAM_ID as rf}from"@solana/spl-token";import cf from"decimal.js";import vp from"bn.js";import hp from"bn.js";import wf from"bn.js";function $(r){let e=`global:${r}`;return Buffer.from(ar.digest(e)).slice(0,8)}oo.span;var my=E("Raydium_Clmm"),dy={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 dn}from"@solana/web3.js";var mr=p([d("instruction")]),dr=p([d("instruction")]),pr=p([n("rewardState"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardLastUpdateTime"),n("totalReward"),n("totalRewardEmissioned"),n("rewardClaimed"),n("rewardPerSecond"),N("accRewardPerShare"),a("rewardVault"),a("rewardMint"),a("rewardSender"),n("rewardType"),b(n(),15,"padding")]),fr=p([n("state"),n("nonce"),a("lpVault"),a("rewardVault"),a(),a(),n(),n(),n("totalReward"),N("perShareRewar