UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 77 kB
var go=Object.defineProperty,Po=Object.defineProperties;var Ao=Object.getOwnPropertyDescriptors;var it=Object.getOwnPropertySymbols;var un=Object.prototype.hasOwnProperty,cn=Object.prototype.propertyIsEnumerable;var sn=(o,t,n)=>t in o?go(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,L=(o,t)=>{for(var n in t||(t={}))un.call(t,n)&&sn(o,n,t[n]);if(it)for(var n of it(t))cn.call(t,n)&&sn(o,n,t[n]);return o},_=(o,t)=>Po(o,Ao(t));var ue=(o,t)=>{var n={};for(var r in o)un.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&it)for(var r of it(o))t.indexOf(r)<0&&cn.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as Oo}from"@solana/web3.js";import yn,{isBN as bn}from"bn.js";import{bits as wo,BitStructure as qa,blob as ko,Blob as Ua,cstr as Ga,f32 as za,f32be as Xa,f64 as Ya,f64be as Qa,greedy as Za,Layout as To,ns64 as Ha,ns64be as ja,nu64 as ho,nu64be as $a,offset as Io,s16 as Ja,s16be as es,s24 as ts,s24be as ns,s32 as Bo,s32be as os,s40 as is,s40be as rs,s48 as as,s48be as ss,s8 as us,seq as So,struct as cs,Structure as xo,u16 as Ko,u16be as ls,u24 as ms,u24be as ds,u32 as Co,u32be as ps,u40 as fs,u40be as ys,u48 as bs,u48be as gs,u8 as Ro,UInt as Lo,union as Ps,Union as As,unionLayoutDiscriminator as ws,utf8 as ks}from"@solana/buffer-layout";var rt=To,ln=xo;var St=Lo;var mn=Ro,Q=Ko;var at=Co;var dn=ho;var ae=Bo;var pn=So;var M=ko;var xt=wo,fn=Io;var Pe=class extends rt{constructor(n,r,s){super(n,s);this.blob=M(n),this.signed=r}decode(n,r=0){let s=new yn(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 yn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,s)}},st=class extends rt{constructor(n){super(8,n);this._lower=xt(at(),!1),this._upper=xt(at(),!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 L(L({},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 St(1,o)}function z(o){return new St(4,o)}function e(o){return new Pe(8,!1,o)}function N(o){return new Pe(16,!1,o)}function gn(o){return new Pe(1,!0,o)}function Se(o){return new Pe(8,!0,o)}function Pn(o){return new Pe(16,!0,o)}var qe=class extends rt{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 qe(M(32),t=>new Oo(t),t=>t.toBuffer(),o)}function re(o){return new qe(mn(),No,Mo,o)}function No(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Mo(o){return o?1:0}function An(o,t){let n=at("length"),r=f([n,b(o,fn(n,-n.span),"values")]);return new qe(r,({values:s})=>s,s=>({values:s}),t)}var Kt=class extends ln{decode(t,n){return super.decode(t,n)}};function f(o,t,n){return new Kt(o,t,n)}function b(o,t,n){let r,s=typeof t=="number"?t:bn(t)?t.toNumber():new Proxy(t,{get(m,a){if(!r){let u=Reflect.get(m,"count");r=bn(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 pn(o,s,n)}import{PublicKey as Vo}from"@solana/web3.js";import{get as wn,set as Fo}from"lodash";var Ct=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}},kn={},vo={};function E(o){let t=wn(kn,o);if(!t){let n=wn(vo,o);t=new Ct({name:o,logLevel:n}),Fo(kn,o,t)}return t}import{MINT_SIZE as Ds,TOKEN_PROGRAM_ID as Ws,getTransferFeeConfig as qs,unpackMint as Us}from"@solana/spl-token";var Rt=E("Raydium_accountInfo_util");async function ye(o,t,n){let{batchRequest:r,commitment:s="confirmed",chunkCount:m=100}=L({batchRequest:!1},n),a=Lt(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=Lt(y,10);u=(await(await Promise.all(g.map(async w=>await o._rpcBatchRequest(w)))).flat()).map(w=>(w.error&&Rt.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"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(A[0],"base64"),executable:K,lamports:k,owner:new Vo(S),rentEpoch:C}}return null})))}else try{u=await Promise.all(a.map(y=>o.getMultipleAccountsInfo(y,s)))}catch(y){y instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return u.flat()}import Te from"bn.js";import TR from"decimal.js";import zo from"big.js";import au from"bn.js";import _o from"toformat";var Eo=_o,Ge=Eo;import ct from"big.js";import Wo from"bn.js";import qo from"decimal.js-light";import ze from"bn.js";var Tn=9007199254740991;function ne(o){let t=E("Raydium_parseBigNumberish");if(o instanceof ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new ze(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=Tn||o<=-Tn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new ze(String(o))):typeof o=="bigint"?new ze(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new ze(0))}var ut=E("module/fraction"),Ot=Ge(ct),Xe=Ge(qo),Uo={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},Go={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},U=class{constructor(t,n=new Wo(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||ut.logWithError(`${t} is not an integer.`),t<=0&&ut.logWithError(`${t} is not positive.`),Xe.set({precision:t+1,rounding:Uo[r]});let s=new Xe(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)||ut.logWithError(`${t} is not an integer.`),t<0&&ut.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=Go[r]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var yu=E("Raydium_amount"),bu=Ge(zo);import{PublicKey as Yo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hn}from"@solana/spl-token";var lt={chainId:101,address:Yo.default.toBase58(),programId:hn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:hn.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 Mt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as In,SYSVAR_RENT_PUBKEY as Qo}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 Ho=[xe({pubkey:Zo,isWritable:!1}),xe({pubkey:In.programId,isWritable:!1}),xe({pubkey:Qo,isWritable:!1})];function Bn({publicKey:o,transformSol:t}){let n=Sn(o.toString());if(n instanceof X)return t&&n.equals(Ae)?ce:n;if(t&&n.toString()===Ae.toBase58())return ce;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 Sn(o){try{return new X(o)}catch{return o}}var Nt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ke=new X("SysvarRent111111111111111111111111111111111"),jo=new X("SysvarC1ock11111111111111111111111111111111"),mt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$o=new X("Sysvar1nstructions1111111111111111111111111"),xn=In.programId,Iu=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Bu=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Su=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),xu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ku=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Cu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ru=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Lu=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ou=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Nu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Mu=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ce=new X("So11111111111111111111111111111111111111112"),Ae=X.default;var Ft=class{constructor({mint:t,decimals:n,symbol:r,name:s,skipMint:m=!1,isToken2022:a=!1}){if(t===Ae.toBase58()||t instanceof Mt&&Ae.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Mt(le.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?Mt.default:Bn({publicKey:t}),this.isToken2022=a}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ft;J.WSOL=new Ft(_(L({},le),{mint:le.address}));var vt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},dt=vt;dt.SOL=new vt(lt);import Jo from"bn.js";var Xu=new U(new Jo(100));var $u=E("Raydium_price");import{merge as TC}from"lodash";import sc from"axios";var Kn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},ei=_(L({},Kn),{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 Rc=E("Raydium_Api");import{PublicKey as im,SystemProgram as rm}from"@solana/web3.js";import{AccountLayout as lm,createAssociatedTokenAccountIdempotentInstruction as mm,TOKEN_PROGRAM_ID as dm,TOKEN_2022_PROGRAM_ID as pm}from"@solana/spl-token";import{PublicKey as Ne,sendAndConfirmTransaction as qt,SystemProgram as ai,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import si from"axios";import{PublicKey as Vt,AddressLookupTableAccount as Le}from"@solana/web3.js";async function _t({connection:o,address:t,cluster:n="mainnet"}){let r=await ye(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 Le({key:u,state:Le.deserialize(a.data)});s[u.toString()]=y,n==="devnet"?Re[u.toString()]=y:Ce[u.toString()]=y}return s}var Ce={},Et=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ce[t])return Ce;let n=new Vt(t),r=await o.getAccountInfo(n);return r&&(Ce[t]=new Le({key:n,state:Le.deserialize(r.data)})),Ce},Re={},Dt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Re[t])return Re;let n=new Vt(t),r=await o.getAccountInfo(n);return r&&(Re[t]=new Le({key:n,state:Le.deserialize(r.data)})),Re};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 Cn,Keypair as Ln,PublicKey as ti,Transaction as On,TransactionMessage as ni,VersionedTransaction as Nn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as oi}from"@solana/spl-token";var Rn=E("Raydium_txUtil"),Mn=1644;function pt(o){let t=[],n=[];return o.microLamports&&(t.push(Cn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(t.push(Cn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Oe(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 ft(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 Wt(o,t){o.length<1&&Rn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Rn.logWithError(`no signers provided:, ${t.toString()}`);let n=new On;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Mn}catch{return!1}}function me(o,t){let[n,r]=ti.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function Ye({instructions:o,payer:t,signers:n}){return Wt(o,[t,...n])}function Qe({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Ln.generate().publicKey.toString()}){let m=new ni({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Nn(m).serialize()).toString("base64").length<Mn}catch{return!1}}var ii=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ri=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Nn&&(t=ii(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 On&&(n.recentBlockhash||(n.recentBlockhash=oi.toBase58()),n.feePayer||(n.feePayer=Ln.generate().publicKey)),t.push(ri(n))}),console.log("simulate tx string:",t),t}var yt=2e3,bt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await si.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=pt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ai.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ne(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!==Ne.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(_(L({},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 Oe(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 qt(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 Oe(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 qt(this.connection,v,this.signers.find(I=>I.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=[],I=async()=>{if(!F[v])return;let B=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:k});P.push({txId:B,status:"sent",signedTx:F[v]}),T==null||T([...P]),v++;let R=!1,O=null,V=null,ie=q=>{O!==null&&clearInterval(O),V!==null&&this.connection.removeSignatureListener(V);let W=P.findIndex(j=>j.txId===B);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||I()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(R){clearInterval(O);return}try{let W=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(R=!0,clearInterval(O),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",B))}catch(W){R=!0,clearInterval(O),console.error("getTransaction timeout:",W,B)}},yt)),V=this.connection.onSignature(B,q=>{if(R){this.connection.removeSignatureListener(V);return}R=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(B)};return await I(),{txIds:P.map(B=>B.txId),signedTxs:F}}else{let v=[];for(let P=0;P<F.length;P+=1){let I=await this.connection.sendRawTransaction(F[P].serialize(),{skipPreflight:k});v.push(I)}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=L(L({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),n),y=Array.from(new Set([...r,...this.lookupTableAddress])),g=[];for(let S of y)u[S]===void 0&&g.push(new Ne(S));let d=await _t({connection:this.connection,address:g});for(let[S,C]of Object.entries(d))u[S]=C;let w=s?Ne.default.toBase58():m!=null?m:await Oe(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 ft(this.connection,P),{txId:P,signedTx:A}}if(this.signAllTransactions){let P=await this.signAllTransactions([A]);if(this.signers.length)for(let I of P)try{I.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 ft(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,I=null,B=null,R=O=>{I!==null&&clearInterval(I),B!==null&&this.connection.removeSignatureListener(B);let V=x.findIndex(ie=>ie.txId===v);if(V>-1){if(x[V].status==="error"||x[V].status==="success")return;x[V].status=O.err?"error":"success"}T==null||T([...x]),O.err||F()};this.loopMultiTxStatus&&(I=setInterval(async()=>{var O;if(P){clearInterval(I);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(P=!0,clearInterval(I),R({err:((O=V.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){P=!0,clearInterval(I),console.error("getTransaction timeout:",V,v)}},yt)),B=this.connection.onSignature(v,O=>{if(P){this.connection.removeSignatureListener(B);return}P=!0,R(O)},"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?pt(r):{instructions:[],instructionTypes:[]},a=this.signers.reduce((A,K)=>_(L({},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 Ne(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 Oe(this.connection,this.blockhashCommitment);if(u.forEach(async(P,I)=>{P.recentBlockhash=F,y[I].length&&P.sign(...y[I])}),we(u),(v=this.owner)!=null&&v.isKeyPair){if(K){let P=0,I=[];for(let B of u){if(++P,P<=S){I.push("tx skipped");continue}let R=await qt(this.connection,B,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});I.push(R)}return{txIds:I,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)),I=[...u.slice(0,S),...P];if(K){let B=0,R=[],O=async()=>{if(!I[B])return;B<S&&(R.push({txId:"",status:"success",signedTx:I[B]}),k==null||k([...R]),B++,O());let V=await this.connection.sendRawTransaction(I[B].serialize(),{skipPreflight:x});R.push({txId:V,status:"sent",signedTx:I[B]}),k==null||k([...R]),B++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=R.findIndex(pe=>pe.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||O()};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)}},yt)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await O(),{txIds:R.map(V=>V.txId),signedTxs:I}}else{let B=[];for(let R=0;R<I.length;R+=1){let O=await this.connection.sendRawTransaction(I[R].serialize(),{skipPreflight:x});B.push(O)}return{txIds:B,signedTxs:I}}}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=L(L({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),s),g=Array.from(new Set([...this.lookupTableAddress,...m])),d=[];for(let P of g)y[P]===void 0&&d.push(new Ne(P));let w=await _t({connection:this.connection,address:d});for(let[P,I]of Object.entries(w))y[P]=I;let T=n?pt(n):{instructions:[],instructionTypes:[]},A=await Oe(this.connection,this.blockhashCommitment),K=this.signers.reduce((P,I)=>_(L({},P),{[I.publicKey.toBase58()]:I}),{}),k=[],S=[],C=[],x=0;if(this.allInstructions.forEach(P=>{let I=[...C,P],B=n?[...T.instructions,...I]:I;if(P!==r[x]&&C.length<a&&(Qe({instructions:B,payer:this.feePayer,lookupTableAddressAccount:y})||Qe({instructions:I,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 O of[...new Set(g)])y[O]!==void 0&&(R[O]=y[O]);if(n&&Qe({instructions:[...T.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:A})){let O=new He({payerKey:this.feePayer,recentBlockhash:A,instructions:[...T.instructions,...C]}).compileToV0Message(Object.values(y));k.push(new je(O))}else{let O=new He({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(y));k.push(new je(O))}S.push(Array.from(new Set(C.map(O=>O.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(O=>K[O]).filter(O=>O!==void 0)),C=[P]}}),C.length>0){let I=[...new Set(C.map(B=>B.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(B=>K[B]).filter(B=>B!==void 0);if(n&&Qe({instructions:[...T.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:A})){let B=new He({payerKey:this.feePayer,recentBlockhash:A,instructions:[...T.instructions,...C]}).compileToV0Message(Object.values(y));k.push(new je(B))}else{let B=new He({payerKey:this.feePayer,recentBlockhash:A,instructions:[...C]}).compileToV0Message(Object.values(y));k.push(new je(B))}S.push(I)}return(v=this.owner)!=null&&v.signer&&S.forEach(P=>{P.some(I=>I.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),k.forEach((P,I)=>{P.sign(S[I])}),{builder:this,transactions:k,buildProps:t,signers:S,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:I,onTxUpdate:B,skipTxCount:R=0,recentBlockHash:O,skipPreflight:V=!0}=P||{};if(k.map(async(q,W)=>{S[W].length&&q.sign(S[W]),O&&(q.message.recentBlockhash=O)}),we(k),(ie=this.owner)!=null&&ie.isKeyPair){if(I){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 ft(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(I){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<R){G.push({txId:"",status:"success",signedTx:W[j]}),B==null||B([...G]),j++,te();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[j]}),B==null||B([...G]),j++;let We=!1,Be=null,ot=null,an=ge=>{Be!==null&&clearInterval(Be),ot!==null&&this.connection.removeSignatureListener(ot);let fe=G.findIndex(bo=>bo.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=ge.err?"error":"success"}B==null||B([...G]),ge.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var ge;if(We){clearInterval(Be);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(We=!0,clearInterval(Be),an({err:((ge=fe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){We=!0,clearInterval(Be),console.error("getTransaction timeout:",fe,pe)}},yt)),ot=this.connection.onSignature(pe,ge=>{if(We){this.connection.removeSignatureListener(ot);return}We=!0,an(ge)},"confirmed"),this.connection.getSignatureStatus(pe)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var Ut=(...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=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new bt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Ut(t))}logInfo(...t){this.logger.info(Ut(t))}logAndCreateError(...t){let n=Ut(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Fl,SystemProgram as Vl}from"@solana/web3.js";import Dl from"bn.js";import{createCloseAccountInstruction as Gl,createInitializeAccountInstruction as zl,createTransferInstruction as Xl,TOKEN_PROGRAM_ID as Yl}from"@solana/spl-token";import{Keypair as Tl,PublicKey as hl}from"@solana/web3.js";import Sl from"bn.js";import{TOKEN_PROGRAM_ID as Cl}from"@solana/spl-token";var gt=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 tP,SystemProgram as nP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as iP}from"@solana/spl-token";import{PublicKey as wm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tm}from"@solana/spl-token";import{PublicKey as h}from"@solana/web3.js";var vn=new h("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Vn=new h("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),_n=new h("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Gt=new h("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Sm=new h("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ci=new h("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),En=new h("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Dn=new h("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),xm=new h("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),li=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Wn=new h("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),mi=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new h("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zt=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Km=new h("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),pi=new h("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),fi=new h("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),yi=new h("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),bi=new h("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),gi=new h("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Xt=new h("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Pi=new h("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Cm=new h("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ai=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),wi=new h("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ki=new h("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Rm=new h("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Lm=new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Om=new h("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Nm=new h("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Mm=new h("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),$e={IDO_PROGRAM_ID_V1:fi,IDO_PROGRAM_ID_V2:yi,IDO_PROGRAM_ID_V3:bi,IDO_PROGRAM_ID_V4:gi};var be={OPEN_BOOK_PROGRAM:new h("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new h("Ray1111111111111111111111111111111111111111"),AMM_V4:new h("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new h("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new h("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new h("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new h("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new h("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new h("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new h("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new h("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new h("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:h.default,Router:new h("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new h("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new h("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new h("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new h("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new h("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new h("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new h("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new h("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new h("Ray1111111111111111111111111111111111111111")};import fP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Oy,TOKEN_2022_PROGRAM_ID as Ny,TOKEN_PROGRAM_ID as My}from"@solana/spl-token";import{PublicKey as vy}from"@solana/web3.js";import _y from"bn.js";import Dy from"decimal.js";import{TOKEN_PROGRAM_ID as Qm}from"@solana/spl-token";import{PublicKey as $m}from"@solana/web3.js";var Ti=f([z("mintAuthorityOption"),i("mintAuthority"),e("supply"),p("decimals"),p("isInitialized"),z("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ey,TOKEN_2022_PROGRAM_ID as ty,TOKEN_PROGRAM_ID as ny}from"@solana/spl-token";import{Keypair as ry,PublicKey as ay,SystemProgram as uy,TransactionInstruction as cy}from"@solana/web3.js";import my from"bn.js";import D from"bn.js";var Fe=new D(1).shln(64);var hi=new D(1).shln(128),Yt=new D(1).shln(64).subn(1),Ii=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),Bi=new D("59543866431248"),Si=new D("184467440737095516"),xi=new D("15793534762490258745");var Qt=60,ld=new D("18446743708227953217"),Ki=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var Je=3,qn=100;var Un=10,Gn=100,At=14;var H=new D(0),_e=new D(1),md=new D(-1);var dd=new D("18446744073700000000");var Ci=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)]),Ri=f([z("blockTimestamp"),Se("tickCumulative"),b(e(),4)]),zn=f([M(8),re("initialized"),e("recentEpoch"),Q("observationIndex"),i("poolId"),b(Ri,qn,"observations"),b(e(),4)]),Li=f([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),b(p(),46)]),Oi=f([p("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),N("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),N("growthGlobalX64")]),Zt=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(Oi,Je,"rewardInfos"),M(8*16,"tickArrayBitmap"),b(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Li.replicate("dynamicFeeInfo"),b(e(),46)]),Ni=f([N("growthInsideLastX64"),e("rewardAmountOwed")]),Mi=f([M(8),p("bump"),i("nftMint"),i("poolId"),ae("tickLower"),ae("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(Ni,Je,"rewardInfos"),e("recentEpoch"),b(e(),7)]),bd=f([M(8),p("bump"),i("poolId"),ae("tickLower"),ae("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),b(N(),Je,"rewardGrowthInside"),e("recentEpoch"),b(e(),7)]),Fi=f([ae("tick"),Pn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),b(N(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),N("unfilledRatioX64"),b(z(),3)]),Xn=f([M(8),i("poolId"),ae("startTickIndex"),b(Fi,Qt,"ticks"),p("initializedTickCount"),e("recentEpoch"),b(p(),107)]),vi=f([M(8),p("bump"),b(i(),Un,"operationOwners"),b(i(),Gn,"whitelistMints")]),Vi=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)]),Yn=f([M(8),i("poolId"),M(8*8*At,"positiveTickArrayBitmap"),M(8*8*At,"negativeTickArrayBitmap")]),gd=f([M(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),b(e(),8)]),_i=f([M(8),i("wallet"),p("nonceIndex"),e("orderNonce"),b(e(),4)]),Pd=f([e(),p("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),b(e(),8)]),Ei=f([M(8),p("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),b(e(),8)]);import kd from"bn.js";var Od=Buffer.from("amm_config","utf8"),Di=Buffer.from("pool","utf8"),Wi=Buffer.from("pool_vault","utf8"),Nd=Buffer.from("pool_reward_vault","utf8"),Md=Buffer.from("position","utf8"),Fd=Buffer.from("tick_array","utf8"),vd=Buffer.from("operation","utf8"),Vd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),_d=Buffer.from("observation","utf8"),Ed=Buffer.from("support_mint","utf8"),Dd=Buffer.from("dynamic_fee_config","utf8");var Wd=Buffer.from("locked_position","utf8");import{sha256 as nr}from"js-sha256";import qi from"bn.js";import zd from"decimal.js";var Yd=new qi(1).shln(256).subn(1);import mp from"bn.js";import ep from"bn.js";import np from"decimal.js";import bp from"bn.js";import Pp from"decimal.js";import{PublicKey as rf}from"@solana/web3.js";import sf from"bn.js";import{TOKEN_2022_PROGRAM_ID as yf}from"@solana/spl-token";import Af from"decimal.js";import Yp from"bn.js";import Mp from"bn.js";import Kf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(nr.digest(t)).slice(0,8)}zn.span;var Ay=E("Raydium_Clmm"),wy={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 en}from"@solana/web3.js";var sr=f([p("instruction")]),ur=f([p("instruction")]),cr=f([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateT