UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 76.3 kB
var fo=Object.defineProperty,yo=Object.defineProperties;var bo=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(o,t,n)=>t in o?fo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,O=(o,t)=>{for(var n in t||(t={}))sn.call(t,n)&&an(o,n,t[n]);if(ot)for(var n of ot(t))un.call(t,n)&&an(o,n,t[n]);return o},D=(o,t)=>yo(o,bo(t));var ue=(o,t)=>{var n={};for(var r in o)sn.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&ot)for(var r of ot(o))t.indexOf(r)<0&&un.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as Ko}from"@solana/web3.js";import pn,{isBN as fn}from"bn.js";import{bits as go,BitStructure as Oa,blob as Po,Blob as Na,cstr as Ma,f32 as Fa,f32be as va,f64 as Va,f64be as _a,greedy as Ea,Layout as Ao,ns64 as Da,ns64be as Wa,nu64 as qa,nu64be as Ua,offset as wo,s16 as Ga,s16be as za,s24 as Xa,s24be as Ya,s32 as ko,s32be as Qa,s40 as Za,s40be as Ha,s48 as ja,s48be as $a,s8 as Ja,seq as To,struct as es,Structure as ho,u16 as Io,u16be as ts,u24 as ns,u24be as os,u32 as Bo,u32be as is,u40 as rs,u40be as as,u48 as ss,u48be as us,u8 as So,UInt as xo,union as cs,Union as ls,unionLayoutDiscriminator as ms,utf8 as ds}from"@solana/buffer-layout";var it=Ao,cn=ho;var Bt=xo;var ln=So,Y=Io;var rt=Bo;var ae=ko;var mn=To;var M=Po;var St=go,dn=wo;var Pe=class extends it{constructor(n,r,s){super(n,s);this.blob=M(n),this.signed=r}decode(n,r=0){let s=new pn(this.blob.decode(n,r),10,"le");return this.signed?s.fromTwos(this.span*8).clone():s}encode(n,r,s=0){return typeof n=="number"&&(n=new pn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,s)}},at=class extends it{constructor(n){super(8,n);this._lower=St(rt(),!1),this._upper=St(rt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let s=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return O(O({},s),m)}encode(n,r,s=0){return this._lower.encode(n,r,s)+this._upper.encode(n,r,s+this._lower.span)}};function p(o){return new Bt(1,o)}function z(o){return new Bt(4,o)}function e(o){return new Pe(8,!1,o)}function N(o){return new Pe(16,!1,o)}function yn(o){return new Pe(1,!0,o)}function Se(o){return new Pe(8,!0,o)}function bn(o){return new Pe(16,!0,o)}var We=class extends it{constructor(n,r,s,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=s}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,s){return this.layout.encode(this.encoder(n),r,s)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new We(M(32),t=>new Ko(t),t=>t.toBuffer(),o)}function re(o){return new We(ln(),Co,Ro,o)}function Co(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ro(o){return o?1:0}function gn(o,t){let n=rt("length"),r=f([n,b(o,dn(n,-n.span),"values")]);return new We(r,({values:s})=>s,s=>({values:s}),t)}var xt=class extends cn{decode(t,n){return super.decode(t,n)}};function f(o,t,n){return new xt(o,t,n)}function b(o,t,n){let r,s=typeof t=="number"?t:fn(t)?t.toNumber():new Proxy(t,{get(m,a){if(!r){let u=Reflect.get(m,"count");r=fn(u)?u.toNumber():u,Reflect.set(m,"count",r)}return Reflect.get(m,a)},set(m,a,u){return a==="count"&&(r=u),Reflect.set(m,a,u)}});return mn(o,s,n)}import{PublicKey as No}from"@solana/web3.js";import{get as Pn,set as Lo}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(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},An={},Oo={};function _(o){let t=Pn(An,o);if(!t){let n=Pn(Oo,o);t=new Kt({name:o,logLevel:n}),Lo(An,o,t)}return t}import{MINT_SIZE as Ls,TOKEN_PROGRAM_ID as Os,getTransferFeeConfig as Ns,unpackMint as Ms}from"@solana/spl-token";var Ct=_("Raydium_accountInfo_util");async function fe(o,t,n){let{batchRequest:r,commitment:s="confirmed",chunkCount:m=100}=O({batchRequest:!1},n),a=Rt(t,m),u=new Array(a.length).fill([]);if(r){let y=a.map(w=>{let T=o._buildArgs([w.map(A=>A.toBase58())],s,"base64");return{methodName:"getMultipleAccounts",args:T}}),g=Rt(y,10);u=(await(await Promise.all(g.map(async w=>await o._rpcBatchRequest(w)))).flat()).map(w=>(w.error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${w.error.message}`),w.result.value.map(T=>{if(T){let{data:A,executable:K,lamports:k,owner:S,rentEpoch:C}=T;return A.length!==2&&A[1]!=="base64"&&Ct.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(A[0],"base64"),executable:K,lamports:k,owner:new No(S),rentEpoch:C}}return null})))}else try{u=await Promise.all(a.map(y=>o.getMultipleAccountsInfo(y,s)))}catch(y){y instanceof Error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return u.flat()}import Te from"bn.js";import WC from"decimal.js";import Wo from"big.js";import js from"bn.js";import Mo from"toformat";var Fo=Mo,Ue=Fo;import ut from"big.js";import Vo from"bn.js";import _o from"decimal.js-light";import Ge from"bn.js";var wn=9007199254740991;function ne(o){let t=_("Raydium_parseBigNumberish");if(o instanceof Ge)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ge(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=wn||o<=-wn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ge(String(o))):typeof o=="bigint"?new Ge(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ge(0))}var st=_("module/fraction"),Lt=Ue(ut),ze=Ue(_o),Eo={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},Do={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},U=class{constructor(t,n=new Vo(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<=0&&st.logWithError(`${t} is not positive.`),ze.set({precision:t+1,rounding:Eo[r]});let s=new ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return s.toFormat(s.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<0&&st.logWithError(`${t} is negative.`),Lt.DP=t,Lt.RM=Do[r]||1,new Lt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var au=_("Raydium_amount"),su=Ue(Wo);import{PublicKey as Uo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kn}from"@solana/spl-token";var ct={chainId:101,address:Uo.default.toBase58(),programId:kn.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:kn.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 X,SystemProgram as Tn,SYSVAR_RENT_PUBKEY as Go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as zo}from"@solana/spl-token";function xe({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Xo=[xe({pubkey:zo,isWritable:!1}),xe({pubkey:Tn.programId,isWritable:!1}),xe({pubkey:Go,isWritable:!1})];function hn({publicKey:o,transformSol:t}){let n=In(o.toString());if(n instanceof X)return t&&n.equals(Ae)?ye:n;if(t&&n.toString()===Ae.toBase58())return ye;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function In(o){try{return new X(o)}catch{return o}}var Ot=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new X("SysvarRent111111111111111111111111111111111"),yu=new X("SysvarC1ock11111111111111111111111111111111"),lt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Yo=new X("Sysvar1nstructions1111111111111111111111111"),Qo=Tn.programId,bu=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gu=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Pu=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Au=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),wu=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ku=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Tu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),hu=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Iu=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Bu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Su=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new X("So11111111111111111111111111111111111111112"),Ae=X.default;var Mt=class{constructor({mint:t,decimals:n,symbol:r,name:s,skipMint:m=!1,isToken2022:a=!1}){if(t===Ae.toBase58()||t instanceof Nt&&Ae.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=r||t.toString().substring(0,6),this.name=s||t.toString().substring(0,6),this.mint=m?Nt.default:hn({publicKey:t}),this.isToken2022=a}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Mt;J.WSOL=new Mt(D(O({},ce),{mint:ce.address}));var Ft=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},mt=Ft;mt.SOL=new Ft(ct);import Zo from"bn.js";var _u=new U(new Zo(100));var Gu=_("Raydium_price");import{merge as UK}from"lodash";import Ju from"axios";var Bn={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"},Ho=D(O({},Bn),{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 Tc=_("Raydium_Api");import{PublicKey as Hl,SystemProgram as jl}from"@solana/web3.js";import{AccountLayout as nm,createAssociatedTokenAccountIdempotentInstruction as om,TOKEN_PROGRAM_ID as im,TOKEN_2022_PROGRAM_ID as rm}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as Wt,SystemProgram as ni,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import oi from"axios";import{PublicKey as vt,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Vt({connection:o,address:t,cluster:n="mainnet"}){let r=await fe(o,[...new Set(t.map(m=>m.toString()))].map(m=>new vt(m))),s={};for(let m=0;m<t.length;m++){let a=r[m],u=t[m];if(!a)continue;let y=new Re({key:u,state:Re.deserialize(a.data)});s[u.toString()]=y,n==="devnet"?Ce[u.toString()]=y:Ke[u.toString()]=y}return s}var Ke={},_t=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new vt(t),r=await o.getAccountInfo(n);return r&&(Ke[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ke},Ce={},Et=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new vt(t),r=await o.getAccountInfo(n);return r&&(Ce[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ce};var Z={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 Sn,Keypair as Kn,PublicKey as jo,Transaction as Cn,TransactionMessage as $o,VersionedTransaction as Rn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jo}from"@solana/spl-token";var xn=_("Raydium_txUtil"),Ln=1644;function dt(o){let t=[],n=[];return o.microLamports&&(t.push(Sn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(t.push(Sn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(o,t){var r,s;let n=t!=null?t:"confirmed";return(s=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:s.blockhash}async function pt(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let s=setTimeout(r,6e4);o.onSignature(t,m=>{if(clearTimeout(s),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Dt(o,t){o.length<1&&xn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&xn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Cn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Ln}catch{return!1}}function le(o,t){let[n,r]=jo.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Ye({instructions:o,payer:t,signers:n}){return Dt(o,[t,...n])}function Qe({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Kn.generate().publicKey.toString()}){let m=new $o({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Rn(m).serialize()).toString("base64").length<Ln}catch{return!1}}var ei=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ti=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Rn&&(t=ei(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function we(o){let t=[];return o.forEach(n=>{n instanceof Cn&&(n.recentBlockhash||(n.recentBlockhash=Jo.toBase58()),n.feePayer||(n.feePayer=Kn.generate().publicKey)),t.push(ti(n))}),console.log("simulate tx string:",t),t}var ft=2e3,yt=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 oi.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}=dt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ni.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.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:s=[],endInstructionTypes:m=[],lookupTableAddress:a=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...s),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...a.filter(u=>u!==Oe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(D(O({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ze;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(s=>s.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 s=>{var d;let{recentBlockHash:m,skipPreflight:a=!0,sendAndConfirm:u,notSendToRpc:y}=s||{},g=m!=null?m:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=g,this.signers.length&&n.sign(...this.signers),we([n]),(d=this.owner)!=null&&d.isKeyPair)return{txId:u?await Wt(this.connection,n,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:a}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:a}),signedTx:n};if(this.signAllTransactions){let w=await this.signAllTransactions([n]);if(this.signers.length)for(let T of w)try{T.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(w[0].serialize(),{skipPreflight:a}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var g;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:s}=this.build(r),m=n.filter(d=>d.transaction.instructions.length>0),a=[s,...m.map(d=>d.transaction)],u=[this.signers,...m.map(d=>d.signers)],y=[...this.instructionTypes,...m.map(d=>d.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&u.forEach(d=>{d.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:a,signers:u,instructionTypes:y,execute:async d=>{var C;let{sequentially:w,onTxUpdate:T,skipTxCount:A=0,recentBlockHash:K,skipPreflight:k=!0}=d||{},S=K!=null?K:await Le(this.connection,this.blockhashCommitment);if((C=this.owner)!=null&&C.isKeyPair){if(w){let x=[],F=0;for(let v of a){if(++F,F<=A)continue;let P=await Wt(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});x.push(P)}return{txIds:x,signedTxs:a}}return{txIds:await await Promise.all(a.map(async x=>(x.recentBlockhash=S,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:k})))),signedTxs:a}}if(this.signAllTransactions){let x=a.map((v,P)=>(v.recentBlockhash=S,u[P].length&&v.sign(...u[P]),v));we(x);let F=await this.signAllTransactions(x);if(w){let v=0,P=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:k});P.push({txId:I,status:"sent",signedTx:F[v]}),T==null||T([...P]),v++;let R=!1,L=null,V=null,ie=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=P.findIndex($=>$.txId===I);if(W>-1){if(P[W].status==="error"||P[W].status==="success")return;P[W].status=q.err?"error":"success"}T==null||T([...P]),q.err||h()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(R){clearInterval(L);return}try{let W=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(R=!0,clearInterval(L),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",I))}catch(W){R=!0,clearInterval(L),console.error("getTransaction timeout:",W,I)}},ft)),V=this.connection.onSignature(I,q=>{if(R){this.connection.removeSignatureListener(V);return}R=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:P.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let P=0;P<F.length;P+=1){let h=await this.connection.sendRawTransaction(F[P].serialize(),{skipPreflight:k});v.push(h)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var k;let K=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:s,recentBlockhash:m}=K,a=ue(K,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=O(O({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),n),y=Array.from(new Set([...r,...this.lookupTableAddress])),g=[];for(let S of y)u[S]===void 0&&g.push(new Oe(S));let d=await Vt({connection:this.connection,address:g});for(let[S,C]of Object.entries(d))u[S]=C;let w=s?Oe.default.toBase58():m!=null?m:await Le(this.connection,this.blockhashCommitment),T=new He({payerKey:this.feePayer,recentBlockhash:w,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((k=this.owner)==null?void 0:k.signer)&&!this.signers.some(S=>S.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let A=new je(T);return A.sign(this.signers),{builder:this,transaction:A,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async S=>{var v;let{skipPreflight:C=!0,sendAndConfirm:x,notSendToRpc:F}=S||{};if(we([A]),(v=this.owner)!=null&&v.isKeyPair){let P=await this.connection.sendTransaction(A,{skipPreflight:C});return x&&await pt(this.connection,P),{txId:P,signedTx:A}}if(this.signAllTransactions){let P=await this.signAllTransactions([A]);if(this.signers.length)for(let h of P)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(P[0],{skipPreflight:C}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async buildV0MultiTx(t){var g;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:s}=await this.buildV0(r),m=n.filter(d=>d.builder.instructions.length>0),a=[s,...m.map(d=>d.transaction)],u=[this.signers,...m.map(d=>d.signers)],y=[...this.instructionTypes,...m.map(d=>d.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&u.forEach(d=>{d.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),a.forEach(async(d,w)=>{d.sign(u[w])}),{builder:this,transactions:a,signers:u,instructionTypes:y,buildProps:r,execute:async d=>{var k;let{sequentially:w,onTxUpdate:T,recentBlockHash:A,skipPreflight:K=!0}=d||{};if(A&&a.forEach(S=>S.message.recentBlockhash=A),we(a),(k=this.owner)!=null&&k.isKeyPair){if(w){let S=[];for(let C of a){let x=await this.connection.sendTransaction(C,{skipPreflight:K});await pt(this.connection,x),S.push(x)}return{txIds:S,signedTxs:a}}return{txIds:await Promise.all(a.map(async S=>await this.connection.sendTransaction(S,{skipPreflight:K}))),signedTxs:a}}if(this.signAllTransactions){let S=await this.signAllTransactions(a);if(w){let C=0,x=[],F=async()=>{if(!S[C])return;let v=await this.connection.sendTransaction(S[C],{skipPreflight:K});x.push({txId:v,status:"sent",signedTx:S[C]}),T==null||T([...x]),C++;let P=!1,h=null,I=null,R=L=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let V=x.findIndex(ie=>ie.txId===v);if(V>-1){if(x[V].status==="error"||x[V].status==="success")return;x[V].status=L.err?"error":"success"}T==null||T([...x]),L.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var L;if(P){clearInterval(h);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(P=!0,clearInterval(h),R({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){P=!0,clearInterval(h),console.error("getTransaction timeout:",V,v)}},ft)),I=this.connection.onSignature(v,L=>{if(P){this.connection.removeSignatureListener(I);return}P=!0,R(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:S}}else{let C=[];for(let x=0;x<S.length;x+=1){let F=await this.connection.sendTransaction(S[x],{skipPreflight:K});C.push(F)}return{txIds:C,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var T;let w=t||{},{splitIns:n=[],computeBudgetConfig:r}=w,s=ue(w,["splitIns","computeBudgetConfig"]),m=r?dt(r):{instructions:[],instructionTypes:[]},a=this.signers.reduce((A,K)=>D(O({},A),{[K.publicKey.toBase58()]:K}),{}),u=[],y=[],g=[],d=0;if(this.allInstructions.forEach(A=>{let K=[...g,A],k=r?[...m.instructions,...K]:K,C=[...new Set(K.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new Oe(x));if(A!==n[d]&&g.length<12&&(Ye({instructions:k,payer:this.feePayer,signers:C})||Ye({instructions:K,payer:this.feePayer,signers:C})))g.push(A);else{if(g.length===0)throw Error("item ins too big");d+=A===n[d]?1:0,Ye({instructions:r?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:C})?u.push(new Ze().add(...m.instructions,...g)):u.push(new Ze().add(...g)),y.push(Array.from(new Set(g.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>a[x]).filter(x=>x!==void 0)),g=[A]}}),g.length>0){let K=[...new Set(g.map(k=>k.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(k=>a[k]).filter(k=>k!==void 0);Ye({instructions:r?[...m.instructions,...g]:[...g],payer:this.feePayer,signers:K.map(k=>k.publicKey)})?u.push(new Ze().add(...m.instructions,...g)):u.push(new Ze().add(...g)),y.push(K)}return u.forEach(A=>A.feePayer=this.feePayer),(T=this.owner)!=null&&T.signer&&y.forEach(A=>{A.some(K=>K.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),{builder:this,transactions:u,signers:y,instructionTypes:this.instructionTypes,execute:async A=>{var v;let{sequentially:K,onTxUpdate:k,skipTxCount:S=0,recentBlockHash:C,skipPreflight:x=!0}=A||{},F=C!=null?C:await Le(this.connection,this.blockhashCommitment);if(u.forEach(async(P,h)=>{P.recentBlockhash=F,y[h].length&&P.sign(...y[h])}),we(u),(v=this.owner)!=null&&v.isKeyPair){if(K){let P=0,h=[];for(let I of u){if(++P,P<=S){h.push("tx skipped");continue}let R=await Wt(this.connection,I,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});h.push(R)}return{txIds:h,signedTxs:u}}return{txIds:await Promise.all(u.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:x}))),signedTxs:u}}if(this.signAllTransactions){let P=await this.signAllTransactions(u.slice(S,u.length)),h=[...u.slice(0,S),...P];if(K){let I=0,R=[],L=async()=>{if(!h[I])return;I<S&&(R.push({txId:"",status:"success",signedTx:h[I]}),k==null||k([...R]),I++,L());let V=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:x});R.push({txId:V,status:"sent",signedTx:h[I]}),k==null||k([...R]),I++;let ie=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=R.findIndex(de=>de.txId===V);if(te>-1){if(R[te].status==="error"||R[te].status==="success")return;R[te].status=G.err?"error":"success"}k==null||k([...R]),G.err||L()};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),$({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)}},ft)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:R.map(V=>V.txId),signedTxs:h}}else{let I=[];for(let R=0;R<h.length;R+=1){let L=await this.connection.sendRawTransaction(h[R].serialize(),{skipPreflight:x});I.push(L)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:s={},lookupTableAddress:m=[],insCountLimit:a=12}=F,u=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=O(O({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),s),g=Array.from(new Set([...this.lookupTableAddress,...m])),d=[];for(let P of g)y[P]===void 0&&d.push(new Oe(P));let w=await Vt({connection:this.connection,address:d});for(let[P,h]of Object.entries(w))y[P]=h;let T=n?dt(n):{instructions:[],instructionTypes:[]},A=await Le(this.connection,this.blockhashCommitment),K=this.signers.reduce((P,h)=>D(O({},P),{[h.publicKey.toBase58()]:h}),{}),k=[],S=[],C=[],x=0;if(this.allInstructions.forEach(P=>{let h=[...C,P],I=n?[...T.instructions,...h]:h;if(P!==r[x]&&C.length<a&&(Qe({instructions:I,payer:this.feePayer,lookupTableAddressAccount:y})||Qe({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})))C.push(P);else{if(C.length===0)throw Error("item ins too big");x+=P===r[x]?1:0;let R={};for(let L of[...new Set(g)])y[L]!==void 0&&(R[L]=y[L]);if(n&&Qe({instructions:[...T.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:A})){let L=new He({payerKey:this.feePayer,recentBlockhash:A,instructions:[...T.instructions,...C]}).compileToV0Message(Object.values(y));k.push(new je(L))}else{let L=new He({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(y));k.push(new je(L))}S.push(Array.from(new Set(C.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>K[L]).filter(L=>L!==void 0)),C=[P]}}),C.length>0){let h=[...new Set(C.map(I=>I.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(I=>K[I]).filter(I=>I!==void 0);if(n&&Qe({instructions:[...T.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:A})){let I=new He({payerKey:this.feePayer,recentBlockhash:A,instructions:[...T.instructions,...C]}).compileToV0Message(Object.values(y));k.push(new je(I))}else{let I=new He({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(y));k.push(new je(I))}S.push(h)}return(v=this.owner)!=null&&v.signer&&S.forEach(P=>{P.some(h=>h.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),k.forEach((P,h)=>{P.sign(S[h])}),{builder:this,transactions:k,buildProps:t,signers:S,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:h,onTxUpdate:I,skipTxCount:R=0,recentBlockHash:L,skipPreflight:V=!0}=P||{};if(k.map(async(q,W)=>{S[W].length&&q.sign(S[W]),L&&(q.message.recentBlockhash=L)}),we(k),(ie=this.owner)!=null&&ie.isKeyPair){if(h){let q=0,W=[];for(let $ of k){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:V});await pt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:k}}return{txIds:await Promise.all(k.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:k}}if(this.signAllTransactions){let q=await this.signAllTransactions(k.slice(R,k.length)),W=[...k.slice(0,R),...q];if(h){let $=0,G=[],te=async()=>{if(!W[$])return;if($<R){G.push({txId:"",status:"success",signedTx:W[$]}),I==null||I([...G]),$++,te();return}let de=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:de,status:"sent",signedTx:W[$]}),I==null||I([...G]),$++;let De=!1,Be=null,nt=null,rn=ge=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let pe=G.findIndex(po=>po.txId===de);if(pe>-1){if(G[pe].status==="error"||G[pe].status==="success")return;G[pe].status=ge.err?"error":"success"}I==null||I([...G]),ge.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var ge;if(De){clearInterval(Be);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:0});pe&&(De=!0,clearInterval(Be),rn({err:((ge=pe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){De=!0,clearInterval(Be),console.error("getTransaction timeout:",pe,de)}},ft)),nt=this.connection.onSignature(de,ge=>{if(De){this.connection.removeSignatureListener(nt);return}De=!0,rn(ge)},"confirmed"),this.connection.getSignatureStatus(de)};return te(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:V});$.push(te)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var qt=(...o)=>o.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 yt({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 xl,SystemProgram as Cl}from"@solana/web3.js";import Ol from"bn.js";import{createCloseAccountInstruction as vl,createInitializeAccountInstruction as Vl,createTransferInstruction as _l,TOKEN_PROGRAM_ID as El}from"@solana/spl-token";import{Keypair as fl,PublicKey as yl}from"@solana/web3.js";import Pl from"bn.js";import{TOKEN_PROGRAM_ID as kl}from"@solana/spl-token";var bt=f([i("mint"),i("owner"),e("amount"),z("delegateOption"),i("delegate"),p("state"),z("isNativeOption"),e("isNative"),e("delegatedAmount"),z("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as Jg,SystemProgram as eP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as nP}from"@solana/spl-token";import{PublicKey as dm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fm}from"@solana/spl-token";import{PublicKey as B}from"@solana/web3.js";var Nn=new B("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Mn=new B("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Fn=new B("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ut=new B("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Pm=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ri=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vn=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Vn=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Am=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ai=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_n=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),si=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ui=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Gt=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),wm=new B("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ci=new B("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),zt=new B("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),li=new B("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),km=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),mi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),pi=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Tm=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),hm=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Im=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Bm=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Sm=new B("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={OPEN_BOOK_PROGRAM:new B("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new B("Ray1111111111111111111111111111111111111111"),AMM_V4:new B("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new B("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new B("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new B("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new B("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new B("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new B("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new B("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:B.default,Router:new B("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new B("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new B("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new B("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new B("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new B("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new B("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new B("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new B("Ray1111111111111111111111111111111111111111")};import dP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ry,TOKEN_2022_PROGRAM_ID as Ly,TOKEN_PROGRAM_ID as Oy}from"@solana/spl-token";import{PublicKey as My}from"@solana/web3.js";import vy from"bn.js";import _y from"decimal.js";import{TOKEN_PROGRAM_ID as Dm}from"@solana/spl-token";import{PublicKey as Gm}from"@solana/web3.js";var fi=f([z("mintAuthorityOption"),i("mintAuthority"),e("supply"),p("decimals"),p("isInitialized"),z("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as $f,TOKEN_2022_PROGRAM_ID as Jf,TOKEN_PROGRAM_ID as ey}from"@solana/spl-token";import{Keypair as oy,PublicKey as iy,SystemProgram as ay,TransactionInstruction as sy}from"@solana/web3.js";import cy from"bn.js";import E from"bn.js";var Me=new E(1).shln(64);var yi=new E(1).shln(128),Xt=new E(1).shln(64).subn(1),bi=new E(1).shln(128).subn(1);var Fe=new E("4295048016"),ve=new E("79226673521066979257578248091"),gi=new E("59543866431248"),Pi=new E("184467440737095516"),Ai=new E("15793534762490258745");var Yt=60,nd=new E("18446743708227953217"),wi=[{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 $e=3,En=100;var Dn=10,Wn=100,Pt=14;var H=new E(0),Ve=new E(1),od=new E(-1);var id=new E("18446744073700000000");var ki=f([M(8),p("bump"),Y("index"),i("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Y("tickSpacing"),z("fundFeeRate"),b(z(),1),i("fundOwner"),b(e(),3)]),Ti=f([z("blockTimestamp"),Se("tickCumulative"),b(e(),4)]),qn=f([M(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),i("poolId"),b(Ti,En,"observations"),b(e(),4)]),hi=f([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),b(p(),46)]),Ii=f([p("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),N("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),N("growthGlobalX64")]),Qt=f([M(8),p("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),p("mintDecimalsA"),p("mintDecimalsB"),Y("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),ae("tickCurrent"),z(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),b(N(),4),p("status"),p("feeOn"),M(6),b(Ii,$e,"rewardInfos"),M(8*16,"tickArrayBitmap"),b(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),hi.replicate("dynamicFeeInfo"),b(e(),46)]),Bi=f([N("growthInsideLastX64"),e("rewardAmountOwed")]),Si=f([M(8),p("bump"),i("nftMint"),i("poolId"),ae("tickLower"),ae("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(Bi,$e,"rewardInfos"),e("recentEpoch"),b(e(),7)]),ud=f([M(8),p("bump"),i("poolId"),ae("tickLower"),ae("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(N(),$e,"rewardGrowthInside"),e("recentEpoch"),b(e(),7)]),xi=f([ae("tick"),bn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),b(N(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),N("unfilledRatioX64"),b(z(),3)]),Un=f([M(8),i("poolId"),ae("startTickIndex"),b(xi,Yt,"ticks"),p("initializedTickCount"),e("recentEpoch"),b(p(),107)]),Ki=f([M(8),p("bump"),b(i(),Dn,"operationOwners"),b(i(),Wn,"whitelistMints")]),Ci=f([M(8),i("poolId"),i("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),N("unfilledRatioX64"),b(e(),4)]),Gn=f([M(8),i("poolId"),M(8*8*Pt,"positiveTickArrayBitmap"),M(8*8*Pt,"negativeTickArrayBitmap")]),cd=f([M(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),b(e(),8)]),Ri=f([M(8),i("wallet"),p("nonceIndex"),e("orderNonce"),b(e(),4)]),ld=f([e(),p("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),b(e(),8)]),Li=f([M(8),p("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),b(e(),8)]);import pd from"bn.js";var Id=Buffer.from("amm_config","utf8"),Ni=Buffer.from("pool","utf8"),Mi=Buffer.from("pool_vault","utf8"),Bd=Buffer.from("pool_reward_vault","utf8"),Sd=Buffer.from("position","utf8"),xd=Buffer.from("tick_array","utf8"),Kd=Buffer.from("operation","utf8"),Cd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Rd=Buffer.from("observation","utf8"),Ld=Buffer.from("support_mint","utf8"),Od=Buffer.from("dynamic_fee_config","utf8"),Nd=Buffer.from("permission","utf8");var Md=Buffer.from("locked_position","utf8");import{sha256 as Zi}from"js-sha256";import Fi from"bn.js";import _d from"decimal.js";var Dd=new Fi(1).shln(256).subn(1);import ip from"bn.js";import Yd from"bn.js";import Zd from"decimal.js";import cp from"bn.js";import mp from"decimal.js";import{PublicKey as jp}from"@solana/web3.js";import Jp from"bn.js";import{TOKEN_2022_PROGRAM_ID as uf,TOKEN_PROGRAM_ID as cf}from"@solana/spl-token";import pf from"decimal.js";import Dp from"bn.js";import xp from"bn.js";import If from"bn.js";function j(o){let t=`global:${o}`;return Buffer.from(Zi.digest(t)).slice(0,8)}qn.span;var gy=_("Raydium_Clmm"),Py={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as $t}from"@solana/web3.js";var er=f([p("instruction")]),tr=f([p("instruction")]),nr=f([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),N("accRewardPerShare"),i("rewardVault"),i("rewardMint"),i("rewardSender"),e("rewardType"),b(e(),15,"padding")]),or=f([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e