@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 73 kB
JavaScript
var lo=Object.defineProperty,mo=Object.defineProperties;var po=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var nn=Object.prototype.hasOwnProperty,on=Object.prototype.propertyIsEnumerable;var tn=(i,t,n)=>t in i?lo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,K=(i,t)=>{for(var n in t||(t={}))nn.call(t,n)&&tn(i,n,t[n]);if(nt)for(var n of nt(t))on.call(t,n)&&tn(i,n,t[n]);return i},_=(i,t)=>mo(i,po(t));var ue=(i,t)=>{var n={};for(var r in i)nn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&nt)for(var r of nt(i))t.indexOf(r)<0&&on.call(i,r)&&(n[r]=i[r]);return n};import{PublicKey as wa,Transaction as Jt,TransactionInstruction as ka}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ta}from"@solana/spl-token";import uo from"bn.js";import{PublicKey as bo}from"@solana/web3.js";import{get as rn,set as fo}from"lodash";var It=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},an={},yo={};function E(i){let t=rn(an,i);if(!t){let n=rn(yo,i);t=new It({name:i,logLevel:n}),fo(an,i,t)}return t}import{MINT_SIZE as Na,TOKEN_PROGRAM_ID as Ma,getTransferFeeConfig as Fa,unpackMint as va}from"@solana/spl-token";var Bt=E("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=K({batchRequest:!1},n),y=St(t,d),f=new Array(y.length).fill([]);if(r){let P=y.map(O=>{let C=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),x=St(P,10);f=(await(await Promise.all(x.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&Bt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(C=>{if(C){let{data:B,executable:M,lamports:A,owner:T,rentEpoch:I}=C;return B.length!==2&&B[1]!=="base64"&&Bt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:A,owner:new bo(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(y.map(P=>i.getMultipleAccountsInfo(P,u)))}catch(P){P instanceof Error&&Bt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.message}`)}return f.flat()}import he from"bn.js";import JC from"decimal.js";import Io from"big.js";import Ja from"bn.js";import go from"toformat";var Po=go,We=Po;import it from"big.js";import wo from"bn.js";import ko from"decimal.js-light";import qe from"bn.js";var sn=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof qe)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new qe(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=sn||i<=-sn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new qe(String(i))):typeof i=="bigint"?new qe(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new qe(0))}var ot=E("module/fraction"),xt=We(it),Ue=We(ko),To={[0]:Ue.ROUND_DOWN,[1]:Ue.ROUND_HALF_UP,[2]:Ue.ROUND_UP},ho={[0]:it.roundDown,[1]:it.roundHalfUp,[2]:it.roundUp},U=class{constructor(t,n=new wo(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||ot.logWithError(`${t} is not an integer.`),t<=0&&ot.logWithError(`${t} is not positive.`),Ue.set({precision:t+1,rounding:To[r]});let u=new Ue(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||ot.logWithError(`${t} is not an integer.`),t<0&&ot.logWithError(`${t} is negative.`),xt.DP=t,xt.RM=ho[r]||1,new xt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var us=E("Raydium_amount"),cs=We(Io);import{PublicKey as So}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as un}from"@solana/spl-token";var rt={chainId:101,address:So.default.toBase58(),programId:un.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:un.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 Ct}from"@solana/web3.js";import{PublicKey as z,SystemProgram as cn,SYSVAR_RENT_PUBKEY as xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ko}from"@solana/spl-token";function Be({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Co=[Be({pubkey:Ko,isWritable:!1}),Be({pubkey:cn.programId,isWritable:!1}),Be({pubkey:xo,isWritable:!1})];function ln({publicKey:i,transformSol:t}){let n=mn(i.toString());if(n instanceof z)return t&&n.equals(Pe)?ce:n;if(t&&n.toString()===Pe.toBase58())return ce;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function mn(i){try{return new z(i)}catch{return i}}var Kt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Se=new z("SysvarRent111111111111111111111111111111111"),Ro=new z("SysvarC1ock11111111111111111111111111111111"),at=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Lo=new z("Sysvar1nstructions1111111111111111111111111"),dn=cn.programId,gs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ps=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),As=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ws=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ks=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ts=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),hs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Is=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Bs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ss=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),xs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ce=new z("So11111111111111111111111111111111111111112"),Pe=z.default;var Rt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===Pe.toBase58()||t instanceof Ct&&Pe.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Ct(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?Ct.default:ln({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Rt;J.WSOL=new Rt(_(K({},le),{mint:le.address}));var Lt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},st=Lt;st.SOL=new Lt(rt);import Oo from"bn.js";var Es=new U(new Oo(100));var zs=E("Raydium_price");import{merge as JK}from"lodash";import eu from"axios";var pn={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"},No=_(K({},pn),{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 hu=E("Raydium_Api");import{PublicKey as Wl,SystemProgram as ql}from"@solana/web3.js";import{AccountLayout as Xl,createAssociatedTokenAccountIdempotentInstruction as Ql,TOKEN_PROGRAM_ID as Zl,TOKEN_2022_PROGRAM_ID as Hl}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Vt,SystemProgram as Eo,Transaction as Ye,TransactionMessage as Xe,VersionedTransaction as Qe}from"@solana/web3.js";import Do from"axios";import{PublicKey as Ot,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function Nt({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(d=>d.toString()))].map(d=>new Ot(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],f=t[d];if(!y)continue;let P=new Ce({key:f,state:Ce.deserialize(y.data)});u[f.toString()]=P,n==="devnet"?Ke[f.toString()]=P:xe[f.toString()]=P}return u}var xe={},Mt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xe[t])return xe;let n=new Ot(t),r=await i.getAccountInfo(n);return r&&(xe[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),xe},Ke={},Ft=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ke[t])return Ke;let n=new Ot(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),Ke};var Q={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as fn,Keypair as bn,PublicKey as Mo,Transaction as gn,TransactionMessage as Fo,VersionedTransaction as Pn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";var yn=E("Raydium_txUtil"),An=1644;function ut(i){let t=[],n=[];return i.microLamports&&(t.push(fn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(fn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function ct(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}r(Object.assign(d.err,{txId:t}))},"confirmed")})}function vt(i,t){i.length<1&&yn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&yn.logWithError(`no signers provided:, ${t.toString()}`);let n=new gn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<An}catch{return!1}}function me(i,t){let[n,r]=Mo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Ge({instructions:i,payer:t,signers:n}){return vt(i,[t,...n])}function ze({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=bn.generate().publicKey.toString()}){let d=new Fo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Pn(d).serialize()).toString("base64").length<An}catch{return!1}}var Vo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),_o=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Pn&&(t=Vo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ae(i){let t=[];return i.forEach(n=>{n instanceof gn&&(n.recentBlockhash||(n.recentBlockhash=vo.toBase58()),n.feePayer||(n.feePayer=bn.generate().publicKey)),t.push(_o(n))}),console.log("simulate tx string:",t),t}var lt=2e3,mt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 r;let t=(await Do.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=ut(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Eo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...y.filter(f=>f!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(_(K({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ye;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:d,skipPreflight:y=!0,sendAndConfirm:f,notSendToRpc:P}=u||{},x=d!=null?d:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=x,this.signers.length&&n.sign(...this.signers),Ae([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Vt(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:y}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let C of O)try{C.sign(...this.signers)}catch{}return{txId:P?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:y}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var x;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(b=>b.transaction.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],P=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:y,signers:f,instructionTypes:P,execute:async b=>{var I;let{sequentially:O,onTxUpdate:C,skipTxCount:B=0,recentBlockHash:M,skipPreflight:A=!0}=b||{},T=M!=null?M:await Re(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of y){if(++F,F<=B)continue;let p=await Vt(this.connection,v,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});h.push(p)}return{txIds:h,signedTxs:y}}return{txIds:await await Promise.all(y.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:y}}if(this.signAllTransactions){let h=y.map((v,p)=>(v.recentBlockhash=T,f[p].length&&v.sign(...f[p]),v));Ae(h);let F=await this.signAllTransactions(h);if(O){let v=0,p=[],w=async()=>{if(!F[v])return;let k=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});p.push({txId:k,status:"sent",signedTx:F[v]}),C==null||C([...p]),v++;let S=!1,R=null,V=null,ie=q=>{R!==null&&clearInterval(R),V!==null&&this.connection.removeSignatureListener(V);let W=p.findIndex(j=>j.txId===k);if(W>-1){if(p[W].status==="error"||p[W].status==="success")return;p[W].status=q.err?"error":"success"}C==null||C([...p]),q.err||w()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(S){clearInterval(R);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(S=!0,clearInterval(R),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){S=!0,clearInterval(R),console.error("getTransaction timeout:",W,k)}},lt)),V=this.connection.onSignature(k,q=>{if(S){this.connection.removeSignatureListener(V);return}S=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:p.map(k=>k.txId),signedTxs:F}}else{let v=[];for(let p=0;p<F.length;p+=1){let w=await this.connection.sendRawTransaction(F[p].serialize(),{skipPreflight:A});v.push(w)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=M,y=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=K(K({},this.cluster==="devnet"?await Ft(this.connection):await Mt(this.connection)),n),P=Array.from(new Set([...r,...this.lookupTableAddress])),x=[];for(let T of P)f[T]===void 0&&x.push(new Le(T));let b=await Nt({connection:this.connection,address:x});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?Le.default.toBase58():d!=null?d:await Re(this.connection,this.blockhashCommitment),C=new Xe({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new Qe(C);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:F}=T||{};if(Ae([B]),(v=this.owner)!=null&&v.isKeyPair){let p=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await ct(this.connection,p),{txId:p,signedTx:B}}if(this.signAllTransactions){let p=await this.signAllTransactions([B]);if(this.signers.length)for(let w of p)try{w.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(p[0],{skipPreflight:I}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}async buildV0MultiTx(t){var x;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(b=>b.builder.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],P=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),y.forEach(async(b,O)=>{b.sign(f[O])}),{builder:this,transactions:y,signers:f,instructionTypes:P,buildProps:r,execute:async b=>{var A;let{sequentially:O,onTxUpdate:C,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&y.forEach(T=>T.message.recentBlockhash=B),Ae(y),(A=this.owner)!=null&&A.isKeyPair){if(O){let T=[];for(let I of y){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await ct(this.connection,h),T.push(h)}return{txIds:T,signedTxs:y}}return{txIds:await Promise.all(y.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:y}}if(this.signAllTransactions){let T=await this.signAllTransactions(y);if(O){let I=0,h=[],F=async()=>{if(!T[I])return;let v=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[I]}),C==null||C([...h]),I++;let p=!1,w=null,k=null,S=R=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let V=h.findIndex(ie=>ie.txId===v);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=R.err?"error":"success"}C==null||C([...h]),R.err||F()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var R;if(p){clearInterval(w);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(p=!0,clearInterval(w),S({err:((R=V.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){p=!0,clearInterval(w),console.error("getTransaction timeout:",V,v)}},lt)),k=this.connection.onSignature(v,R=>{if(p){this.connection.removeSignatureListener(k);return}p=!0,S(R)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let F=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(F)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var C;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),d=r?ut(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((B,M)=>_(K({},B),{[M.publicKey.toBase58()]:M}),{}),f=[],P=[],x=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...x,B],A=r?[...d.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Le(h));if(B!==n[b]&&x.length<12&&(Ge({instructions:A,payer:this.feePayer,signers:I})||Ge({instructions:M,payer:this.feePayer,signers:I})))x.push(B);else{if(x.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,Ge({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:I})?f.push(new Ye().add(...d.instructions,...x)):f.push(new Ye().add(...x)),P.push(Array.from(new Set(x.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>y[h]).filter(h=>h!==void 0)),x=[B]}}),x.length>0){let M=[...new Set(x.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>y[A]).filter(A=>A!==void 0);Ge({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?f.push(new Ye().add(...d.instructions,...x)):f.push(new Ye().add(...x)),P.push(M)}return f.forEach(B=>B.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&P.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:f,signers:P,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:M,onTxUpdate:A,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=B||{},F=I!=null?I:await Re(this.connection,this.blockhashCommitment);if(f.forEach(async(p,w)=>{p.recentBlockhash=F,P[w].length&&p.sign(...P[w])}),Ae(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let p=0,w=[];for(let k of f){if(++p,p<=T){w.push("tx skipped");continue}let S=await Vt(this.connection,k,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});w.push(S)}return{txIds:w,signedTxs:f}}return{txIds:await Promise.all(f.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let p=await this.signAllTransactions(f.slice(T,f.length)),w=[...f.slice(0,T),...p];if(M){let k=0,S=[],R=async()=>{if(!w[k])return;k<T&&(S.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...S]),k++,R());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:h});S.push({txId:V,status:"sent",signedTx:w[k]}),A==null||A([...S]),k++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=S.findIndex(pe=>pe.txId===V);if(te>-1){if(S[te].status==="error"||S[te].status==="success")return;S[te].status=G.err?"error":"success"}A==null||A([...S]),G.err||R()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(ie=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},lt)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await R(),{txIds:S.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let S=0;S<w.length;S+=1){let R=await this.connection.sendRawTransaction(w[S].serialize(),{skipPreflight:h});k.push(R)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:y=12}=F,f=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),P=K(K({},this.cluster==="devnet"?await Ft(this.connection):await Mt(this.connection)),u),x=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let p of x)P[p]===void 0&&b.push(new Le(p));let O=await Nt({connection:this.connection,address:b});for(let[p,w]of Object.entries(O))P[p]=w;let C=n?ut(n):{instructions:[],instructionTypes:[]},B=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((p,w)=>_(K({},p),{[w.publicKey.toBase58()]:w}),{}),A=[],T=[],I=[],h=0;if(this.allInstructions.forEach(p=>{let w=[...I,p],k=n?[...C.instructions,...w]:w;if(p!==r[h]&&I.length<y&&(ze({instructions:k,payer:this.feePayer,lookupTableAddressAccount:P})||ze({instructions:w,payer:this.feePayer,lookupTableAddressAccount:P})))I.push(p);else{if(I.length===0)throw Error("item ins too big");h+=p===r[h]?1:0;let S={};for(let R of[...new Set(x)])P[R]!==void 0&&(S[R]=P[R]);if(n&&ze({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:B})){let R=new Xe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Qe(R))}else{let R=new Xe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(P));A.push(new Qe(R))}T.push(Array.from(new Set(I.map(R=>R.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(R=>M[R]).filter(R=>R!==void 0)),I=[p]}}),I.length>0){let w=[...new Set(I.map(k=>k.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&ze({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:B})){let k=new Xe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Qe(k))}else{let k=new Xe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(P));A.push(new Qe(k))}T.push(w)}return(v=this.owner)!=null&&v.signer&&T.forEach(p=>{p.some(w=>w.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),A.forEach((p,w)=>{p.sign(T[w])}),{builder:this,transactions:A,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async p=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:S=0,recentBlockHash:R,skipPreflight:V=!0}=p||{};if(A.map(async(q,W)=>{T[W].length&&q.sign(T[W]),R&&(q.message.recentBlockhash=R)}),Ae(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let q=0,W=[];for(let j of A){if(++q,q<=S){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await ct(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(S,A.length)),W=[...A.slice(0,S),...q];if(w){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<S){G.push({txId:"",status:"success",signedTx:W[j]}),k==null||k([...G]),j++,te();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[j]}),k==null||k([...G]),j++;let Ee=!1,Ie=null,tt=null,en=ge=>{Ie!==null&&clearInterval(Ie),tt!==null&&this.connection.removeSignatureListener(tt);let fe=G.findIndex(co=>co.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=ge.err?"error":"success"}k==null||k([...G]),ge.err||te()};this.loopMultiTxStatus&&(Ie=setInterval(async()=>{var ge;if(Ee){clearInterval(Ie);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(Ee=!0,clearInterval(Ie),en({err:((ge=fe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){Ee=!0,clearInterval(Ie),console.error("getTransaction timeout:",fe,pe)}},lt)),tt=this.connection.onSignature(pe,ge=>{if(Ee){this.connection.removeSignatureListener(tt);return}Ee=!0,en(ge)},"confirmed"),this.connection.getSignatureStatus(pe)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var _t=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new mt({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(_t(t))}logInfo(...t){this.logger.info(_t(t))}logAndCreateError(...t){let n=_t(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Pl,SystemProgram as wl}from"@solana/web3.js";import hl from"bn.js";import{createCloseAccountInstruction as xl,createInitializeAccountInstruction as Kl,createTransferInstruction as Cl,TOKEN_PROGRAM_ID as Rl}from"@solana/spl-token";import{Keypair as rl,PublicKey as al}from"@solana/web3.js";import cl from"bn.js";import{TOKEN_PROGRAM_ID as dl}from"@solana/spl-token";import{PublicKey as Jo}from"@solana/web3.js";import Bn,{isBN as Sn}from"bn.js";import{bits as Wo,BitStructure as mc,blob as qo,Blob as dc,cstr as pc,f32 as fc,f32be as yc,f64 as bc,f64be as gc,greedy as Pc,Layout as Uo,ns64 as Ac,ns64be as wc,nu64 as Go,nu64be as kc,offset as zo,s16 as Tc,s16be as hc,s24 as Ic,s24be as Bc,s32 as Yo,s32be as Sc,s40 as xc,s40be as Kc,s48 as Cc,s48be as Rc,s8 as Lc,seq as Xo,struct as Oc,Structure as Qo,u16 as Zo,u16be as Nc,u24 as Mc,u24be as Fc,u32 as Ho,u32be as vc,u40 as Vc,u40be as _c,u48 as Ec,u48be as Dc,u8 as jo,UInt as $o,union as Wc,Union as qc,unionLayoutDiscriminator as Uc,utf8 as Gc}from"@solana/buffer-layout";var dt=Uo,wn=Qo;var Et=$o;var kn=jo,Z=Zo;var pt=Ho;var Tn=Go;var ae=Yo;var hn=Xo;var N=qo;var Dt=Wo,In=zo;var ke=class extends dt{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Bn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new Bn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},ft=class extends dt{constructor(n){super(8,n);this._lower=Dt(pt(),!1),this._upper=Dt(pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),d=this._upper.decode(n,r+this._lower.span);return K(K({},u),d)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Et(1,i)}function Y(i){return new Et(4,i)}function e(i){return new ke(8,!1,i)}function L(i){return new ke(16,!1,i)}function xn(i){return new ke(1,!0,i)}function Oe(i){return new ke(8,!0,i)}function Kn(i){return new ke(16,!0,i)}var Ze=class extends dt{constructor(n,r,u,d){super(n.span,d);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new Ze(N(32),t=>new Jo(t),t=>t.toBuffer(),i)}function re(i){return new Ze(kn(),ei,ti,i)}function ei(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function ti(i){return i?1:0}function Cn(i,t){let n=pt("length"),r=l([n,m(i,In(n,-n.span),"values")]);return new Ze(r,({values:u})=>u,u=>({values:u}),t)}var Wt=class extends wn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Wt(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:Sn(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let f=Reflect.get(d,"count");r=Sn(f)?f.toNumber():f,Reflect.set(d,"count",r)}return Reflect.get(d,y)},set(d,y,f){return y==="count"&&(r=f),Reflect.set(d,y,f)}});return hn(i,u,n)}var yt=l([o("mint"),o("owner"),e("amount"),Y("delegateOption"),o("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as Vg,SystemProgram as _g}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Dg}from"@solana/spl-token";import{PublicKey as om}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as rm}from"@solana/spl-token";import{PublicKey as g}from"@solana/web3.js";var Ln=new g("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),On=new g("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Nn=new g("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),qt=new g("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),cm=new g("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),oi=new g("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Mn=new g("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Fn=new g("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),lm=new g("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ii=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),vn=new g("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ri=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ai=new g("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Vn=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),mm=new g("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),si=new g("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ui=new g("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ci=new g("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),li=new g("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),mi=new g("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ut=new g("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),di=new g("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),dm=new g("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),pi=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),fi=new g("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),yi=new g("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),pm=new g("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),fm=new g("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ym=new g("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),bm=new g("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),gm=new g("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),He={IDO_PROGRAM_ID_V1:ui,IDO_PROGRAM_ID_V2:ci,IDO_PROGRAM_ID_V3:li,IDO_PROGRAM_ID_V4:mi};var be={OPEN_BOOK_PROGRAM:new g("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new g("Ray1111111111111111111111111111111111111111"),AMM_V4:new g("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new g("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new g("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new g("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new g("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new g("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new g("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new g("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new g("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new g("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:g.default,Router:new g("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new g("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new g("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new g("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new g("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new g("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new g("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new g("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new g("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new g("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new g("Ray1111111111111111111111111111111111111111")};import Hg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as fy,TOKEN_2022_PROGRAM_ID as yy,TOKEN_PROGRAM_ID as by}from"@solana/spl-token";import{PublicKey as Py}from"@solana/web3.js";import wy from"bn.js";import Ty from"decimal.js";import{TOKEN_PROGRAM_ID as Lm}from"@solana/spl-token";import{PublicKey as Fm}from"@solana/web3.js";var bi=l([Y("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as vf,TOKEN_2022_PROGRAM_ID as Vf,TOKEN_PROGRAM_ID as _f}from"@solana/spl-token";import{Keypair as Wf,PublicKey as qf,SystemProgram as Gf,TransactionInstruction as zf}from"@solana/web3.js";import Xf from"bn.js";import D from"bn.js";var Te=new D(1).shln(64);var gi=new D(1).shln(128),Gt=new D(1).shln(64).subn(1),Pi=new D(1).shln(128).subn(1);var Me=new D("4295048016"),Fe=new D("79226673521066979257578248091"),Ai=new D("59543866431248"),wi=new D("184467440737095516"),ki=new D("15793534762490258745");var zt=60,Xm=new D("18446743708227953217"),Ti=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var je=3,_n=100;var En=10,Dn=100,gt=14;var H=new D(0),ve=new D(1),Qm=new D(-1);var Zm=new D("18446744073700000000");var hi=l([N(8),c("bump"),Z("index"),o("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Z("tickSpacing"),Y("fundFeeRate"),m(Y(),1),o("fundOwner"),m(e(),3)]),Ii=l([Y("blockTimestamp"),Oe("tickCumulative"),m(e(),4)]),Wn=l([N(8),re("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),m(Ii,_n,"observations"),m(e(),4)]),Bi=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Si=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Yt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Z("tickSpacing"),L("liquidity"),L("sqrtPriceX64"),ae("tickCurrent"),Y(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(L(),4),c("status"),c("feeOn"),N(6),m(Si,je,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Bi.replicate("dynamicFeeInfo"),m(e(),46)]),xi=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Ki=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(xi,je,"rewardInfos"),e("recentEpoch"),m(e(),7)]),Jm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(L(),je,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Ci=l([ae("tick"),Kn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),m(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),m(Y(),3)]),qn=l([N(8),o("poolId"),ae("startTickIndex"),m(Ci,zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Ri=l([N(8),c("bump"),m(o(),En,"operationOwners"),m(o(),Dn,"whitelistMints")]),Li=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),m(e(),4)]),Un=l([N(8),o("poolId"),N(8*8*gt,"positiveTickArrayBitmap"),N(8*8*gt,"negativeTickArrayBitmap")]),ed=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),m(e(),8)]),Oi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),td=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Ni=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import id from"bn.js";var yd=Buffer.from("amm_config","utf8"),Mi=Buffer.from("pool","utf8"),Fi=Buffer.from("pool_vault","utf8"),bd=Buffer.from("pool_reward_vault","utf8"),gd=Buffer.from("position","utf8"),Pd=Buffer.from("tick_array","utf8"),Ad=Buffer.from("operation","utf8"),wd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),kd=Buffer.from("observation","utf8"),Td=Buffer.from("support_mint","utf8"),hd=Buffer.from("dynamic_fee_config","utf8");var Id=Buffer.from("locked_position","utf8");import{sha256 as ji}from"js-sha256";import vi from"bn.js";import Kd from"decimal.js";var Rd=new vi(1).shln(256).subn(1);import Qd from"bn.js";import Vd from"bn.js";import Ed from"decimal.js";import np from"bn.js";import ip from"decimal.js";import{PublicKey as Dp}from"@solana/web3.js";import qp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Hp}from"@solana/spl-token";import ef from"decimal.js";import Cp from"bn.js";import bp from"bn.js";import lf from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(ji.digest(t)).slice(0,8)}Wn.span;var ty=E("Raydium_Clmm"),ny={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{Public