@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 82.8 kB
JavaScript
var ko=Object.defineProperty,To=Object.defineProperties;var ho=Object.getOwnPropertyDescriptors;var ut=Object.getOwnPropertySymbols;var fn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable;var pn=(o,t,n)=>t in o?ko(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,M=(o,t)=>{for(var n in t||(t={}))fn.call(t,n)&&pn(o,n,t[n]);if(ut)for(var n of ut(t))yn.call(t,n)&&pn(o,n,t[n]);return o},_=(o,t)=>To(o,ho(t));var le=(o,t)=>{var n={};for(var r in o)fn.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&ut)for(var r of ut(o))t.indexOf(r)<0&&yn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as at,TransactionInstruction as ge,Keypair as qa,SystemProgram as ln}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Lt,TOKEN_2022_PROGRAM_ID as mn,TOKEN_PROGRAM_ID as be}from"@solana/spl-token";import{PublicKey as So}from"@solana/web3.js";import{get as bn,set as Io}from"lodash";var Ot=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}},gn={},Bo={};function E(o){let t=bn(gn,o);if(!t){let n=bn(Bo,o);t=new Ot({name:o,logLevel:n}),Io(gn,o,t)}return t}import{MINT_SIZE as ts,TOKEN_PROGRAM_ID as ns,getTransferFeeConfig as os,unpackMint as is}from"@solana/spl-token";var Nt=E("Raydium_accountInfo_util");async function ye(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=M({batchRequest:!1},n),d=Mt(t,m),p=new Array(d.length).fill([]);if(r){let b=d.map(B=>{let I=o._buildArgs([B.map(w=>w.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:I}}),A=Mt(b,10);p=(await(await Promise.all(A.map(async B=>await o._rpcBatchRequest(B)))).flat()).map(B=>(B.error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${B.error.message}`),B.result.value.map(I=>{if(I){let{data:w,executable:x,lamports:g,owner:P,rentEpoch:k}=I;return w.length!==2&&w[1]!=="base64"&&Nt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:x,lamports:g,owner:new So(P),rentEpoch:k}}return null})))}else try{p=await Promise.all(d.map(b=>o.getMultipleAccountsInfo(b,u)))}catch(b){b instanceof Error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return p.flat()}import xe from"bn.js";import nR from"decimal.js";import Mo from"big.js";import ks from"bn.js";import xo from"toformat";var Ko=xo,ze=Ko;import lt from"big.js";import Ro from"bn.js";import Lo from"decimal.js-light";import Xe from"bn.js";var Pn=9007199254740991;function oe(o){let t=E("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=Pn||o<=-Pn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Xe(0))}var ct=E("module/fraction"),Ft=ze(lt),Ye=ze(Lo),Oo={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},No={[0]:lt.roundDown,[1]:lt.roundHalfUp,[2]:lt.roundUp},U=class{constructor(t,n=new Ro(1)){this.numerator=oe(t),this.denominator=oe(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(oe(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(oe(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(oe(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||ct.logWithError(`${t} is not an integer.`),t<=0&&ct.logWithError(`${t} is not positive.`),Ye.set({precision:t+1,rounding:Oo[r]});let u=new Ye(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)||ct.logWithError(`${t} is not an integer.`),t<0&&ct.logWithError(`${t} is negative.`),Ft.DP=t,Ft.RM=No[r]||1,new Ft(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Rs=E("Raydium_amount"),Ls=ze(Mo);import{PublicKey as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as An}from"@solana/spl-token";var mt={chainId:101,address:vo.default.toBase58(),programId:An.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:An.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 Vt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as wn,SYSVAR_RENT_PUBKEY as Vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _o}from"@solana/spl-token";function Ce({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Eo=[Ce({pubkey:_o,isWritable:!1}),Ce({pubkey:wn.programId,isWritable:!1}),Ce({pubkey:Vo,isWritable:!1})];function kn({publicKey:o,transformSol:t}){let n=Tn(o.toString());if(n instanceof z)return t&&n.equals(Te)?me:n;if(t&&n.toString()===Te.toBase58())return me;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 Tn(o){try{return new z(o)}catch{return o}}var Qe=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ae=new z("SysvarRent111111111111111111111111111111111"),Do=new z("SysvarC1ock11111111111111111111111111111111"),he=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Wo=new z("Sysvar1nstructions1111111111111111111111111"),vt=wn.programId,Es=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ds=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ws=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),qs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Us=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Gs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),zs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Xs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ys=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Qs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Zs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new z("So11111111111111111111111111111111111111112"),Te=z.default;var _t=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:d=!1}){if(t===Te.toBase58()||t instanceof Vt&&Te.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Vt(de.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=m?Vt.default:kn({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=_t;J.WSOL=new _t(_(M({},de),{mint:de.address}));var Et=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},dt=Et;dt.SOL=new Et(mt);import qo from"bn.js";var su=new U(new qo(100));var pu=E("Raydium_price");import{merge as nC}from"lodash";import Tu from"axios";var hn={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"},Uo=_(M({},hn),{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 zu=E("Raydium_Api");import{PublicKey as cm,SystemProgram as lm}from"@solana/web3.js";import{AccountLayout as ym,createAssociatedTokenAccountIdempotentInstruction as bm,TOKEN_PROGRAM_ID as gm,TOKEN_2022_PROGRAM_ID as Pm}from"@solana/spl-token";import{PublicKey as Me,sendAndConfirmTransaction as zt,SystemProgram as Zo,Transaction as je,TransactionMessage as $e,VersionedTransaction as Je}from"@solana/web3.js";import Ho from"axios";import{PublicKey as Dt,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Wt({connection:o,address:t,cluster:n="mainnet"}){let r=await ye(o,[...new Set(t.map(m=>m.toString()))].map(m=>new Dt(m))),u={};for(let m=0;m<t.length;m++){let d=r[m],p=t[m];if(!d)continue;let b=new Oe({key:p,state:Oe.deserialize(d.data)});u[p.toString()]=b,n==="devnet"?Le[p.toString()]=b:Re[p.toString()]=b}return u}var Re={},qt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[t])return Re;let n=new Dt(t),r=await o.getAccountInfo(n);return r&&(Re[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Re},Le={},Ut=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[t])return Le;let n=new Dt(t),r=await o.getAccountInfo(n);return r&&(Le[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Le};var Y={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 In,Keypair as Sn,PublicKey as Go,Transaction as xn,TransactionMessage as zo,VersionedTransaction as Kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xo}from"@solana/spl-token";var Bn=E("Raydium_txUtil"),Cn=1644;function pt(o){let t=[],n=[];return o.microLamports&&(t.push(In.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Y.SetComputeUnitPrice)),o.units&&(t.push(In.setComputeUnitLimit({units:o.units})),n.push(Y.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ne(o,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:u.blockhash}async function ft(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);o.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Gt(o,t){o.length<1&&Bn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Bn.logWithError(`no signers provided:, ${t.toString()}`);let n=new xn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Cn}catch{return!1}}function re(o,t){let[n,r]=Go.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Ze({instructions:o,payer:t,signers:n}){return Gt(o,[t,...n])}function He({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Sn.generate().publicKey.toString()}){let m=new zo({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Kn(m).serialize()).toString("base64").length<Cn}catch{return!1}}var Yo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Qo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Kn&&(t=Yo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ie(o){let t=[];return o.forEach(n=>{n instanceof xn&&(n.recentBlockhash||(n.recentBlockhash=Xo.toBase58()),n.feePayer||(n.feePayer=Sn.generate().publicKey)),t.push(Qo(n))}),console.log("simulate tx string:",t),t}var yt=2e3,bt=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 Ho.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}=pt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Zo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Me(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Y.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:m=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...d.filter(p=>p!==Me.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(_(M({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new je;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 f;let{recentBlockHash:m,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:b}=u||{},A=m!=null?m:await Ne(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Ie([n]),(f=this.owner)!=null&&f.isKeyPair)return{txId:p?await zt(this.connection,n,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let B=await this.signAllTransactions([n]);if(this.signers.length)for(let I of B)try{I.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(B[0].serialize(),{skipPreflight:d}),signedTx:B[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var A;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(f=>f.transaction.instructions.length>0),d=[u,...m.map(f=>f.transaction)],p=[this.signers,...m.map(f=>f.signers)],b=[...this.instructionTypes,...m.map(f=>f.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(f=>{f.some(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:b,execute:async f=>{var k;let{sequentially:B,onTxUpdate:I,skipTxCount:w=0,recentBlockHash:x,skipPreflight:g=!0}=f||{},P=x!=null?x:await Ne(this.connection,this.blockhashCommitment);if((k=this.owner)!=null&&k.isKeyPair){if(B){let h=[],O=0;for(let N of d){if(++O,O<=w)continue;let T=await zt(this.connection,N,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});h.push(T)}return{txIds:h,signedTxs:d}}return{txIds:await await Promise.all(d.map(async h=>(h.recentBlockhash=P,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:g})))),signedTxs:d}}if(this.signAllTransactions){let h=d.map((N,T)=>(N.recentBlockhash=P,p[T].length&&N.sign(...p[T]),N));Ie(h);let O=await this.signAllTransactions(h);if(B){let N=0,T=[],K=async()=>{if(!O[N])return;let S=await this.connection.sendRawTransaction(O[N].serialize(),{skipPreflight:g});T.push({txId:S,status:"sent",signedTx:O[N]}),I==null||I([...T]),N++;let R=!1,L=null,V=null,te=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=T.findIndex(j=>j.txId===S);if(W>-1){if(T[W].status==="error"||T[W].status==="success")return;T[W].status=q.err?"error":"success"}I==null||I([...T]),q.err||K()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(R){clearInterval(L);return}try{let W=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(R=!0,clearInterval(L),te({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",S))}catch(W){R=!0,clearInterval(L),console.error("getTransaction timeout:",W,S)}},yt)),V=this.connection.onSignature(S,q=>{if(R){this.connection.removeSignatureListener(V);return}R=!0,te(q)},"confirmed"),this.connection.getSignatureStatus(S)};return await K(),{txIds:T.map(S=>S.txId),signedTxs:O}}else{let N=[];for(let T=0;T<O.length;T+=1){let K=await this.connection.sendRawTransaction(O[T].serialize(),{skipPreflight:g});N.push(K)}return{txIds:N,signedTxs:O}}}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 g;let x=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=x,d=le(x,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=M(M({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),n),b=Array.from(new Set([...r,...this.lookupTableAddress])),A=[];for(let P of b)p[P]===void 0&&A.push(new Me(P));let f=await Wt({connection:this.connection,address:A});for(let[P,k]of Object.entries(f))p[P]=k;let B=u?Me.default.toBase58():m!=null?m:await Ne(this.connection,this.blockhashCommitment),I=new $e({payerKey:this.feePayer,recentBlockhash:B,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new Je(I);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var N;let{skipPreflight:k=!0,sendAndConfirm:h,notSendToRpc:O}=P||{};if(Ie([w]),(N=this.owner)!=null&&N.isKeyPair){let T=await this.connection.sendTransaction(w,{skipPreflight:k});return h&&await ft(this.connection,T),{txId:T,signedTx:w}}if(this.signAllTransactions){let T=await this.signAllTransactions([w]);if(this.signers.length)for(let K of T)try{K.sign(this.signers)}catch{}return{txId:O?"":await this.connection.sendTransaction(T[0],{skipPreflight:k}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var A;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(f=>f.builder.instructions.length>0),d=[u,...m.map(f=>f.transaction)],p=[this.signers,...m.map(f=>f.signers)],b=[...this.instructionTypes,...m.map(f=>f.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&p.forEach(f=>{f.some(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(f,B)=>{f.sign(p[B])}),{builder:this,transactions:d,signers:p,instructionTypes:b,buildProps:r,execute:async f=>{var g;let{sequentially:B,onTxUpdate:I,recentBlockHash:w,skipPreflight:x=!0}=f||{};if(w&&d.forEach(P=>P.message.recentBlockhash=w),Ie(d),(g=this.owner)!=null&&g.isKeyPair){if(B){let P=[];for(let k of d){let h=await this.connection.sendTransaction(k,{skipPreflight:x});await ft(this.connection,h),P.push(h)}return{txIds:P,signedTxs:d}}return{txIds:await Promise.all(d.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:x}))),signedTxs:d}}if(this.signAllTransactions){let P=await this.signAllTransactions(d);if(B){let k=0,h=[],O=async()=>{if(!P[k])return;let N=await this.connection.sendTransaction(P[k],{skipPreflight:x});h.push({txId:N,status:"sent",signedTx:P[k]}),I==null||I([...h]),k++;let T=!1,K=null,S=null,R=L=>{K!==null&&clearInterval(K),S!==null&&this.connection.removeSignatureListener(S);let V=h.findIndex(te=>te.txId===N);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=L.err?"error":"success"}I==null||I([...h]),L.err||O()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var L;if(T){clearInterval(K);return}try{let V=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(T=!0,clearInterval(K),R({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",N))}catch(V){T=!0,clearInterval(K),console.error("getTransaction timeout:",V,N)}},yt)),S=this.connection.onSignature(N,L=>{if(T){this.connection.removeSignatureListener(S);return}T=!0,R(L)},"confirmed"),this.connection.getSignatureStatus(N)};return O(),{txIds:[],signedTxs:P}}else{let k=[];for(let h=0;h<P.length;h+=1){let O=await this.connection.sendTransaction(P[h],{skipPreflight:x});k.push(O)}return{txIds:k,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var I;let B=t||{},{splitIns:n=[],computeBudgetConfig:r}=B,u=le(B,["splitIns","computeBudgetConfig"]),m=r?pt(r):{instructions:[],instructionTypes:[]},d=this.signers.reduce((w,x)=>_(M({},w),{[x.publicKey.toBase58()]:x}),{}),p=[],b=[],A=[],f=0;if(this.allInstructions.forEach(w=>{let x=[...A,w],g=r?[...m.instructions,...x]:x,k=[...new Set(x.map(h=>h.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(h=>new Me(h));if(w!==n[f]&&A.length<12&&(Ze({instructions:g,payer:this.feePayer,signers:k})||Ze({instructions:x,payer:this.feePayer,signers:k})))A.push(w);else{if(A.length===0)throw Error("item ins too big");f+=w===n[f]?1:0,Ze({instructions:r?[...m.instructions,...A]:[...A],payer:this.feePayer,signers:k})?p.push(new je().add(...m.instructions,...A)):p.push(new je().add(...A)),b.push(Array.from(new Set(A.map(h=>h.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(h=>d[h]).filter(h=>h!==void 0)),A=[w]}}),A.length>0){let x=[...new Set(A.map(g=>g.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(g=>d[g]).filter(g=>g!==void 0);Ze({instructions:r?[...m.instructions,...A]:[...A],payer:this.feePayer,signers:x.map(g=>g.publicKey)})?p.push(new je().add(...m.instructions,...A)):p.push(new je().add(...A)),b.push(x)}return p.forEach(w=>w.feePayer=this.feePayer),(I=this.owner)!=null&&I.signer&&b.forEach(w=>{w.some(x=>x.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:p,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var N;let{sequentially:x,onTxUpdate:g,skipTxCount:P=0,recentBlockHash:k,skipPreflight:h=!0}=w||{},O=k!=null?k:await Ne(this.connection,this.blockhashCommitment);if(p.forEach(async(T,K)=>{T.recentBlockhash=O,b[K].length&&T.sign(...b[K])}),Ie(p),(N=this.owner)!=null&&N.isKeyPair){if(x){let T=0,K=[];for(let S of p){if(++T,T<=P){K.push("tx skipped");continue}let R=await zt(this.connection,S,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});K.push(R)}return{txIds:K,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p.slice(P,p.length)),K=[...p.slice(0,P),...T];if(x){let S=0,R=[],L=async()=>{if(!K[S])return;S<P&&(R.push({txId:"",status:"success",signedTx:K[S]}),g==null||g([...R]),S++,L());let V=await this.connection.sendRawTransaction(K[S].serialize(),{skipPreflight:h});R.push({txId:V,status:"sent",signedTx:K[S]}),g==null||g([...R]),S++;let te=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=R.findIndex(pe=>pe.txId===V);if(ne>-1){if(R[ne].status==="error"||R[ne].status==="success")return;R[ne].status=G.err?"error":"success"}g==null||g([...R]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(te){clearInterval(q);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(te=!0,clearInterval(q),j({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){te=!0,clearInterval(q),console.error("getTransaction timeout:",ne,V)}},yt)),W=this.connection.onSignature(V,G=>{if(te){this.connection.removeSignatureListener(W);return}te=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:R.map(V=>V.txId),signedTxs:K}}else{let S=[];for(let R=0;R<K.length;R+=1){let L=await this.connection.sendRawTransaction(K[R].serialize(),{skipPreflight:h});S.push(L)}return{txIds:S,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var N;let O=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:d=12}=O,p=le(O,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=M(M({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),u),A=Array.from(new Set([...this.lookupTableAddress,...m])),f=[];for(let T of A)b[T]===void 0&&f.push(new Me(T));let B=await Wt({connection:this.connection,address:f});for(let[T,K]of Object.entries(B))b[T]=K;let I=n?pt(n):{instructions:[],instructionTypes:[]},w=await Ne(this.connection,this.blockhashCommitment),x=this.signers.reduce((T,K)=>_(M({},T),{[K.publicKey.toBase58()]:K}),{}),g=[],P=[],k=[],h=0;if(this.allInstructions.forEach(T=>{let K=[...k,T],S=n?[...I.instructions,...K]:K;if(T!==r[h]&&k.length<d&&(He({instructions:S,payer:this.feePayer,lookupTableAddressAccount:b})||He({instructions:K,payer:this.feePayer,lookupTableAddressAccount:b})))k.push(T);else{if(k.length===0)throw Error("item ins too big");h+=T===r[h]?1:0;let R={};for(let L of[...new Set(A)])b[L]!==void 0&&(R[L]=b[L]);if(n&&He({instructions:[...I.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let L=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...I.instructions,...k]}).compileToV0Message(Object.values(b));g.push(new Je(L))}else{let L=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k]}).compileToV0Message(Object.values(b));g.push(new Je(L))}P.push(Array.from(new Set(k.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>x[L]).filter(L=>L!==void 0)),k=[T]}}),k.length>0){let K=[...new Set(k.map(S=>S.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(S=>x[S]).filter(S=>S!==void 0);if(n&&He({instructions:[...I.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let S=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...I.instructions,...k]}).compileToV0Message(Object.values(b));g.push(new Je(S))}else{let S=new $e({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k]}).compileToV0Message(Object.values(b));g.push(new Je(S))}P.push(K)}return(N=this.owner)!=null&&N.signer&&P.forEach(T=>{T.some(K=>K.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),g.forEach((T,K)=>{T.sign(P[K])}),{builder:this,transactions:g,buildProps:t,signers:P,instructionTypes:this.instructionTypes,execute:async T=>{var te;let{sequentially:K,onTxUpdate:S,skipTxCount:R=0,recentBlockHash:L,skipPreflight:V=!0}=T||{};if(g.map(async(q,W)=>{P[W].length&&q.sign(P[W]),L&&(q.message.recentBlockhash=L)}),Ie(g),(te=this.owner)!=null&&te.isKeyPair){if(K){let q=0,W=[];for(let j of g){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await ft(this.connection,G),W.push(G)}return{txIds:W,signedTxs:g}}return{txIds:await Promise.all(g.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:g}}if(this.signAllTransactions){let q=await this.signAllTransactions(g.slice(R,g.length)),W=[...g.slice(0,R),...q];if(K){let j=0,G=[],ne=async()=>{if(!W[j])return;if(j<R){G.push({txId:"",status:"success",signedTx:W[j]}),S==null||S([...G]),j++,ne();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[j]}),S==null||S([...G]),j++;let Ue=!1,Ke=null,st=null,dn=ke=>{Ke!==null&&clearInterval(Ke),st!==null&&this.connection.removeSignatureListener(st);let fe=G.findIndex(wo=>wo.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=ke.err?"error":"success"}S==null||S([...G]),ke.err||ne()};this.loopMultiTxStatus&&(Ke=setInterval(async()=>{var ke;if(Ue){clearInterval(Ke);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(Ue=!0,clearInterval(Ke),dn({err:((ke=fe.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){Ue=!0,clearInterval(Ke),console.error("getTransaction timeout:",fe,pe)}},yt)),st=this.connection.onSignature(pe,ke=>{if(Ue){this.connection.removeSignatureListener(st);return}Ue=!0,dn(ke)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(ne)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Xt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new bt({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(Xt(t))}logInfo(...t){this.logger.info(Xt(t))}logAndCreateError(...t){let n=Xt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Dl,SystemProgram as ql}from"@solana/web3.js";import zl from"bn.js";import{createCloseAccountInstruction as Zl,createInitializeAccountInstruction as Hl,createTransferInstruction as jl,TOKEN_PROGRAM_ID as $l}from"@solana/spl-token";import{Keypair as xl,PublicKey as Kl}from"@solana/web3.js";import Ll from"bn.js";import{TOKEN_PROGRAM_ID as Ml}from"@solana/spl-token";import{PublicKey as ci}from"@solana/web3.js";import Fn,{isBN as vn}from"bn.js";import{bits as jo,BitStructure as Nc,blob as $o,Blob as Mc,cstr as Fc,f32 as vc,f32be as Vc,f64 as _c,f64be as Ec,greedy as Dc,Layout as Jo,ns64 as Wc,ns64be as qc,nu64 as ei,nu64be as Uc,offset as ti,s16 as Gc,s16be as zc,s24 as Xc,s24be as Yc,s32 as ni,s32be as Qc,s40 as Zc,s40be as Hc,s48 as jc,s48be as $c,s8 as Jc,seq as oi,struct as el,Structure as ii,u16 as ri,u16be as tl,u24 as nl,u24be as ol,u32 as ai,u32be as il,u40 as rl,u40be as al,u48 as sl,u48be as ul,u8 as si,UInt as ui,union as cl,Union as ll,unionLayoutDiscriminator as ml,utf8 as dl}from"@solana/buffer-layout";var gt=Jo,Rn=ii;var Yt=ui;var Ln=si,Z=ri;var Pt=ai;var On=ei;var ue=ni;var Nn=oi;var v=$o;var Qt=jo,Mn=ti;var Se=class extends gt{constructor(n,r,u){super(n,u);this.blob=v(n),this.signed=r}decode(n,r=0){let u=new Fn(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 Fn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},At=class extends gt{constructor(n){super(8,n);this._lower=Qt(Pt(),!1),this._upper=Qt(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),m=this._upper.decode(n,r+this._lower.span);return M(M({},u),m)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function l(o){return new Yt(1,o)}function X(o){return new Yt(4,o)}function e(o){return new Se(8,!1,o)}function F(o){return new Se(16,!1,o)}function Vn(o){return new Se(1,!0,o)}function Fe(o){return new Se(8,!0,o)}function _n(o){return new Se(16,!0,o)}var et=class extends gt{constructor(n,r,u,m){super(n.span,m);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 i(o){return new et(v(32),t=>new ci(t),t=>t.toBuffer(),o)}function se(o){return new et(Ln(),li,mi,o)}function li(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function mi(o){return o?1:0}function En(o,t){let n=Pt("length"),r=c([n,y(o,Mn(n,-n.span),"values")]);return new et(r,({values:u})=>u,u=>({values:u}),t)}var Zt=class extends Rn{decode(t,n){return super.decode(t,n)}};function c(o,t,n){return new Zt(o,t,n)}function y(o,t,n){let r,u=typeof t=="number"?t:vn(t)?t.toNumber():new Proxy(t,{get(m,d){if(!r){let p=Reflect.get(m,"count");r=vn(p)?p.toNumber():p,Reflect.set(m,"count",r)}return Reflect.get(m,d)},set(m,d,p){return d==="count"&&(r=p),Reflect.set(m,d,p)}});return Nn(o,u,n)}var wt=c([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),l("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as iP,SystemProgram as rP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as sP}from"@solana/spl-token";import{PublicKey as pi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fi}from"@solana/spl-token";function ae(o,t,n){return re([o.toBuffer(),(n!=null?n:fi).toBuffer(),t.toBuffer()],new pi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as C}from"@solana/web3.js";var Wn=new C("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),qn=new C("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Un=new C("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ht=new C("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Cm=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),yi=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Gn=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),zn=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Rm=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),bi=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xn=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),gi=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Pi=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Yn=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Lm=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ai=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),wi=new C("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ki=new C("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ti=new C("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),hi=new C("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Tt=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Qn=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Om=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ii=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Bi=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Si=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Nm=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Mm=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Fm=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),vm=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Vm=new C("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),tt={IDO_PROGRAM_ID_V1:wi,IDO_PROGRAM_ID_V2:ki,IDO_PROGRAM_ID_V3:Ti,IDO_PROGRAM_ID_V4:hi};var we={OPEN_BOOK_PROGRAM:new C("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new C("Ray1111111111111111111111111111111111111111"),AMM_V4:new C("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new C("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new C("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new C("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new C("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new C("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new C("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new C("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:C.default,Router:new C("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new C("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new C("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new C("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new C("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new C("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new C("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new C("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new C("Ray1111111111111111111111111111111111111111")};import gP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Fy,TOKEN_2022_PROGRAM_ID as vy,TOKEN_PROGRAM_ID as Vy}from"@solana/spl-token";import{PublicKey as Ey}from"@solana/web3.js";import Wy from"bn.js";import Uy from"decimal.js";import{TOKEN_PROGRAM_ID as jm}from"@solana/spl-token";import{PublicKey as td}from"@solana/web3.js";var xi=c([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as oy,TOKEN_2022_PROGRAM_ID as iy,TOKEN_PROGRAM_ID as ry}from"@solana/spl-token";import{Keypair as uy,PublicKey as cy,SystemProgram as my,TransactionInstruction as dy}from"@solana/web3.js";import fy from"bn.js";import D from"bn.js";var Ve=new D(1).shln(64);var Ki=new D(1).shln(128),jt=new D(1).shln(64).subn(1),Ci=new D(1).shln(128).subn(1);var _e=new D("4295048016"),Ee=new D("79226673521066979257578248091"),Ri=new D("59543866431248"),Li=new D("184467440737095516"),Oi=new D("15793534762490258745");var $t=60,pd=new D("18446743708227953217"),Ni=[{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 nt=3,Zn=100;var Hn=10,jn=100,ht=14;var H=new D(0),De=new D(1),fd=new D(-1);var yd=new D("18446744073700000000");var Mi=c([v(8),l("bump"),Z("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Z("tickSpacing"),X("fundFeeRate"),y(X(),1),i("fundOwner"),y(e(),3)]),Fi=c([X("blockTimestamp"),Fe("tickCumulative"),y(e(),4)]),$n=c([v(8),se("initialized"),e("recentEpoch"),Z("observationIndex"),i("poolId"),y(Fi,Zn,"observations"),y(e(),4)]),vi=c([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),y(l(),46)]),Vi=c([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),F("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),F("growthGlobalX64")]),Jt=c([v(8),l("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),Z("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),ue("tickCurrent"),X(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),y(F(),4),l("status"),l("feeOn"),v(6),y(Vi,nt,"rewardInfos"),v(8*16,"tickArrayBitmap"),y(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),vi.replicate("dynamicFeeInfo"),y(e(),46)]),_i=c([F("growthInsideLastX64"),e("rewardAmountOwed")]),Ei=c([v(8),l("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),y(_i,nt,"rewardInfos"),e("recentEpoch"),y(e(),7)]),Ad=c([v(8),l("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),y(F(),nt,"rewardGrowthInside"),e("recentEpoch"),y(e(),7)]),Di=c([ue("tick"),_n("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),y(F(),nt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),F("unfilledRatioX64"),y(X(),3)]),Jn=c([v(8),i("poolId"),ue("startTickIndex"),y(Di,$t,"ticks"),l("initializedTickCount"),e("recentEpoch"),y(l(),107)]),Wi=c([v(8),l("bump"),y(i(),Hn,"operationOwners"),y(i(),jn,"whitelistMints")]),qi=c([v(8),i("poolId"),i("owner"),ue("tick"),se("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),F("unfilledRatioX64"),y(e(),4)]),eo=c([v(8),i("poolId"),v(8*8*ht,"positiveTickArrayBitmap"),v(8*8*ht,"negativeTickArrayBitmap")]),wd=c([v(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),y(e(),8)]),Ui=c([v(8),i("wallet"),l("nonceIndex"),e("orderNonce"),y(e(),4)]),kd=c([e(),l("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),y(e(),8)]),Gi=c([v(8),l("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),y(e(),8)]);import Id from"bn.js";var Fd=Buffer.from("amm_config","utf8"),zi=Buffer.from("pool","utf8"),Xi=Buffer.from("pool_vault","utf8"),vd=Buffer.from("pool_reward_vault","utf8"),Vd=Buffer.from("position","utf8"),_d=Buffer.from("tick_array","utf8"),Ed=Buffer.from("operation","utf8"),Dd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Wd=Buffer.from("observation","utf8"),qd=Buffer.from("support_mint","utf8"),Ud=Buffer.from("dynamic_fee_config","utf8");function It(o){return re([Buffer.from("metadata","utf8"),he.toBuffer(),o.toBuffer()],he)}var Gd=Buffer.from("locked_position","utf8");import{sha256 as sr}from"js-sha256";import Yi from"bn.js";import Qd from"decimal.js";var Hd=new Yi(1).shln(256).subn(1);import fp from"bn.js";import op from"bn.js";import rp from"decimal.js";import Ap from"bn.js";import kp from"decimal.js";import{PublicKey as uf}from"@solana/web3.js";import lf from"bn.js";import{TOKEN_2022_PROGRAM_ID as Pf}from"@solana/spl-token";import Tf from"decimal.js";import Hp from"bn.js";import Vp from"bn.js";import Lf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(sr.digest(t)).slice(0,8)}$n.span;var Ty=E("Raydium_Clmm"),hy={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"),collectRemai