@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 75.1 kB
JavaScript
var mo=Object.defineProperty,po=Object.defineProperties;var fo=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var un=Object.prototype.hasOwnProperty,cn=Object.prototype.propertyIsEnumerable;var sn=(r,t,n)=>t in r?mo(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,R=(r,t)=>{for(var n in t||(t={}))un.call(t,n)&&sn(r,n,t[n]);if(ot)for(var n of ot(t))cn.call(t,n)&&sn(r,n,t[n]);return r},D=(r,t)=>po(r,fo(t));var ue=(r,t)=>{var n={};for(var i in r)un.call(r,i)&&t.indexOf(i)<0&&(n[i]=r[i]);if(r!=null&&ot)for(var i of ot(r))t.indexOf(i)<0&&cn.call(r,i)&&(n[i]=r[i]);return n};import xt from"bn.js";import tt from"decimal.js";var Ie=class{static getPoolInitPriceByPool({poolInfo:t,decimalA:n,decimalB:i}){throw Error()}static getPoolInitPriceByInit({a:t,b:n,decimalA:i,decimalB:u}){throw Error()}static getPoolPrice({poolInfo:t,decimalA:n,decimalB:i}){throw Error()}static getPoolEndPrice({supply:t,totalSell:n,totalLockedAmount:i,totalFundRaising:u,migrateFee:m,decimalA:f,decimalB:p}){throw Error()}static getPoolEndPriceReal({poolInfo:t,decimalA:n,decimalB:i}){throw Error()}static getInitParam({supply:t,totalFundRaising:n,totalSell:i,totalLockedAmount:u,migrateFee:m}){throw Error()}static buyExactIn({poolInfo:t,amount:n}){throw Error()}static buyExactOut({poolInfo:t,amount:n}){throw Error()}static sellExactIn({poolInfo:t,amount:n}){throw Error()}static sellExactOut({poolInfo:t,amount:n}){throw Error()}};import{PublicKey as go}from"@solana/web3.js";import{get as ln,set as yo}from"lodash";var Kt=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(i=>typeof i=="object"?JSON.stringify(i):i).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}},mn={},bo={};function _(r){let t=ln(mn,r);if(!t){let n=ln(bo,r);t=new Kt({name:r,logLevel:n}),yo(mn,r,t)}return t}import{MINT_SIZE as Sa,TOKEN_PROGRAM_ID as xa,getTransferFeeConfig as Ka,unpackMint as Ca}from"@solana/spl-token";var Ct=_("Raydium_accountInfo_util");async function fe(r,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:m=100}=R({batchRequest:!1},n),f=Rt(t,m),p=new Array(f.length).fill([]);if(i){let g=f.map(O=>{let K=r._buildArgs([O.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:K}}),I=Rt(g,10);p=(await(await Promise.all(I.map(async O=>await r._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(K=>{if(K){let{data:S,executable:M,lamports:P,owner:T,rentEpoch:B}=K;return S.length!==2&&S[1]!=="base64"&&Ct.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:P,owner:new go(T),rentEpoch:B}}return null})))}else try{p=await Promise.all(f.map(g=>r.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return p.flat()}import Te from"bn.js";import TC from"decimal.js";import Bo from"big.js";import Xa from"bn.js";import Po from"toformat";var Ao=Po,We=Ao;import rt from"big.js";import ko from"bn.js";import To from"decimal.js-light";import qe from"bn.js";var dn=9007199254740991;function ne(r){let t=_("Raydium_parseBigNumberish");if(r instanceof qe)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new qe(r);t.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&t.logWithError(`BigNumberish number underflow: ${r}`),(r>=dn||r<=-dn)&&t.logWithError(`BigNumberish number overflow: ${r}`),new qe(String(r))):typeof r=="bigint"?new qe(r.toString()):(t.error(`invalid BigNumberish value: ${r}`),new qe(0))}var it=_("module/fraction"),Lt=We(rt),Ue=We(To),ho={[0]:Ue.ROUND_DOWN,[1]:Ue.ROUND_HALF_UP,[2]:Ue.ROUND_UP},Io={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},U=class{constructor(t,n=new ko(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:""},i=1){Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<=0&&it.logWithError(`${t} is not positive.`),Ue.set({precision:t+1,rounding:ho[i]});let u=new Ue(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Lt.DP=t,Lt.RM=Io[i]||1,new Lt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var ts=_("Raydium_amount"),ns=We(Bo);import{PublicKey as xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pn}from"@solana/spl-token";var at={chainId:101,address:xo.default.toBase58(),programId:pn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ce={chainId:101,address:"So11111111111111111111111111111111111111112",programId:pn.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 Nt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as fn,SYSVAR_RENT_PUBKEY as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Co}from"@solana/spl-token";function Be({pubkey:r,isSigner:t=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:t}}var Ro=[Be({pubkey:Co,isWritable:!1}),Be({pubkey:fn.programId,isWritable:!1}),Be({pubkey:Ko,isWritable:!1})];function yn({publicKey:r,transformSol:t}){let n=bn(r.toString());if(n instanceof z)return t&&n.equals(Pe)?ye:n;if(t&&n.toString()===Pe.toBase58())return ye;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 bn(r){try{return new z(r)}catch{return r}}var Ot=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ge=new z("SysvarRent111111111111111111111111111111111"),ls=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Lo=new z("Sysvar1nstructions1111111111111111111111111"),Oo=fn.programId,ms=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ds=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ps=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),fs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ys=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),bs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),gs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ps=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),As=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ws=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ks=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new z("So11111111111111111111111111111111111111112"),Pe=z.default;var Mt=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:m=!1,isToken2022:f=!1}){if(t===Pe.toBase58()||t instanceof Nt&&Pe.equals(t)){this.decimals=ce.decimals,this.symbol=ce.symbol,this.name=ce.name,this.mint=new Nt(ce.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Nt.default:yn({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Mt;J.WSOL=new Mt(D(R({},ce),{mint:ce.address}));var Ft=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},ut=Ft;ut.SOL=new Ft(at);import No from"bn.js";var Ns=new U(new No(100));var Es=_("Raydium_price");import{merge as IK}from"lodash";import Qs from"axios";var gn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Mo=D(R({},gn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var gu=_("Raydium_Api");import{PublicKey as vl,SystemProgram as Vl}from"@solana/web3.js";import{AccountLayout as ql,createAssociatedTokenAccountIdempotentInstruction as Ul,TOKEN_PROGRAM_ID as Gl,TOKEN_2022_PROGRAM_ID as zl}from"@solana/spl-token";import{PublicKey as Re,sendAndConfirmTransaction as Wt,SystemProgram as Do,Transaction as Ye,TransactionMessage as Qe,VersionedTransaction as Ze}from"@solana/web3.js";import Wo from"axios";import{PublicKey as vt,AddressLookupTableAccount as Ke}from"@solana/web3.js";async function Vt({connection:r,address:t,cluster:n="mainnet"}){let i=await fe(r,[...new Set(t.map(m=>m.toString()))].map(m=>new vt(m))),u={};for(let m=0;m<t.length;m++){let f=i[m],p=t[m];if(!f)continue;let g=new Ke({key:p,state:Ke.deserialize(f.data)});u[p.toString()]=g,n==="devnet"?xe[p.toString()]=g:Se[p.toString()]=g}return u}var Se={},_t=async r=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Se[t])return Se;let n=new vt(t),i=await r.getAccountInfo(n);return i&&(Se[t]=new Ke({key:n,state:Ke.deserialize(i.data)})),Se},xe={},Et=async r=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new vt(t),i=await r.getAccountInfo(n);return i&&(xe[t]=new Ke({key:n,state:Ke.deserialize(i.data)})),xe};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 Pn,Keypair as wn,PublicKey as Fo,Transaction as kn,TransactionMessage as vo,VersionedTransaction as Tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Vo}from"@solana/spl-token";var An=_("Raydium_txUtil"),hn=1644;function ct(r){let t=[],n=[];return r.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(Q.SetComputeUnitPrice)),r.units&&(t.push(Pn.setComputeUnitLimit({units:r.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ce(r,t){var i,u;let n=t!=null?t:"confirmed";return(u=await((i=r.getLatestBlockhash)==null?void 0:i.call(r,{commitment:n})))==null?void 0:u.blockhash}async function lt(r,t){return r.getSignatureStatuses([t]),new Promise((n,i)=>{let u=setTimeout(i,6e4);r.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}i(Object.assign(m.err,{txId:t}))},"confirmed")})}function Dt(r,t){r.length<1&&An.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function le(r,t){let[n,i]=Fo.findProgramAddressSync(r,t);return{publicKey:n,nonce:i}}function ze({instructions:r,payer:t,signers:n}){return Dt(r,[t,...n])}function Xe({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=wn.generate().publicKey.toString()}){let m=new vo({payerKey:t,recentBlockhash:i,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(m).serialize()).toString("base64").length<hn}catch{return!1}}var _o=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Eo=r=>{let t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Tn&&(t=_o(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ae(r){let t=[];return r.forEach(n=>{n instanceof kn&&(n.recentBlockhash||(n.recentBlockhash=Vo.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(Eo(n))}),console.log("simulate tx string:",t),t}var mt=2e3,dt=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 i;let t=(await Wo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=ct(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Do.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Re(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:f=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...f.filter(p=>p!==Re.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(D(R({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new Ye;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.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:m,skipPreflight:f=!0,sendAndConfirm:p,notSendToRpc:g}=u||{},I=m!=null?m:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=I,this.signers.length&&n.sign(...this.signers),Ae([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Wt(this.connection,n,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:f}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let K of O)try{K.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:f}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var I;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:u}=this.build(i),m=n.filter(b=>b.transaction.instructions.length>0),f=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(I=this.owner)!=null&&I.signer&&p.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:f,signers:p,instructionTypes:g,execute:async b=>{var B;let{sequentially:O,onTxUpdate:K,skipTxCount:S=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await Ce(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(O){let h=[],F=0;for(let v of f){if(++F,F<=S)continue;let y=await Wt(this.connection,v,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(y)}return{txIds:h,signedTxs:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:f}}if(this.signAllTransactions){let h=f.map((v,y)=>(v.recentBlockhash=T,p[y].length&&v.sign(...p[y]),v));Ae(h);let F=await this.signAllTransactions(h);if(O){let v=0,y=[],A=async()=>{if(!F[v])return;let w=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:P});y.push({txId:w,status:"sent",signedTx:F[v]}),K==null||K([...y]),v++;let x=!1,C=null,V=null,ie=q=>{C!==null&&clearInterval(C),V!==null&&this.connection.removeSignatureListener(V);let W=y.findIndex(j=>j.txId===w);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=q.err?"error":"success"}K==null||K([...y]),q.err||A()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var q;if(x){clearInterval(C);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(C),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){x=!0,clearInterval(C),console.error("getTransaction timeout:",W,w)}},mt)),V=this.connection.onSignature(w,q=>{if(x){this.connection.removeSignatureListener(V);return}x=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:y.map(w=>w.txId),signedTxs:F}}else{let v=[];for(let y=0;y<F.length;y+=1){let A=await this.connection.sendRawTransaction(F[y].serialize(),{skipPreflight:P});v.push(A)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:m}=M,f=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=R(R({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),I=[];for(let T of g)p[T]===void 0&&I.push(new Re(T));let b=await Vt({connection:this.connection,address:I});for(let[T,B]of Object.entries(b))p[T]=B;let O=u?Re.default.toBase58():m!=null?m:await Ce(this.connection,this.blockhashCommitment),K=new Qe({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new Ze(K);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:B=!0,sendAndConfirm:h,notSendToRpc:F}=T||{};if(Ae([S]),(v=this.owner)!=null&&v.isKeyPair){let y=await this.connection.sendTransaction(S,{skipPreflight:B});return h&&await lt(this.connection,y),{txId:y,signedTx:S}}if(this.signAllTransactions){let y=await this.signAllTransactions([S]);if(this.signers.length)for(let A of y)try{A.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(y[0],{skipPreflight:B}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}async buildV0MultiTx(t){var I;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:u}=await this.buildV0(i),m=n.filter(b=>b.builder.instructions.length>0),f=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(I=this.owner)!=null&&I.signer&&p.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,O)=>{b.sign(p[O])}),{builder:this,transactions:f,signers:p,instructionTypes:g,buildProps:i,execute:async b=>{var P;let{sequentially:O,onTxUpdate:K,recentBlockHash:S,skipPreflight:M=!0}=b||{};if(S&&f.forEach(T=>T.message.recentBlockhash=S),Ae(f),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let B of f){let h=await this.connection.sendTransaction(B,{skipPreflight:M});await lt(this.connection,h),T.push(h)}return{txIds:T,signedTxs:f}}return{txIds:await Promise.all(f.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:f}}if(this.signAllTransactions){let T=await this.signAllTransactions(f);if(O){let B=0,h=[],F=async()=>{if(!T[B])return;let v=await this.connection.sendTransaction(T[B],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[B]}),K==null||K([...h]),B++;let y=!1,A=null,w=null,x=C=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let V=h.findIndex(ie=>ie.txId===v);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=C.err?"error":"success"}K==null||K([...h]),C.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var C;if(y){clearInterval(A);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(y=!0,clearInterval(A),x({err:((C=V.meta)==null?void 0:C.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){y=!0,clearInterval(A),console.error("getTransaction timeout:",V,v)}},mt)),w=this.connection.onSignature(v,C=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,x(C)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let B=[];for(let h=0;h<T.length;h+=1){let F=await this.connection.sendTransaction(T[h],{skipPreflight:M});B.push(F)}return{txIds:B,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var K;let O=t||{},{splitIns:n=[],computeBudgetConfig:i}=O,u=ue(O,["splitIns","computeBudgetConfig"]),m=i?ct(i):{instructions:[],instructionTypes:[]},f=this.signers.reduce((S,M)=>D(R({},S),{[M.publicKey.toBase58()]:M}),{}),p=[],g=[],I=[],b=0;if(this.allInstructions.forEach(S=>{let M=[...I,S],P=i?[...m.instructions,...M]:M,B=[...new Set(M.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Re(h));if(S!==n[b]&&I.length<12&&(ze({instructions:P,payer:this.feePayer,signers:B})||ze({instructions:M,payer:this.feePayer,signers:B})))I.push(S);else{if(I.length===0)throw Error("item ins too big");b+=S===n[b]?1:0,ze({instructions:i?[...m.instructions,...I]:[...I],payer:this.feePayer,signers:B})?p.push(new Ye().add(...m.instructions,...I)):p.push(new Ye().add(...I)),g.push(Array.from(new Set(I.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>f[h]).filter(h=>h!==void 0)),I=[S]}}),I.length>0){let M=[...new Set(I.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>f[P]).filter(P=>P!==void 0);ze({instructions:i?[...m.instructions,...I]:[...I],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?p.push(new Ye().add(...m.instructions,...I)):p.push(new Ye().add(...I)),g.push(M)}return p.forEach(S=>S.feePayer=this.feePayer),(K=this.owner)!=null&&K.signer&&g.forEach(S=>{S.some(M=>M.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:p,signers:g,instructionTypes:this.instructionTypes,execute:async S=>{var v;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:B,skipPreflight:h=!0}=S||{},F=B!=null?B:await Ce(this.connection,this.blockhashCommitment);if(p.forEach(async(y,A)=>{y.recentBlockhash=F,g[A].length&&y.sign(...g[A])}),Ae(p),(v=this.owner)!=null&&v.isKeyPair){if(M){let y=0,A=[];for(let w of p){if(++y,y<=T){A.push("tx skipped");continue}let x=await Wt(this.connection,w,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(x)}return{txIds:A,signedTxs:p}}return{txIds:await Promise.all(p.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let y=await this.signAllTransactions(p.slice(T,p.length)),A=[...p.slice(0,T),...y];if(M){let w=0,x=[],C=async()=>{if(!A[w])return;w<T&&(x.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...x]),w++,C());let V=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});x.push({txId:V,status:"sent",signedTx:A[w]}),P==null||P([...x]),w++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(de=>de.txId===V);if(te>-1){if(x[te].status==="error"||x[te].status==="success")return;x[te].status=G.err?"error":"success"}P==null||P([...x]),G.err||C()};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)}},mt)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await C(),{txIds:x.map(V=>V.txId),signedTxs:A}}else{let w=[];for(let x=0;x<A.length;x+=1){let C=await this.connection.sendRawTransaction(A[x].serialize(),{skipPreflight:h});w.push(C)}return{txIds:w,signedTxs:A}}}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:i=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:f=12}=F,p=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=R(R({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),u),I=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of I)g[y]===void 0&&b.push(new Re(y));let O=await Vt({connection:this.connection,address:b});for(let[y,A]of Object.entries(O))g[y]=A;let K=n?ct(n):{instructions:[],instructionTypes:[]},S=await Ce(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,A)=>D(R({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],B=[],h=0;if(this.allInstructions.forEach(y=>{let A=[...B,y],w=n?[...K.instructions,...A]:A;if(y!==i[h]&&B.length<f&&(Xe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Xe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))B.push(y);else{if(B.length===0)throw Error("item ins too big");h+=y===i[h]?1:0;let x={};for(let C of[...new Set(I)])g[C]!==void 0&&(x[C]=g[C]);if(n&&Xe({instructions:[...K.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let C=new Qe({payerKey:this.feePayer,recentBlockhash:S,instructions:[...K.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new Ze(C))}else{let C=new Qe({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new Ze(C))}T.push(Array.from(new Set(B.map(C=>C.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(C=>M[C]).filter(C=>C!==void 0)),B=[y]}}),B.length>0){let A=[...new Set(B.map(w=>w.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&Xe({instructions:[...K.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new Qe({payerKey:this.feePayer,recentBlockhash:S,instructions:[...K.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new Ze(w))}else{let w=new Qe({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new Ze(w))}T.push(A)}return(v=this.owner)!=null&&v.signer&&T.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),P.forEach((y,A)=>{y.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:x=0,recentBlockHash:C,skipPreflight:V=!0}=y||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),C&&(q.message.recentBlockhash=C)}),Ae(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let q=0,W=[];for(let j of P){if(++q,q<=x){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await lt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(x,P.length)),W=[...P.slice(0,x),...q];if(A){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<x){G.push({txId:"",status:"success",signedTx:W[j]}),w==null||w([...G]),j++,te();return}let de=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:de,status:"sent",signedTx:W[j]}),w==null||w([...G]),j++;let Ee=!1,he=null,nt=null,an=ge=>{he!==null&&clearInterval(he),nt!==null&&this.connection.removeSignatureListener(nt);let pe=G.findIndex(lo=>lo.txId===de);if(pe>-1){if(G[pe].status==="error"||G[pe].status==="success")return;G[pe].status=ge.err?"error":"success"}w==null||w([...G]),ge.err||te()};this.loopMultiTxStatus&&(he=setInterval(async()=>{var ge;if(Ee){clearInterval(he);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:0});pe&&(Ee=!0,clearInterval(he),an({err:((ge=pe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){Ee=!0,clearInterval(he),console.error("getTransaction timeout:",pe,de)}},mt)),nt=this.connection.onSignature(de,ge=>{if(Ee){this.connection.removeSignatureListener(nt);return}Ee=!0,an(ge)},"confirmed"),this.connection.getSignatureStatus(de)};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:p||{}}}};var qt=(...r)=>r.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=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new dt({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(qt(t))}logInfo(...t){this.logger.info(qt(t))}logAndCreateError(...t){let n=qt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as pl,SystemProgram as yl}from"@solana/web3.js";import Pl from"bn.js";import{createCloseAccountInstruction as Tl,createInitializeAccountInstruction as hl,createTransferInstruction as Il,TOKEN_PROGRAM_ID as Bl}from"@solana/spl-token";import{Keypair as el,PublicKey as tl}from"@solana/web3.js";import il from"bn.js";import{TOKEN_PROGRAM_ID as sl}from"@solana/spl-token";import{PublicKey as Jo}from"@solana/web3.js";import Kn,{isBN as Cn}from"bn.js";import{bits as qo,BitStructure as rc,blob as Uo,Blob as ac,cstr as sc,f32 as uc,f32be as cc,f64 as lc,f64be as mc,greedy as dc,Layout as Go,ns64 as pc,ns64be as fc,nu64 as yc,nu64be as bc,offset as zo,s16 as gc,s16be as Pc,s24 as Ac,s24be as wc,s32 as Xo,s32be as kc,s40 as Tc,s40be as hc,s48 as Ic,s48be as Bc,s8 as Sc,seq as Yo,struct as xc,Structure as Qo,u16 as Zo,u16be as Kc,u24 as Cc,u24be as Rc,u32 as Ho,u32be as Lc,u40 as Oc,u40be as Nc,u48 as Mc,u48be as Fc,u8 as jo,UInt as $o,union as vc,Union as Vc,unionLayoutDiscriminator as _c,utf8 as Ec}from"@solana/buffer-layout";var pt=Go,In=Qo;var Ut=$o;var Bn=jo,Z=Zo;var ft=Ho;var ae=Xo;var Sn=Yo;var N=Uo;var Gt=qo,xn=zo;var ke=class extends pt{constructor(n,i,u){super(n,u);this.blob=N(n),this.signed=i}decode(n,i=0){let u=new Kn(this.blob.decode(n,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,i,u=0){return typeof n=="number"&&(n=new Kn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,u)}},yt=class extends pt{constructor(n){super(8,n);this._lower=Gt(ft(),!1),this._upper=Gt(ft(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let u=this._lower.decode(n,i),m=this._upper.decode(n,i+this._lower.span);return R(R({},u),m)}encode(n,i,u=0){return this._lower.encode(n,i,u)+this._upper.encode(n,i,u+this._lower.span)}};function c(r){return new Ut(1,r)}function X(r){return new Ut(4,r)}function e(r){return new ke(8,!1,r)}function L(r){return new ke(16,!1,r)}function Rn(r){return new ke(1,!0,r)}function Le(r){return new ke(8,!0,r)}function Ln(r){return new ke(16,!0,r)}var He=class extends pt{constructor(n,i,u,m){super(n.span,m);this.layout=n,this.decoder=i,this.encoder=u}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,u){return this.layout.encode(this.encoder(n),i,u)}getSpan(n,i){return this.layout.getSpan(n,i)}};function o(r){return new He(N(32),t=>new Jo(t),t=>t.toBuffer(),r)}function re(r){return new He(Bn(),ei,ti,r)}function ei(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ti(r){return r?1:0}function On(r,t){let n=ft("length"),i=l([n,d(r,xn(n,-n.span),"values")]);return new He(i,({values:u})=>u,u=>({values:u}),t)}var zt=class extends In{decode(t,n){return super.decode(t,n)}};function l(r,t,n){return new zt(r,t,n)}function d(r,t,n){let i,u=typeof t=="number"?t:Cn(t)?t.toNumber():new Proxy(t,{get(m,f){if(!i){let p=Reflect.get(m,"count");i=Cn(p)?p.toNumber():p,Reflect.set(m,"count",i)}return Reflect.get(m,f)},set(m,f,p){return f==="count"&&(i=p),Reflect.set(m,f,p)}});return Sn(r,u,n)}var bt=l([o("mint"),o("owner"),e("amount"),X("delegateOption"),o("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as vg,SystemProgram as Vg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Eg}from"@solana/spl-token";import{PublicKey as $l}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as em}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Mn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),im=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),oi=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),rm=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ii=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ri=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ai=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),am=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),si=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Yt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ui=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),sm=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ci=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),li=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),mi=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),um=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),cm=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),lm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),mm=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),dm=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import Zg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as py,TOKEN_2022_PROGRAM_ID as fy,TOKEN_PROGRAM_ID as yy}from"@solana/spl-token";import{PublicKey as gy}from"@solana/web3.js";import Ay from"bn.js";import ky from"decimal.js";import{TOKEN_PROGRAM_ID as Sm}from"@solana/spl-token";import{PublicKey as Rm}from"@solana/web3.js";var di=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Ff,TOKEN_2022_PROGRAM_ID as vf,TOKEN_PROGRAM_ID as Vf}from"@solana/spl-token";import{Keypair as Df,PublicKey as Wf,SystemProgram as Uf,TransactionInstruction as Gf}from"@solana/web3.js";import Xf from"bn.js";import E from"bn.js";var Ne=new E(1).shln(64);var pi=new E(1).shln(128),Qt=new E(1).shln(64).subn(1),fi=new E(1).shln(128).subn(1);var Me=new E("4295048016"),Fe=new E("79226673521066979257578248091"),yi=new E("59543866431248"),bi=new E("184467440737095516"),gi=new E("15793534762490258745");var Zt=60,qm=new E("18446743708227953217"),Pi=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var je=3,Wn=100;var qn=10,Un=100,Pt=14;var H=new E(0),ve=new E(1),Um=new E(-1);var Gm=new E("18446744073700000000");var Ai=l([N(8),c("bump"),Z("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Z("tickSpacing"),X("fundFeeRate"),d(X(),1),o("fundOwner"),d(e(),3)]),wi=l([X("blockTimestamp"),Le("tickCumulative"),d(e(),4)]),Gn=l([N(8),re("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),d(wi,Wn,"observations"),d(e(),4)]),ki=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ti=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Ht=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"),X(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(L(),4),c("status"),c("feeOn"),N(6),d(Ti,je,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),ki.replicate("dynamicFeeInfo"),d(e(),46)]),hi=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Ii=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(hi,je,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Qm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(L(),je,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Bi=l([ae("tick"),Ln("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),d(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),d(X(),3)]),zn=l([N(8),o("poolId"),ae("startTickIndex"),d(Bi,Zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Si=l([N(8),c("bump"),d(o(),qn,"operationOwners"),d(o(),Un,"whitelistMints")]),xi=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"),d(e(),4)]),Xn=l([N(8),o("poolId"),N(8*8*Pt,"positiveTickArrayBitmap"),N(8*8*Pt,"negativeTickArrayBitmap")]),Zm=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),Ki=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),Hm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),Ci=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import Jm from"bn.js";var ld=Buffer.from("amm_config","utf8"),Ri=Buffer.from("pool","utf8"),Li=Buffer.from("pool_vault","utf8"),md=Buffer.from("pool_reward_vault","utf8"),dd=Buffer.from("position","utf8"),pd=Buffer.from("tick_array","utf8"),fd=Buffer.from("operation","utf8"),yd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),bd=Buffer.from("observation","utf8"),gd=Buffer.from("support_mint","utf8"),Pd=Buffer.from("dynamic_fee_config","utf8");var Ad=Buffer.from("locked_position","utf8");import{sha256 as Xi}from"js-sha256";import Oi from"bn.js";import hd from"decimal.js";var Bd=new Oi(1).shln(256).subn(1);import Ud from"bn.js";import Od from"bn.js";import Md from"decimal.js";import Qd from"bn.js";import Hd from"decimal.js";import{PublicKey as vp}from"@solana/web3.js";import _p from"bn.js";import{TOKEN_2022_PROGRAM_ID as Xp,TOKEN_PROGRAM_ID as Yp}from"@solana/spl-token";import jp from"decimal.js";import Bp from"bn.js";import dp from"bn.js";import cf from"bn.js";function $(r){let t=`global:${r}`;return Buffer.from(Xi.digest(t)).slice(0,8)}Gn.span;var ey=_("Raydium_Clmm"),ty={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_