@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 86.7 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 _a,TOKEN_PROGRAM_ID as Ea,getTransferFeeConfig as Da,unpackMint as Wa}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 IC from"decimal.js";import Eo from"big.js";import is 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 ps=E("Raydium_amount"),fs=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"),Ts=new z("SysvarC1ock11111111111111111111111111111111"),gt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),zo=new z("Sysvar1nstructions1111111111111111111111111"),Xo=xn.programId,hs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Is=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Bs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ss=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),xs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ks=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Cs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Rs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ls=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Os=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ns=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 zs=new U(new Yo(100));var js=E("Raydium_price");import{merge as SK}from"lodash";import au 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 Cu=E("Raydium_Api");import{PublicKey as Ql,SystemProgram as Zl}from"@solana/web3.js";import{AccountLayout as em,createAssociatedTokenAccountIdempotentInstruction as tm,TOKEN_PROGRAM_ID as nm,TOKEN_2022_PROGRAM_ID as om}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 Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as 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(Z.SetComputeUnitPrice)),r.units&&(e.push(Ln.setComputeUnitLimit({units:r.units})),t.push(Z.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(Z.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($=>$.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,$=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),$({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,$(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 $ of w){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{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 $=0,G=[],ne=async()=>{if(!W[$])return;if($<R){G.push({txId:"",status:"success",signedTx:W[$]}),K==null||K([...G]),$++,ne();return}let ge=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:ge,status:"sent",signedTx:W[$]}),K==null||K([...G]),$++;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 $=[];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: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 Bl,SystemProgram as xl}from"@solana/web3.js";import Rl from"bn.js";import{createCloseAccountInstruction as Ml,createInitializeAccountInstruction as Fl,createTransferInstruction as vl,TOKEN_PROGRAM_ID as Vl}from"@solana/spl-token";import{Keypair as dl,PublicKey as pl}from"@solana/web3.js";import bl from"bn.js";import{TOKEN_PROGRAM_ID as Al}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 gc,blob as oi,Blob as Pc,cstr as Ac,f32 as wc,f32be as kc,f64 as Tc,f64be as hc,greedy as Ic,Layout as ii,ns64 as Bc,ns64be as Sc,nu64 as xc,nu64be as Kc,offset as ri,s16 as Cc,s16be as Rc,s24 as Lc,s24be as Oc,s32 as ai,s32be as Nc,s40 as Mc,s40be as Fc,s48 as vc,s48be as Vc,s8 as _c,seq as si,struct as Ec,Structure as ui,u16 as ci,u16be as Dc,u24 as Wc,u24be as qc,u32 as li,u32be as Uc,u40 as Gc,u40be as zc,u48 as Xc,u48be as Yc,u8 as mi,UInt as di,union as Qc,Union as Zc,unionLayoutDiscriminator as Hc,utf8 as jc}from"@solana/buffer-layout";var ht=ii,Vn=ui;var tn=di;var _n=mi,Y=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 jg,SystemProgram as $g}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as eP}from"@solana/spl-token";import{PublicKey as lm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as dm}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"),bm=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),gi=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Hn=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),jn=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),gm=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Pi=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$n=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ai=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),wi=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Jn=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Pm=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ki=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),an=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ti=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Am=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),hi=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Bi=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),wm=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),km=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Tm=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),hm=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Im=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 lP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ky,TOKEN_2022_PROGRAM_ID as Cy,TOKEN_PROGRAM_ID as Ry}from"@solana/spl-token";import{PublicKey as Oy}from"@solana/web3.js";import My from"bn.js";import vy from"decimal.js";import{TOKEN_PROGRAM_ID as _m}from"@solana/spl-token";import{PublicKey as qm}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 Hf,TOKEN_2022_PROGRAM_ID as jf,TOKEN_PROGRAM_ID as $f}from"@solana/spl-token";import{Keypair as ty,PublicKey as ny,SystemProgram as iy,TransactionInstruction as ry}from"@solana/web3.js";import sy 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,ed=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),td=new D(-1);var nd=new D("18446744073700000000");var Ni=p([v(8),d("bump"),Y("index"),a("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("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"),Y("observationIndex"),a("poolId"),b(Mi,eo,"observations"),b(n(),4)]),Fi=p([Y("filterPeriod"),Y("decayPeriod"),Y("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"),Y("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)]),ad=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")]),sd=p([v(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),b(n(),8)]),qi=p([v(8),a("wallet"),d("nonceIndex"),n("orderNonce"),b(n(),4)]),ud=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 md from"bn.js";var Td=Buffer.from("amm_config","utf8"),zi=Buffer.from("pool","utf8"),Xi=Buffer.from("pool_vault","utf8"),hd=Buffer.from("pool_reward_vault","utf8"),Id=Buffer.from("position","utf8"),Bd=Buffer.from("tick_array","utf8"),Sd=Buffer.from("operation","utf8"),xd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Kd=Buffer.from("observation","utf8"),Cd=Buffer.from("support_mint","utf8"),Rd=Buffer.from("dynamic_fee_config","utf8"),Ld=Buffer.from("permission","utf8");var Od=Buffer.from("locked_position","utf8");import{sha256 as sr}from"js-sha256";import Yi from"bn.js";import vd from"decimal.js";var _d=new Yi(1).shln(256).subn(1);import np from"bn.js";import zd from"bn.js";import Yd from"decimal.js";import sp from"bn.js";import cp from"decimal.js";import{PublicKey as Zp}from"@solana/web3.js";import jp from"bn.js";import{TOKEN_2022_PROGRAM_ID as af,TOKEN_PROGRAM_ID as sf}from"@solana/spl-token";import mf from"decimal.js";import _p from"bn.js";import Bp from"bn.js";import Tf from"bn.js";function j(r){let e=`global:${r}`;return Buffer.from(sr.digest(e)).slice(0,8)}oo.span;var yy=E("Raydium_Clmm"),by={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as dn}from"@solana/web3.js";var dr=p([d("instruction")]),pr=p([d("instruction")]),fr=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")]),yr=p([n("state"),n