@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 87.4 kB
JavaScript
var Co=Object.defineProperty,Ro=Object.defineProperties;var Lo=Object.getOwnPropertyDescriptors;var ft=Object.getOwnPropertySymbols;var Tn=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable;var kn=(r,e,t)=>e in r?Co(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,L=(r,e)=>{for(var t in e||(e={}))Tn.call(e,t)&&kn(r,t,e[t]);if(ft)for(var t of ft(e))hn.call(e,t)&&kn(r,t,e[t]);return r},V=(r,e)=>Ro(r,Lo(e));var de=(r,e)=>{var t={};for(var o in r)Tn.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&ft)for(var o of ft(r))e.indexOf(o)<0&&hn.call(r,o)&&(t[o]=r[o]);return t};import ce from"bn.js";import xo from"decimal.js";import{PublicKey as Mo}from"@solana/web3.js";import{get as In,set as Oo}from"lodash";var Wt=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}},Bn={},No={};function E(r){let e=In(Bn,r);if(!e){let t=In(No,r);e=new Wt({name:r,logLevel:t}),Oo(Bn,r,e)}return e}import{MINT_SIZE as Za,TOKEN_PROGRAM_ID as Ha,getTransferFeeConfig as ja,unpackMint as $a}from"@solana/spl-token";var qt=E("Raydium_accountInfo_util");async function we(r,e,t){let{batchRequest:o,commitment:i="confirmed",chunkCount:s=100}=L({batchRequest:!1},t),l=Ut(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=Ut(y,10);m=(await(await Promise.all(g.map(async P=>await r._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&qt.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"&&qt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(h[0],"base64"),executable:I,lamports:w,owner:new Mo(k),rentEpoch:B}}return null})))}else try{m=await Promise.all(l.map(y=>r.getMultipleAccountsInfo(y,i)))}catch(y){y instanceof Error&&qt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return m.flat()}import he from"bn.js";import nR from"decimal.js";import qo from"big.js";import ys from"bn.js";import Fo from"toformat";var vo=Fo,Ze=vo;import bt from"big.js";import _o from"bn.js";import Eo from"decimal.js-light";import He from"bn.js";var Sn=9007199254740991;function oe(r){let e=E("Raydium_parseBigNumberish");if(r instanceof He)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new He(r);e.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&e.logWithError(`BigNumberish number underflow: ${r}`),(r>=Sn||r<=-Sn)&&e.logWithError(`BigNumberish number overflow: ${r}`),new He(String(r))):typeof r=="bigint"?new He(r.toString()):(e.error(`invalid BigNumberish value: ${r}`),new He(0))}var yt=E("module/fraction"),Gt=Ze(bt),je=Ze(Eo),Do={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},Wo={[0]:bt.roundDown,[1]:bt.roundHalfUp,[2]:bt.roundUp},U=class{constructor(e,t=new _o(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)||yt.logWithError(`${e} is not an integer.`),e<=0&&yt.logWithError(`${e} is not positive.`),je.set({precision:e+1,rounding:Do[o]});let i=new je(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)||yt.logWithError(`${e} is not an integer.`),e<0&&yt.logWithError(`${e} is negative.`),Gt.DP=e,Gt.RM=Wo[o]||1,new Gt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Is=E("Raydium_amount"),Bs=Ze(qo);import{PublicKey as Go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xn}from"@solana/spl-token";var gt={chainId:101,address:Go.default.toBase58(),programId:xn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:xn.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 Yt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as Kn,SYSVAR_RENT_PUBKEY as zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yo}from"@solana/spl-token";function Oe({pubkey:r,isSigner:e=!1,isWritable:t=!0}){return{pubkey:r,isWritable:t,isSigner:e}}var Xo=[Oe({pubkey:Yo,isWritable:!1}),Oe({pubkey:Kn.programId,isWritable:!1}),Oe({pubkey:zo,isWritable:!1})];function Cn({publicKey:r,transformSol:e}){let t=Rn(r.toString());if(t instanceof z)return e&&t.equals(Be)?pe:t;if(e&&t.toString()===Be.toBase58())return pe;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 Rn(r){try{return new z(r)}catch{return r}}var zt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ne=new z("SysvarRent111111111111111111111111111111111"),Qo=new z("SysvarC1ock11111111111111111111111111111111"),Pt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Zo=new z("Sysvar1nstructions1111111111111111111111111"),Ln=Kn.programId,Ns=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ms=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Fs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),vs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Vs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),_s=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Es=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ds=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ws=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),qs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Us=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),pe=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 Yt&&Be.equals(e)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new Yt(fe.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?Yt.default:Cn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},J=Xt;J.WSOL=new Xt(V(L({},fe),{mint:fe.address}));var Qt=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},At=Qt;At.SOL=new Qt(gt);import Ho from"bn.js";var tu=new U(new Ho(100));var su=E("Raydium_price");import{merge as nC}from"lodash";import bu from"axios";var On={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},jo=V(L({},On),{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 Eu=E("Raydium_Api");import{PublicKey as om,SystemProgram as im}from"@solana/web3.js";import{AccountLayout as cm,createAssociatedTokenAccountIdempotentInstruction as lm,TOKEN_PROGRAM_ID as mm,TOKEN_2022_PROGRAM_ID as dm}from"@solana/spl-token";import{PublicKey as _e,sendAndConfirmTransaction as en,SystemProgram as oi,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import ii from"axios";import{PublicKey as Zt,AddressLookupTableAccount as ve}from"@solana/web3.js";async function Ht({connection:r,address:e,cluster:t="mainnet"}){let o=await we(r,[...new Set(e.map(s=>s.toString()))].map(s=>new Zt(s))),i={};for(let s=0;s<e.length;s++){let l=o[s],m=e[s];if(!l)continue;let y=new ve({key:m,state:ve.deserialize(l.data)});i[m.toString()]=y,t==="devnet"?Fe[m.toString()]=y:Me[m.toString()]=y}return i}var Me={},jt=async r=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Me[e])return Me;let t=new Zt(e),o=await r.getAccountInfo(t);return o&&(Me[e]=new ve({key:t,state:ve.deserialize(o.data)})),Me},Fe={},$t=async r=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Fe[e])return Fe;let t=new Zt(e),o=await r.getAccountInfo(t);return o&&(Fe[e]=new ve({key:t,state:ve.deserialize(o.data)})),Fe};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 Nn,Keypair as Fn,PublicKey as $o,Transaction as vn,TransactionMessage as Jo,VersionedTransaction as Vn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ei}from"@solana/spl-token";var Mn=E("Raydium_txUtil"),_n=1644;function wt(r){let e=[],t=[];return r.microLamports&&(e.push(Nn.setComputeUnitPrice({microLamports:r.microLamports})),t.push(Q.SetComputeUnitPrice)),r.units&&(e.push(Nn.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 kt(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 Jt(r,e){r.length<1&&Mn.logWithError(`no instructions provided: ${r.toString()}`),e.length<1&&Mn.logWithError(`no signers provided:, ${e.toString()}`);let t=new vn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...r);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<_n}catch{return!1}}function ye(r,e){let[t,o]=$o.findProgramAddressSync(r,e);return{publicKey:t,nonce:o}}function $e({instructions:r,payer:e,signers:t}){return Jt(r,[e,...t])}function Je({instructions:r,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=Fn.generate().publicKey.toString()}){let s=new Jo({payerKey:e,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Vn(s).serialize()).toString("base64").length<_n}catch{return!1}}var ti=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),ni=r=>{let e=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Vn&&(e=ti(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 vn&&(t.recentBlockhash||(t.recentBlockhash=ei.toBase58()),t.feePayer||(t.feePayer=Fn.generate().publicKey)),e.push(ni(t))}),console.log("simulate tx string:",e),e}var Tt=2e3,ht=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 ii.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}=wt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(oi.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new _e(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!==_e.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:o}){return e===0?await this.buildV0(V(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 en(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 en(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 C=await this.connection.sendRawTransaction(M[F].serialize(),{skipPreflight:w});A.push({txId:C,status:"sent",signedTx:M[F]}),S==null||S([...A]),F++;let R=!1,O=null,_=null,ae=q=>{O!==null&&clearInterval(O),_!==null&&this.connection.removeSignatureListener(_);let W=A.findIndex(j=>j.txId===C);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(C,{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:",C))}catch(W){R=!0,clearInterval(O),console.error("getTransaction timeout:",W,C)}},Tt)),_=this.connection.onSignature(C,q=>{if(R){this.connection.removeSignatureListener(_);return}R=!0,ae(q)},"confirmed"),this.connection.getSignatureStatus(C)};return await x(),{txIds:A.map(C=>C.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 $t(this.connection):await jt(this.connection)),t),y=Array.from(new Set([...o,...this.lookupTableAddress])),g=[];for(let k of y)m[k]===void 0&&g.push(new _e(k));let f=await Ht({connection:this.connection,address:g});for(let[k,B]of Object.entries(f))m[k]=B;let P=i?_e.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 kt(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 kt(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,C=null,R=O=>{x!==null&&clearInterval(x),C!==null&&this.connection.removeSignatureListener(C);let _=T.findIndex(ae=>ae.txId===F);if(_>-1){if(T[_].status==="error"||T[_].status==="success")return;T[_].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 _=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(A=!0,clearInterval(x),R({err:((O=_.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",F))}catch(_){A=!0,clearInterval(x),console.error("getTransaction timeout:",_,F)}},Tt)),C=this.connection.onSignature(F,O=>{if(A){this.connection.removeSignatureListener(C);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?wt(o):{instructions:[],instructionTypes:[]},l=this.signers.reduce((h,I)=>V(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 _e(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 C of m){if(++A,A<=k){x.push("tx skipped");continue}let R=await en(this.connection,C,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 C=0,R=[],O=async()=>{if(!x[C])return;C<k&&(R.push({txId:"",status:"success",signedTx:x[C]}),w==null||w([...R]),C++,O());let _=await this.connection.sendRawTransaction(x[C].serialize(),{skipPreflight:T});R.push({txId:_,status:"sent",signedTx:x[C]}),w==null||w([...R]),C++;let ae=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=R.findIndex(Pe=>Pe.txId===_);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(_,{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:",_))}catch(ne){ae=!0,clearInterval(q),console.error("getTransaction timeout:",ne,_)}},Tt)),W=this.connection.onSignature(_,G=>{if(ae){this.connection.removeSignatureListener(W);return}ae=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await O(),{txIds:R.map(_=>_.txId),signedTxs:x}}else{let C=[];for(let R=0;R<x.length;R+=1){let O=await this.connection.sendRawTransaction(x[R].serialize(),{skipPreflight:T});C.push(O)}return{txIds:C,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 $t(this.connection):await jt(this.connection)),i),g=Array.from(new Set([...this.lookupTableAddress,...s])),f=[];for(let A of g)y[A]===void 0&&f.push(new _e(A));let P=await Ht({connection:this.connection,address:f});for(let[A,x]of Object.entries(P))y[A]=x;let S=t?wt(t):{instructions:[],instructionTypes:[]},h=await Ve(this.connection,this.blockhashCommitment),I=this.signers.reduce((A,x)=>V(L({},A),{[x.publicKey.toBase58()]:x}),{}),w=[],k=[],B=[],T=0;if(this.allInstructions.forEach(A=>{let x=[...B,A],C=t?[...S.instructions,...x]:x;if(A!==o[T]&&B.length<l&&(Je({instructions:C,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(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(O=>I[O]).filter(O=>O!==void 0)),B=[A]}}),B.length>0){let x=[...new Set(B.map(C=>C.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(C=>I[C]).filter(C=>C!==void 0);if(t&&Je({instructions:[...S.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:h})){let C=new tt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...S.instructions,...B]}).compileToV0Message(Object.values(y));w.push(new nt(C))}else{let C=new tt({payerKey:this.feePayer,recentBlockhash:h,instructions:[...B]}).compileToV0Message(Object.values(y));w.push(new nt(C))}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:C,skipTxCount:R=0,recentBlockHash:O,skipPreflight:_=!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:_});await kt(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:_}))),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]}),C==null||C([...G]),j++,ne();return}let Pe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:Pe,status:"sent",signedTx:W[j]}),C==null||C([...G]),j++;let Xe=!1,Le=null,pt=null,wn=Ie=>{Le!==null&&clearInterval(Le),pt!==null&&this.connection.removeSignatureListener(pt);let Ae=G.findIndex(Ko=>Ko.txId===Pe);if(Ae>-1){if(G[Ae].status==="error"||G[Ae].status==="success")return;G[Ae].status=Ie.err?"error":"success"}C==null||C([...G]),Ie.err||ne()};this.loopMultiTxStatus&&(Le=setInterval(async()=>{var Ie;if(Xe){clearInterval(Le);return}try{let Ae=await this.connection.getTransaction(Pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ae&&(Xe=!0,clearInterval(Le),wn({err:((Ie=Ae.meta)==null?void 0:Ie.err)||null}),console.log("tx status from getTransaction:",Pe))}catch(Ae){Xe=!0,clearInterval(Le),console.error("getTransaction timeout:",Ae,Pe)}},Tt)),pt=this.connection.onSignature(Pe,Ie=>{if(Xe){this.connection.removeSignatureListener(pt);return}Xe=!0,wn(Ie)},"confirmed"),this.connection.getSignatureStatus(Pe)};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:_});j.push(ne)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var tn=(...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 ht({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(tn(e))}logInfo(...e){this.logger.info(tn(e))}logAndCreateError(...e){let t=tn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ml,SystemProgram as vl}from"@solana/web3.js";import El from"bn.js";import{createCloseAccountInstruction as Ul,createInitializeAccountInstruction as Gl,createTransferInstruction as zl,TOKEN_PROGRAM_ID as Yl}from"@solana/spl-token";import{Keypair as kl,PublicKey as Tl}from"@solana/web3.js";import Bl from"bn.js";import{TOKEN_PROGRAM_ID as Kl}from"@solana/spl-token";import{PublicKey as gi}from"@solana/web3.js";import Gn,{isBN as zn}from"bn.js";import{bits as ri,BitStructure as xc,blob as ai,Blob as Kc,cstr as Cc,f32 as Rc,f32be as Lc,f64 as Oc,f64be as Nc,greedy as Mc,Layout as si,ns64 as Fc,ns64be as vc,nu64 as ui,nu64be as Vc,offset as ci,s16 as _c,s16be as Ec,s24 as Dc,s24be as Wc,s32 as li,s32be as qc,s40 as Uc,s40be as Gc,s48 as zc,s48be as Yc,s8 as Xc,seq as mi,struct as Qc,Structure as di,u16 as pi,u16be as Zc,u24 as Hc,u24be as jc,u32 as fi,u32be as $c,u40 as Jc,u40be as el,u48 as tl,u48be as nl,u8 as yi,UInt as bi,union as ol,Union as il,unionLayoutDiscriminator as rl,utf8 as al}from"@solana/buffer-layout";var It=si,En=di;var nn=bi;var Dn=yi,Z=pi;var Bt=fi;var Wn=ui;var le=li;var qn=mi;var v=ai;var on=ri,Un=ci;var Ke=class extends It{constructor(t,o,i){super(t,i);this.blob=v(t),this.signed=o}decode(t,o=0){let i=new Gn(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 Gn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,i)}},St=class extends It{constructor(t){super(8,t);this._lower=on(Bt(),!1),this._upper=on(Bt(),!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 nn(1,r)}function Y(r){return new nn(4,r)}function n(r){return new Ke(8,!1,r)}function N(r){return new Ke(16,!1,r)}function Yn(r){return new Ke(1,!0,r)}function Ee(r){return new Ke(8,!0,r)}function Xn(r){return new Ke(16,!0,r)}var ot=class extends It{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 gi(e),e=>e.toBuffer(),r)}function se(r){return new ot(Dn(),Pi,Ai,r)}function Pi(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function Ai(r){return r?1:0}function Qn(r,e){let t=Bt("length"),o=p([t,b(r,Un(t,-t.span),"values")]);return new ot(o,({values:i})=>i,i=>({values:i}),e)}var rn=class extends En{decode(e,t){return super.decode(e,t)}};function p(r,e,t){return new rn(r,e,t)}function b(r,e,t){let o,i=typeof e=="number"?e:zn(e)?e.toNumber():new Proxy(e,{get(s,l){if(!o){let m=Reflect.get(s,"count");o=zn(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 qn(r,i,t)}var xt=p([a("mint"),a("owner"),n("amount"),Y("delegateOption"),a("delegate"),d("state"),Y("isNativeOption"),n("isNative"),n("delegatedAmount"),Y("closeAuthorityOption"),a("closeAuthority")]);import{PublicKey as Jg,SystemProgram as eP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as nP}from"@solana/spl-token";import{PublicKey as Am}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as km}from"@solana/spl-token";import{PublicKey as K}from"@solana/web3.js";var Hn=new K("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),jn=new K("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),$n=new K("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),an=new K("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Bm=new K("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ki=new K("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Jn=new K("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),eo=new K("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Sm=new K("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ti=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),to=new K("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),hi=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new K("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),no=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),xm=new K("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Bi=new K("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Si=new K("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),xi=new K("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ki=new K("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ci=new K("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),sn=new K("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ri=new K("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Km=new K("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Li=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Oi=new K("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ni=new K("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Cm=new K("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Rm=new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Lm=new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Om=new K("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Nm=new K("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),it={IDO_PROGRAM_ID_V1:Si,IDO_PROGRAM_ID_V2:xi,IDO_PROGRAM_ID_V3:Ki,IDO_PROGRAM_ID_V4:Ci};var ke={OPEN_BOOK_PROGRAM:new K("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new K("Ray1111111111111111111111111111111111111111"),AMM_V4:new K("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new K("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new K("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new K("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new K("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new K("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new K("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new K("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new K("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new K("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:K.default,Router:new K("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new K("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new K("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new K("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new K("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new K("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new K("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new K("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new K("Ray1111111111111111111111111111111111111111")};import dP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ry,TOKEN_2022_PROGRAM_ID as Ly,TOKEN_PROGRAM_ID as Oy}from"@solana/spl-token";import{PublicKey as My}from"@solana/web3.js";import vy from"bn.js";import _y from"decimal.js";import{TOKEN_PROGRAM_ID as Xm}from"@solana/spl-token";import{PublicKey as jm}from"@solana/web3.js";var Mi=p([Y("mintAuthorityOption"),a("mintAuthority"),n("supply"),d("decimals"),d("isInitialized"),Y("freezeAuthorityOption"),a("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as $f,TOKEN_2022_PROGRAM_ID as Jf,TOKEN_PROGRAM_ID as ey}from"@solana/spl-token";import{Keypair as oy,PublicKey as iy,SystemProgram as ay,TransactionInstruction as sy}from"@solana/web3.js";import cy from"bn.js";import D from"bn.js";var ue=new D(1).shln(64);var Fi=new D(1).shln(128),Ct=new D(1).shln(64).subn(1),vi=new D(1).shln(128).subn(1);var We=new D("4295048016"),qe=new D("79226673521066979257578248091"),Vi=new D("59543866431248"),_i=new D("184467440737095516"),Ei=new D("15793534762490258745");var un=60,cd=new D("18446743708227953217"),Di=[{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 rt=3,oo=100;var io=10,ro=100,Rt=14;var H=new D(0),Ue=new D(1),ld=new D(-1);var md=new D("18446744073700000000");var Wi=p([v(8),d("bump"),Z("index"),a("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Z("tickSpacing"),Y("fundFeeRate"),b(Y(),1),a("fundOwner"),b(n(),3)]),qi=p([Y("blockTimestamp"),Ee("tickCumulative"),b(n(),4)]),ao=p([v(8),se("initialized"),n("recentEpoch"),Z("observationIndex"),a("poolId"),b(qi,oo,"observations"),b(n(),4)]),Ui=p([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),le("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),n("lastUpdateTimestamp"),b(d(),46)]),Gi=p([d("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),N("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),a("mint"),a("vault"),a("creator"),N("growthGlobalX64")]),cn=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"),le("tickCurrent"),Y(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),b(N(),4),d("status"),d("feeOn"),v(6),b(Gi,rt,"rewardInfos"),v(8*16,"tickArrayBitmap"),b(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),Ui.replicate("dynamicFeeInfo"),b(n(),46)]),zi=p([N("growthInsideLastX64"),n("rewardAmountOwed")]),Yi=p([v(8),d("bump"),a("nftMint"),a("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),b(zi,rt,"rewardInfos"),n("recentEpoch"),b(n(),7)]),yd=p([v(8),d("bump"),a("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),b(N(),rt,"rewardGrowthInside"),n("recentEpoch"),b(n(),7)]),Xi=p([le("tick"),Xn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),b(N(),rt,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),N("unfilledRatioX64"),b(Y(),3)]),so=p([v(8),a("poolId"),le("startTickIndex"),b(Xi,un,"ticks"),d("initializedTickCount"),n("recentEpoch"),b(d(),107)]),Qi=p([v(8),d("bump"),b(a(),io,"operationOwners"),b(a(),ro,"whitelistMints")]),Zi=p([v(8),a("poolId"),a("owner"),le("tick"),se("zeroForOne"),n("orderPhase"),n("totalAmount"),n("filledAmount"),n("settleBase"),n("settleOutput"),n("openTime"),N("unfilledRatioX64"),b(n(),4)]),uo=p([v(8),a("poolId"),v(8*8*Rt,"positiveTickArrayBitmap"),v(8*8*Rt,"negativeTickArrayBitmap")]),bd=p([v(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),b(n(),8)]),Hi=p([v(8),a("wallet"),d("nonceIndex"),n("orderNonce"),b(n(),4)]),gd=p([n(),d("bump"),a("owner"),a("poolId"),a("positionId"),a("nftAccount"),b(n(),8)]),ji=p([v(8),d("bump"),a("lockOwner"),a("poolId"),a("positionId"),a("nftAccount"),a("lockNftMint"),n("recentEpoch"),b(n(),8)]);import wd from"bn.js";var Ld=Buffer.from("amm_config","utf8"),$i=Buffer.from("pool","utf8"),Ji=Buffer.from("pool_vault","utf8"),Od=Buffer.from("pool_reward_vault","utf8"),Nd=Buffer.from("position","utf8"),Md=Buffer.from("tick_array","utf8"),Fd=Buffer.from("operation","utf8"),vd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Vd=Buffer.from("observation","utf8"),_d=Buffer.from("support_mint","utf8"),Ed=Buffer.from("dynamic_fee_config","utf8");var Dd=Buffer.from("locked_position","utf8");import{sha256 as yr}from"js-sha256";import er from"bn.js";import Gd from"decimal.js";var Yd=new er(1).shln(256).subn(1);import lp from"bn.js";import Jd from"bn.js";import tp from"decimal.js";import Pp from"bn.js";import wp from"decimal.js";import{PublicKey as nf}from"@solana/web3.js";import rf from"bn.js";import{TOKEN_2022_PROGRAM_ID as pf}from"@solana/spl-token";import gf from"decimal.js";import zp from"bn.js";import Op from"bn.js";import Sf from"bn.js";function $(r){let e=`global:${r}`;return Buffer.from(yr.digest(e)).slice(0,8)}ao.span;var gy=E("Raydium_Clmm"),Py={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 fn}from"@solana/web3.js";var wr=p([d("instruction")]),kr=p([d("instruction")]),Tr=p([n("rewardState"),n("rewardO