UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 76.2 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 La,blob as Po,Blob as Oa,cstr as Na,f32 as Ma,f32be as Fa,f64 as va,f64be as Va,greedy as _a,Layout as Ao,ns64 as Ea,ns64be as Da,nu64 as Wa,nu64be as qa,offset as wo,s16 as Ua,s16be as Ga,s24 as za,s24be as Xa,s32 as ko,s32be as Ya,s40 as Qa,s40be as Za,s48 as Ha,s48be as ja,s8 as $a,seq as To,struct as Ja,Structure as ho,u16 as Io,u16be as es,u24 as ts,u24be as ns,u32 as Bo,u32be as os,u40 as is,u40be as rs,u48 as as,u48be as ss,u8 as So,UInt as xo,union as us,Union as cs,unionLayoutDiscriminator as ls,utf8 as ms}from"@solana/buffer-layout";var it=Ao,cn=ho;var Bt=xo;var ln=So,Q=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 Rs,TOKEN_PROGRAM_ID as Ls,getTransferFeeConfig as Os,unpackMint as Ns}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 _C from"decimal.js";import Wo from"big.js";import Hs 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 ru=_("Raydium_amount"),au=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"),fu=new X("SysvarC1ock11111111111111111111111111111111"),lt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Yo=new X("Sysvar1nstructions1111111111111111111111111"),Qo=Tn.programId,yu=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),bu=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),gu=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Pu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Au=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),wu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ku=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Tu=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),hu=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Iu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Bu=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 Vu=new U(new Zo(100));var Uu=_("Raydium_price");import{merge as DK}from"lodash";import $u 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 kc=_("Raydium_Api");import{PublicKey as Zl,SystemProgram as Hl}from"@solana/web3.js";import{AccountLayout as tm,createAssociatedTokenAccountIdempotentInstruction as nm,TOKEN_PROGRAM_ID as om,TOKEN_2022_PROGRAM_ID as im}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(j=>j.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,j=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),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)}},ft)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(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 j of k){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{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 j=0,G=[],te=async()=>{if(!W[j])return;if(j<R){G.push({txId:"",status:"success",signedTx:W[j]}),I==null||I([...G]),j++,te();return}let de=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:de,status:"sent",signedTx:W[j]}),I==null||I([...G]),j++;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 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: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 Sl,SystemProgram as Kl}from"@solana/web3.js";import Ll from"bn.js";import{createCloseAccountInstruction as Fl,createInitializeAccountInstruction as vl,createTransferInstruction as Vl,TOKEN_PROGRAM_ID as _l}from"@solana/spl-token";import{Keypair as pl,PublicKey as fl}from"@solana/web3.js";import gl from"bn.js";import{TOKEN_PROGRAM_ID as wl}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 Zg,SystemProgram as Hg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as $g}from"@solana/spl-token";import{PublicKey as mm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pm}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"),gm=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ri=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vn=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Vn=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Pm=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ai=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_n=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),si=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ui=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Gt=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Am=new B("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ci=new B("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),zt=new B("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),li=new B("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),wm=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),mi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),pi=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),km=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Tm=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),hm=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Im=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Bm=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 uP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Sy,TOKEN_2022_PROGRAM_ID as xy,TOKEN_PROGRAM_ID as Ky}from"@solana/spl-token";import{PublicKey as Ry}from"@solana/web3.js";import Oy from"bn.js";import My from"decimal.js";import{TOKEN_PROGRAM_ID as Em}from"@solana/spl-token";import{PublicKey as Um}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 Qf,TOKEN_2022_PROGRAM_ID as Zf,TOKEN_PROGRAM_ID as Hf}from"@solana/spl-token";import{Keypair as Jf,PublicKey as ey,SystemProgram as ny,TransactionInstruction as oy}from"@solana/web3.js";import ry 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,td=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),nd=new E(-1);var od=new E("18446744073700000000");var ki=f([M(8),p("bump"),Q("index"),i("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Q("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"),Q("observationIndex"),i("poolId"),b(Ti,En,"observations"),b(e(),4)]),hi=f([Q("filterPeriod"),Q("decayPeriod"),Q("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"),Q("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)]),sd=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")]),ud=f([M(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),b(e(),8)]),Ri=f([M(8),i("wallet"),p("nonceIndex"),e("orderNonce"),b(e(),4)]),cd=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 dd from"bn.js";var hd=Buffer.from("amm_config","utf8"),Oi=Buffer.from("pool","utf8"),Ni=Buffer.from("pool_vault","utf8"),Id=Buffer.from("pool_reward_vault","utf8"),Bd=Buffer.from("position","utf8"),Sd=Buffer.from("tick_array","utf8"),xd=Buffer.from("operation","utf8"),Kd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Cd=Buffer.from("observation","utf8"),Rd=Buffer.from("support_mint","utf8"),Ld=Buffer.from("dynamic_fee_config","utf8");var Od=Buffer.from("locked_position","utf8");import{sha256 as Qi}from"js-sha256";import Mi from"bn.js";import vd from"decimal.js";var _d=new Mi(1).shln(256).subn(1);import np from"bn.js";import zd from"bn.js";import Yd from"decimal.js";import sp from"bn.js";import cp from"decimal.js";import{PublicKey as Zp}from"@solana/web3.js";import jp from"bn.js";import{TOKEN_2022_PROGRAM_ID as af,TOKEN_PROGRAM_ID as sf}from"@solana/spl-token";import mf from"decimal.js";import _p from"bn.js";import Bp from"bn.js";import Tf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(Qi.digest(t)).slice(0,8)}qn.span;var py=_("Raydium_Clmm"),fy={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as $t}from"@solana/web3.js";var Ji=f([p("instruction")]),er=f([p("instruction")]),tr=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")]),nr=f([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),N("perShareReward"),e("lastSlot"),e("perSlotReward")]),or=f([e("s