@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 106 kB
JavaScript
var Qo=Object.defineProperty,Zo=Object.defineProperties;var Ho=Object.getOwnPropertyDescriptors;var It=Object.getOwnPropertySymbols;var Mn=Object.prototype.hasOwnProperty,Fn=Object.prototype.propertyIsEnumerable;var Nn=(i,e,t)=>e in i?Qo(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,N=(i,e)=>{for(var t in e||(e={}))Mn.call(e,t)&&Nn(i,t,e[t]);if(It)for(var t of It(e))Fn.call(e,t)&&Nn(i,t,e[t]);return i},F=(i,e)=>Zo(i,Ho(e));var ge=(i,e)=>{var t={};for(var o in i)Mn.call(i,o)&&e.indexOf(o)<0&&(t[o]=i[o]);if(i!=null&&It)for(var o of It(i))e.indexOf(o)<0&&Fn.call(i,o)&&(t[o]=i[o]);return t};import{PublicKey as Jo}from"@solana/web3.js";import{get as vn,set as jo}from"lodash";var jt=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}},Vn={},$o={};function D(i){let e=vn(Vn,i);if(!e){let t=vn($o,i);e=new jt({name:i,logLevel:t}),jo(Vn,i,e)}return e}import{MINT_SIZE as Ms,TOKEN_PROGRAM_ID as Fs,getTransferFeeConfig as vs,unpackMint as Vs}from"@solana/spl-token";var $t=D("Raydium_accountInfo_util");async function Ie(i,e,t){let{batchRequest:o,commitment:r="confirmed",chunkCount:a=100}=N({batchRequest:!1},t),s=Jt(e,a),c=new Array(s.length).fill([]);if(o){let f=s.map(P=>{let x=i._buildArgs([P.map(T=>T.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:x}}),g=Jt(f,10);c=(await(await Promise.all(g.map(async P=>await i._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&$t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.error.message}`),P.result.value.map(x=>{if(x){let{data:T,executable:h,lamports:w,owner:A,rentEpoch:B}=x;return T.length!==2&&T[1]!=="base64"&&$t.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:h,lamports:w,owner:new Jo(A),rentEpoch:B}}return null})))}else try{c=await Promise.all(s.map(f=>i.getMultipleAccountsInfo(f,r)))}catch(f){f instanceof Error&&$t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.message}`)}return c.flat()}import Re from"bn.js";import jC from"decimal.js";import si from"big.js";import eu from"bn.js";import ei from"toformat";var ti=ei,it=ti;import St from"big.js";import oi from"bn.js";import ii from"decimal.js-light";import rt from"bn.js";var _n=9007199254740991;function ue(i){let e=D("Raydium_parseBigNumberish");if(i instanceof rt)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new rt(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=_n||i<=-_n)&&e.logWithError(`BigNumberish number overflow: ${i}`),new rt(String(i))):typeof i=="bigint"?new rt(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new rt(0))}var Bt=D("module/fraction"),en=it(St),at=it(ii),ri={[0]:at.ROUND_DOWN,[1]:at.ROUND_HALF_UP,[2]:at.ROUND_UP},ai={[0]:St.roundDown,[1]:St.roundHalfUp,[2]:St.roundUp},U=class{constructor(e,t=new oi(1)){this.numerator=ue(e),this.denominator=ue(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(ue(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(ue(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(ue(e));return new U(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof U?e:new U(ue(e));return new U(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},o=1){Number.isInteger(e)||Bt.logWithError(`${e} is not an integer.`),e<=0&&Bt.logWithError(`${e} is not positive.`),at.set({precision:e+1,rounding:ri[o]});let r=new at(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},o=1){return Number.isInteger(e)||Bt.logWithError(`${e} is not an integer.`),e<0&&Bt.logWithError(`${e} is negative.`),en.DP=e,en.RM=ai[o]||1,new en(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var cu=D("Raydium_amount"),lu=it(si);import{PublicKey as ci}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as En}from"@solana/spl-token";var xt={chainId:101,address:ci.default.toBase58(),programId:En.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ae={chainId:101,address:"So11111111111111111111111111111111111111112",programId:En.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 nn}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Dn,SYSVAR_RENT_PUBKEY as li}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mi}from"@solana/spl-token";function De({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var di=[De({pubkey:mi,isWritable:!1}),De({pubkey:Dn.programId,isWritable:!1}),De({pubkey:li,isWritable:!1})];function Wn({publicKey:i,transformSol:e}){let t=qn(i.toString());if(t instanceof X)return e&&t.equals(Oe)?Pe:t;if(e&&t.toString()===Oe.toBase58())return Pe;if(typeof t=="string"){if(t===X.default.toBase58())return X.default;try{return new X(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function qn(i){try{return new X(i)}catch{return i}}var tn=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Se=new X("SysvarRent111111111111111111111111111111111"),pi=new X("SysvarC1ock11111111111111111111111111111111"),We=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),fi=new X("Sysvar1nstructions1111111111111111111111111"),Un=Dn.programId,Pu=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Au=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),wu=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ku=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Tu=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),hu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Iu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Bu=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Su=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),xu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ku=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Pe=new X("So11111111111111111111111111111111111111112"),Oe=X.default;var on=class{constructor({mint:e,decimals:t,symbol:o,name:r,skipMint:a=!1,isToken2022:s=!1}){if(e===Oe.toBase58()||e instanceof nn&&Oe.equals(e)){this.decimals=Ae.decimals,this.symbol=Ae.symbol,this.name=Ae.name,this.mint=new nn(Ae.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=a?nn.default:Wn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ie=on;ie.WSOL=new on(F(N({},Ae),{mint:Ae.address}));var rn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},Kt=rn;Kt.SOL=new rn(xt);import yi from"bn.js";var Du=new U(new yi(100));var Xu=D("Raydium_price");import{merge as jK}from"lodash";import tc from"axios";var Gn={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"},bi=F(N({},Gn),{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 Ic=D("Raydium_Api");import{PublicKey as qm,SystemProgram as Um}from"@solana/web3.js";import{AccountLayout as Qm,createAssociatedTokenAccountIdempotentInstruction as Zm,TOKEN_PROGRAM_ID as Hm,TOKEN_2022_PROGRAM_ID as jm}from"@solana/spl-token";import{PublicKey as Xe,sendAndConfirmTransaction as mn,SystemProgram as Ti,Transaction as ct,TransactionMessage as lt,VersionedTransaction as mt}from"@solana/web3.js";import hi from"axios";import{PublicKey as an,AddressLookupTableAccount as Ge}from"@solana/web3.js";async function sn({connection:i,address:e,cluster:t="mainnet"}){let o=await Ie(i,[...new Set(e.map(a=>a.toString()))].map(a=>new an(a))),r={};for(let a=0;a<e.length;a++){let s=o[a],c=e[a];if(!s)continue;let f=new Ge({key:c,state:Ge.deserialize(s.data)});r[c.toString()]=f,t==="devnet"?Ue[c.toString()]=f:qe[c.toString()]=f}return r}var qe={},un=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qe[e])return qe;let t=new an(e),o=await i.getAccountInfo(t);return o&&(qe[e]=new Ge({key:t,state:Ge.deserialize(o.data)})),qe},Ue={},cn=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ue[e])return Ue;let t=new an(e),o=await i.getAccountInfo(t);return o&&(Ue[e]=new Ge({key:t,state:Ge.deserialize(o.data)})),Ue};var j={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 zn,Keypair as Yn,PublicKey as gi,Transaction as Qn,TransactionMessage as Pi,VersionedTransaction as Zn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ai}from"@solana/spl-token";var Xn=D("Raydium_txUtil"),Hn=1644;function Ct(i){let e=[],t=[];return i.microLamports&&(e.push(zn.setComputeUnitPrice({microLamports:i.microLamports})),t.push(j.SetComputeUnitPrice)),i.units&&(e.push(zn.setComputeUnitLimit({units:i.units})),t.push(j.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function ze(i,e){var o,r;let t=e!=null?e:"confirmed";return(r=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:t})))==null?void 0:r.blockhash}async function Rt(i,e){return i.getSignatureStatuses([e]),new Promise((t,o)=>{let r=setTimeout(o,6e4);i.onSignature(e,a=>{if(clearTimeout(r),!a.err){t("");return}o(Object.assign(a.err,{txId:e}))},"confirmed")})}function ln(i,e){i.length<1&&Xn.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&Xn.logWithError(`no signers provided:, ${e.toString()}`);let t=new Qn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Hn}catch{return!1}}function Q(i,e){let[t,o]=gi.findProgramAddressSync(i,e);return{publicKey:t,nonce:o}}function st({instructions:i,payer:e,signers:t}){return ln(i,[e,...t])}function ut({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=Yn.generate().publicKey.toString()}){let a=new Pi({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Zn(a).serialize()).toString("base64").length<Hn}catch{return!1}}var wi=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),ki=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Zn&&(e=wi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ne(i){let e=[];return i.forEach(t=>{t instanceof Qn&&(t.recentBlockhash||(t.recentBlockhash=Ai.toBase58()),t.feePayer||(t.feePayer=Yn.generate().publicKey)),e.push(ki(t))}),console.log("simulate tx string:",e),e}var Lt=2e3,Ot=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 hi.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}=Ct(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ti.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Xe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(j.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:r=[],endInstructionTypes:a=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...r),this.endInstructionTypes.push(...a),this.lookupTableAddress.push(...s.filter(c=>c!==Xe.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:o}){return e===0?await this.buildV0(F(N({},t||{}),{lookupTableAddress:o})):this.build(t)}build(e){var o;let t=new ct;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(r=>r.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 r=>{var y;let{recentBlockHash:a,skipPreflight:s=!0,sendAndConfirm:c,notSendToRpc:f}=r||{},g=a!=null?a:await ze(this.connection,this.blockhashCommitment);if(t.recentBlockhash=g,this.signers.length&&t.sign(...this.signers),Ne([t]),(y=this.owner)!=null&&y.isKeyPair)return{txId:c?await mn(this.connection,t,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let P=await this.signAllTransactions([t]);if(this.signers.length)for(let x of P)try{x.sign(...this.signers)}catch{}return{txId:f?"":await this.connection.sendRawTransaction(P[0].serialize(),{skipPreflight:s}),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:r}=this.build(o),a=t.filter(y=>y.transaction.instructions.length>0),s=[r,...a.map(y=>y.transaction)],c=[this.signers,...a.map(y=>y.signers)],f=[...this.instructionTypes,...a.map(y=>y.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&c.forEach(y=>{y.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:c,instructionTypes:f,execute:async y=>{var B;let{sequentially:P,onTxUpdate:x,skipTxCount:T=0,recentBlockHash:h,skipPreflight:w=!0}=y||{},A=h!=null?h:await ze(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(P){let k=[],R=0;for(let C of s){if(++R,R<=T)continue;let b=await mn(this.connection,C,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});k.push(b)}return{txIds:k,signedTxs:s}}return{txIds:await await Promise.all(s.map(async k=>(k.recentBlockhash=A,await this.connection.sendRawTransaction(k.serialize(),{skipPreflight:w})))),signedTxs:s}}if(this.signAllTransactions){let k=s.map((C,b)=>(C.recentBlockhash=A,c[b].length&&C.sign(...c[b]),C));Ne(k);let R=await this.signAllTransactions(k);if(P){let C=0,b=[],S=async()=>{if(!R[C])return;let K=await this.connection.sendRawTransaction(R[C].serialize(),{skipPreflight:w});b.push({txId:K,status:"sent",signedTx:R[C]}),x==null||x([...b]),C++;let L=!1,M=null,v=null,G=q=>{M!==null&&clearInterval(M),v!==null&&this.connection.removeSignatureListener(v);let _=b.findIndex(J=>J.txId===K);if(_>-1){if(b[_].status==="error"||b[_].status==="success")return;b[_].status=q.err?"error":"success"}x==null||x([...b]),q.err||S()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var q;if(L){clearInterval(M);return}try{let _=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(L=!0,clearInterval(M),G({err:((q=_.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",K))}catch(_){L=!0,clearInterval(M),console.error("getTransaction timeout:",_,K)}},Lt)),v=this.connection.onSignature(K,q=>{if(L){this.connection.removeSignatureListener(v);return}L=!0,G(q)},"confirmed"),this.connection.getSignatureStatus(K)};return await S(),{txIds:b.map(K=>K.txId),signedTxs:R}}else{let C=[];for(let b=0;b<R.length;b+=1){let S=await this.connection.sendRawTransaction(R[b].serialize(),{skipPreflight:w});C.push(S)}return{txIds:C,signedTxs:R}}}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 h=e||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:r,recentBlockhash:a}=h,s=ge(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),c=N(N({},this.cluster==="devnet"?await cn(this.connection):await un(this.connection)),t),f=Array.from(new Set([...o,...this.lookupTableAddress])),g=[];for(let A of f)c[A]===void 0&&g.push(new Xe(A));let y=await sn({connection:this.connection,address:g});for(let[A,B]of Object.entries(y))c[A]=B;let P=r?Xe.default.toBase58():a!=null?a:await ze(this.connection,this.blockhashCommitment),x=new lt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(c));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(A=>A.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new mt(x);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async A=>{var C;let{skipPreflight:B=!0,sendAndConfirm:k,notSendToRpc:R}=A||{};if(Ne([T]),(C=this.owner)!=null&&C.isKeyPair){let b=await this.connection.sendTransaction(T,{skipPreflight:B});return k&&await Rt(this.connection,b),{txId:b,signedTx:T}}if(this.signAllTransactions){let b=await this.signAllTransactions([T]);if(this.signers.length)for(let S of b)try{S.sign(this.signers)}catch{}return{txId:R?"":await this.connection.sendTransaction(b[0],{skipPreflight:B}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:t=[],buildProps:o}=e,{transaction:r}=await this.buildV0(o),a=t.filter(y=>y.builder.instructions.length>0),s=[r,...a.map(y=>y.transaction)],c=[this.signers,...a.map(y=>y.signers)],f=[...this.instructionTypes,...a.map(y=>y.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&c.forEach(y=>{y.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(y,P)=>{y.sign(c[P])}),{builder:this,transactions:s,signers:c,instructionTypes:f,buildProps:o,execute:async y=>{var w;let{sequentially:P,onTxUpdate:x,recentBlockHash:T,skipPreflight:h=!0}=y||{};if(T&&s.forEach(A=>A.message.recentBlockhash=T),Ne(s),(w=this.owner)!=null&&w.isKeyPair){if(P){let A=[];for(let B of s){let k=await this.connection.sendTransaction(B,{skipPreflight:h});await Rt(this.connection,k),A.push(k)}return{txIds:A,signedTxs:s}}return{txIds:await Promise.all(s.map(async A=>await this.connection.sendTransaction(A,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let A=await this.signAllTransactions(s);if(P){let B=0,k=[],R=async()=>{if(!A[B])return;let C=await this.connection.sendTransaction(A[B],{skipPreflight:h});k.push({txId:C,status:"sent",signedTx:A[B]}),x==null||x([...k]),B++;let b=!1,S=null,K=null,L=M=>{S!==null&&clearInterval(S),K!==null&&this.connection.removeSignatureListener(K);let v=k.findIndex(G=>G.txId===C);if(v>-1){if(k[v].status==="error"||k[v].status==="success")return;k[v].status=M.err?"error":"success"}x==null||x([...k]),M.err||R()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var M;if(b){clearInterval(S);return}try{let v=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(b=!0,clearInterval(S),L({err:((M=v.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",C))}catch(v){b=!0,clearInterval(S),console.error("getTransaction timeout:",v,C)}},Lt)),K=this.connection.onSignature(C,M=>{if(b){this.connection.removeSignatureListener(K);return}b=!0,L(M)},"confirmed"),this.connection.getSignatureStatus(C)};return R(),{txIds:[],signedTxs:A}}else{let B=[];for(let k=0;k<A.length;k+=1){let R=await this.connection.sendTransaction(A[k],{skipPreflight:h});B.push(R)}return{txIds:B,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var x;let P=e||{},{splitIns:t=[],computeBudgetConfig:o}=P,r=ge(P,["splitIns","computeBudgetConfig"]),a=o?Ct(o):{instructions:[],instructionTypes:[]},s=this.signers.reduce((T,h)=>F(N({},T),{[h.publicKey.toBase58()]:h}),{}),c=[],f=[],g=[],y=0;if(this.allInstructions.forEach(T=>{let h=[...g,T],w=o?[...a.instructions,...h]:h,B=[...new Set(h.map(k=>k.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(k=>new Xe(k));if(T!==t[y]&&g.length<12&&(st({instructions:w,payer:this.feePayer,signers:B})||st({instructions:h,payer:this.feePayer,signers:B})))g.push(T);else{if(g.length===0)throw Error("item ins too big");y+=T===t[y]?1:0,st({instructions:o?[...a.instructions,...g]:[...g],payer:this.feePayer,signers:B})?c.push(new ct().add(...a.instructions,...g)):c.push(new ct().add(...g)),f.push(Array.from(new Set(g.map(k=>k.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat())).map(k=>s[k]).filter(k=>k!==void 0)),g=[T]}}),g.length>0){let h=[...new Set(g.map(w=>w.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat()).values()].map(w=>s[w]).filter(w=>w!==void 0);st({instructions:o?[...a.instructions,...g]:[...g],payer:this.feePayer,signers:h.map(w=>w.publicKey)})?c.push(new ct().add(...a.instructions,...g)):c.push(new ct().add(...g)),f.push(h)}return c.forEach(T=>T.feePayer=this.feePayer),(x=this.owner)!=null&&x.signer&&f.forEach(T=>{T.some(h=>h.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:c,signers:f,instructionTypes:this.instructionTypes,execute:async T=>{var C;let{sequentially:h,onTxUpdate:w,skipTxCount:A=0,recentBlockHash:B,skipPreflight:k=!0}=T||{},R=B!=null?B:await ze(this.connection,this.blockhashCommitment);if(c.forEach(async(b,S)=>{b.recentBlockhash=R,f[S].length&&b.sign(...f[S])}),Ne(c),(C=this.owner)!=null&&C.isKeyPair){if(h){let b=0,S=[];for(let K of c){if(++b,b<=A){S.push("tx skipped");continue}let L=await mn(this.connection,K,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});S.push(L)}return{txIds:S,signedTxs:c}}return{txIds:await Promise.all(c.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:k}))),signedTxs:c}}if(this.signAllTransactions){let b=await this.signAllTransactions(c.slice(A,c.length)),S=[...c.slice(0,A),...b];if(h){let K=0,L=[],M=async()=>{if(!S[K])return;K<A&&(L.push({txId:"",status:"success",signedTx:S[K]}),w==null||w([...L]),K++,M());let v=await this.connection.sendRawTransaction(S[K].serialize(),{skipPreflight:k});L.push({txId:v,status:"sent",signedTx:S[K]}),w==null||w([...L]),K++;let G=!1,q=null,_=null,J=z=>{q!==null&&clearInterval(q),_!==null&&this.connection.removeSignatureListener(_);let se=L.findIndex(Te=>Te.txId===v);if(se>-1){if(L[se].status==="error"||L[se].status==="success")return;L[se].status=z.err?"error":"success"}w==null||w([...L]),z.err||M()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var z;if(G){clearInterval(q);return}try{let se=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});se&&(G=!0,clearInterval(q),J({err:((z=se.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",v))}catch(se){G=!0,clearInterval(q),console.error("getTransaction timeout:",se,v)}},Lt)),_=this.connection.onSignature(v,z=>{if(G){this.connection.removeSignatureListener(_);return}G=!0,J(z)},"confirmed"),this.connection.getSignatureStatus(v)};return await M(),{txIds:L.map(v=>v.txId),signedTxs:S}}else{let K=[];for(let L=0;L<S.length;L+=1){let M=await this.connection.sendRawTransaction(S[L].serialize(),{skipPreflight:k});K.push(M)}return{txIds:K,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var C;let R=e||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:r={},lookupTableAddress:a=[],insCountLimit:s=12}=R,c=ge(R,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),f=N(N({},this.cluster==="devnet"?await cn(this.connection):await un(this.connection)),r),g=Array.from(new Set([...this.lookupTableAddress,...a])),y=[];for(let b of g)f[b]===void 0&&y.push(new Xe(b));let P=await sn({connection:this.connection,address:y});for(let[b,S]of Object.entries(P))f[b]=S;let x=t?Ct(t):{instructions:[],instructionTypes:[]},T=await ze(this.connection,this.blockhashCommitment),h=this.signers.reduce((b,S)=>F(N({},b),{[S.publicKey.toBase58()]:S}),{}),w=[],A=[],B=[],k=0;if(this.allInstructions.forEach(b=>{let S=[...B,b],K=t?[...x.instructions,...S]:S;if(b!==o[k]&&B.length<s&&(ut({instructions:K,payer:this.feePayer,lookupTableAddressAccount:f})||ut({instructions:S,payer:this.feePayer,lookupTableAddressAccount:f})))B.push(b);else{if(B.length===0)throw Error("item ins too big");k+=b===o[k]?1:0;let L={};for(let M of[...new Set(g)])f[M]!==void 0&&(L[M]=f[M]);if(t&&ut({instructions:[...x.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:f,recentBlockhash:T})){let M=new lt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...B]}).compileToV0Message(Object.values(f));w.push(new mt(M))}else{let M=new lt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...B]}).compileToV0Message(Object.values(f));w.push(new mt(M))}A.push(Array.from(new Set(B.map(M=>M.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(M=>h[M]).filter(M=>M!==void 0)),B=[b]}}),B.length>0){let S=[...new Set(B.map(K=>K.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(K=>h[K]).filter(K=>K!==void 0);if(t&&ut({instructions:[...x.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:f,recentBlockhash:T})){let K=new lt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...B]}).compileToV0Message(Object.values(f));w.push(new mt(K))}else{let K=new lt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...B]}).compileToV0Message(Object.values(f));w.push(new mt(K))}A.push(S)}return(C=this.owner)!=null&&C.signer&&A.forEach(b=>{b.some(S=>S.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),w.forEach((b,S)=>{b.sign(A[S])}),{builder:this,transactions:w,buildProps:e,signers:A,instructionTypes:this.instructionTypes,execute:async b=>{var G;let{sequentially:S,onTxUpdate:K,skipTxCount:L=0,recentBlockHash:M,skipPreflight:v=!0}=b||{};if(w.map(async(q,_)=>{A[_].length&&q.sign(A[_]),M&&(q.message.recentBlockhash=M)}),Ne(w),(G=this.owner)!=null&&G.isKeyPair){if(S){let q=0,_=[];for(let J of w){if(++q,q<=L){console.log("skip tx: ",q),_.push("tx skipped");continue}let z=await this.connection.sendTransaction(J,{skipPreflight:v});await Rt(this.connection,z),_.push(z)}return{txIds:_,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(L,w.length)),_=[...w.slice(0,L),...q];if(S){let J=0,z=[],se=async()=>{if(!_[J])return;if(J<L){z.push({txId:"",status:"success",signedTx:_[J]}),K==null||K([...z]),J++,se();return}let Te=await this.connection.sendTransaction(_[J],{skipPreflight:v});z.push({txId:Te,status:"sent",signedTx:_[J]}),K==null||K([...z]),J++;let nt=!1,Ee=null,ht=null,On=Le=>{Ee!==null&&clearInterval(Ee),ht!==null&&this.connection.removeSignatureListener(ht);let he=z.findIndex(Yo=>Yo.txId===Te);if(he>-1){if(z[he].status==="error"||z[he].status==="success")return;z[he].status=Le.err?"error":"success"}K==null||K([...z]),Le.err||se()};this.loopMultiTxStatus&&(Ee=setInterval(async()=>{var Le;if(nt){clearInterval(Ee);return}try{let he=await this.connection.getTransaction(Te,{commitment:"confirmed",maxSupportedTransactionVersion:0});he&&(nt=!0,clearInterval(Ee),On({err:((Le=he.meta)==null?void 0:Le.err)||null}),console.log("tx status from getTransaction:",Te))}catch(he){nt=!0,clearInterval(Ee),console.error("getTransaction timeout:",he,Te)}},Lt)),ht=this.connection.onSignature(Te,Le=>{if(nt){this.connection.removeSignatureListener(ht);return}nt=!0,On(Le)},"confirmed"),this.connection.getSignatureStatus(Te)};return se(),{txIds:[],signedTxs:_}}else{let J=[];for(let z=0;z<_.length;z+=1){let se=await this.connection.sendTransaction(_[z],{skipPreflight:v});J.push(se)}return{txIds:J,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}};var dn=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ce=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=D(t)}createTxBuilder(e){return this.scope.checkOwner(),new Ot({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(dn(e))}logInfo(...e){this.logger.info(dn(e))}logAndCreateError(...e){let t=dn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Am,SystemProgram as km}from"@solana/web3.js";import Im from"bn.js";import{createCloseAccountInstruction as Km,createInitializeAccountInstruction as Cm,createTransferInstruction as Rm,TOKEN_PROGRAM_ID as Lm}from"@solana/spl-token";import{Keypair as am,PublicKey as sm}from"@solana/web3.js";import lm from"bn.js";import{TOKEN_PROGRAM_ID as pm}from"@solana/spl-token";import{PublicKey as vi}from"@solana/web3.js";import to,{isBN as no}from"bn.js";import{bits as Ii,BitStructure as dl,blob as Bi,Blob as pl,cstr as fl,f32 as yl,f32be as bl,f64 as gl,f64be as Pl,greedy as Al,Layout as Si,ns64 as wl,ns64be as kl,nu64 as xi,nu64be as Tl,offset as Ki,s16 as hl,s16be as Il,s24 as Bl,s24be as Sl,s32 as Ci,s32be as xl,s40 as Kl,s40be as Cl,s48 as Rl,s48be as Ll,s8 as Ol,seq as Ri,struct as Nl,Structure as Li,u16 as Oi,u16be as Ml,u24 as Fl,u24be as vl,u32 as Ni,u32be as Vl,u40 as _l,u40be as El,u48 as Dl,u48be as Wl,u8 as Mi,UInt as Fi,union as ql,Union as Ul,unionLayoutDiscriminator as Gl,utf8 as zl}from"@solana/buffer-layout";var Nt=Si,jn=Li;var pn=Fi;var $n=Mi,Z=Oi;var dt=Ni;var Jn=xi;var fe=Ci;var eo=Ri;var E=Bi;var fn=Ii,yn=Ki;var Fe=class extends Nt{constructor(t,o,r){super(t,r);this.blob=E(t),this.signed=o}decode(t,o=0){let r=new to(this.blob.decode(t,o),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,o,r=0){return typeof t=="number"&&(t=new to(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,r)}},Mt=class extends Nt{constructor(t){super(8,t);this._lower=fn(dt(),!1),this._upper=fn(dt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,o=0){let r=this._lower.decode(t,o),a=this._upper.decode(t,o+this._lower.span);return N(N({},r),a)}encode(t,o,r=0){return this._lower.encode(t,o,r)+this._upper.encode(t,o,r+this._lower.span)}};function d(i){return new pn(1,i)}function Y(i){return new pn(4,i)}function n(i){return new Fe(8,!1,i)}function V(i){return new Fe(16,!1,i)}function oo(i){return new Fe(1,!0,i)}function Ye(i){return new Fe(8,!0,i)}function io(i){return new Fe(16,!0,i)}var ve=class extends Nt{constructor(t,o,r,a){super(t.span,a);this.layout=t,this.decoder=o,this.encoder=r}decode(t,o){return this.decoder(this.layout.decode(t,o))}encode(t,o,r){return this.layout.encode(this.encoder(t),o,r)}getSpan(t,o){return this.layout.getSpan(t,o)}};function u(i){return new ve(E(32),e=>new vi(e),e=>e.toBuffer(),i)}function de(i){return new ve($n(),Vi,_i,i)}function Vi(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function _i(i){return i?1:0}function ro(i,e){let t=dt("length"),o=p([t,I(i,yn(t,-t.span),"values")]);return new ve(o,({values:r})=>r,r=>({values:r}),e)}function Ei(i){let e=dt("length"),t=p([e,E(yn(e,-e.span),"data")]);return new ve(t,({data:o})=>o,o=>({data:o}),i)}function ee(i){return new ve(Ei(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),i)}var bn=class extends jn{decode(e,t){return super.decode(e,t)}};function p(i,e,t){return new bn(i,e,t)}function I(i,e,t){let o,r=typeof e=="number"?e:no(e)?e.toNumber():new Proxy(e,{get(a,s){if(!o){let c=Reflect.get(a,"count");o=no(c)?c.toNumber():c,Reflect.set(a,"count",o)}return Reflect.get(a,s)},set(a,s,c){return s==="count"&&(o=c),Reflect.set(a,s,c)}});return eo(i,r,t)}var Ft=p([u("mint"),u("owner"),n("amount"),Y("delegateOption"),u("delegate"),d("state"),Y("isNativeOption"),n("isNative"),n("delegatedAmount"),Y("closeAuthorityOption"),u("closeAuthority")]);import{PublicKey as EP,SystemProgram as DP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as qP}from"@solana/spl-token";import{PublicKey as id}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ad}from"@solana/spl-token";import{PublicKey as O}from"@solana/web3.js";var so=new O("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),uo=new O("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),co=new O("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),gn=new O("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ld=new O("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Wi=new O("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),lo=new O("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),mo=new O("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),md=new O("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),qi=new O("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),po=new O("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ui=new O("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Gi=new O("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),fo=new O("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),dd=new O("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zi=new O("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xi=new O("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Yi=new O("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Qi=new O("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Zi=new O("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Pn=new O("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Hi=new O("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),pd=new O("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ji=new O("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$i=new O("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ji=new O("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),fd=new O("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),yd=new O("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),bd=new O("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),gd=new O("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Pd=new O("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),pt={IDO_PROGRAM_ID_V1:Xi,IDO_PROGRAM_ID_V2:Yi,IDO_PROGRAM_ID_V3:Qi,IDO_PROGRAM_ID_V4:Zi};var xe={OPEN_BOOK_PROGRAM:new O("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new O("Ray1111111111111111111111111111111111111111"),AMM_V4:new O("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new O("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new O("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new O("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new O("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new O("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new O("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new O("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new O("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new O("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:O.default,Router:new O("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new O("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new O("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new O("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new O("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new O("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new O("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new O("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new O("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new O("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new O("Ray1111111111111111111111111111111111111111")};import $P from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as bb,TOKEN_2022_PROGRAM_ID as gb,TOKEN_PROGRAM_ID as Pb}from"@solana/spl-token";import{PublicKey as wb}from"@solana/web3.js";import Tb from"bn.js";import Ib from"decimal.js";import{TOKEN_PROGRAM_ID as Od}from"@solana/spl-token";import{PublicKey as vd}from"@solana/web3.js";var er=p([Y("mintAuthorityOption"),u("mintAuthority"),n("supply"),d("decimals"),d("isInitialized"),Y("freezeAuthorityOption"),u("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as _y,TOKEN_2022_PROGRAM_ID as Ey,TOKEN_PROGRAM_ID as Dy}from"@solana/spl-token";import{Keypair as Uy,PublicKey as Gy,SystemProgram as Xy,TransactionInstruction as Yy}from"@solana/web3.js";import Zy from"bn.js";import W from"bn.js";var ye=new W(1).shln(64);var tr=new W(1).shln(128),Vt=new W(1).shln(64).subn(1),nr=new W(1).shln(128).subn(1);var Ze=new W("4295048016"),He=new W("79226673521066979257578248091"),or=new W("59543866431248"),ir=new W("184467440737095516"),rr=new W("15793534762490258745");var An=60,Qd=new W("18446743708227953217"),ar=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var ft=3,yo=100;var bo=10,go=100,_t=14;var $=new W(0),je=new W(1),Zd=new W(-1);var Hd=new W("18446744073700000000");var sr=p([E(8),d("bump"),Z("index"),u("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Z("tickSpacing"),Y("fundFeeRate"),I(Y(),1),u("fundOwner"),I(n(),3)]),ur=p([Y("blockTimestamp"),Ye("tickCumulative"),I(n(),4)]),Po=p([E(8),de("initialized"),n("recentEpoch"),Z("observationIndex"),u("poolId"),I(ur,yo,"observations"),I(n(),4)]),cr=p([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),fe("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),n("lastUpdateTimestamp"),I(d(),46)]),lr=p([d("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),V("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),u("mint"),u("vault"),u("creator"),V("growthGlobalX64")]),wn=p([E(8),d("bump"),u("configId"),u("creator"),u("mintA"),u("mintB"),u("vaultA"),u("vaultB"),u("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),Z("tickSpacing"),V("liquidity"),V("sqrtPriceX64"),fe("tickCurrent"),Y(),V("feeGrowthGlobalX64A"),V("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),I(V(),4),d("status"),d("feeOn"),E(6),I(lr,ft,"rewardInfos"),E(8*16,"tickArrayBitmap"),I(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),cr.replicate("dynamicFeeInfo"),I(n(),46)]),mr=p([V("growthInsideLastX64"),n("rewardAmountOwed")]),dr=p([E(8),d("bump"),u("nftMint"),u("poolId"),fe("tickLower"),fe("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),I(mr,ft,"rewardInfos"),n("recentEpoch"),I(n(),7)]),ep=p([E(8),d("bump"),u("poolId"),fe("tickLower"),fe("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),I(V(),ft,"rewardGrowthInside"),n("recentEpoch"),I(n(),7)]),pr=p([fe("tick"),io("liquidityNet"),V("liquidityGross"),V("feeGrowthOutsideX64A"),V("feeGrowthOutsideX64B"),I(V(),ft,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),V("unfilledRatioX64"),I(Y(),3)]),Ao=p([E(8),u("poolId"),fe("startTickIndex"),I(pr,An,"ticks"),d("initializedTickCount"),n("recentEpoch"),I(d(),107)]),fr=p([E(8),d("bump"),I(u(),bo,"operationOwners"),I(u(),go,"whitelistMints")]),yr=p([E(8),u("poolId"),u("owner"),fe("tick"),de("zeroForOne"),n("orderPhase"),n("totalAmount"),n("filledAmount"),n("settleBase"),n("settleOutput"),n("openTime"),V("unfilledRatioX64"),I(n(),4)]),wo=p([E(8),u("poolId"),E(8*8*_t,"positiveTickArrayBitmap"),E(8*8*_t,"negativeTickArrayBitmap")]),tp=p([E(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),I(n(),8)]),br=p([E(8),u("wallet"),d("nonceIndex"),n("orderNonce"),I(n(),4)]),np=p([n(),d("bump"),u("owner"),u("poolId"),u("positionId"),u("nftAccount"),I(n(),8)]),gr=p([E(8),d("bump"),u("lockOwner"),u("poolId"),u("positionId"),u("nftAccount"),u("lockNftMint"),n("recentEpoch"),I(n(),8)]);import rp from"bn.js";function ko(i){let e=Buffer.alloc(2);return e.writeUInt16LE(i),e}var bp=Buffer.from("amm_config","utf8"),To=Buffer.from("pool","utf8"),ho=Buffer.from("pool_vault","utf8"),gp=Buffer.from("pool_reward_vault","utf8"),Pp=Buffer.from("position","utf8"),Ap=Buffer.from("tick_array","utf8"),wp=Buffer.from("operation","utf8"),kp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Tp=Buffer.from("observation","utf8"),hp=Buffer.from("support_mint","utf8"),Ip=Buffer.from("dynamic_fee_config","utf8");var Bp=Buffer.from("locked_position","utf8");import{sha256 as Or}from"js-sha256";import Pr from"bn.js";import Cp from"decimal.js";var Lp=new Pr(1).shln(256).subn(1);import Zp from"bn.js";import _p from"bn.js";import Dp from"decimal.js";import ef from"bn.js";import nf from"decimal.js";import{PublicKey as Uf}from"@solana/web3.js";import zf from"bn.js";import{TOKEN_2022_PROGRAM_ID as Jf}from"@solana/spl-token";import oy from"decimal.js";import Of from"bn.js";import Af from"bn.js";import dy from"bn.js";function te(i){let e=`global:${i}`;return Buffer.from(Or.digest(e)).slice(0,8)}Po.span;var ob=D("Raydium_Clmm"),ib={createPool:te("create_pool"),createCustomizablePool:te("create_customizable_pool"),openPositionV2:te("open_position_v2"),openPositionWithToken22Nft:te("open_position_with_token22_nft"),closePosition:te("close_position"),increaseLiquidityV2:te("increase_liquidity_v2"),decreaseLiquidityV2:te("decrease_liquidity_v2"),initializeReward:te("initialize_reward"),setRewardParams:te("set_reward_params"),updateRewardInfos:te("update_reward_infos"),collectRemainingRewards:te("collect_remaining_rewards"),swapV2:te("swap_v2"),openLimitOrder:te("open_limit_order"),increaseLimitOrder:te("increase_limit_order"),decreaseLimitOrder:te("decrease_limit_or