UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 76.9 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 Ua,blob as ko,Blob as Ga,cstr as za,f32 as Ya,f32be as Xa,f64 as Qa,f64be as Za,greedy as Ha,Layout as To,ns64 as ja,ns64be as $a,nu64 as ho,nu64be as Ja,offset as Io,s16 as es,s16be as ts,s24 as ns,s24be as os,s32 as Bo,s32be as is,s40 as rs,s40be as as,s48 as ss,s48be as us,s8 as cs,seq as So,struct as ls,Structure as xo,u16 as Ko,u16be as ms,u24 as ds,u24be as ps,u32 as Co,u32be as fs,u40 as ys,u40be as bs,u48 as gs,u48be as Ps,u8 as Ro,UInt as Lo,union as As,Union as ws,unionLayoutDiscriminator as ks,utf8 as Ts}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 xe(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 Ws,TOKEN_PROGRAM_ID as qs,getTransferFeeConfig as Us,unpackMint as Gs}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 he from"bn.js";import AR from"decimal.js";import zo from"big.js";import su 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),Ye=Ge(qo),Uo={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.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.`),Ye.set({precision:t+1,rounding:Uo[r]});let s=new Ye(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 bu=E("Raydium_amount"),gu=Ge(zo);import{PublicKey as Xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hn}from"@solana/spl-token";var lt={chainId:101,address:Xo.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 Y,SystemProgram as In,SYSVAR_RENT_PUBKEY as Qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zo}from"@solana/spl-token";function Ke({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Ho=[Ke({pubkey:Zo,isWritable:!1}),Ke({pubkey:In.programId,isWritable:!1}),Ke({pubkey:Qo,isWritable:!1})];function Bn({publicKey:o,transformSol:t}){let n=Sn(o.toString());if(n instanceof Y)return t&&n.equals(Ae)?ce:n;if(t&&n.toString()===Ae.toBase58())return ce;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Sn(o){try{return new Y(o)}catch{return o}}var Nt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ce=new Y("SysvarRent111111111111111111111111111111111"),jo=new Y("SysvarC1ock11111111111111111111111111111111"),mt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$o=new Y("Sysvar1nstructions1111111111111111111111111"),xn=In.programId,Bu=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Su=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),xu=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ku=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Cu=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ru=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Lu=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ou=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Nu=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Mu=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Fu=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ce=new Y("So11111111111111111111111111111111111111112"),Ae=Y.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 Ju=E("Raydium_price");import{merge as AC}from"lodash";import uc 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 Lc=E("Raydium_Api");import{PublicKey as rm,SystemProgram as am}from"@solana/web3.js";import{AccountLayout as mm,createAssociatedTokenAccountIdempotentInstruction as dm,TOKEN_PROGRAM_ID as pm,TOKEN_2022_PROGRAM_ID as fm}from"@solana/spl-token";import{PublicKey as Me,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 Oe}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 Oe({key:u,state:Oe.deserialize(a.data)});s[u.toString()]=y,n==="devnet"?Le[u.toString()]=y:Re[u.toString()]=y}return s}var Re={},Et=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[t])return Re;let n=new Vt(t),r=await o.getAccountInfo(n);return r&&(Re[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Re},Le={},Dt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[t])return Le;let n=new Vt(t),r=await o.getAccountInfo(n);return r&&(Le[t]=new Oe({key:n,state:Oe.deserialize(r.data)})),Le};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 Ne(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 Xe({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 Me(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!==Me.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 Ne(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 Ne(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 Me(S));let d=await _t({connection:this.connection,address:g});for(let[S,C]of Object.entries(d))u[S]=C;let w=s?Me.default.toBase58():m!=null?m:await Ne(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 Me(x));if(A!==n[d]&&g.length<12&&(Xe({instructions:k,payer:this.feePayer,signers:C})||Xe({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,Xe({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);Xe({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 Ne(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 Me(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 Ne(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,Se=null,ot=null,an=ge=>{Se!==null&&clearInterval(Se),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&&(Se=setInterval(async()=>{var ge;if(We){clearInterval(Se);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(We=!0,clearInterval(Se),an({err:((ge=fe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){We=!0,clearInterval(Se),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 vl,SystemProgram as _l}from"@solana/web3.js";import Wl from"bn.js";import{createCloseAccountInstruction as zl,createInitializeAccountInstruction as Yl,createTransferInstruction as Xl,TOKEN_PROGRAM_ID as Ql}from"@solana/spl-token";import{Keypair as hl,PublicKey as Il}from"@solana/web3.js";import xl from"bn.js";import{TOKEN_PROGRAM_ID as Rl}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 km}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hm}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"),xm=new h("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ci=new h("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),En=new h("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Dn=new h("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Km=new h("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),li=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Wn=new h("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),mi=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new h("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zt=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Cm=new h("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),pi=new h("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),fi=new h("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),yi=new h("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),bi=new h("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),gi=new h("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Yt=new h("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Pi=new h("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Rm=new h("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ai=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),wi=new h("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ki=new h("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Lm=new h("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Om=new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Nm=new h("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Mm=new h("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Fm=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 Zm}from"@solana/spl-token";import{PublicKey as Jm}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 Te=new D(1).shln(64);var hi=new D(1).shln(128),Xt=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,md=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),dd=new D(-1);var pd=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"),xe("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)]),gd=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)]),Yn=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)]),Xn=f([M(8),i("poolId"),M(8*8*At,"positiveTickArrayBitmap"),M(8*8*At,"negativeTickArrayBitmap")]),Pd=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)]),Ad=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 Td from"bn.js";var Nd=Buffer.from("amm_config","utf8"),Di=Buffer.from("pool","utf8"),Wi=Buffer.from("pool_vault","utf8"),Md=Buffer.from("pool_reward_vault","utf8"),Fd=Buffer.from("position","utf8"),vd=Buffer.from("tick_array","utf8"),Vd=Buffer.from("operation","utf8"),_d=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ed=Buffer.from("observation","utf8"),Dd=Buffer.from("support_mint","utf8"),Wd=Buffer.from("dynamic_fee_config","utf8");var qd=Buffer.from("locked_position","utf8");import{sha256 as or}from"js-sha256";import qi from"bn.js";import Yd from"decimal.js";var Qd=new qi(1).shln(256).subn(1);import dp from"bn.js";import tp from"bn.js";import op from"decimal.js";import wp from"bn.js";import Tp 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 Xp from"bn.js";import Mp from"bn.js";import Kf from"bn.js";function $(o){let t=`global:${o}`;return Buffer.from(or.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 ur=f([p("instruction")]),cr=f([p("instruction")]),lr=f([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateT