UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 105 kB
var zo=Object.defineProperty,Xo=Object.defineProperties;var Yo=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var Mn=Object.prototype.hasOwnProperty,Fn=Object.prototype.propertyIsEnumerable;var Nn=(i,e,t)=>e in i?zo(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,O=(i,e)=>{for(var t in e||(e={}))Mn.call(e,t)&&Nn(i,t,e[t]);if(ht)for(var t of ht(e))Fn.call(e,t)&&Nn(i,t,e[t]);return i},v=(i,e)=>Xo(i,Yo(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&&ht)for(var o of ht(i))e.indexOf(o)<0&&Fn.call(i,o)&&(t[o]=i[o]);return t};import{PublicKey as Ho}from"@solana/web3.js";import{get as vn,set as Qo}from"lodash";var Ht=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={},Zo={};function D(i){let e=vn(Vn,i);if(!e){let t=vn(Zo,i);e=new Ht({name:i,logLevel:t}),Qo(Vn,i,e)}return e}import{MINT_SIZE as hs,TOKEN_PROGRAM_ID as Is,getTransferFeeConfig as Bs,unpackMint as Ss}from"@solana/spl-token";var jt=D("Raydium_accountInfo_util");async function he(i,e,t){let{batchRequest:o,commitment:r="confirmed",chunkCount:a=100}=O({batchRequest:!1},t),s=$t(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=$t(f,10);c=(await(await Promise.all(g.map(async P=>await i._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&jt.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"&&jt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:h,lamports:w,owner:new Ho(A),rentEpoch:B}}return null})))}else try{c=await Promise.all(s.map(f=>i.getMultipleAccountsInfo(f,r)))}catch(f){f instanceof Error&&jt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.message}`)}return c.flat()}import Ce from"bn.js";import bC from"decimal.js";import ii from"big.js";import Us from"bn.js";import jo from"toformat";var $o=jo,it=$o;import Bt from"big.js";import ei from"bn.js";import ti 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 It=D("module/fraction"),Jt=it(Bt),at=it(ti),ni={[0]:at.ROUND_DOWN,[1]:at.ROUND_HALF_UP,[2]:at.ROUND_UP},oi={[0]:Bt.roundDown,[1]:Bt.roundHalfUp,[2]:Bt.roundUp},U=class{constructor(e,t=new ei(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)||It.logWithError(`${e} is not an integer.`),e<=0&&It.logWithError(`${e} is not positive.`),at.set({precision:e+1,rounding:ni[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)||It.logWithError(`${e} is not an integer.`),e<0&&It.logWithError(`${e} is negative.`),Jt.DP=e,Jt.RM=oi[o]||1,new Jt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var $s=D("Raydium_amount"),Js=it(ii);import{PublicKey as ai}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as En}from"@solana/spl-token";var St={chainId:101,address:ai.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"}},Pe={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 tn}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Dn,SYSVAR_RENT_PUBKEY as si}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ui}from"@solana/spl-token";function De({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var ci=[De({pubkey:ui,isWritable:!1}),De({pubkey:Dn.programId,isWritable:!1}),De({pubkey:si,isWritable:!1})];function Wn({publicKey:i,transformSol:e}){let t=qn(i.toString());if(t instanceof X)return e&&t.equals(Le)?Ie:t;if(e&&t.toString()===Le.toBase58())return Ie;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 en=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oe=new X("SysvarRent111111111111111111111111111111111"),su=new X("SysvarC1ock11111111111111111111111111111111"),We=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),li=new X("Sysvar1nstructions1111111111111111111111111"),mi=Dn.programId,uu=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),cu=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),lu=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),mu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),du=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),pu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),fu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),yu=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),bu=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),gu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Pu=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ie=new X("So11111111111111111111111111111111111111112"),Le=X.default;var nn=class{constructor({mint:e,decimals:t,symbol:o,name:r,skipMint:a=!1,isToken2022:s=!1}){if(e===Le.toBase58()||e instanceof tn&&Le.equals(e)){this.decimals=Pe.decimals,this.symbol=Pe.symbol,this.name=Pe.name,this.mint=new tn(Pe.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?tn.default:Wn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ie=nn;ie.WSOL=new nn(v(O({},Pe),{mint:Pe.address}));var on=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},xt=on;xt.SOL=new on(St);import di from"bn.js";var Ru=new U(new di(100));var vu=D("Raydium_price");import{merge as PK}from"lodash";import zu from"axios";var Un={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},pi=v(O({},Un),{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 fc=D("Raydium_Api");import{PublicKey as Nm,SystemProgram as Mm}from"@solana/web3.js";import{AccountLayout as Em,createAssociatedTokenAccountIdempotentInstruction as Dm,TOKEN_PROGRAM_ID as Wm,TOKEN_2022_PROGRAM_ID as qm}from"@solana/spl-token";import{PublicKey as Xe,sendAndConfirmTransaction as ln,SystemProgram as Ai,Transaction as ct,TransactionMessage as lt,VersionedTransaction as mt}from"@solana/web3.js";import wi from"axios";import{PublicKey as rn,AddressLookupTableAccount as Ge}from"@solana/web3.js";async function an({connection:i,address:e,cluster:t="mainnet"}){let o=await he(i,[...new Set(e.map(a=>a.toString()))].map(a=>new rn(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={},sn=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qe[e])return qe;let t=new rn(e),o=await i.getAccountInfo(t);return o&&(qe[e]=new Ge({key:t,state:Ge.deserialize(o.data)})),qe},Ue={},un=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ue[e])return Ue;let t=new rn(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 Gn,Keypair as Xn,PublicKey as fi,Transaction as Yn,TransactionMessage as yi,VersionedTransaction as Qn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bi}from"@solana/spl-token";var zn=D("Raydium_txUtil"),Zn=1644;function Kt(i){let e=[],t=[];return i.microLamports&&(e.push(Gn.setComputeUnitPrice({microLamports:i.microLamports})),t.push(j.SetComputeUnitPrice)),i.units&&(e.push(Gn.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 Ct(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 cn(i,e){i.length<1&&zn.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&zn.logWithError(`no signers provided:, ${e.toString()}`);let t=new Yn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Zn}catch{return!1}}function Q(i,e){let[t,o]=fi.findProgramAddressSync(i,e);return{publicKey:t,nonce:o}}function st({instructions:i,payer:e,signers:t}){return cn(i,[e,...t])}function ut({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=Xn.generate().publicKey.toString()}){let a=new yi({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Qn(a).serialize()).toString("base64").length<Zn}catch{return!1}}var gi=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Pi=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Qn&&(e=gi(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 Yn&&(t.recentBlockhash||(t.recentBlockhash=bi.toBase58()),t.feePayer||(t.feePayer=Xn.generate().publicKey)),e.push(Pi(t))}),console.log("simulate tx string:",e),e}var Rt=2e3,Lt=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 wi.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}=Kt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ai.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(v(O({},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 ln(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 ln(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,N=null,F=null,G=q=>{N!==null&&clearInterval(N),F!==null&&this.connection.removeSignatureListener(F);let _=b.findIndex(ee=>ee.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&&(N=setInterval(async()=>{var q;if(L){clearInterval(N);return}try{let _=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(L=!0,clearInterval(N),G({err:((q=_.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",K))}catch(_){L=!0,clearInterval(N),console.error("getTransaction timeout:",_,K)}},Rt)),F=this.connection.onSignature(K,q=>{if(L){this.connection.removeSignatureListener(F);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=O(O({},this.cluster==="devnet"?await un(this.connection):await sn(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 an({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 Ct(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 Ct(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=N=>{S!==null&&clearInterval(S),K!==null&&this.connection.removeSignatureListener(K);let F=k.findIndex(G=>G.txId===C);if(F>-1){if(k[F].status==="error"||k[F].status==="success")return;k[F].status=N.err?"error":"success"}x==null||x([...k]),N.err||R()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var N;if(b){clearInterval(S);return}try{let F=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});F&&(b=!0,clearInterval(S),L({err:((N=F.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",C))}catch(F){b=!0,clearInterval(S),console.error("getTransaction timeout:",F,C)}},Rt)),K=this.connection.onSignature(C,N=>{if(b){this.connection.removeSignatureListener(K);return}b=!0,L(N)},"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?Kt(o):{instructions:[],instructionTypes:[]},s=this.signers.reduce((T,h)=>v(O({},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 ln(this.connection,K,this.signers.find(N=>N.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=[],N=async()=>{if(!S[K])return;K<A&&(L.push({txId:"",status:"success",signedTx:S[K]}),w==null||w([...L]),K++,N());let F=await this.connection.sendRawTransaction(S[K].serialize(),{skipPreflight:k});L.push({txId:F,status:"sent",signedTx:S[K]}),w==null||w([...L]),K++;let G=!1,q=null,_=null,ee=z=>{q!==null&&clearInterval(q),_!==null&&this.connection.removeSignatureListener(_);let se=L.findIndex(ke=>ke.txId===F);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||N()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var z;if(G){clearInterval(q);return}try{let se=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});se&&(G=!0,clearInterval(q),ee({err:((z=se.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",F))}catch(se){G=!0,clearInterval(q),console.error("getTransaction timeout:",se,F)}},Rt)),_=this.connection.onSignature(F,z=>{if(G){this.connection.removeSignatureListener(_);return}G=!0,ee(z)},"confirmed"),this.connection.getSignatureStatus(F)};return await N(),{txIds:L.map(F=>F.txId),signedTxs:S}}else{let K=[];for(let L=0;L<S.length;L+=1){let N=await this.connection.sendRawTransaction(S[L].serialize(),{skipPreflight:k});K.push(N)}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=O(O({},this.cluster==="devnet"?await un(this.connection):await sn(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 an({connection:this.connection,address:y});for(let[b,S]of Object.entries(P))f[b]=S;let x=t?Kt(t):{instructions:[],instructionTypes:[]},T=await ze(this.connection,this.blockhashCommitment),h=this.signers.reduce((b,S)=>v(O({},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 N of[...new Set(g)])f[N]!==void 0&&(L[N]=f[N]);if(t&&ut({instructions:[...x.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:f,recentBlockhash:T})){let N=new lt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...B]}).compileToV0Message(Object.values(f));w.push(new mt(N))}else{let N=new lt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...B]}).compileToV0Message(Object.values(f));w.push(new mt(N))}A.push(Array.from(new Set(B.map(N=>N.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(N=>h[N]).filter(N=>N!==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:N,skipPreflight:F=!0}=b||{};if(w.map(async(q,_)=>{A[_].length&&q.sign(A[_]),N&&(q.message.recentBlockhash=N)}),Ne(w),(G=this.owner)!=null&&G.isKeyPair){if(S){let q=0,_=[];for(let ee of w){if(++q,q<=L){console.log("skip tx: ",q),_.push("tx skipped");continue}let z=await this.connection.sendTransaction(ee,{skipPreflight:F});await Ct(this.connection,z),_.push(z)}return{txIds:_,signedTxs:w}}return{txIds:await Promise.all(w.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:F}))),signedTxs:w}}if(this.signAllTransactions){let q=await this.signAllTransactions(w.slice(L,w.length)),_=[...w.slice(0,L),...q];if(S){let ee=0,z=[],se=async()=>{if(!_[ee])return;if(ee<L){z.push({txId:"",status:"success",signedTx:_[ee]}),K==null||K([...z]),ee++,se();return}let ke=await this.connection.sendTransaction(_[ee],{skipPreflight:F});z.push({txId:ke,status:"sent",signedTx:_[ee]}),K==null||K([...z]),ee++;let nt=!1,Ee=null,Tt=null,On=Re=>{Ee!==null&&clearInterval(Ee),Tt!==null&&this.connection.removeSignatureListener(Tt);let Te=z.findIndex(Go=>Go.txId===ke);if(Te>-1){if(z[Te].status==="error"||z[Te].status==="success")return;z[Te].status=Re.err?"error":"success"}K==null||K([...z]),Re.err||se()};this.loopMultiTxStatus&&(Ee=setInterval(async()=>{var Re;if(nt){clearInterval(Ee);return}try{let Te=await this.connection.getTransaction(ke,{commitment:"confirmed",maxSupportedTransactionVersion:0});Te&&(nt=!0,clearInterval(Ee),On({err:((Re=Te.meta)==null?void 0:Re.err)||null}),console.log("tx status from getTransaction:",ke))}catch(Te){nt=!0,clearInterval(Ee),console.error("getTransaction timeout:",Te,ke)}},Rt)),Tt=this.connection.onSignature(ke,Re=>{if(nt){this.connection.removeSignatureListener(Tt);return}nt=!0,On(Re)},"confirmed"),this.connection.getSignatureStatus(ke)};return se(),{txIds:[],signedTxs:_}}else{let ee=[];for(let z=0;z<_.length;z+=1){let se=await this.connection.sendTransaction(_[z],{skipPreflight:F});ee.push(se)}return{txIds:ee,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}};var mn=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),le=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=D(t)}createTxBuilder(e){return this.scope.checkOwner(),new Lt({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(mn(e))}logInfo(...e){this.logger.info(mn(e))}logAndCreateError(...e){let t=mn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as lm,SystemProgram as dm}from"@solana/web3.js";import ym from"bn.js";import{createCloseAccountInstruction as Am,createInitializeAccountInstruction as wm,createTransferInstruction as km,TOKEN_PROGRAM_ID as Tm}from"@solana/spl-token";import{Keypair as jl,PublicKey as $l}from"@solana/web3.js";import tm from"bn.js";import{TOKEN_PROGRAM_ID as im}from"@solana/spl-token";import{PublicKey as Oi}from"@solana/web3.js";import Jn,{isBN as eo}from"bn.js";import{bits as ki,BitStructure as nl,blob as Ti,Blob as ol,cstr as il,f32 as rl,f32be as al,f64 as sl,f64be as ul,greedy as cl,Layout as hi,ns64 as ll,ns64be as ml,nu64 as dl,nu64be as pl,offset as Ii,s16 as fl,s16be as yl,s24 as bl,s24be as gl,s32 as Bi,s32be as Pl,s40 as Al,s40be as wl,s48 as kl,s48be as Tl,s8 as hl,seq as Si,struct as Il,Structure as xi,u16 as Ki,u16be as Bl,u24 as Sl,u24be as xl,u32 as Ci,u32be as Kl,u40 as Cl,u40be as Rl,u48 as Ll,u48be as Ol,u8 as Ri,UInt as Li,union as Nl,Union as Ml,unionLayoutDiscriminator as Fl,utf8 as vl}from"@solana/buffer-layout";var Ot=hi,Hn=xi;var dn=Li;var jn=Ri,Z=Ki;var dt=Ci;var fe=Bi;var $n=Si;var E=Ti;var pn=ki,fn=Ii;var Fe=class extends Ot{constructor(t,o,r){super(t,r);this.blob=E(t),this.signed=o}decode(t,o=0){let r=new Jn(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 Jn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,r)}},Nt=class extends Ot{constructor(t){super(8,t);this._lower=pn(dt(),!1),this._upper=pn(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 O(O({},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 dn(1,i)}function Y(i){return new dn(4,i)}function n(i){return new Fe(8,!1,i)}function V(i){return new Fe(16,!1,i)}function to(i){return new Fe(1,!0,i)}function Ye(i){return new Fe(8,!0,i)}function no(i){return new Fe(16,!0,i)}var ve=class extends Ot{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 Oi(e),e=>e.toBuffer(),i)}function de(i){return new ve(jn(),Ni,Mi,i)}function Ni(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Mi(i){return i?1:0}function oo(i,e){let t=dt("length"),o=p([t,I(i,fn(t,-t.span),"values")]);return new ve(o,({values:r})=>r,r=>({values:r}),e)}function Fi(i){let e=dt("length"),t=p([e,E(fn(e,-e.span),"data")]);return new ve(t,({data:o})=>o,o=>({data:o}),i)}function te(i){return new ve(Fi(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),i)}var yn=class extends Hn{decode(e,t){return super.decode(e,t)}};function p(i,e,t){return new yn(i,e,t)}function I(i,e,t){let o,r=typeof e=="number"?e:eo(e)?e.toNumber():new Proxy(e,{get(a,s){if(!o){let c=Reflect.get(a,"count");o=eo(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 $n(i,r,t)}var Mt=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 vP,SystemProgram as VP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as EP}from"@solana/spl-token";import{PublicKey as Zm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jm}from"@solana/spl-token";import{PublicKey as M}from"@solana/web3.js";var ro=new M("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),ao=new M("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),so=new M("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),bn=new M("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),td=new M("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Vi=new M("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),uo=new M("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),co=new M("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),nd=new M("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),_i=new M("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),lo=new M("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ei=new M("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Di=new M("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),mo=new M("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),od=new M("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Wi=new M("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),gn=new M("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),qi=new M("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),id=new M("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ui=new M("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Gi=new M("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),zi=new M("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),rd=new M("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ad=new M("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),sd=new M("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ud=new M("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),cd=new M("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Se={OPEN_BOOK_PROGRAM:new M("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new M("Ray1111111111111111111111111111111111111111"),AMM_V4:new M("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new M("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new M("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new M("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new M("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new M("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new M("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new M("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new M("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new M("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:M.default,Router:new M("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new M("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new M("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new M("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new M("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new M("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new M("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new M("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new M("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new M("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new M("Ray1111111111111111111111111111111111111111")};import ZP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as pb,TOKEN_2022_PROGRAM_ID as fb,TOKEN_PROGRAM_ID as yb}from"@solana/spl-token";import{PublicKey as gb}from"@solana/web3.js";import Ab from"bn.js";import kb from"decimal.js";import{TOKEN_PROGRAM_ID as hd}from"@solana/spl-token";import{PublicKey as xd}from"@solana/web3.js";var Xi=p([Y("mintAuthorityOption"),u("mintAuthority"),n("supply"),d("decimals"),d("isInitialized"),Y("freezeAuthorityOption"),u("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Fy,TOKEN_2022_PROGRAM_ID as vy,TOKEN_PROGRAM_ID as Vy}from"@solana/spl-token";import{Keypair as Dy,PublicKey as Wy,SystemProgram as Uy,TransactionInstruction as Gy}from"@solana/web3.js";import Xy from"bn.js";import W from"bn.js";var ye=new W(1).shln(64);var Yi=new W(1).shln(128),vt=new W(1).shln(64).subn(1),Qi=new W(1).shln(128).subn(1);var Ze=new W("4295048016"),He=new W("79226673521066979257578248091"),Zi=new W("59543866431248"),Hi=new W("184467440737095516"),ji=new W("15793534762490258745");var Pn=60,Ed=new W("18446743708227953217"),$i=[{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 pt=3,po=100;var fo=10,yo=100,Vt=14;var $=new W(0),je=new W(1),Dd=new W(-1);var Wd=new W("18446744073700000000");var Ji=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)]),er=p([Y("blockTimestamp"),Ye("tickCumulative"),I(n(),4)]),bo=p([E(8),de("initialized"),n("recentEpoch"),Z("observationIndex"),u("poolId"),I(er,po,"observations"),I(n(),4)]),tr=p([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),fe("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),n("lastUpdateTimestamp"),I(d(),46)]),nr=p([d("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),V("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),u("mint"),u("vault"),u("creator"),V("growthGlobalX64")]),An=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(nr,pt,"rewardInfos"),E(8*16,"tickArrayBitmap"),I(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),tr.replicate("dynamicFeeInfo"),I(n(),46)]),or=p([V("growthInsideLastX64"),n("rewardAmountOwed")]),ir=p([E(8),d("bump"),u("nftMint"),u("poolId"),fe("tickLower"),fe("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),I(or,pt,"rewardInfos"),n("recentEpoch"),I(n(),7)]),zd=p([E(8),d("bump"),u("poolId"),fe("tickLower"),fe("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),I(V(),pt,"rewardGrowthInside"),n("recentEpoch"),I(n(),7)]),rr=p([fe("tick"),no("liquidityNet"),V("liquidityGross"),V("feeGrowthOutsideX64A"),V("feeGrowthOutsideX64B"),I(V(),pt,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),V("unfilledRatioX64"),I(Y(),3)]),go=p([E(8),u("poolId"),fe("startTickIndex"),I(rr,Pn,"ticks"),d("initializedTickCount"),n("recentEpoch"),I(d(),107)]),ar=p([E(8),d("bump"),I(u(),fo,"operationOwners"),I(u(),yo,"whitelistMints")]),sr=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)]),Po=p([E(8),u("poolId"),E(8*8*Vt,"positiveTickArrayBitmap"),E(8*8*Vt,"negativeTickArrayBitmap")]),Xd=p([E(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),I(n(),8)]),ur=p([E(8),u("wallet"),d("nonceIndex"),n("orderNonce"),I(n(),4)]),Yd=p([n(),d("bump"),u("owner"),u("poolId"),u("positionId"),u("nftAccount"),I(n(),8)]),cr=p([E(8),d("bump"),u("lockOwner"),u("poolId"),u("positionId"),u("nftAccount"),u("lockNftMint"),n("recentEpoch"),I(n(),8)]);import Hd from"bn.js";function wn(i){let e=Buffer.alloc(2);return e.writeUInt16LE(i),e}var sp=Buffer.from("amm_config","utf8"),Ao=Buffer.from("pool","utf8"),wo=Buffer.from("pool_vault","utf8"),up=Buffer.from("pool_reward_vault","utf8"),cp=Buffer.from("position","utf8"),lp=Buffer.from("tick_array","utf8"),mp=Buffer.from("operation","utf8"),dp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),pp=Buffer.from("observation","utf8"),fp=Buffer.from("support_mint","utf8"),yp=Buffer.from("dynamic_fee_config","utf8"),bp=Buffer.from("permission","utf8");var gp=Buffer.from("locked_position","utf8");import{sha256 as Ir}from"js-sha256";import lr from"bn.js";import kp from"decimal.js";var hp=new lr(1).shln(256).subn(1);import Wp from"bn.js";import Rp from"bn.js";import Op from"decimal.js";import Xp from"bn.js";import Qp from"decimal.js";import{PublicKey as Ff}from"@solana/web3.js";import Vf from"bn.js";import{TOKEN_2022_PROGRAM_ID as zf,TOKEN_PROGRAM_ID as Xf}from"@solana/spl-token";import Hf from"decimal.js";import If from"bn.js";import mf from"bn.js";import sy from"bn.js";function J(i){let e=`global:${i}`;return Buffer.from(Ir.digest(e)).slice(0,8)}bo.span;var eb=D("Raydium_Clmm"),tb={createPool:J("create_pool"),createCustomizablePool:J("create_customizable_pool"),createPermissionedPool:J("create_permissioned_pool"),openPositionV2:J("open_position_v2"),openPositionWithToken22Nft:J("open_position_with_token22_nft"),closePosition:J("close_position"),increaseLiquidityV2:J("increase_liquidity_v2"),decreaseLiquidityV2:J("decrease_liquidity_v2"),initializeReward:J("initialize_reward"),setRewardParams:J("set_reward_params"),updateRewardInfos:J("update_reward_infos"),collectRemainingRewards:J("collect_remaining_rewards"),swapV2:J("swap_v2"),openLimitOrder:J("open_limit_order"),increaseLimitOrder:J("increase_limit_order"),decreaseLimitOrder:J("decrease_limit_order"),settleLimitOrder:J("settle_limit_order"),closeLimitOrder:J("close_limit_order")};import{PublicKey as In}from"@solana/web3.js";var Cr=p([d("instruction")]),Rr=p([d("instruction")]),Lr=p([n("rewardState"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardLastUpdate